איסוף יומנים של פלטפורמת ניתוח הנתונים של Ribbon

נתמך ב:

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

פלטפורמת Ribbon Analytics היא פלטפורמה לניתוח רשתות ולבקרת גבולות של סשנים (SBC) למעקב אחר תקשורת קולית ונתונים. הוא יוצר הודעות syslog לרישומי פרטי שיחות, לאירועים בסשן ולמידע על תקינות המערכת.

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

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

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

קבלת קובץ אימות להטמעת נתונים ב-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-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.

הגדרה של סוכן 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/ribbon_analytics:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: RIBBON_ANALYTICS_PLATFORM
            raw_log_field: body
    
    service:
        pipelines:
            logs/ribbon_analytics_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/ribbon_analytics
    

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

מחליפים את ה-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
    • ‫customer_id: מספר הלקוח שהועתק ממסוף Google SecOps
    • ‫endpoint: כתובת ה-URL של נקודת הקצה האזורית:
      • ארה"ב: malachiteingestion-pa.googleapis.com
      • אירופה: europe-malachiteingestion-pa.googleapis.com
      • אסיה: asia-southeast1-malachiteingestion-pa.googleapis.com
      • רשימה מלאה מופיעה במאמר בנושא נקודות קצה אזוריות.

שמירת קובץ ההגדרות

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

  1. נכנסים לממשק הניהול של Ribbon.
  2. עוברים אל הגדרות > שרתים של יומני רישום מרחוק.
  3. מוסיפים שרת חדש של יומנים מרחוק עם ההגדרות הבאות:
    • מארח: מזינים את כתובת ה-IP של המארח של סוכן Bindplane.
    • יציאה: מזינים 514.
    • פרוטוקול: בוחרים באפשרות UDP.
  4. לוחצים על Save.

טבלת מיפוי UDM

