איסוף יומנים של VMware vSphere

נתמך ב:

במסמך הזה מוסבר איך להטמיע יומני VMware vSphere ב-Google Security Operations באמצעות סוכן Bindplane.

‫VMware vSphere היא פלטפורמת וירטואליזציה שיוצרת הודעות syslog לאירועים של מארח ESXi, פעולות של VM, אימות ומעקב אחרי תקינות המערכת.

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

חשוב לוודא שמתקיימות הדרישות המוקדמות הבאות:

  • מכונה של Google SecOps
  • ‫Windows Server 2016 ואילך, או מארח Linux עם systemd
  • קישוריות לרשת בין סוכן Bindplane לבין המארח VMware vSphere ESXi
  • אם השרת פועל מאחורי שרת proxy, צריך לוודא שהיציאות של חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane.
  • גישה עם הרשאות ל-VMware vSphere Web Client או ל-ESXi Shell

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

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

  • פריסות חדשות: משתמשים ב-Chronicle API (אפשרות 1).
  • פריסות קודמות: ממשיכים להשתמש בקובץ האימות להטמעת נתונים (אפשרות 2) עד שה-Ingestion API יופסק ב-20 ביולי 2027.
  1. נכנסים אל Google Cloud המסוף ובוחרים את Google Cloud הפרויקט שמקושר למופע של Google SecOps.
  2. נכנסים לדף IAM & Admin > Service Accounts.
  3. לוחצים על Create service account.
  4. מספקים את פרטי ההגדרה הבאים:
    • Service account name: מזינים שם לחשבון (לדוגמה, bindplane-ingest).
    • Service account description: מזינים תיאור (לדוגמה, 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:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/vmware_vsphere:
        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: VMWARE_VSPHERE
        raw_log_field: body
    
    service:
      pipelines:
        logs/vmware_vsphere_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/vmware_vsphere
    

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

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

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

    • ‫listen_address: כתובת ה-IP והיציאה להאזנה:
      • ‫0.0.0.0 כדי להאזין בכל הממשקים (מומלץ)
      • יציאה 514 היא יציאת syslog הרגילה (נדרש root ב-Linux; צריך להשתמש ב-1514 ללא root)
  • הגדרת הייצוא:

    • ‫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: מספר הלקוח שהועתק ממסוף Google SecOps
    • ‫location: מחליפים את <LOCATION> באזור של המכונה של Google SecOps (לדוגמה, us,‏ europe או asia-southeast1). המייצא מוסיף את הערך הזה בתחילת chronicle.googleapis.com. רשימה מלאה של נקודות הקצה האזוריות מופיעה במאמר Regional Endpoints.
    • ‫project: מחליפים את <PROJECT_NUMBER> במספר הפרויקט מתוך IAM & Admin > Settings.
    • ‫endpoint: צריך להשאיר את ההגדרה chronicle.googleapis.com.

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

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

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

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

  • אחרי שמסיימים לערוך, שומרים את הקובץ:
    • 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"
        

הגדרת syslog ב-VMware vSphere

אפשרות 1: vSphere Web Client

  1. נכנסים ל-vSphere Web Client.
  2. בוחרים את מארח ה-ESXi.
  3. עוברים אל Configure > System > Advanced System Settings.
  4. לוחצים על Edit.
  5. מגדירים את הפרמטר Syslog.global.logHost לערך udp://<bindplane-ip>:514 (מחליפים את <bindplane-ip> בכתובת ה-IP של סוכן Bindplane).
  6. לוחצים על OK.

אפשרות 2: ESXi Shell

  1. מתחברים למארח ESXi באמצעות SSH.
  2. מריצים את הפקודות הבאות:

    esxcli system syslog config set --loghost=udp://<bindplane-ip>:514
    esxcli system syslog reload
    
    • מחליפים את <bindplane-ip> בכתובת ה-IP של סוכן Bindplane.

טבלת מיפוי UDM

שדה ביומן מיפוי UDM היגיון
Originator_label additional.fields ממוזג
activityType_label additional.fields ממוזג
certVerificationStatus_label additional.fields ממוזג
cls_simple_activity_label additional.fields ממוזג
itemType_label additional.fields ממוזג
logtype_label additional.fields ממוזג
opID_label additional.fields ממוזג
progress_label additional.fields ממוזג
securityCompliance_label additional.fields ממוזג
sub_label additional.fields ממוזג
vpxd_label additional.fields ממוזג
column9 extensions.auth.type מיפוי: logged out → AUTHTYPE_UNSPECIFIED
column9 metadata.description מיפוי ישיר
msg metadata.description מיפוי ישיר
response_Message metadata.description מיפוי ישיר
column3 metadata.event_timestamp נותח בתור ISO8601
column9 metadata.event_type מיפוי: logged out → USER_LOGOUT
has_principal metadata.event_type מיפוי: true ← NETWOK_CONNECTION, ‏ true ← STATUS_UPDATE
column4 metadata.product_event_type מיפוי ישיר
column1 metadata.product_log_id מיפוי ישיר
uuid metadata.product_log_id מיפוי ישיר
user_agent network.http.parsed_user_agent שם שונה/מיפוי
user_agent network.http.user_agent מיפוי ישיר
sessionId network.session_id מיפוי ישיר
Hostname principal.asset.hostname מיפוי ישיר
hostname principal.asset.hostname מיפוי ישיר
srcip principal.asset.ip ממוזג
Hostname principal.hostname מיפוי ישיר
hostname principal.hostname מיפוי ישיר
srcip principal.ip ממוזג
column5 security_result.severity מופה: INFO ← INFORMATIONAL
severity security_result.severity_details מיפוי ישיר
pid target.process.pid מיפוי ישיר
column7 target.resource.name מיפוי ישיר
column6 target.user.userid מיפוי ישיר
לא רלוונטי extensions.auth.type קבוע: AUTHTYPE_UNSPECIFIED
לא רלוונטי metadata.event_type קבוע: NETWOK_CONNECTION
לא רלוונטי metadata.product_name קבוע: VMWARE_VSPHERE
לא רלוונטי metadata.vendor_name קבוע: VMWARE_VSPHERE
לא רלוונטי security_result.severity קבוע: INFORMATIONAL
timestamp event.idm.read_only_udm.metadata.event_timestamp מופה מיומן השינויים
file_path event.idm.read_only_udm.target.process.file.full_path מופה מיומן השינויים
api_invocations event.idm.read_only_udm.security_result.detection_fields מופה מיומן השינויים
column2 event.idm.read_only_udm.additional.fields מופה מיומן השינויים
login time event.idm.read_only_udm.additional.fields מופה מיומן השינויים
syslog_priority event.idm.read_only_udm.additional.fields מופה מיומן השינויים
user_level event.idm.read_only_udm.additional.fields מופה מיומן השינויים
session_id event.idm.read_only_udm.network.session_id מופה מיומן השינויים
uuid event.idm.read_only_udm.metadata.product_log_id מופה מיומן השינויים
Hostname event.idm.read_only_udm.principal.hostname מופה מיומן השינויים
Hostname event.idm.read_only_udm.principal.asset.hostname מופה מיומן השינויים
msg event.idm.read_only_udm.metadata.description מופה מיומן השינויים
Originator event.idm.read_only_udm.additional.fields מופה מיומן השינויים
sub event.idm.read_only_udm.additional.fields מופה מיומן השינויים
opID event.idm.read_only_udm.additional.fields מופה מיומן השינויים
progress event.idm.read_only_udm.additional.fields מופה מיומן השינויים
cls_simple_activity event.idm.read_only_udm.additional.fields מופה מיומן השינויים
certVerificationStatus event.idm.read_only_udm.additional.fields מופה מיומן השינויים
itemType event.idm.read_only_udm.additional.fields מופה מיומן השינויים
vpxd event.idm.read_only_udm.additional.fields מופה מיומן השינויים
securityCompliance event.idm.read_only_udm.additional.fields מופה מיומן השינויים
logtype event.idm.read_only_udm.additional.fields מופה מיומן השינויים
severity event.idm.read_only_udm.security_result.severity_details מופה מיומן השינויים

יומן שינויים

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

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