איסוף יומנים של 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

  1. נכנסים למסוף Google SecOps.
  2. עוברים אל SIEM Settings > Collection Agents.
  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-otel-collector/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-otel-collector/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. מחכים שההתקנה תסתיים.

  4. כדי לוודא שההתקנה בוצעה, מריצים את הפקודה:

    sudo systemctl status observiq-otel-collector
    

השירות צריך להופיע כפעיל (פועל).

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

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

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

איתור קובץ ההגדרות

  • ‫Linux:

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

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

עריכת קובץ ההגדרות

  1. מחליפים את כל התוכן של 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
    
  2. מחליפים את ה-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
      • ‫<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

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

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

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

    sudo journalctl -u observiq-otel-collector -f
    

Windows

  1. כדי להפעיל מחדש את סוכן Bindplane ב-Windows, בוחרים באחת מהאפשרויות הבאות:

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

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • שימוש במסוף Services:

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

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

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

הגדרת העברת syslog ב-ManageEngine ADManager Plus

  1. מתחברים ל-ADManager Plus.
  2. עוברים לכרטיסייה אדמין.
  3. בקטע הגדרות מערכת, לוחצים על שילובים.
  4. בקטע העברת יומנים, לוחצים על Syslog.

  5. מגדירים את השדות הבאים:

    • שרת Syslog: מזינים את השם של שרת Syslog. מזינים את כתובת ה-IP או את שם המארח של המארח של סוכן Bindplane.
    • יציאה: מזינים את מספר היציאה. מזינים 514.
    • פרוטוקול: בוחרים את הפרוטוקול המתאים, TCP או UDP, להעברת יומנים. בוחרים באפשרות TCP.
    • תקן Syslog: בוחרים את פורמט ההודעה הרצוי של Syslog‏: RFC 3164,‏ RFC 5424 או RawLog. בוחרים באפשרות RFC 5424 (מומלץ).
    • פורמט נתונים: מזינים את פורמט הנתונים. מגדירים את פורמט הנתונים לפי הצורך בסביבה שלכם.
  6. לוחצים על שמירה כדי לשמור את ההגדרה.

אחרי ההגדרה, 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.