איסוף יומנים של ManageEngine AD360
במאמר הזה מוסבר איך להטמיע יומנים של ManageEngine AD360 ב-Google Security Operations באמצעות סוכן Bindplane.
ManageEngine AD360 הוא פתרון משולב לניהול זהויות והרשאות גישה, שמפיק הודעות syslog לשינויים ב-Active Directory, לאירועי אימות, לחיבורים לרשת ולהפרות של מדיניות האבטחה. הכלי לניתוח מחלץ שדות מיומנים בפורמט syslog באמצעות דפוסי grok וממפה אותם למודל הנתונים המאוחד (UDM).
לפני שמתחילים
חשוב לוודא שמתקיימות הדרישות המוקדמות הבאות:
- מופע של Google SecOps
- Windows Server 2016 ואילך, או מארח Linux עם
systemd - קישוריות רשת בין סוכן Bindplane לבין שרת ManageEngine AD360
- אם מריצים את הסוכן מאחורי שרת proxy, מוודאים שיציאות חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane
- הרשאת אדמין לממשק המשתמש באינטרנט של ManageEngine AD360
קבלת קובץ אימות להטמעת נתונים ב-Google SecOps
- נכנסים למסוף 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השירות צריך להופיע כפעיל (פועל).
מקורות מידע נוספים להתקנה
אפשרויות התקנה נוספות ופתרון בעיות מפורטים במדריך להתקנת סוכן 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: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/manage_engine_ad360: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: MANAGE_ENGINE_AD360 raw_log_field: body service: pipelines: logs/manage_engine_ad360_to_chronicle: receivers: - udplog exporters: - chronicle/manage_engine_ad360
פרמטרים להגדרה
מחליפים את ה-placeholders הבאים:
הגדרת מקלט:
-
listen_address: כתובת ה-IP והיציאה להאזנה:-
0.0.0.0כדי להאזין בכל הממשקים (מומלץ) - יציאה
514היא יציאת syslog רגילה (נדרשת הרשאת root ב-Linux; אפשר להשתמש ביציאה1514ללא הרשאת root)
-
-
הגדרות של הכלי לייצוא:
-
creds_file_path: הנתיב המלא לקובץ האימות להטמעת נתונים:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
-
customer_id: מספר הלקוח שהועתק ממסוף Google SecOps endpoint: Regional endpoint URL:- ארה"ב:
malachiteingestion-pa.googleapis.com - אירופה:
europe-malachiteingestion-pa.googleapis.com - אסיה:
asia-southeast1-malachiteingestion-pa.googleapis.com - רשימה מלאה מופיעה במאמר בנושא נקודות קצה אזוריות.
- ארה"ב:
-
שמירת קובץ ההגדרות
- אחרי שמסיימים לערוך, שומרים את הקובץ:
- 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"
- מקישים על
הגדרת ייצוא של syslog ב-ManageEngine AD360
- נכנסים לממשק המשתמש האינטרנטי של AD360.
- עוברים אל ניהול > ניהול > שילוב SIEM.
- לוחצים על הקישור Configure Now (הגדרה עכשיו) לצד הרכיב ADSelfService.
- מספקים את פרטי ההגדרה הבאים:
- סוג השרת: בוחרים באפשרות Syslog.
- שם השרת או כתובת ה-IP: מזינים את כתובת ה-IP של סוכן Bindplane.
- יציאה: מזינים את מספר היציאה של סוכן Bindplane.
- פרוטוקול: בוחרים באפשרות UDP.
- תקן Syslog: בוחרים באפשרות RFC 5424.
- לוחצים על הרשימה מתקדם.
- מידת החומרה: בוחרים באפשרות מידע.
- לוחצים על הגדרה כדי לשמור.
טבלת מיפוי UDM
| שדה היומן | מיפוי UDM | לוגיקה |
|---|---|---|
| AccessControlRuleName | security_result.rule_name | הערך נלקח מהשדה AccessControlRuleName אם הוא קיים, אחרת מהשדה rule_name |
| ACPolicy | security_result.rule_labels.value | הערך נלקח מהשדה ACPolicy |
| פעולה | security_result.action_details | ממופה ישירות ל-UDM |
| action_id | security_result.detection_fields.value | הערך נלקח מהשדה action_id |
| application_protocol | network.application_protocol | ממופה ישירות ל-UDM |
| בייטים | network.sent_bytes | ממופה ישירות ל-UDM |
| client_ip | principal.ip | ממופה ישירות ל-UDM |
| ConnectionID | network.session_id | הערך נלקח מהשדה connection_id אם הוא קיים, אחרת מהשדה ConnectionID, אחרת מהשדה ses |
| destination_ip | target.ip | ממופה ישירות ל-UDM |
| destination_port | target.port | ממופה ישירות ל-UDM |
| DeviceUUID | target.asset_id | הערך נלקח מהשדה DeviceUUID אם הוא קיים, אחרת הוא נלקח מהשדה distinguished_name_device_id |
| distinguished_name_device_id | target.asset_id | הערך נלקח מהשדה DeviceUUID אם הוא קיים, אחרת הוא נלקח מהשדה distinguished_name_device_id |
| distinguished_name_user | target.user.userid | ממופה ישירות ל-UDM |
| מס שירותים דיגיטליים (DTS) | target.ip | הערך נלקח מהשדה DST אם הוא קיים, אחרת מהשדה DstIP |
| DPT | target.port | הערך נלקח מהשדה DPT אם הוא קיים, אחרת מהשדה DstPort, אחרת מהשדה destination_port |
| DstIP | target.ip | הערך נלקח מהשדה DST אם הוא קיים, אחרת מהשדה DstIP |
| DstPort | target.port | הערך נלקח מהשדה DPT אם הוא קיים, אחרת מהשדה DstPort, אחרת מהשדה destination_port |
| EgressInterface | additional.fields.value.string_value | ממופה ישירות ל-UDM |
| EgressZone | target.location.name | ממופה ישירות ל-UDM |
| EventPriority | security_result.severity | ממופה לרמות חומרה שונות על סמך הערך של השדה EventPriority. |
| exe | principal.process.command_line | ממופה ישירות ל-UDM |
| geoip.city_name | principal.location.city | ממופה ישירות ל-UDM |
| geoip.country_name | principal.location.country_or_region | ממופה ישירות ל-UDM |
| geoip.latitude | principal.location.region_latitude | ממופה ישירות ל-UDM |
| geoip.longitude | principal.location.region_longitude | ממופה ישירות ל-UDM |
| http_status | network.http.response_code | ממופה ישירות ל-UDM |
| id | metadata.product_log_id | ממופה ישירות ל-UDM |
| IngressInterface | additional.fields.value.string_value | ממופה ישירות ל-UDM |
| IngressZone | principal.location.name | ממופה ישירות ל-UDM |
| LEN | additional.fields.value.string_value | ממופה ישירות ל-UDM |
| message_number | לא ממופה | |
| NAPPolicy | security_result.rule_labels.value | הערך נלקח מהשדה NAPPolicy |
| network_direction | network.direction | ממופה ישירות ל-UDM |
| OUT | additional.fields.value.string_value | ממופה ישירות ל-UDM |
| pid | target.process.pid | ממופה ישירות ל-UDM |
| ppid | target.process.parent_process.pid | ממופה ישירות ל-UDM |
| PREC | additional.fields.value.string_value | ממופה ישירות ל-UDM |
| principal_hostname | principal.hostname | ממופה ישירות ל-UDM |
| product_event_type | metadata.product_event_type | ממופה ישירות ל-UDM |
| פרוטוקול | network.ip_protocol | משמש לאכלוס השדה PROTO ואז ממופה ל-UDM באמצעות טבלת מיפוי. |
| PROTO | network.ip_protocol | המיפוי מתבצע ל-UDM באמצעות טבלת מיפוי שמבוססת על מספר הפרוטוקול. |
| request_method | network.http.method | ממופה ישירות ל-UDM |
| rule_name | security_result.rule_name | הערך נלקח מהשדה AccessControlRuleName אם הוא קיים, אחרת הוא נלקח מהשדה rule_name |
| ses | network.session_id | הערך נלקח מהשדה connection_id אם הוא קיים, אחרת מהשדה ConnectionID, אחרת מהשדה ses |
| source_ip | principal.ip | ממופה ישירות ל-UDM |
| source_port | principal.port | ממופה ישירות ל-UDM |
| SPT | principal.port | הערך נלקח מהשדה SPT אם הוא קיים, אחרת מהשדה SrcPort, אחרת מהשדה source_port |
| SRC | principal.ip | הערך נלקח מהשדה SRC אם הוא קיים, אחרת מהשדה SrcIP, אחרת מהשדה client_ip |
| SrcIP | principal.ip | הערך נלקח מהשדה SRC אם הוא קיים, אחרת מהשדה SrcIP, אחרת מהשדה client_ip |
| SrcPort | principal.port | הערך נלקח מהשדה SPT אם הוא קיים, אחרת מהשדה SrcPort, אחרת מהשדה source_port |
| חותמת זמן | metadata.event_timestamp | ממופה ישירות ל-UDM |
| TOS | additional.fields.value.string_value | ממופה ישירות ל-UDM |
| TTL | additional.fields.value.string_value | ממופה ישירות ל-UDM |
| כתובת URL | target.url | ממופה ישירות ל-UDM |
| user_agent | network.http.user_agent | ממופה ישירות ל-UDM |
| חלון | additional.fields.value.string_value | ממופה ישירות ל-UDM |
| metadata.vendor_name | הערך מוצמד ל-MANAGE_ENGINE_AD360 |
|
| metadata.product_name | הערך מוצמד ל-MANAGE_ENGINE_AD360 |
|
| metadata.log_type | הערך מוצמד ל-MANAGE_ENGINE_AD360 |
|
| metadata.event_type | הערך הוא NETWORK_CONNECTION אם השדות SRC ו-DST קיימים, אחרת הערך הוא STATUS_UPDATE אם השדות SRC או principal_hostname קיימים. אם אף אחד מהתנאים האלה לא מתקיים, ברירת המחדל היא GENERIC_EVENT. |
שנה רישום
צפייה ביומן השינויים של כלי הניתוח הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.