שדה ביומן מיפוי UDM היגיון
type_name about מיפוי: SYSCALL → about
type_syscall_props.AUID about.user.user_display_name מיפוי ישיר
type_syscall_props.auid about.user.userid מיפוי ישיר
additional_delay_data additional.fields ממוזג
additional_delays_data additional.fields ממוזג
additional_dns_data additional.fields ממוזג
additional_field additional.fields ממוזג
additional_relay_data additional.fields ממוזג
auth_realm_field additional.fields ממוזג
log_details_label additional.fields ממוזג
_mechanism extensions.auth.mechanism ממוזג
audit_message extensions.auth.type ‫Mapped: `type=(SYSCALL/LOGIN/USER_LOGIN/USER_CMD/USER_ACCT/USER_ROLE_CHANGE/USERSTART/USER...
msg2 extensions.auth.type מיפוי: login failure → MACHINE
type_name extensions.auth.type ממופה: USER_LOGIN → MACHINE, ‏`"LOGIN", "USER_START", "USER_AUTH", "CRED_ACQ", "CRED_REF...
dvc intermediary.hostname מיפוי ישיר
dvc intermediary.ip ממוזג
description metadata.description מיפוי ישיר
error_message metadata.description מיפוי ישיר
msg2 metadata.description מיפוי ישיר
event_timestamp metadata.event_timestamp ניתוח הכתובות שברשימה: UNIX
timestamp metadata.event_timestamp ניתוח הכתובות שברשימה: MMM d HH:mm:ss
event_type metadata.event_type מיפוי: GENERIC_EVENT → STATUS_UPDATE
has_principal metadata.event_type מיפוי: true → STATUS_UPDATE
msg2 metadata.event_type מיפוי: HTTP ← NETWORK_HTTP, ‏ login failure ← USER_LOGIN
target_user_present metadata.event_type מיפוי: true → USER_UNCATEGORIZED
type_name metadata.event_type מיפוי: SYSCALL → USER_UNCATEGORIZED
applica metadata.product_event_type מיפוי ישיר
audit_message metadata.product_event_type ערכים ממופים (6 סך הכול, למשל pam_krb5.*authentication fails for ← PAM_KRB5_AUTH_ERROR, ‏ `...
eventType metadata.product_event_type מיפוי ישיר
p_event_type metadata.product_event_type מיפוי ישיר
type metadata.product_event_type מיפוי ישיר
type_name metadata.product_event_type מיפוי ישיר
jsonPayload._AUDIT_ID metadata.product_log_id מיפוי ישיר
product_log_id metadata.product_log_id מיפוי ישיר
audit_message network.application_protocol מיפוי: type=(CRYPTO_SESSION/CRYPTO_KEY_USER) → SSH
auth network.application_protocol מיפוי: ssh → SSH
message network.application_protocol מיפוי: ssh/ssh2 → SSH
tty network.application_protocol מיפוי: ssh → SSH
audit_message network.direction מיפוי: type=(CRYPTO_SESSION/CRYPTO_KEY_USER) ← OUTBOUND, `type=(CRYPTO_SESSION/CRYPTO_K...
mailid network.email.mail_id מיפוי ישיר
to_email network.email.to מיפוי: ^.+@.+$ → to_email
response_code network.http.response_code מיפוי ישיר
audit_message network.ip_protocol מיפוי: type=(CRYPTO_SESSION/CRYPTO_KEY_USER) → TCP
bytes_sent network.sent_bytes מיפוי ישיר
type_crypto_props.ksize network.sent_bytes שם שונה/מיפוי
jsonPayload._AUDIT_SESSION network.session_id מיפוי ישיר
sessionid network.session_id מיפוי ישיר
type_anom_props.ses network.session_id שם שונה/מיפוי
type_syscall_props.ses network.session_id מיפוי ישיר
type_crypto_props.cipher network.tls.cipher מיפוי ישיר
type_crypto_props.pfs network.tls.curve מיפוי ישיר
applica principal.application מיפוי ישיר
jsonPayload._COMM principal.application מיפוי ישיר
type_anom_props.comm principal.application מיפוי ישיר
type_syscall_props.comm principal.application מיפוי ישיר
type_syscall_props.terminal principal.application מיפוי ישיר
%{rhost} principal.asset.hostname ממוזג
rhost principal.asset.hostname ממופה כאשר kvdata != ``
princi_ip principal.asset.ip ממוזג
rhost principal.asset.ip ממוזג
srcIp principal.asset.ip ממופה: `^(?:(25[0-5]/2[0-4][0-9]/1[0-9]{2}/[1-9]?[0-9]).){3}(25[0-5]/2[0-4][0-9]/1[0-9]{2}...
%{rhost} principal.hostname ממוזג
jsonPayload._HOSTNAME principal.hostname מיפוי ישיר
principal_hostname principal.hostname מיפוי ישיר
rhost principal.hostname ממופה כאשר kvdata != ``
audit_message principal.ip ‫Mapped: `type=(SYSCALL/LOGIN/USER_LOGIN/USER_CMD/USER_ACCT/USER_ROLE_CHANGE/USERSTART/USER...
prin_ip principal.ip ממוזג
princi_ip principal.ip ממוזג
rhost principal.ip ממוזג
srcIp principal.ip ממופה: `^(?:(25[0-5]/2[0-4][0-9]/1[0-9]{2}/[1-9]?[0-9]).){3}(25[0-5]/2[0-4][0-9]/1[0-9]{2}...
type_crypto_props.laddr principal.ip ממוזג
srcPort principal.port שם שונה/מיפוי
type_crypto_props.lport principal.port שם שונה/מיפוי
auth principal.process.command_line מיפוי ישיר
proctitle_value principal.process.command_line מיפוי ישיר
type_syscall_props.cmd principal.process.command_line מיפוי ישיר
event.idm.read_only_udm.target.process.file.full_path principal.process.file.full_path מיפוי ישיר
proctitle_value principal.process.file.full_path מיפוי ישיר
audit_message principal.process.file.names ‫Mapped: `type=(SYSCALL/LOGIN/USER_LOGIN/USER_CMD/USER_ACCT/USER_ROLE_CHANGE/USERSTART/USER...
filename principal.process.file.names ממוזג
jsonPayload._PPID principal.process.parent_process.pid מיפוי ישיר
type_syscall_props.ppid principal.process.parent_process.pid מיפוי ישיר
jsonPayload._PID principal.process.pid מיפוי ישיר
pi principal.process.pid מיפוי ישיר
process_pid principal.process.pid מיפוי ישיר
type_crypto_props.spid principal.process.pid מיפוי ישיר
type_syscall_props.pid principal.process.pid מיפוי ישיר
email principal.user.email_addresses מיפוי: ^.+@.+$ → email
user_name principal.user.email_addresses מיפוי: ^.+@.+$ → user_name
type_syscall_props.UID principal.user.user_display_name מיפוי ישיר
type_syscall_props.acct principal.user.user_display_name מיפוי ישיר
jsonPayload._AUDIT_FIELD_SUID principal.user.userid מיפוי ישיר
principal_user_userid principal.user.userid מיפוי ישיר
ruser principal.user.userid מיפוי ישיר
type_crypto_props.suid principal.user.userid מיפוי ישיר
user_name principal.user.userid מיפוי ישיר
usr principal.user.userid מיפוי ישיר
a0_label security_result.about.labels ממוזג
a1_label security_result.about.labels ממוזג
a2_label security_result.about.labels ממוזג
a3_label security_result.about.labels ממוזג
audit_message security_result.about.labels ערכים ממופים (7 סך הכל, למשל ‎`type=(SYSCALL/LOGIN/USER_LOGIN/USER_CMD/USER_ACCT/USER_ROLE_CH...‎
exit_label security_result.about.labels ממוזג
syscall_label security_result.about.labels ממוזג
tty_label security_result.about.labels ממוזג
jsonPayload._AUDIT_FIELD_ARCH security_result.about.platform_version מיפוי ישיר
type_syscall_props.arch security_result.about.platform_version מיפוי ישיר
type_syscall_props.key security_result.about.registry.registry_key מיפוי ישיר
product_log_id security_result.about.registry.registry_value_data מיפוי ישיר
action security_result.action ממוזג
action_data security_result.action מופה: `"authentication failure", "Authentication failure", "Failed password", "Connection ...
audit_message security_result.action ‫Mapped: `type=(SYSCALL/LOGIN/USER_LOGIN/USER_CMD/USER_ACCT/USER_ROLE_CHANGE/USERSTART/USER...
security_action security_result.action ממוזג
action_data security_result.action_details מיפוי ישיר
auth security_result.action_details מיפוי: sshd → FAILURE
status security_result.action_details מיפוי ישיר
type_crypto_props.res security_result.action_details שם שונה/מיפוי
type_syscall_props.res security_result.action_details מיפוי ישיר
a0_label security_result.detection_fields ממוזג
a1_label security_result.detection_fields ממוזג
a2_label security_result.detection_fields ממוזג
a3_label security_result.detection_fields ממוזג
audit_message security_result.detection_fields ‫Mapped: `type=(SYSCALL/LOGIN/USER_LOGIN/USER_CMD/USER_ACCT/USER_ROLE_CHANGE/USERSTART/USER...
auid_field security_result.detection_fields ממוזג
auth security_result.detection_fields מיפוי: sshd ← authentication_protocol_field, sshd ← authentication_mechanism_field,...
authentication_mechanism_field security_result.detection_fields ממוזג
authentication_protocol_field security_result.detection_fields ממוזג
bootid_label security_result.detection_fields ממוזג
connection_state_field security_result.detection_fields ממוזג
cwd_field security_result.detection_fields ממוזג
exit_label security_result.detection_fields ממוזג
jsonPayload._AUDIT_TYPE_NAME security_result.rule_id מיפוי ישיר
type_name security_result.rule_id מיפוי ישיר
msg_desc security_result.summary מיפוי ישיר
secsummary security_result.summary מיפוי ישיר
type_anom_props.reason security_result.summary מיפוי ישיר
type_syscall_props.op security_result.summary מיפוי ישיר
type_syscall_props.res security_result.summary מיפוי ישיר
type_syscall_props.success security_result.summary מיפוי ישיר
type_path1_props.name src.file.full_path שם שונה/מיפוי
type_crypto_props.terminal target.application שם שונה/מיפוי
target_hostname target.asset.hostname מיפוי ישיר
type_crypto_props.hostname target.asset.hostname מיפוי ישיר
dst_ip target.asset.ip ממוזג
resource.labels.project_id target.cloud.project.name מיפוי ישיר
filepath target.file.full_path מיפוי ישיר
jsonPayload._AUDIT_FIELD_FILE target.file.full_path מיפוי ישיר
target_file_full_path target.file.full_path מיפוי ישיר
jsonPayload._AUDIT_FIELD_HASH target.file.sha256 מיפוי ישיר
target_hostname target.hostname מיפוי ישיר
type_crypto_props.hostname target.hostname מיפוי ישיר
audit_message target.ip מיפוי: type=(CRYPTO_SESSION/CRYPTO_KEY_USER) → tar_ip
dst_ip target.ip ממוזג
tar_ip target.ip ממוזג
resource.labels.location target.location.name מיפוי ישיר
dst_port target.port מיפוי ישיר
target_port target.port מיפוי ישיר
type_crypto_props.rport target.port שם שונה/מיפוי
args target.process.command_line שם שונה/מיפוי
cmnd target.process.command_line מיפוי ישיר
command_line target.process.command_line מיפוי ישיר
cwd target.process.file.full_path מיפוי ישיר
jsonPayload._EXE target.process.file.full_path מיפוי ישיר
proctitle_value target.process.file.full_path מיפוי ישיר
type_anom_props.exe target.process.file.full_path שם שונה/מיפוי
type_crypto_props.exe target.process.file.full_path שם שונה/מיפוי
type_syscall_props.exe target.process.file.full_path מיפוי ישיר
type_anom_props.pid target.process.pid שם שונה/מיפוי
type_crypto_props.pid target.process.pid שם שונה/מיפוי
resource.labels.cluster_name target.resource.name מיפוי ישיר
audit_message target.resource.type ‫Mapped: `type=(SYSCALL/LOGIN/USER_LOGIN/USER_CMD/USER_ACCT/USER_ROLE_CHANGE/USERSTART/USER...
type_name target.resource.type מיפוי: "USER_ACCT", "USER_ROLE_CHANGE","USER_MGMT" → SETTING
target_email target.user.email_addresses מיפוי: ^.+@.+$ → target_email
type_syscall_props.ID target.user.user_display_name מיפוי ישיר
type_syscall_props.acct target.user.user_display_name מיפוי ישיר
event.idm.read_only_udm.principal.user.userid target.user.userid שם שונה/מיפוי
jsonPayload._UID target.user.userid מיפוי ישיר
type_crypto_props.uid target.user.userid מיפוי ישיר
type_syscall_props.acct target.user.userid מיפוי ישיר
type_syscall_props.id target.user.userid מיפוי ישיר
type_syscall_props.uid target.user.userid מיפוי ישיר
user_name target.user.userid מיפוי ישיר
username target.user.userid מיפוי ישיר
לא רלוונטי extensions.auth.type קבוע: AUTHTYPE_UNSPECIFIED
לא רלוונטי metadata.event_type קבוע: STATUS_UPDATE
לא רלוונטי metadata.product_event_type קבוע: PAM_KRB5_AUTH_ERROR
לא רלוונטי metadata.product_name קבוע: AuditD
לא רלוונטי metadata.vendor_name קבוע: Linux
לא רלוונטי network.application_protocol קבוע: SSH
לא רלוונטי network.direction קבוע: OUTBOUND
לא רלוונטי network.ip_protocol קבוע: TCP
לא רלוונטי principal.platform קבוע: LINUX
לא רלוונטי principal.user.userid קבוע: event.idm.read_only_udm.target.user.userid
לא רלוונטי security_result.action_details קבוע: FAILURE
לא רלוונטי target.resource.type קבוע: SETTING

יומן שינויים

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

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