איסוף יומנים של מודמים דיגיטליים
גרסת כלי הניתוח: 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
- נכנסים למסוף Google SecOps.
- עוברים אל SIEM Settings > Collection Agents.
- מורידים את קובץ האימות להטמעת נתונים.
שומרים את הקובץ בצורה מאובטחת במערכת שבה יותקן סוכן Bindplane.
איך מוצאים את מספר הלקוח ב-Google SecOps
- נכנסים למסוף Google SecOps.
- עוברים אל SIEM Settings > Profile (הגדרות SIEM > פרופיל).
מעתיקים את מזהה הלקוח מהקטע פרטי הארגון ושומרים אותו.
התקנת סוכן Bindplane
מתקינים את סוכן Bindplane במערכת ההפעלה Windows או Linux לפי ההוראות הבאות.
התקנה ב-Windows
- פותחים את שורת הפקודה או את PowerShell כאדמין.
מריצים את הפקודה הבאה:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietמחכים שההתקנה תסתיים.
כדי לוודא שההתקנה בוצעה, מריצים את הפקודה:
sc query observiq-otel-collectorהשירות צריך להופיע עם הערך RUNNING.
התקנה ב-Linux
- פותחים טרמינל עם הרשאות root או sudo.
מריצים את הפקודה הבאה:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shמחכים שההתקנה תסתיים.
כדי לוודא שההתקנה בוצעה, מריצים את הפקודה:
sudo systemctl status observiq-otel-collectorהשירות צריך להופיע כפעיל (פועל).
מקורות מידע נוספים להתקנה
אפשרויות התקנה נוספות ופתרון בעיות מפורטים במדריך להתקנת סוכן Bindplane.
הגדרה של סוכן Bindplane לקליטת syslog ושליחה ל-Google SecOps
איתור קובץ ההגדרות
Linux:
sudo nano /etc/bindplane-agent/config.yamlWindows:
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
- Linux:
-
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: לוחצים על קובץ > שמירה.
- Linux: מקישים על
מפעילים מחדש את סוכן Bindplane כדי להחיל את השינויים.
כדי להפעיל מחדש את סוכן Bindplane ב-Linux, מריצים את הפקודה הבאה:
sudo systemctl restart observiq-otel-collectorמוודאים שהשירות פועל:
sudo systemctl status observiq-otel-collectorבודקים אם יש שגיאות ביומנים:
sudo journalctl -u observiq-otel-collector -f
כדי להפעיל מחדש את סוכן Bindplane ב-Windows, בוחרים באחת מהאפשרויות הבאות:
שורת הפקודה או PowerShell כאדמין:
net stop observiq-otel-collector && net start observiq-otel-collectorמסוף השירותים:
- מקישים על
Win+R, מקלידיםservices.mscומקישים על Enter. - מחפשים את observIQ OpenTelemetry Collector.
- לוחצים לחיצה ימנית ובוחרים באפשרות הפעלה מחדש.
מוודאים שהשירות פועל:
sc query observiq-otel-collectorבודקים אם יש שגיאות ביומנים:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- מקישים על
הגדרת שרת syslog ב-Digi Modem
- נכנסים אל Digi Remote Manager או אל ממשק המשתמש המקומי של Digi Modem.
- ניגשים להגדרת המכשיר באמצעות Remote Manager:
- מאתרים את המכשיר שרוצים להגדיר עבורו את syslog.
- לוחצים על מזהה המכשיר > הגדרות > הגדרה.
- אפשר לגשת להגדרת המכשיר באמצעות ממשק האינטרנט המקומי של Digi Modem:
- לוחצים על מערכת > הגדרה > הגדרת מכשיר.
- עוברים אל מערכת > יומן.
- לוחצים על רשימת השרתים כדי להרחיב אותה.
- לוחצים על הוספת שרת +.
- מספקים את פרטי ההגדרה הבאים:
- שרת: מזינים את כתובת ה-IP של סוכן Bindplane.
- בוחרים את קטגוריות האירועים שיישלחו לשרת (כל קטגוריות האירועים מופעלות כברירת מחדל).
- יציאת יציאה של Syslog: מזינים את מספר היציאה של סוכן Bindplane (ברירת המחדל היא
514). - פרוטוקול: בוחרים באפשרות UDP.
- לוחצים על אישור.
דוגמאות ליומנים של מודמים נתמכים של 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.