איסוף יומנים של הצפנת אימייל ב-Zix

נתמך ב:

במסמך הזה מוסבר איך להטמיע יומנים של Zix Email Encryption ב-Google Security Operations באמצעות סוכן Bindplane.

‫Zix Email Encryption (עכשיו OpenText ZixEncrypt) היא פלטפורמה להצפנת אימייל ולמניעת אובדן נתונים (DLP) שמאפשרת תקשורת מאובטחת באימייל ועמידה בדרישות התאימות. הוא יוצר יומני עסקאות של SMTP ויומני אירועים של הצפנה במכשיר ZixGateway.

לפני שמתחילים

חשוב לוודא שיש לכם את הדברים הבאים:

  • מכונה של Google SecOps
  • ‫Windows Server 2016 ואילך, או מארח Linux עם systemd
  • קישוריות לרשת בין סוכן Bindplane לבין מכשיר Zix Email Encryption
  • אם השרת פועל מאחורי שרת proxy, צריך לוודא שהיציאות של חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane.
  • גישה עם הרשאות אדמין למכשיר Zix Email Encryption‏ (ZixGateway)
  • גישה לקובצי היומן של Zix Email Encryption (יומני עסקאות SMTP, יומני אירועי הצפנה)

קבלת פרטי כניסה ל-Google SecOps בשביל סוכן Bindplane

כדי לאמת את סוכן Bindplane ב-Google SecOps, בוחרים אחת מהשיטות הבאות:

  • פריסות חדשות: משתמשים ב-Chronicle API (אפשרות 1).
  • פריסות מדור קודם: אפשר להמשיך להשתמש בקובץ האימות של ה-API להעברת נתונים (אפשרות 2) עד שה-API להעברת נתונים יפסיק לפעול ב-20 ביולי 2027.
  1. נכנסים למסוףGoogle Cloud ובוחרים את הפרויקט ב- Google Cloud שמקושר למכונה של Google SecOps.
  2. נכנסים אל IAM & Admin > Service Accounts (ניהול הרשאות גישה (IAM) & אדמין > חשבונות שירות).
  3. לוחצים על יצירת חשבון שירות.
  4. מזינים את פרטי ההגדרה הבאים:
    • Service account name: מזינים שם לחשבון (לדוגמה, bindplane-ingest).
    • תיאור חשבון השירות: מזינים תיאור (לדוגמה, Bindplane agent log ingestion).
  5. לוחצים על Create and continue.
  6. בקטע Grant this service account access to project לוחצים על Select a role ובוחרים באפשרות Chronicle Editor.
  7. לוחצים על המשך ואז על סיום.
  8. לוחצים על חשבון השירות שיצרתם ואז עוברים לכרטיסייה Keys.
  9. לוחצים על Add key > Create new key.
  10. בוחרים באפשרות JSON ולוחצים על Create. קובץ המפתח יורד למחשב.
  11. שומרים את קובץ המפתח בשם ingestion-auth.json בספריית Bindplane Collector (/opt/observiq-otel-collector/ingestion-auth.json ב-Linux או C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json ב-Windows), או מעדכנים את creds_file_path ב-config.yaml כך שיתאים לנתיב שבו שומרים את הקובץ.
  12. עוברים אל IAM & Admin > Settings ומעתיקים את הערך של Project number. תצטרכו אותו כדי להגדיר את הייצוא.

אפשרות 2: הורדת קובץ אימות להטמעת נתונים (גרסה מדור קודם)

  1. נכנסים למסוף Google SecOps.
  2. עוברים אל SIEM Settings > Collection Agents (הגדרות SIEM > סוכני איסוף).
  3. מורידים את קובץ האימות להטמעת נתונים.
  4. שומרים את הקובץ בצורה מאובטחת במערכת שבה יותקן הסוכן של Bindplane.

איך מקבלים את מספר הלקוח ב-Google SecOps

  1. נכנסים למסוף Google SecOps.
  2. עוברים אל SIEM Settings > Profile (הגדרות SIEM > פרופיל).
  3. מעתיקים את מזהה הלקוח מהקטע פרטי הארגון ושומרים אותו.

התקנת סוכן Bindplane

מתקינים את הסוכן של Bindplane במערכת ההפעלה Windows או Linux לפי ההוראות הבאות.

התקנה ב-Windows

  1. פותחים את שורת הפקודה או את PowerShell כאדמין.
  2. מריצים את הפקודה הבאה:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. מחכים שההתקנה תסתיים.

  4. מאמתים את ההתקנה על ידי הרצת:

    sc query observiq-otel-collector
    

    השירות אמור להופיע כ-RUNNING.

התקנה ב-Linux

  1. פותחים טרמינל עם הרשאות root או sudo.
  2. מריצים את הפקודה הבאה:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. מחכים שההתקנה תסתיים.

  4. מאמתים את ההתקנה על ידי הרצת:

    sudo systemctl status observiq-otel-collector
    

    השירות אמור להופיע כ-active (running).

