איסוף יומני Preempt
במאמר הזה מוסבר איך להטמיע יומנים של Preempt ב-Google Security Operations באמצעות סוכן Bindplane.
Preempt Security היא פלטפורמה לזיהוי איומים על זהויות ולתגובה לאיומים כאלה. הפלטפורמה יוצרת התרעות אבטחה לגבי איומים ב-Active Directory, כולל התנהגות חריגה של אימות, הרחבת הרשאות ותנועה לרוחב. היא מייצאת יומנים בפורמט CEF (Common Event Format) דרך syslog.
לפני שמתחילים
חשוב לוודא שמתקיימות הדרישות המוקדמות הבאות:
- מופע של Google SecOps
- Windows Server 2016 ואילך, או מארח Linux עם
systemd - קישוריות רשת בין סוכן Bindplane לבין שרת Preempt
- אם מריצים את הסוכן מאחורי שרת proxy, מוודאים שיציאות חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane
- גישה עם הרשאות אדמין למסוף הניהול של Preempt
קבלת קובץ אימות להטמעת נתונים ב-Google SecOps
- נכנסים למסוף Google SecOps.
- עוברים אל SIEM Settings > Collection Agents (הגדרות SIEM > סוכני איסוף).
- מורידים את קובץ האימות להטמעת נתונים.
שומרים את הקובץ באופן מאובטח במערכת שבה תותקן 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 /opt/observiq-otel-collector/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
עריכת קובץ התצורה
מחליפים את כל התוכן של
config.yamlבהגדרה הבאה:receivers: tcplog: listen_address: "0.0.0.0:514" exporters: chronicle/preempt: compression: gzip creds_file_path: '<CREDS_FILE_PATH>' customer_id: '<CUSTOMER_ID>' endpoint: <REGION_ENDPOINT> log_type: PREEMPT raw_log_field: body ingestion_labels: env: production service: pipelines: logs/preempt_to_chronicle: receivers: - tcplog exporters: - chronicle/preempt
פרמטרים להגדרה
מחליפים את ה-placeholders הבאים:
הגדרת מקלט:
-
tcplog: מקבל syslog דרך TCP. משתמשים ב-udplogאם פריסת Preempt מעבירה נתונים באמצעות UDP. -
0.0.0.0:514: האזנה בכל הממשקים ביציאה 514. משנים את היציאה אם צריך (לדוגמה,1514ל-Linux שאינו 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. <REGION_ENDPOINT>: Regional 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 עם עדיפות
- נכנסים למסוף הניהול של Preempt.
- עוברים אל הגדרות > שילוב SIEM.
- מפעילים העברה של syslog.
- מספקים את פרטי ההגדרה הבאים:
- פרוטוקול: בוחרים באפשרות TCP (חייב להיות זהה להגדרת המקלט של סוכן Bindplane).
- פורמט: בוחרים באפשרות CEF.
- כתובת שרת Syslog: מזינים את כתובת ה-IP של מארח הסוכן Bindplane (לדוגמה,
192.168.1.100). - יציאה: מזינים
514(חייב להיות זהה ליציאת המקלט של סוכן Bindplane).
- בוחרים את סוגי האירועים להעברה:
- התראות
- הפרות מדיניות
- אירועי אימות חריגים
- לוחצים על שמירה או על אישור.
- כדי לוודא שהיומנים נשלחים, בודקים את היומנים של סוכן Bindplane.
טבלת מיפוי UDM
| שדה היומן | מיפוי UDM | לוגיקה |
|---|---|---|
| event_id, _target | metadata.event_type | הערך הוא SCAN_NETWORK אם _target לא ריק ו-event_id הוא SUSPICIOUS_DOMAIN_ACTIVITY; USER_UNCATEGORIZED אם _target לא ריק ו-event_id הוא אחד מהערכים UNUSUAL_ENDPOINT_ACCESS, UNUSUAL_ACTIVITY או UNUSUAL_ENDPOINT_USE; NETWORK_UNCATEGORIZED אם event_id הוא APPLIANCE_CONNECTIVITY_FAILURE; אחרת, הערך הוא GENERIC_EVENT. |
| event_id | metadata.product_event_type | הערך הועתק ישירות |
| גרסה | metadata.product_version | הערך הועתק ישירות |
| cs1 | metadata.url_back_to_product | הערך מ-cs1 אם cs1Label == "incidentLink" |
| network.ip_protocol | הגדרה כ-TCP אם event_id == "APPLIANCE_CONNECTIVITY_FAILURE" | |
| dhost, host | principal.hostname | ערך מ-dhost אם dhost לא ריק ולא כתובת IP, אחרת מ-host אם host לא ריק ולא כתובת IP |
| dhost, host | principal.ip | ערך מ-dhost אם dhost הוא IP, אחרת מ-host אם host הוא IP |
| description, event_name, act, cs5, cs2, externalId, cn2 | security_result.description | אם התיאור לא ריק, הערך הוא מהתיאור. אחרת, הערך הוא שרשור של event_name, act, status מ-cs5 אם cs5Label == "status" או מ-cs2 אם cs2Label == "status", IncidentID מ-externalId, CompromisedEntities מ-cn2 |
| cs1 | security_result.rule_name | הערך מ-cs1 אם cs1Label == "ruleName" |
| severity | security_result.severity | הומר ממספר שלם: HIGH אם > 7, MEDIUM אם > 4, LOW אם > 2, INFORMATIONAL אם > 0, אחרת UNKNOWN_SEVERITY; או מוגדר ל-LOW אם cat == "Policy Log" ו-severity == "INFO" |
| severity | security_result.severity_details | הערך הועתק ישירות |
| act, event_name | security_result.summary | הערך מ-act אם הוא לא ריק, אחרת מ-event_name |
| destinationServiceName | target.application | הערך מ-destinationServiceName אם event_id == "APPLIANCE_CONNECTIVITY_FAILURE" |
| שוש | target.hostname | הערך הועתק ישירות |
| src, dst | target.ip | ערך מ-src, או מ-dst אם event_id == "APPLIANCE_CONNECTIVITY_FAILURE" |
| suser | target.user.userid | הערך הועתק ישירות |
| ספק | metadata.vendor_name | הערך מהספק אם הוא לא ריק, אחרת הערך הוא PreemptSecurity |
| מוצר | metadata.product_name | הערך מהמוצר אם הוא לא ריק, אחרת הערך הוא PBF |
שנה רישום
צפייה ביומן השינויים של כלי הניתוח הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.