איסוף יומנים של מתג Dell

גרסת כלי הניתוח: 11.0

נתמך ב:

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

הכלי הזה מנתח יומני רישום של מתגי Dell, מבצע נרמול של חותמות הזמן ומשתמש בתבניות grok כדי לבנות את הודעת היומן כצמדי מפתח/ערך. לאחר מכן, הוא ממפה את השדות שחולצו למודל הנתונים המאוחד (UDM), מטפל בפורמטים שונים של יומנים ומעשיר את הנתונים במידע הקשרי כמו פרטי נכסים וחומרת האבטחה.

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

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

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

קבלת קובץ אימות להטמעת נתונים ב-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 /etc/bindplane-agent/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/dell_switch:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: DELL_SWITCH
            raw_log_field: body
    
    service:
        pipelines:
            logs/dell_switch_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/dell_switch
    

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

מחליפים את ה-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 ממתג Dell

  1. מתחברים למתג Dell באמצעות SSH או יציאת המסוף.
  2. נכנסים באמצעות פרטי כניסה של אדמין.
  3. משתמשים בפקודה הבאה כדי לציין את כתובת ה-IP או את שם המארח של שרת ה-syslog (מחליפים את <syslog-server-ip>, <udp|tcp> ו-<syslog-port-number> בפרטים בפועל):

    logging host <syslog-server-ip> transport <udp|tcp> port <syslog-port-number>
    
  4. אופציונלי: מגדירים את רמת החומרה המינימלית של ההודעות שיישלחו לשרת syslog. לדוגמה, כדי לרשום ביומן הודעות מידע ומעלה:

    logging level informational
    
  5. שומרים את ההגדרה הפעילה בהגדרת ההפעלה כדי לוודא שהשינויים יישמרו גם אחרי הפעלה מחדש:

    copy running-config startup-config
    
  6. שומרים את ההגדרה:

    write memory
    

יומנים לדוגמה של מתגי Dell שנתמכים

  • SYSLOG

    {
      "priority": 165,
      "version": 1,
      "timestamp": "2023-10-12T12:37:17.249566+00:00",
      "hostname": "switch-lon-01",
      "app_name": "dn_alm",
      "proc_id": "940",
      "message": "Node.1-Unit.1:PRI [event], Dell EMC (OS10) %ALM_AUTH_EVENT: Authentication event was raised MESSAGE=pam_unix(sshd:session): session opened for user service_account by (uid=0)"
    }
    
  • JSON

    {
      "appname": "SNOOP",
      "facility": 23,
      "hostname": "access-switch-a1",
      "message": "snooping.c(2177) 70820228 %% DBG Report from intf Gi6/0/11 ignored -- no router ports on vlan 193",
      "priority": 191,
      "proc_id": "snoopTask"
    }
    
  • פורמט KV / events

    Events: 
      Eventid        = {38812} 
      Occurrencetime = {3 Sept 2024 00:06:06} 
      Eventseverity  = {Minor} 
      Jobid          = {30506} 
      Computer       = {backup-server-01} 
      Program        = {DatabaseAgent} 
      Description    = {Block Change Tracking is found DISABLED on Oracle DB [PROD_DB]. Incremental backups may run slow.}
    
  • Audit SYSLOG

    {
        "priority": 110,
        "version": 1,
        "timestamp": "2023-12-12T00:58:26.893679+00:00",
        "hostname": "core-switch-palf",
        "app_name": ".clish",
        "proc_id": "29156",
        "message": "Node.1-Unit.1:PRI [audit], User sec_admin on /dev/pts/0 from 10.0.0.50 used cmd: 'terminal length 0' - completed"
    }
    
  • פורמט SNMP trap / TRAPMGR

    {
      "priority": 189,
      "version": 1,
      "timestamp": "2023-12-28T23:37:27.394Z",
      "hostname": "dist-switch-01",
      "app_name": "TRAPMGR",
      "proc_id": "trapTask",
      "extensions": {
        "origin_ip": "192.168.1.1",
        "software": "N3000_Series",
        "swVersion": "6.3.2.3"
      },
      "message": "traputil.c(721) 1056839 %% Gi1/0/5 is transitioned from the Learning state to the Forwarding state"
    }
    

טבלת מיפוי UDM