מקורות מידע נוספים להתקנה

אפשרויות התקנה נוספות ופתרון בעיות מפורטים במדריך להתקנת סוכן Bindplane.

הגדרת סוכן Bindplane להטמעת syslog ושליחה ל-Google SecOps

מאתרים את קובץ התצורה

  • ‫Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • ‫Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

עריכת קובץ תצורה

  • מחליפים את כל התוכן של config.yaml בהגדרה הבאה:

    receivers:
      filelog:
        include:
          - /var/log/zix/*.log
          - /opt/zix/logs/*.log
        start_at: beginning
    
    exporters:
      chronicle/zix_email:
        protocol: https
        # Region of your instance, for example us, europe, asia-southeast1
        location: <LOCATION>
        # Project number of the Google Cloud project linked to the instance
        project: '<PROJECT_NUMBER>'
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: chronicle.googleapis.com
        log_type: ZIX_EMAIL_ENCRYPTION
        raw_log_field: body
        ingestion_labels:
          env: production
    
    service:
      pipelines:
        logs/zix_to_chronicle:
          receivers:
            - filelog
          exporters:
            - chronicle/zix_email
    

פרמטרים להגדרה

מחליפים את ה-placeholders הבאים:

  • הגדרת המקלט:

    • filelog: סוג המקלט לאיסוף קובצי יומן מהדיסק
    • ‫include: רשימה של נתיבי קבצים או תבניות glob למעקב:
      • Linux: ‏ /var/log/zix/*.log או /opt/zix/logs/*.log
      • Windows: C:\Program Files\Zix\logs\*.log
      • משנים את הנתיב כך שיתאים למיקום של קובץ היומן של ZixGateway
    • ‫start_at: מגדירים את הערך beginning כדי לקרוא קובצי יומן קיימים מההתחלה, או את הערך end כדי לקרוא רק רשומות חדשות
  • הגדרת הייצוא:

    • ‫zix_email: שם תיאורי של הכלי לייצוא
    • ‫creds_file_path: הנתיב המלא לקובץ המפתח של חשבון השירות בפורמט JSON (אפשרות 1):
      • ‫Linux: /opt/observiq-otel-collector/ingestion-auth.json
      • ‫Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • ‫<customer_id>: מספר הלקוח מהשלב הקודם
    • ‫location: מחליפים את <LOCATION> באזור של המכונה של Google SecOps (לדוגמה, us,‏ europe או asia-southeast1). המייצא מוסיף את הערך הזה בתחילת chronicle.googleapis.com. לרשימה המלאה, ראו נקודות קצה אזוריות.
    • ‫project: מחליפים את <PROJECT_NUMBER> במספר הפרויקט שמופיע בקטע IAM & Admin > Settings.
    • ‫endpoint: משאירים את הערך chronicle.googleapis.com.
    • ‫ZIX_EMAIL_ENCRYPTION: סוג היומן בדיוק כמו שהוא מופיע ב-Chronicle
    • ‫ingestion_labels: תוויות אופציונליות בפורמט YAML (לדוגמה, env: production)
  • הגדרת צינור עיבוד נתונים:

    • ‫zix_to_chronicle: שם תיאורי לצינור עיבוד הנתונים

מייצא API להטמעה מדור קודם

  • אם משתמשים בקובץ האימות של ההעלאה מאפשרות 2, מחליפים את הבלוק exporters בבלוק הבא. מגדירים את creds_file_path לנתיב לקובץ האימות של ההעברה, ואם המופע שלכם נמצא מחוץ לארה"ב, מחליפים את malachiteingestion-pa.googleapis.com בנקודת הקצה האזורית (לדוגמה, europe-malachiteingestion-pa.googleapis.com).

    exporters:
      chronicle/zix_email:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: ZIX_EMAIL_ENCRYPTION
        raw_log_field: body
        ingestion_labels:
          env: production
    

שמירת קובץ התצורה

  • אחרי שמסיימים לערוך, שומרים את הקובץ:
    • ‫Linux: מקישים על Ctrl+O, אחר כך על Enter ואז על Ctrl+X.
    • Windows: לוחצים על קובץ > שמירה

מפעילים מחדש את סוכן Bindplane כדי להחיל את השינויים.

  • כדי להפעיל מחדש את סוכן Bindplane ב-Linux, מריצים את הפקודה הבאה:

    sudo systemctl restart observiq-otel-collector
    
    1. מוודאים שהשירות פועל:

      sudo systemctl status observiq-otel-collector
      
    2. בודקים אם יש שגיאות ביומנים:

      sudo journalctl -u observiq-otel-collector -f
      
  • כדי להפעיל מחדש את סוכן Bindplane ב-Windows, בוחרים באחת מהאפשרויות הבאות:

    • שורת פקודה או PowerShell כאדמין:

        net stop observiq-otel-collector && net start observiq-otel-collector
      
    • מסוף השירותים:

      1. מקישים על Win+R, מקלידים services.msc ומקישים על Enter.
      2. מאתרים את observIQ OpenTelemetry Collector.
      3. לוחצים לחיצה ימנית ובוחרים באפשרות הפעלה מחדש.
      4. מוודאים שהשירות פועל:

          sc query observiq-otel-collector
        
      5. בודקים אם יש שגיאות ביומנים:

          type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

הגדרת איסוף יומנים של הצפנת אימייל ב-Zix

הסוכן של Bindplane אוסף קובצי יומן ישירות ממערכת הקבצים של מכשיר ZixGateway.

אימות המיקומים של קובצי היומן

  1. נכנסים למסוף הניהול של ZixGateway.
  2. עוברים אל Monitoring > Logs.
  3. בודקים את ספריית קובץ היומן:

    • ‫Linux: ‏/var/log/zix/ או /opt/zix/logs/
    • ‫Windows: C:\Program Files\Zix\logs\
  4. מוודאים שיומני הטרנזקציות של SMTP ויומני האירועים של ההצפנה נכתבים במיקום הצפוי.

  5. אם ספריית היומנים שונה מברירות המחדל, מעדכנים את הנתיבים של include בסוכן Bindplane config.yaml.

טבלת מיפוי UDM

שדה ביומן מיפוי UDM היגיון
מתווך מתווך מוזג מהמתווך
relay_host intermediary.hostname הערך מועתק ישירות מ-relay_host
relay_ip intermediary.ip מוזג מ-relay_ip
relay_port intermediary.port הערך מ-relay_port הומר למספר שלם
message_details metadata.description הערך מועתק ישירות מ-message_details בבלוקים של smtp,‏ smtpd,‏ cleanup או error
principal_hostname, sender_email metadata.event_type צריך להגדיר את הערך "EMAIL_TRANSACTION" אם השדות principal_hostname ו-sender_email לא ריקים, אחרת צריך להגדיר את הערך "NETWORK_CONNECTION" אם השדות principal_hostname ו-(target_host או target_ip) לא ריקים, אחרת צריך להגדיר את הערך "STATUS_UPDATE" אם השדה principal_hostname לא ריק והשדות (target_host או target_ip) ריקים, אחרת צריך להגדיר את הערך "GENERIC_EVENT"
metadata.product_name ההגדרה היא Zix Email Encryption
metadata.vendor_name הגדרה ל-Zix
הודעה network.application_protocol הערך שמוגדר הוא SMTP אם ההודעה תואמת ל-smtp או ל-smtpd
sender_email network.email.from הערך מועתק ישירות אם sender_email תואם לביטוי הרגולרי של כתובת אימייל
נושא network.email.subject מוזג מהנושא
recipient_email network.email.to מוזג מ-recipient_email אם יש התאמה לביטוי הרגולרי של כתובת אימייל
data_size network.received_bytes הערך מ-data_size הומר ל-uinteger
tls_cipher network.tls.cipher הערך הועתק ישירות מ-tls_cipher
cert_data network.tls.client.certificate.issuer הערך הועתק ישירות מ-cert_data
דימון (daemon) principal.application ערך שהועתק ישירות מהדמון (daemon)
principal_hostname principal.hostname הערך מועתק ישירות מ-principal_hostname
קובץ principal.process.file.full_path הערך הועתק ישירות מהקובץ
pid principal.process.pid הערך מועתק ישירות מהפרמטר pid
principal.resource.type צריך להגדיר את הערך "CLEANUP_MESSAGE_ID" אם ה-daemon הוא ניקוי
sender_email principal.user.user_display_name הערך מועתק ישירות אם sender_email לא תואם לביטוי הרגולרי של כתובת אימייל
user_id principal.user.userid הערך מ-user_id אם הוא לא ריק, אחרת הערך מ-user_id בבלוק else
security_result security_result Merged from security_result
security_action security_result.action המיזוג בוצע מ-security_action
failure_reason security_result.description הערך מועתק ישירות מהמאפיין failure_reason
security_summary security_result.summary הערך מועתק ישירות מ-security_summary
קובץ target.file.full_path הערך הועתק ישירות מהקובץ
target_host target.hostname הערך הועתק ישירות מ-target_host
target_ip target.ip מוזג מ-target_ip
target_port target.port הערך מ-target_port הומר למספר שלם
message_id target.resource.name הערך הועתק ישירות מ-message_id
recipient_email target.user.user_display_name הערך מועתק ישירות אם recipient_email לא תואם לביטוי הרגולרי של כתובת אימייל

יומן שינויים

צפייה ביומן השינויים של המנתח הזה

הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.