איסוף יומנים של הצפנת אימייל ב-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: יצירת חשבון שירות ל-Chronicle API (מומלץ)
- נכנסים למסוףGoogle Cloud ובוחרים את הפרויקט ב- Google Cloud שמקושר למכונה של Google SecOps.
- נכנסים אל IAM & Admin > Service Accounts (ניהול הרשאות גישה (IAM) & אדמין > חשבונות שירות).
- לוחצים על יצירת חשבון שירות.
- מזינים את פרטי ההגדרה הבאים:
- Service account name: מזינים שם לחשבון (לדוגמה,
bindplane-ingest). - תיאור חשבון השירות: מזינים תיאור (לדוגמה,
Bindplane agent log ingestion).
- Service account name: מזינים שם לחשבון (לדוגמה,
- לוחצים על Create and continue.
- בקטע Grant this service account access to project לוחצים על Select a role ובוחרים באפשרות Chronicle Editor.
- לוחצים על המשך ואז על סיום.
- לוחצים על חשבון השירות שיצרתם ואז עוברים לכרטיסייה Keys.
- לוחצים על Add key > Create new key.
- בוחרים באפשרות JSON ולוחצים על Create. קובץ המפתח יורד למחשב.
- שומרים את קובץ המפתח בשם
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כך שיתאים לנתיב שבו שומרים את הקובץ. - עוברים אל IAM & Admin > Settings ומעתיקים את הערך של Project number. תצטרכו אותו כדי להגדיר את הייצוא.
אפשרות 2: הורדת קובץ אימות להטמעת נתונים (גרסה מדור קודם)
- נכנסים למסוף Google SecOps.
- עוברים אל SIEM Settings > Collection Agents (הגדרות SIEM > סוכני איסוף).
- מורידים את קובץ האימות להטמעת נתונים.
- שומרים את הקובץ בצורה מאובטחת במערכת שבה יותקן הסוכן של Bindplane.
איך מקבלים את מספר הלקוח ב-Google SecOps
- נכנסים למסוף Google SecOps.
- עוברים אל SIEM Settings > Profile (הגדרות SIEM > פרופיל).
מעתיקים את מזהה הלקוח מהקטע פרטי הארגון ושומרים אותו.
התקנת סוכן Bindplane
מתקינים את הסוכן של Bindplane במערכת ההפעלה Windows או Linux לפי ההוראות הבאות.
התקנה ב-Windows
- פותחים את שורת הפקודה או את PowerShell כאדמין.
מריצים את הפקודה הבאה:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietמחכים שההתקנה תסתיים.
מאמתים את ההתקנה על ידי הרצת:
sc query observiq-otel-collectorהשירות אמור להופיע כ-RUNNING.
התקנה ב-Linux
- פותחים טרמינל עם הרשאות root או sudo.
מריצים את הפקודה הבאה:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shמחכים שההתקנה תסתיים.
מאמתים את ההתקנה על ידי הרצת:
sudo systemctl status observiq-otel-collectorהשירות אמור להופיע כ-active (running).
מקורות מידע נוספים להתקנה
אפשרויות התקנה נוספות ופתרון בעיות מפורטים במדריך להתקנת סוכן Bindplane.
הגדרת סוכן Bindplane להטמעת syslog ושליחה ל-Google SecOps
מאתרים את קובץ התצורה
Linux:
sudo nano /opt/observiq-otel-collector/config.yamlWindows:
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
- Linux:
-
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
- Linux:
-
<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: לוחצים על קובץ > שמירה
- Linux: מקישים על
מפעילים מחדש את סוכן Bindplane כדי להחיל את השינויים.
כדי להפעיל מחדש את סוכן Bindplane ב-Linux, מריצים את הפקודה הבאה:
sudo systemctl restart observiq-otel-collectorמוודאים שהשירות פועל:
sudo systemctl status observiq-otel-collectorבודקים אם יש שגיאות ביומנים:
sudo journalctl -u observiq-otel-collector -f
כדי להפעיל מחדש את סוכן Bindplane ב-Windows, בוחרים באחת מהאפשרויות הבאות:
שורת פקודה או PowerShell כאדמין:
net stop observiq-otel-collector && net start observiq-otel-collectorמסוף השירותים:
- מקישים על
Win+R, מקלידיםservices.mscומקישים על Enter. - מאתרים את observIQ OpenTelemetry Collector.
- לוחצים לחיצה ימנית ובוחרים באפשרות הפעלה מחדש.
מוודאים שהשירות פועל:
sc query observiq-otel-collectorבודקים אם יש שגיאות ביומנים:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- מקישים על
הגדרת איסוף יומנים של הצפנת אימייל ב-Zix
הסוכן של Bindplane אוסף קובצי יומן ישירות ממערכת הקבצים של מכשיר ZixGateway.
אימות המיקומים של קובצי היומן
- נכנסים למסוף הניהול של ZixGateway.
- עוברים אל Monitoring > Logs.
בודקים את ספריית קובץ היומן:
- Linux:
/var/log/zix/או/opt/zix/logs/ - Windows:
C:\Program Files\Zix\logs\
- Linux:
מוודאים שיומני הטרנזקציות של SMTP ויומני האירועים של ההצפנה נכתבים במיקום הצפוי.
אם ספריית היומנים שונה מברירות המחדל, מעדכנים את הנתיבים של
includeבסוכן Bindplaneconfig.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.