איסוף יומנים של מתג 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 בשביל סוכן 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 בלבד, עוברים אל הגדרות > סוכני איסוף.
  3. מורידים את קובץ האימות להטמעת נתונים.
  4. שומרים את הקובץ בצורה מאובטחת במערכת שבה יותקן הסוכן של Bindplane.

איך מקבלים את מספר הלקוח ב-Google SecOps

  1. נכנסים למסוף Google SecOps.
  2. עוברים אל הגדרות > ניהול > פרופיל. אם אתם משתמשים בפלטפורמה של 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.

הגדרת סוכן 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/dell_switch:
        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: 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: הנתיב המלא לקובץ המפתח של חשבון השירות בפורמט 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.

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

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

    exporters:
      chronicle/dell_switch:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: DELL_SWITCH
        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 ממתג של 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: 
      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.}
    
  • ביקורת 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 Logic (פונקציה לוגית)
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 של המשתמש ושל הנכס. אם 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 Used as security result description. אם הוא מכיל את הערך "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.