איסוף יומנים של ManageEngine ADManager Plus
במאמר הזה מוסבר איך להטמיע יומנים של ManageEngine ADManager Plus ב-Google Security Operations באמצעות סוכן Bindplane.
ManageEngine ADManager Plus מציע פתרון מבוסס-אינטרנט לניהול פשוט של AD, כולל יצירה ושינוי של משתמשים, אבטחה מבוססת-תפקידים ודוחות מפורטים. השילוב של ADManager Plus עם שרתי Splunk ו-Syslog מאפשר לארגונים להעביר יומנים של כל הפעולות לניהול Active Directory, Microsoft 365 ו-Google Workspace שבוצעו ב-ADManager Plus.
לפני שמתחילים
חשוב לוודא שמתקיימות הדרישות המוקדמות הבאות:
- מופע של Google SecOps
- Windows Server 2016 ואילך, או מארח Linux עם
systemd - קישוריות לרשת בין סוכן Bindplane לבין ManageEngine ADManager Plus
- אם מריצים מאחורי שרת proxy, מוודאים שיציאות חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane
- גישה מיוחדת למסוף הניהול של ManageEngine ADManager Plus
קבלת קובץ אימות להטמעת נתונים ב-Google SecOps
- נכנסים למסוף Google SecOps.
- עוברים אל SIEM Settings > Collection Agents.
- לוחצים על הורדה כדי להוריד את קובץ האימות להטמעת נתונים.
שומרים את הקובץ בצורה מאובטחת במערכת שבה יותקן סוכן Bindplane.
איך מוצאים את מספר הלקוח ב-Google SecOps
- נכנסים למסוף Google SecOps.
- עוברים אל SIEM Settings > Profile (הגדרות SIEM > פרופיל).
מעתיקים את מזהה הלקוח מהקטע פרטי הארגון ושומרים אותו.
התקנת סוכן Bindplane
מתקינים את סוכן Bindplane במערכת ההפעלה Windows או Linux לפי ההוראות הבאות.
התקנה ב-Windows
- פותחים את שורת הפקודה או את PowerShell כאדמין.
מריצים את הפקודה הבאה:
msiexec /i "https://github.com/observIQ/bindplane-otel-collector/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-otel-collector/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: tcplog: listen_address: "0.0.0.0:514" exporters: chronicle/admanager_plus: compression: gzip creds_file_path: '<CREDS_FILE_PATH>' customer_id: '<CUSTOMER_ID>' endpoint: malachiteingestion-pa.googleapis.com log_type: ADMANAGER_PLUS raw_log_field: body ingestion_labels: log_source: admanager_plus service: pipelines: logs/admanager_to_chronicle: receivers: - tcplog exporters: - chronicle/admanager_plusמחליפים את ה-placeholders הבאים:
הגדרת מקלט:
- המקלט משתמש ב-
tcplogכדי לקבל נתוני syslog ביציאת TCP 514. -
listen_address: מגדירים את הערך0.0.0.0:514כדי להאזין לכל הממשקים ביציאה 514.
- המקלט משתמש ב-
הגדרת כלי הייצוא:
-
<CREDS_FILE_PATH>: הנתיב המלא לקובץ האימות להטמעת נתונים:- Linux:
/opt/observiq-otel-collector/ingestion-auth.json - Windows:
C:\\Program Files\\observIQ OpenTelemetry Collector\\ingestion-auth.json
- Linux:
-
<CUSTOMER_ID>: מספר הלקוח מהשלב הקודם. -
endpoint: כתובת ה-URL של נקודת הקצה האזורית:- ארה"ב:
malachiteingestion-pa.googleapis.com - אירופה:
europe-malachiteingestion-pa.googleapis.com - אסיה:
asia-southeast1-malachiteingestion-pa.googleapis.com - רשימה מלאה מופיעה במאמר בנושא נקודות קצה אזוריות.
- ארה"ב:
-
log_type: צריך להגדיר את הערך ל-ADMANAGER_PLUSבדיוק כמו שהוא מופיע ב-Chronicle. -
ingestion_labels: תוויות אופציונליות בפורמט YAML.
-
שמירת קובץ ההגדרות
אחרי שמסיימים לערוך, שומרים את הקובץ:
- Linux: מקישים על
Ctrl+O, אחר כך עלEnterואז עלCtrl+X. - Windows: לוחצים על קובץ > שמירה.
מפעילים מחדש את סוכן Bindplane כדי להחיל את השינויים.
Linux
כדי להפעיל מחדש את סוכן Bindplane ב-Linux, מריצים את הפקודה הבאה:
sudo systemctl restart observiq-otel-collectorמוודאים שהשירות פועל:
sudo systemctl status observiq-otel-collectorבודקים אם יש שגיאות ביומנים:
sudo journalctl -u observiq-otel-collector -f
Windows
כדי להפעיל מחדש את סוכן Bindplane ב-Windows, בוחרים באחת מהאפשרויות הבאות:
באמצעות שורת הפקודה או PowerShell כאדמין:
net stop observiq-otel-collector && net start observiq-otel-collectorשימוש במסוף Services:
- מקישים על
Win+R, מקלידיםservices.mscומקישים על Enter. - מחפשים את observIQ Distro for OpenTelemetry Collector.
- לוחצים לחיצה ימנית ובוחרים באפשרות הפעלה מחדש.
- מקישים על
מוודאים שהשירות פועל:
sc query observiq-otel-collectorבודקים אם יש שגיאות ביומנים:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
הגדרת העברת syslog ב-ManageEngine ADManager Plus
- מתחברים ל-ADManager Plus.
- עוברים לכרטיסייה אדמין.
- בקטע הגדרות מערכת, לוחצים על שילובים.
בקטע העברת יומנים, לוחצים על Syslog.
מגדירים את השדות הבאים:
- שרת Syslog: מזינים את השם של שרת Syslog. מזינים את כתובת ה-IP או את שם המארח של המארח של סוכן Bindplane.
- יציאה: מזינים את מספר היציאה. מזינים
514. - פרוטוקול: בוחרים את הפרוטוקול המתאים, TCP או UDP, להעברת יומנים. בוחרים באפשרות TCP.
- תקן Syslog: בוחרים את פורמט ההודעה הרצוי של Syslog: RFC 3164, RFC 5424 או RawLog. בוחרים באפשרות RFC 5424 (מומלץ).
- פורמט נתונים: מזינים את פורמט הנתונים. מגדירים את פורמט הנתונים לפי הצורך בסביבה שלכם.
לוחצים על שמירה כדי לשמור את ההגדרה.
אחרי ההגדרה, ADManager Plus יתחיל להעביר יומנים של פעולות ניהול לסוכן Bindplane, שישלח אותם ל-Google SecOps.
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | היגיון |
|---|---|---|
| ipPhone | event.idm.read_only_udm.additional.fields | המיזוג מתבצע כתווית עם המפתח ipPhone והערך מ-ipPhone אם ipPhone != "" |
| l | event.idm.read_only_udm.additional.fields | המיזוג מתבצע כתווית עם המפתח 'l' והערך מ-l אם l != "" |
| lockoutTime | event.idm.read_only_udm.additional.fields | המיזוג מתבצע כתווית עם המפתח lockoutTime והערך מ-lockoutTime אם lockoutTime != "" |
| העברה מ | event.idm.read_only_udm.additional.fields | המיזוג בוצע כתווית עם המפתח 'העברה מ' והערך מ-Move_From אם Move_From != "" |
| העברה אל | event.idm.read_only_udm.additional.fields | המיזוג בוצע כתווית עם המפתח Move To והערך מ-Move_To אם Move_To != "" |
| msg | event.idm.read_only_udm.additional.fields | המיזוג מתבצע כתווית עם המפתח 'חבר' והערך מההודעה אם ההודעה שונה מ-'' |
| sn | event.idm.read_only_udm.additional.fields | המיזוג מתבצע כתווית עם המפתח 'sn' והערך מ-sn אם sn != "" |
| st | event.idm.read_only_udm.additional.fields | המיזוג מתבצע כתווית עם המפתח 'st' והערך מ-st אם st != "" |
| שם תבנית | event.idm.read_only_udm.additional.fields | המיזוג מתבצע כתווית עם המפתח Template Name והערך מ-Template_Name אם Template_Name != "" |
| סטטוס | event.idm.read_only_udm.metadata.description | הערך נלקח מהסטטוס אם הסטטוס שונה מ-"" |
| פעם | event.idm.read_only_udm.metadata.event_timestamp | המרת השעה לפורמט חותמת זמן אם השעה != "" |
| event.idm.read_only_udm.metadata.event_type | Derived: if has_principal_user == "true" then "USER_UNCATEGORIZED"; else if has_principal == "true" then "STATUS_UPDATE"; else "GENERIC_EVENT" | |
| TechnicianName | event.idm.read_only_udm.metadata.product_event_type | הערך נלקח מ-TechnicianName אם TechnicianName != "" |
| event.idm.read_only_udm.metadata.product_name | ההגדרה היא ADMANAGER_PLUS | |
| event.idm.read_only_udm.metadata.vendor_name | ההגדרה היא ADMANAGER_PLUS | |
| שם דומיין | event.idm.read_only_udm.principal.administrative_domain | הערך נלקח מ-Domain_Name אם Domain_Name != "" |
| שם המארח | event.idm.read_only_udm.principal.asset.hostname | הערך נלקח משם המארח אם שם המארח != "" |
| כתובת אימייל | event.idm.read_only_udm.principal.email | הערך נלקח מהאימייל אם האימייל שונה מ-"" |
| שם המארח | event.idm.read_only_udm.principal.hostname | הערך נלקח משם המארח אם שם המארח != "" |
| co | event.idm.read_only_udm.principal.location.city | הערך נלקח מ-co אם co != "" |
| משימה | event.idm.read_only_udm.principal.resource.name | הערך נלקח מהמשימה אם Task != "" |
| wWWHomePage | event.idm.read_only_udm.principal.url | הערך נלקח מ-wWWHomePage אם wWWHomePage != "" |
| סוג הסיסמה | event.idm.read_only_udm.principal.user.attribute.labels | המיזוג מתבצע כתווית עם המפתח Password Type (סוג הסיסמה) והערך מ-Password_Type אם Password_Type != "" |
| countryCode | event.idm.read_only_udm.principal.user.attribute.labels | המיזוג מתבצע כתווית עם המפתח countryCode והערך מ-countryCode אם countryCode != "" |
| סיסמה | event.idm.read_only_udm.principal.user.attribute.labels | המיזוג מתבצע כתווית עם המפתח password והערך מהסיסמה אם הסיסמה != "" |
| postalCode | event.idm.read_only_udm.principal.user.attribute.labels | המיזוג מתבצע כתווית עם המפתח postalCode והערך מ-postalCode אם postalCode != "" |
| primaryGroupID | event.idm.read_only_udm.principal.user.attribute.labels | המידע ימוזג כתווית עם המפתח primaryGroupID והערך מ-primaryGroupID אם primaryGroupID != "" |
| userAccountControl | event.idm.read_only_udm.principal.user.attribute.labels | המיזוג מתבצע כתווית עם המפתח userAccountControl והערך מ-userAccountControl אם userAccountControl != "" |
| userPrincipalName | event.idm.read_only_udm.principal.user.attribute.labels | המיזוג מתבצע כתווית עם המפתח userPrincipalName והערך מ-userPrincipalName אם userPrincipalName != "" |
| חברה | event.idm.read_only_udm.principal.user.company_name | הערך נלקח מהחברה אם החברה != "" |
| מחלקה | event.idm.read_only_udm.principal.user.department | המיזוג עם המחלקה אם המחלקה != "" |
| givenName | event.idm.read_only_udm.principal.user.first_name | הערך נלקח מ-givenName אם givenName != "" |
| physicalDeliveryOfficeName | event.idm.read_only_udm.principal.user.office_address.name | הערך נלקח מ-physicalDeliveryOfficeName אם physicalDeliveryOfficeName != "" |
| streetAddress | event.idm.read_only_udm.principal.user.personal_address.name | הערך נלקח מ-streetAddress אם streetAddress != "" |
| homePhone | event.idm.read_only_udm.principal.user.phone_numbers | השדה הזה אוחד עם homePhone אם homePhone != "" |
| שם משתמש | event.idm.read_only_udm.principal.user.user_display_name | הערך נלקח מ-User_Name אם User_Name != ""; אחרת מ-Object_Name אם Object_Name != "" |
| sAMAccountName | event.idm.read_only_udm.principal.user.userid | הערך נלקח מ-sAMAccountName אם sAMAccountName != "" |
| ACTION | event.idm.read_only_udm.security_result.action_details | הערך נלקח מ-ACTION אם ACTION != "" |
| description | event.idm.read_only_udm.security_result.description | הערך נלקח מהתיאור אם התיאור שונה מ-"" |
| שם מאגר התגים | event.idm.read_only_udm.security_result.detection_fields | הערך נגזר מ-container_Name grok: הערך מוזג כתווית עם המפתח Container_Name_DC_value1 והערך מ-dc_label_1 אם dc_label_1 != "" |
| שם מאגר התגים | event.idm.read_only_udm.security_result.detection_fields | הערך נגזר מ-container_Name grok: בוצע מיזוג כתווית עם המפתח Container_Name_DC_value2 והערך מ-dc_label_2 אם dc_label_2 != "" |
| שם מאגר התגים | event.idm.read_only_udm.security_result.detection_fields | Derived from container_Name grok: merged as label with key "Container_Name_OU_value1" and value from ou_label_1 if ou_label_1 != "" |
| שם מאגר התגים | event.idm.read_only_udm.security_result.detection_fields | הערך נגזר מ-container_Name grok: בוצע מיזוג כתווית עם המפתח Container_Name_OU_value2 והערך מ-ou_label_2 אם ou_label_2 != "" |
| שם מאגר התגים | event.idm.read_only_udm.security_result.detection_fields | הערך נגזר מ-container_Name grok: בוצע מיזוג כתווית עם המפתח Container_Name_OU_value3 והערך מ-ou_label_3 אם ou_label_3 != "" |
| קבוצה ראשית | event.idm.read_only_udm.security_result.detection_fields | הערך נגזר מ-Primary_Group grok: בוצע מיזוג כתווית עם המפתח Primary_Group_CN_value1 והערך מ-cn_label_1 אם cn_label_1 != "" |
| קבוצה ראשית | event.idm.read_only_udm.security_result.detection_fields | הערך נגזר מ-Primary_Group grok: בוצע מיזוג כתווית עם המפתח Primary_Group_CN_value2 והערך מ-cn_label_2 אם cn_label_2 != "" |
| קבוצה ראשית | event.idm.read_only_udm.security_result.detection_fields | הערך נגזר מ-Primary_Group grok: הערך מוזג כתווית עם המפתח Primary_Group_DC_value1 והערך מ-primary_dc_label_1 אם primary_dc_label_1 != "" |
| קבוצה ראשית | event.idm.read_only_udm.security_result.detection_fields | Derived from Primary_Group grok: merged as label with key "Primary_Group_DC_value2" and value from primary_dc_label_2 if primary_dc_label_2 != "" |
| accountExpires | event.idm.read_only_udm.security_result.detection_fields | המידע מוזג כתווית עם המפתח accountExpires והערך מ-accountExpires אם accountExpires != "" |
| מנהל | event.idm.read_only_udm.security_result.detection_fields | הערך נגזר מ-manager grok: הוא מוזג כתווית עם המפתח manager_cn_value1 והערך מ-manager_cn_value1 אם manager_cn_value1 != "" |
| מנהל | event.idm.read_only_udm.security_result.detection_fields | הערך נגזר מ-manager grok: הוא ממוזג כתווית עם המפתח manager_dc_value1 והערך מ-manager_dc_value1 אם manager_dc_value1 != "" |
| מנהל | event.idm.read_only_udm.security_result.detection_fields | הערך נגזר מניתוח של חשבון הניהול: הוא ממוזג כתווית עם המפתח manager_dc_value2 והערך מ-manager_dc_value2 אם manager_dc_value2 != "" |
| מנהל | event.idm.read_only_udm.security_result.detection_fields | הערך נגזר מ-manager grok: הוא ממוזג כתווית עם המפתח manager_ou_value1 והערך מ-manager_ou_value1 אם manager_ou_value1 != "" |
| מנהל | event.idm.read_only_udm.security_result.detection_fields | הערך נגזר מ-manager grok: הערך מוזג כתווית עם המפתח manager_ou_value2 והערך מ-manager_ou_value2 אם manager_ou_value2 != "" |
| מנהל | event.idm.read_only_udm.security_result.detection_fields | הערך נגזר מ-manager grok: הערך אוחד כתווית עם המפתח manager_ou_value3 והערך מ-manager_ou_value3 אם manager_ou_value3 != "" |
| pwdLastSet | event.idm.read_only_udm.security_result.detection_fields | המיזוג מתבצע כתווית עם המפתח pwdLastSet והערך מ-pwdLastSet אם pwdLastSet != "" |
| ModuleName | event.idm.read_only_udm.target.resource.name | הערך נלקח מ-ModuleName אם ModuleName != "" |
Object_Name |
event.idm.read_only_udm.target.user.user_display_name |
מופה מיומן השינויים |
syslog_priority |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
syslog_version |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
product_app_id |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
User_Name |
event.idm.read_only_udm.target.user.user_display_name |
מופה מיומן השינויים |
User_Name |
event.idm.read_only_udm.target.user.userid |
מופה מיומן השינויים |
streetAddress |
event.idm.ready_only_udm.principal.user.personal_address.name |
מופה מיומן השינויים |
physicalDeliveryOfficeName |
event.idm.ready_only_udm.principal.user.office_address.name |
מופה מיומן השינויים |
postalCode |
event.idm.ready_only_udm.principal.user.attribute.labels |
מופה מיומן השינויים |
countryCode |
event.idm.ready_only_udm.principal.user.attribute.labels |
מופה מיומן השינויים |
company |
event.idm.ready_only_udm.principal.user.company_name |
מופה מיומן השינויים |
department |
event.idm.ready_only_udm.principal.user.department |
מופה מיומן השינויים |
accountExpires |
event.idm.ready_only_udm.security_result.detection_fields |
מופה מיומן השינויים |
ou_label_1 |
event.idm.ready_only_udm.security_result.detection_fields |
מופה מיומן השינויים |
ou_label_2 |
event.idm.ready_only_udm.security_result.detection_fields |
מופה מיומן השינויים |
ou_label_3 |
event.idm.ready_only_udm.security_result.detection_fields |
מופה מיומן השינויים |
dc_label_1 |
event.idm.ready_only_udm.security_result.detection_fields |
מופה מיומן השינויים |
dc_label_2 |
event.idm.ready_only_udm.security_result.detection_fields |
מופה מיומן השינויים |
cn_label_1 |
event.idm.ready_only_udm.security_result.detection_fields |
מופה מיומן השינויים |
cn_label_2 |
event.idm.ready_only_udm.security_result.detection_fields |
מופה מיומן השינויים |
primary_dc_label_1 |
event.idm.ready_only_udm.security_result.detection_fields |
מופה מיומן השינויים |
primary_dc_label_2 |
event.idm.ready_only_udm.security_result.detection_fields |
מופה מיומן השינויים |
manager_cn_value1 |
event.idm.ready_only_udm.security_result.detection_fields |
מופה מיומן השינויים |
, |
event.idm.ready_only_udm.security_result.detection_fields |
מופה מיומן השינויים |
and |
event.idm.ready_only_udm.security_result.detection_fields |
מופה מיומן השינויים |
givenName |
event.idm.ready_only_udm.user.first_name |
מופה מיומן השינויים |
sn |
event.idm.ready_only_udm.additional.fields |
מופה מיומן השינויים |
st |
event.idm.ready_only_udm.additional.fields |
מופה מיומן השינויים |
l |
event.idm.ready_only_udm.additional.fields |
מופה מיומן השינויים |
wWWHomePage |
event.idm.ready_only_udm.principal.url |
מופה מיומן השינויים |
homePhone |
event.idm.ready_only_udm.principal.user.phone_numbers |
מופה מיומן השינויים |
co |
event.idm.ready_only_udm.principal.location.city |
מופה מיומן השינויים |
יומן שינויים
צפייה ביומן השינויים של מנתח התוכן הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.