איסוף יומנים של מודמים דיגיטליים

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

נתמך ב:

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

מודמים של Digi הם מודמים סלולריים תעשייתיים שמפיקים הודעות syslog לאירועי כניסה, לניסיונות אימות ולחיבורים לרשת. הכלי לניתוח מחלץ שדות באמצעות דפוסי grok וממפה אותם למודל הנתונים המאוחד (UDM).

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

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

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

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

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

מחליפים את ה-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 ב-Digi Modem

  1. נכנסים אל Digi Remote Manager או אל ממשק המשתמש המקומי של Digi Modem.
  2. ניגשים להגדרת המכשיר באמצעות Remote Manager:
    • מאתרים את המכשיר שרוצים להגדיר עבורו את syslog.
    • לוחצים על מזהה המכשיר > הגדרות > הגדרה.
  3. אפשר לגשת להגדרת המכשיר באמצעות ממשק האינטרנט המקומי של Digi Modem:
    • לוחצים על מערכת > הגדרה > הגדרת מכשיר.
  4. עוברים אל מערכת > יומן.
  5. לוחצים על רשימת השרתים כדי להרחיב אותה.
  6. לוחצים על הוספת שרת +.
  7. מספקים את פרטי ההגדרה הבאים:
    • שרת: מזינים את כתובת ה-IP של סוכן Bindplane.
    • בוחרים את קטגוריות האירועים שיישלחו לשרת (כל קטגוריות האירועים מופעלות כברירת מחדל).
    • יציאת יציאה של Syslog: מזינים את מספר היציאה של סוכן Bindplane (ברירת המחדל היא 514).
    • פרוטוקול: בוחרים באפשרות UDP.
  8. לוחצים על אישור.

דוגמאות ליומנים של מודמים נתמכים של Digi

  • SYSLOG

    {
      "priority": 14,
      "timestamp": "Dec 28 17:27:45",
      "hostname": "host-device.router",
      "tag": "Eventlog",
      "message": "17:27:33, 28 Dec 2006,Login failure by Host: 10.0.0.25:23: CMD,Telnet"
    }
    
  • SYSLOG

    {
      "priority": 14,
      "timestamp": "May 25 11:03:55",
      "hostname": "internal-srv-01",
      "tag": "Eventlog",
      "message": "11:03:55, 25 May 2023,Login failure by sanitized_user: WEB"
    }
    
  • SYSLOG

    {
      "priority": 14,
      "timestamp": "Jun 11 23:58:26",
      "hostname": "internal-srv-01",
      "tag": "Eventlog",
      "message": "23:58:26, 11 Jun 2023,Login failure by GET /masked_path HTTP/1.0: CMD,Telnet"
    }
    
  • SYSLOG

    {
      "priority": 14,
      "timestamp": "Jun 19 19:52:19",
      "hostname": "gateway-device-02",
      "tag": "Eventlog",
      "message": "19:52:18, 19 Jun 2023,WEB Login OK by internal_admin lvl 0"
    }
    

טבלת מיפוי UDM

שדה ביומן מיפוי UDM היגיון
תוכן security_result.description ממופה ישירות מהשדה content אחרי ניתוח ראשוני של grok.
http_method network.http.method הערך חולץ מהשדה content באמצעות תבנית grok.
http_version network.application_protocol_version הערך חולץ מהשדה content באמצעות תבנית grok.
שם המארח principal.hostname המידע חולץ מהודעת היומן באמצעות תבנית grok.
ip target.ip הערך חולץ מהשדה content באמצעות תבנית grok.
יציאה target.port הערך חולץ מהשדה content באמצעות תבנית grok והומר למספר שלם.
proto network.application_protocol הערך חולץ מהשדה content באמצעות תבנית grok.
ts metadata.event_timestamp המידע חולץ מהודעת היומן באמצעות תבנית grok והומר לחותמת זמן.
סוג login_type_label.value הערך חולץ מהשדה content באמצעות תבנית grok.
extensions.auth.type הערך MACHINE מוגדר על ידי לוגיקת הניתוח.
login_type_label.key הערך Login type מוגדר על ידי לוגיקת הניתוח.
metadata.event_type הערך נקבע לפי נוכחות של שדות ספציפיים כמו ip או user, ומוגדר בהתאם ל-NETWORK_CONNECTION או ל-USER_LOGIN.
metadata.log_type הערך DIGI_MODEMS מוגדר על ידי לוגיקת הניתוח.
metadata.product_event_type חילוץ מהשדה product_type בהודעת היומן.
metadata.product_name הערך DIGI_MODEMS מוגדר על ידי לוגיקת הניתוח.
metadata.vendor_name הערך DIGI_MODEMS מוגדר על ידי לוגיקת הניתוח.
security_result.action הערך נקבע לפי הנוכחות של Login OK או Login failure בהודעה, ומוגדר ל-ALLOW או ל-BLOCK בהתאמה.
משתמש target.user.userid הערך חולץ מהשדה content באמצעות תבנית grok.

יומן שינויים

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

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