איסוף יומנים של SecureAuth Identity Platform

נתמך ב:

במאמר הזה מוסבר איך להטמיע יומנים של SecureAuth Identity Platform ב-Google Security Operations באמצעות סוכן Bindplane.

‫SecureAuth Identity Platform הוא פתרון לכניסה יחידה ולניהול זהויות, שיוצר הודעות syslog לאירועי אימות, לפעילות בסשן, להחלטות בנושא בקרת גישה ולנתיבי ביקורת. המנתח מחלץ שדות מיומני syslog ויומנים בפורמט XML באמצעות תבניות grok וממפה אותם למודל הנתונים המאוחד (UDM).

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

חשוב לוודא שיש לכם את הדברים הבאים:

  • מופע של Google SecOps
  • ‫Windows Server 2016 ואילך, או מארח Linux עם systemd
  • קישוריות לרשת בין סוכן Bindplane לבין SecureAuth Identity Platform
  • אם מריצים את הסוכן מאחורי שרת proxy, מוודאים שיציאות חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane
  • גישה מורשית ל-SecureAuth

קבלת פרטי כניסה ל-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. מספקים את פרטי ההגדרה הבאים:
    • שם חשבון השירות: מזינים שם לחשבון (לדוגמה, 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 לפי ההוראות הבאות.

התקנת חלונות

  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
    

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

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

אפשרויות התקנה נוספות ופתרון בעיות מפורטים במדריך להתקנת סוכן 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/secureauth_sso:
        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: SECUREAUTH_SSO
        raw_log_field: body
    
    service:
      pipelines:
        logs/secureauth_sso_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/secureauth_sso
    

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

מחליפים את ה-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. לרשימה המלאה, ראו נקודות קצה אזוריות.
    • ‫project: מחליפים את <PROJECT_NUMBER> במספר הפרויקט שמופיע בקטע IAM & Admin > Settings.
    • ‫endpoint: משאירים את הערך chronicle.googleapis.com.

כלי לייצוא נתונים מ-Legacy ingestion API

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

    exporters:
      chronicle/secureauth_sso:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: SECUREAUTH_SSO
        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"
        

הגדרת SecureAuth Identity Platform

  1. נכנסים למסוף הזהויות של SecureAuth כאדמינים.
  2. לוחצים על יומנים.
  3. בקטע Log options, מזינים את פרטי ההגדרה הבאים:
    • מזהה מופע של יומן: מזינים את מזהה המופע של היומן, את שם האפליקציה או את שם התחום (לדוגמה, SecureAuth1).
    • יומני ביקורת: מסמנים את תיבת הסימון Syslog.
    • יומני שגיאות: מסמנים את התיבה Syslog.
    • שרת Syslog: מזינים את כתובת ה-IP של סוכן Bindplane.
    • Syslog Port: מזינים את מספר היציאה של סוכן Bindplane (לדוגמה, 514).
    • ‫Syslog RFC spec: בוחרים באפשרות RFC 5424.
  4. לוחצים על Save.

טבלת מיפוי UDM

שדה ביומן מיפוי UDM היגיון
action_msg read_only_udm.target.process.command_line הערך של השדה action_msg
מכשיר חשמלי read_only_udm.principal.domain.name הערך של השדה Appliance
מכשיר חשמלי read_only_udm.target.administrative_domain הערך של השדה Appliance
BrowserSession read_only_udm.network.session_id הערך של השדה BrowserSession
cat read_only_udm.metadata.product_event_type הערך של השדה cat
קטגוריה read_only_udm.metadata.product_event_type הערך של השדה Category
cn1 security_result.severity מיפוי על סמך הערך של cn1 כש-cn1Label הוא Priority: 1 – HIGH, ‏ 2 – MEDIUM, ‏ 3 או 4 – LOW
חברה read_only_udm.additional.fields.value.string_value הערך של השדה Company
cs1 read_only_udm.network.session_id הערך של השדה cs1 כשהערך של cs1Label הוא BrowserSession
cs3 read_only_udm.additional.fields.value.string_value הערך של השדה cs3 כשהערך של cs3Label הוא "CompanyName"
dst read_only_udm.target.ip הערך של השדה dst
דומיין read_only_udm.principal.domain.name הערך של השדה domain
dvc read_only_udm.intermediary.ip הערך של השדה dvc
EventID read_only_udm.metadata.product_log_id הערך של השדה EventID
HostName read_only_udm.principal.hostname הערך של השדה HostName אם grok לא מצליח להתאים כתובת IP
HostName read_only_udm.principal.ip הערך של השדה HostName כש-grok תואם לכתובת IP
ip read_only_udm.principal.ip הערך של השדה ip
הודעה read_only_udm.metadata.description הערך של השדה Message
הודעה security_result.description הערך של השדה Message
nat_ip read_only_udm.principal.nat_ip הערך של השדה nat_ip
עדיפות security_result.severity מיפוי על סמך הערך של Priority: 1 – גבוה, 2 – בינוני, 3 או 4 – נמוך
SAMLConsumerURL read_only_udm.target.url הערך של השדה SAMLConsumerURL
sec_msg security_result.description הערך של השדה sec_msg
SecureAuthIdPAppliance read_only_udm.target.administrative_domain הערך של השדה SecureAuthIdPAppliance
SecureAuthIdPApplianceMachineName read_only_udm.target.hostname הערך של השדה SecureAuthIdPApplianceMachineName
SecureAuthIdPDestinationSiteUrl read_only_udm.target.url הערך של השדה SecureAuthIdPDestinationSiteUrl
SecureAuthIdPProductType read_only_udm.additional.fields.value.string_value הערך של השדה SecureAuthIdPProductType
סשן read_only_udm.network.session_id הערך של השדה session
spid read_only_udm.target.process.pid הערך של השדה spid
src read_only_udm.principal.ip הערך של השדה src
suser read_only_udm.target.user.userid הערך של השדה suser
UserAgent read_only_udm.network.http.user_agent הערך של השדה UserAgent
UserHostAddress read_only_udm.principal.nat_ip הערך של השדה UserHostAddress
UserHostAddress read_only_udm.target.ip הערך של השדה UserHostAddress
UserID read_only_udm.principal.user.userid הערך של השדה UserID
גרסה read_only_udm.metadata.product_version הערך של השדה Version
read_only_udm.additional.fields.key ערך שמוגדר בהארדקוד – 'שם_החברה'
read_only_udm.additional.fields.key ערך בקידוד קשיח – "חברה"
read_only_udm.additional.fields.key ערך שמוגדר בהארדקוד – SecureAuthIdPProductType
read_only_udm.extensions.auth.type ערך בקידוד קשיח – "SSO"
read_only_udm.metadata.event_type ‫'USER_LOGIN' אם SecureAuthIdPAuthGuiMode == 0 ו-auth_result == Success, ‏'USER_CHANGE_PERMISSIONS' אם SecureAuthIdPAuthGuiMode == 0 ו-auth_result ==WS-Trust success., ‏'USER_LOGOUT' אם SecureAuthIdPAuthGuiMode == 0 ו-auth_result == Session Aborted, ‏'NETWORK_CONNECTION' אם UserHostAddress != and `HostName` !=, ‏'STATUS_UPDATE' אם ip != or `HostName` !=, ‏'USER_UNCATEGORIZED' אם UserHostAddress != and `HostName` == ו-UserID != ``, אחרת – 'GENERIC_EVENT'
read_only_udm.metadata.log_type ערך בקידוד קשיח – SECUREAUTH_SSO
read_only_udm.metadata.product_name ערך בקידוד קשיח – SECUREAUTH_SSO
read_only_udm.metadata.vendor_name ערך בקידוד קשיח – SECUREAUTH_SSO
read_only_udm.target.user.email_addresses הערך של השדה user_email כשהערך של not_email הוא False
security_result.severity ‫'HIGH' אם cn1Label == Priority ו-cn1 == 1,‏ 'MEDIUM' אם cn1Label == Priority ו-cn1 == 2,‏ 'LOW' אם cn1Label == Priority ו-cn1 in [3, 4],‏ 'HIGH' אם Priority == 1,‏ 'MEDIUM' אם Priority == 2,‏ 'LOW' אם Priority in [3, 4]
_timestamp event.idm.read_only_udm.metadata.collected_timestamp מופה מיומן השינויים
i_ip event.idm.read_only_udm.intermediary.ip מופה מיומן השינויים
i_port event.idm.read_only_udm.intermediary.port מופה מיומן השינויים
parsed.LogChannel event.idm.read_only_udm.metadata.product_event_type מופה מיומן השינויים
parsed.FormatVersion event.idm.read_only_udm.metadata.product_version מופה מיומן השינויים
parsed.EventID event.idm.read_only_udm.metadata.product_log_id מופה מיומן השינויים
parsed.CompanyID event.idm.read_only_udm.principal.resource.product_object_id מופה מיומן השינויים
parsed.Realm event.idm.read_only_udm.principal.resource.name מופה מיומן השינויים
parsed.UserHostAddress event.idm.read_only_udm.principal.ip מופה מיומן השינויים
parsed.UserHostAddress event.idm.read_only_udm.principal.asset.ip מופה מיומן השינויים
host.name event.idm.read_only_udm.principal.hostname מופה מיומן השינויים
host.name event.idm.read_only_udm.principal.asset.hostname מופה מיומן השינויים
parsed.RequestID event.idm.read_only_udm.metadata.id מופה מיומן השינויים
meta.cloud.availability_zone event.idm.read_only_udm.principal.location.name מופה מיומן השינויים
meta.cloud.region event.idm.read_only_udm.principal.location.country_or_region מופה מיומן השינויים
host.id event.idm.read_only_udm.principal.resource.id מופה מיומן השינויים
LogstashPod event.idm.read_only_udm.observer.hostname מופה מיומן השינויים
fields.ApplianceID event.idm.read_only_udm.principal.asset.asset_id מופה מיומן השינויים
LogChannel event.idm.read_only_udm.additional.fields מופה מיומן השינויים
FormatVersion event.idm.read_only_udm.additional.fields מופה מיומן השינויים
EventID event.idm.read_only_udm.additional.fields מופה מיומן השינויים
Version event.idm.read_only_udm.additional.fields מופה מיומן השינויים
parsed.UserAgent event.idm.read_only_udm.additional.fields מופה מיומן השינויים
parsed.ApplianceID event.idm.read_only_udm.additional.fields מופה מיומן השינויים
beat.name event.idm.read_only_udm.additional.fields מופה מיומן השינויים
beat.hostname event.idm.read_only_udm.additional.fields מופה מיומן השינויים
beat.version event.idm.read_only_udm.additional.fields מופה מיומן השינויים
fields.CompanyID event.idm.read_only_udm.additional.fields מופה מיומן השינויים
derived.CompanyIndex event.idm.read_only_udm.additional.fields מופה מיומן השינויים
_version event.idm.read_only_udm.additional.fields מופה מיומן השינויים
derived.EventType event.idm.read_only_udm.additional.fields מופה מיומן השינויים
prospector.type event.idm.read_only_udm.additional.fields מופה מיומן השינויים
input.type event.idm.read_only_udm.additional.fields מופה מיומן השינויים
parsed_Message event.idm.read_only_udm.additional.fields מופה מיומן השינויים
meta.cloud.machine_type event.idm.read_only_udm.principal.resource.attribute.labels מופה מיומן השינויים
ApplianceType event.idm.read_only_udm.principal.resource.attribute.labels מופה מיומן השינויים
parsed.Version event.idm.read_only_udm.principal.resource.attribute.labels מופה מיומן השינויים
host.architecture event.idm.read_only_udm.principal.resource.attribute.labels מופה מיומן השינויים
host.os.platform event.idm.read_only_udm.principal.resource.attribute.labels מופה מיומן השינויים
host.os.version event.idm.read_only_udm.principal.resource.attribute.labels מופה מיומן השינויים
host.os.build event.idm.read_only_udm.principal.resource.attribute.labels מופה מיומן השינויים
host.os.family event.idm.read_only_udm.principal.resource.attribute.labels מופה מיומן השינויים
host.os.name event.idm.read_only_udm.principal.resource.attribute.labels מופה מיומן השינויים
meta.cloud.provider event.idm.read_only_udm.principal.resource.attribute.labels מופה מיומן השינויים
derived.LogChannelIndex event.idm.read_only_udm.principal.resource.attribute.labels מופה מיומן השינויים
document_id event.idm.read_only_udm.principal.resource.attribute.labels מופה מיומן השינויים
meta.cloud.instance_id event.idm.read_only_udm.principal.resource.attribute.labels מופה מיומן השינויים
tags event.idm.read_only_udm.principal.resource.attribute.labels מופה מיומן השינויים
Realm event.idm.read_only_udm.target.resource.name מופה מיומן השינויים
CompanyID event.idm.read_only_udm.additional.fields מופה מיומן השינויים
PEN event.idm.read_only_udm.additional.fields מופה מיומן השינויים
ApplianceID event.idm.read_only_udm.additional.fields מופה מיומן השינויים
ApplianceMachineName event.idm.read_only_udm.additional.fields מופה מיומן השינויים
RequestID event.idm.read_only_udm.additional.fields מופה מיומן השינויים
UseJava event.idm.read_only_udm.additional.fields מופה מיומן השינויים

יומן שינויים

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

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