שדה ביומן מיפוי UDM היגיון
acct principal.user.userid הערך שמוגדר כאן משמש כערך של userid אם השדה user לא מופיע.
addr principal.asset.ip, principal.ip הערך מנותח ככתובת IP ומשמש לכתובת ה-IP של הגורם המורשה ולכתובת ה-IP של הנכס אם הוא כתובת IP תקינה ושונה משם המארח.
application principal.application ממופים ישירות.
asset principal.asset.attribute.labels.value ממופה ישירות לערך של תווית הנכס, והמפתח מוטמע כ-'שם הנכס'. אם השדה של הנכס ריק וההודעה מכילה את המחרוזת Dell, הנכס מוגדר כ-Dell.
auid principal.resource.attribute.labels.value ממופה ישירות לתווית עם מפתח auid בתוך principal.resource.attribute.labels.
datetime metadata.event_timestamp הערך הזה מנותח מפורמטים שונים בשדה ההודעה ומומר לחותמת זמן.
dest_ip target.asset.ip, target.ip ממופה לכתובת ה-IP של נכס היעד ולכתובת ה-IP של היעד.
enterpriseId principal.resource.attribute.labels.value ממופה לתווית עם המפתח enterpriseId בתוך principal.resource.attribute.labels.
exe sec_result.detection_fields.value ממופה לשדה זיהוי עם מפתח exe.
File target.file.full_path ממופים ישירות.
grantors principal.resource.attribute.labels.value ממופה לתווית עם המפתח grantors בתוך principal.resource.attribute.labels.
host ‫principal.hostname, ‏ principal.asset.hostname, ‏ metadata.event_type משמש כשם מארח ראשי וכשם מארח של נכס. אם התג host מופיע, הערך של metadata.event_type מוגדר ל-STATUS_UPDATE. אם שם המארח קיים אבל המארח לא, שם המארח ישמש כמארח.
hostname ‫principal.asset.ip, ‏ principal.ip, ‏ host אם זו כתובת IP תקינה, היא משמשת ככתובת ה-IP העיקרית וככתובת ה-IP של הנכס. אם הערך של host ריק, הוא ישמש כערך של host.
ID principal.resource.attribute.labels.value ממופה לתווית עם המפתח ID בתוך principal.resource.attribute.labels.
ip principal.asset.ip, principal.ip ממופה לכתובת ה-IP העיקרית ולכתובת ה-IP של הנכס.
is_synced sec_result.detection_fields.value ממופה לשדה זיהוי עם מפתח is_synced.
local ‫target.asset.ip, ‏ target.ip, ‏ target.port הניתוח מתבצע כדי לחלץ את כתובת ה-IP והיציאה המקומיות, שממופות לכתובת ה-IP של היעד, לכתובת ה-IP של נכס היעד וליציאת היעד.
local_ip target.asset.ip, target.ip הערך חולץ מהשדה local ומופה לכתובת ה-IP של היעד ולכתובת ה-IP של נכס היעד.
local_port target.port הערך חולץ מהשדה local ומופה ליעד.
mac principal.mac אם זו כתובת MAC תקינה, היא ממופה לכתובת ה-MAC הראשית.
msg metadata.description אם יש ערך בשדה הזה, הוא משמש כתיאור האירוע. גם מנותח כדי למצוא שדות נוספים.
msg1 metadata.description התיאור הזה ישמש כתיאור האירוע אם לא צוין msg2.
msg2 ‫sec_result.description, ‏ metadata.event_type, ‏ extensions.auth.type משמש כתיאור של תוצאת האבטחה. אם הוא מכיל את המחרוזת opened for user, סוג האירוע מוגדר ל-USER_LOGIN וסוג האימות מוגדר ל-MACHINE. אם הוא מכיל את המחרוזת 'closed for user', סוג האירוע מוגדר ל-USER_LOGOUT וסוג האימות מוגדר ל-MACHINE.
op metadata.product_event_type הערך הזה משמש כסוג אירוע המוצר אם הוא קיים.
pid principal.process.pid ממופים ישירות.
port principal.port ממופים ישירות.
prod_event_type metadata.product_event_type הערך הזה משמש כסוג אירוע המוצר אם הוא קיים.
res sec_result.summary ממופים ישירות.
sec_description ‫sec_result.description, ‏ target.url, ‏ target.ip, ‏ target.asset.ip, ‏ sec_result.action_details הנתונים מנותחים כדי לזהות את כתובת ה-URL לטירגוט, כתובת ה-IP, פרטי הפעולה, והם משמשים כתיאור של תוצאת האבטחה.
Server_ID target.resource.product_object_id ממופים ישירות.
server ‫principal.asset.ip, ‏ principal.ip, ‏ principal.port הניתוח מתבצע כדי לחלץ את כתובת ה-IP והיציאה של השרת, והמיפוי מתבצע לכתובת ה-IP של הגורם המרכזי, לכתובת ה-IP של נכס הגורם המרכזי וליציאה של הגורם המרכזי.
server_ip principal.asset.ip, principal.ip הערך חולץ מהשדה server וממופה לכתובת ה-IP של חשבון המשתמש ולכתובת ה-IP של נכס חשבון המשתמש.
server_port principal.port הערך חולץ מהשדה server וממופה ליציאה של החשבון הראשי.
ses network.session_id ממופים ישירות.
severity sec_result.severity, metadata.product_event_type הערך הזה משמש לקביעת חומרת תוצאת האבטחה וסוג אירוע המוצר על סמך ערכים ספציפיים.
software principal.asset.software ממופים ישירות.
softwareName software.name ממופים ישירות.
Status sec_result.summary הערך הזה משמש כסיכום של תוצאות האבטחה אם התג res לא מופיע.
subj principal.resource.attribute.labels.value ממופה לתווית עם המפתח subj בתוך principal.resource.attribute.labels.
swVersion software.version ממופים ישירות.
target_host target.hostname, target.asset.hostname ממופה ישירות לשם המארח של היעד ולשם המארח של נכס היעד.
target_ip target.asset.ip, target.ip ממופה ישירות לכתובת ה-IP של היעד ולכתובת ה-IP של נכס היעד.
target_url target.url ממופים ישירות.
target_user_id target.user.userid ממופים ישירות.
terminal principal.resource.attribute.labels.value ממופה לתווית עם המפתח terminal בתוך principal.resource.attribute.labels.
tzknown sec_result.detection_fields.value ממופה לשדה זיהוי עם מפתח tzknown.
uid principal.resource.attribute.labels.value ממופה לתווית עם המפתח uid בתוך principal.resource.attribute.labels.
user principal.user.userid, metadata.event_type משמש כמזהה המשתמש הראשי. אם התג user מופיע, הערך של metadata.event_type מוגדר ל-USER_UNCATEGORIZED.
username target.user.userid משויך ישירות למזהה המשתמש ביעד.
לא רלוונטי metadata.vendor_name הערך 'Dell' מוטמע בקוד.
לא רלוונטי metadata.product_name הערך מוטמע בקוד כ-Dell Switch.
לא רלוונטי extensions.auth.type מגדירים את הערך MACHINE לאירועי התחברות/התנתקות ספציפיים.
לא רלוונטי metadata.event_type הערך נקבע על ידי לוגיקה מורכבת שמבוססת על שדות ותנאים שונים. אם לא מוגדר אחרת, ערך ברירת המחדל הוא GENERIC_EVENT. יכול להיות USER_LOGIN,‏ USER_LOGOUT,‏ USER_UNCATEGORIZED,‏ NETWORK_CONNECTION,‏ NETWORK_UNCATEGORIZED,‏ STATUS_UPDATE או GENERIC_EVENT.
reason_code event.idm.read_only_udm.security_result.detection_fields מופה מיומן השינויים
Eventid metadata.product_log_id מופה מיומן השינויים
Eventseverity security_result.severity מופה מיומן השינויים
Computer principal.hostname מופה מיומן השינויים
Program principal.application מופה מיומן השינויים
Description security_result.description מופה מיומן השינויים
tzknown", "is_synced" and "exe security_result.detection_fields מופה מיומן השינויים
res security_result.summary מופה מיומן השינויים
status security_result.summary מופה מיומן השינויים
uid", "enterpriseId", "auid", "terminal", "subj", "grantors", and "ID principal.resource.attribute.labels מופה מיומן השינויים
sec_description security_result.description מופה מיומן השינויים
action_details security_result.action_details מופה מיומן השינויים
softwareName principal.asset.software.name מופה מיומן השינויים
swVersion principal.asset.software.version מופה מיומן השינויים
port principal_port מופה מיומן השינויים

יומן שינויים

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

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