איסוף יומנים של Sophos Endpoint
במסמך הזה מוסבר איך לאסוף יומנים של Sophos Endpoint (לשעבר Sophos AV/Intercept X) באמצעות סוכן Bindplane. מנתח התוכן הופך יומני JSON למודל נתונים מאוחד (UDM). הוא מחלץ שדות ממבני JSON מוטמעים, ממפה אותם לשדות UDM ומבצע סיווג אירועים על סמך שדה הסוג, ומעשיר את הנתונים בפרטים ובפעולות ספציפיים לסוגים שונים של אירועי Sophos AV.
לפני שמתחילים
חשוב לוודא שמתקיימות הדרישות המוקדמות הבאות:
- מופע של Google SecOps
- Windows 2016 ואילך, או מארח Linux עם
systemd - מחשב נוסף עם Windows או Linux, שיכול להריץ Python באופן רציף
- אם מריצים את הסוכן מאחורי שרת proxy, מוודאים שיציאות חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane
- גישה עם הרשאות ל-Sophos Central Admin console
קבלת קובץ אימות להטמעת נתונים ב-Google SecOps
- נכנסים למסוף Google SecOps.
- עוברים אל SIEM Settings > Collection Agents (הגדרות SIEM > סוכני איסוף).
- מורידים את קובץ האימות להטמעת נתונים.
- שומרים את הקובץ באופן מאובטח במערכת שבה תותקן Bindplane.
איך מקבלים את מספר הלקוח ב-Google SecOps
- נכנסים למסוף Google SecOps.
- עוברים אל SIEM Settings > Profile (הגדרות SIEM > פרופיל).
- מעתיקים את מזהה הלקוח מהקטע פרטי הארגון ושומרים אותו.
התקנת Bindplane Agent
מתקינים את סוכן Bindplane במערכת ההפעלה Windows או Linux לפי ההוראות הבאות.
התקנה ב-Windows
- פותחים את שורת הפקודה או את PowerShell כאדמין.
מריצים את הפקודה הבאה:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
התקנה של Linux
- פותחים טרמינל עם הרשאות root או sudo.
מריצים את הפקודה הבאה:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
מקורות מידע נוספים להתקנה
אפשרויות התקנה נוספות זמינות במדריך ההתקנה.
הגדרה של Bindplane Agent להטמעה של Syslog ושליחה אל Google SecOps
- ניגשים לקובץ ההגדרות:
- מאתרים את הקובץ
config.yaml. בדרך כלל, הוא נמצא בספרייה/etc/bindplane-agent/ב-Linux או בספריית ההתקנה ב-Windows. - פותחים את הקובץ באמצעות כלי לעריכת טקסט (לדוגמה,
nano,viאו פנקס רשימות).
- מאתרים את הקובץ
עורכים את הקובץ
config.yamlבאופן הבא:receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization log_type: 'SOPHOS_AV' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labelsמחליפים את היציאה ואת כתובת ה-IP לפי הצורך בתשתית.
מחליפים את
<customer_id>במזהה הלקוח בפועל.מעדכנים את
/path/to/ingestion-authentication-file.jsonלנתיב הקובץ שבו נשמר קובץ האימות בשלב 1.
מפעילים מחדש את Bindplane Agent כדי להחיל את השינויים
כדי להפעיל מחדש את סוכן Bindplane ב-Linux, מריצים את הפקודה הבאה:
sudo systemctl restart bindplane-agentכדי להפעיל מחדש את סוכן Bindplane ב-Windows, אפשר להשתמש במסוף Services או להזין את הפקודה הבאה:
net stop BindPlaneAgent && net start BindPlaneAgent
הגדרת גישה ל-Sophos Central API
- נכנסים לחשבון Sophos Central Admin.
- בוחרים באפשרות Global Settings > API Token Management (הגדרות גלובליות > ניהול אסימוני API).
- כדי ליצור טוקן חדש, לוחצים על הוספת טוקן.
- מזינים שם של טוקן ולוחצים על שמירה. מוצג סיכום של טוקן ה-API עבור הטוקן שצוין.
- בקטע API Token Summary, לוחצים על Copy כדי להעתיק את כתובת ה-URL ואת הכותרות של הגישה ל-API.
התקנת Python במכונה הנוספת
- פותחים את דפדפן האינטרנט ועוברים אל אתר Python.
- לוחצים על Download Python (הורדת Python) למערכת ההפעלה (Windows או Mac).
מתקינים את Python.
- ב-Windows:
- מפעילים את תוכנת ההתקנה.
- מסמנים את התיבה Add Python to PATH (הוספת Python לנתיב).
- לוחצים על התקנה עכשיו.
ב-Mac:
- יכול להיות ש-Python כבר מותקן. אם לא, אפשר להתקין את הגרסה העדכנית באמצעות הטרמינל.
- פותחים את Terminal ומקלידים את הפקודה הבאה:
python --version
- ב-Windows:
הורדת סקריפט השילוב של Sophos
- עוברים לדף GitHub של Sophos Central SIEM Integration GitHub Repository.
- לוחצים על הלחצן הירוק Code (קוד) > Download ZIP (הורדת ZIP).
- מחלצים את קובץ ה-ZIP.
הגדרת תצורת הסקריפט
- מחפשים את הקובץ
config.iniופותחים אותו בכלי לעריכת טקסט. - עורכים את קובץ התצורה:
- אסימון API: מזינים את מפתח ה-API שהועתק קודם מ-Sophos Central.
- פרטי שרת Syslog: מזינים את הפרטים של שרת ה-Syslog.
- מארח: מזינים את כתובת ה-IP של Bindplane.
- יציאה: מזינים את מספר היציאה של Bindplane.
- פרוטוקול: מזינים UDP (אפשר גם להשתמש ב-TCP או ב-TLS בהתאם להגדרה).
- שומרים את הקובץ.
הפעלת הסקריפט
עוברים לתיקיית התסריט.
ב-Windows:
- מקישים על המקש Windows ומקלידים
cmd. - לוחצים על Command Prompt (שורת פקודה).
- עוברים לתיקיית הסקריפט:
cd C:UsersYourNameDownloadsSophos-Central-SIEM-Integration- מקישים על המקש Windows ומקלידים
ב-macOS:
- עוברים אל Applications > Utilities.
- פותחים את Terminal (מסוף).
- עוברים לתיקיית הסקריפט:
cd /Users/YourName/Downloads/Sophos-Central-SIEM-Integration
מריצים את הסקריפט:
כדי להפעיל את הסקריפט, מקלידים את הפקודה הבאה:
python siem.py
אוטומציה של הסקריפט כדי שיפעל באופן רציף ב-Windows (באמצעות מתזמן המשימות):
- פותחים את מתזמן המשימות על ידי הקלדת מתזמן המשימות בתפריט ההתחלה.
- לוחצים על יצירת משימה.
- בכרטיסייה כללי:
- נותנים שם למשימה, לדוגמה,
Sophos AV Log Export.
- נותנים שם למשימה, לדוגמה,
- בכרטיסייה טריגרים:
- לוחצים על חדש ומגדירים את המשימה להפעלה יומית או בזמן ההפעלה (בהתאם להעדפה).
- בכרטיסייה פעולות:
- לוחצים על חדש ובוחרים באפשרות התחלת תוכנית.
- מחפשים את קובץ ההפעלה
python.exe(בדרך כלל נמצא ב-C:PythonXXpython.exe). - בשדה Add arguments (הוספת ארגומנטים), מקלידים את הנתיב לתסריט, לדוגמה,
C:UsersYourNameDownloadsSophos-Central-SIEM-Integrationsiem.py.
- לוחצים על אישור כדי לשמור את המשימה.
אוטומציה של הסקריפט כדי שיפעל באופן רציף ב-Mac (באמצעות Cron Jobs):
- פותחים את Terminal.
- מקלידים
crontab -eומקישים עלEnter. מוסיפים שורה חדשה בסוף הקובץ:
* * * * * /usr/bin/python /Users/YourName/Downloads/Sophos-Central-SIEM-Integration/siem.pyשומרים ויוצאים מהעורך.
טבלת מיפוי UDM
| שדה היומן | מיפוי UDM | לוגיקה |
|---|---|---|
s_ip |
intermediary.ip |
ממוזג |
description |
metadata.description |
מיפוי ישיר |
name |
metadata.description |
מיפוי ישיר |
security_result.description |
metadata.description |
שם שונה/מיפוי |
end |
metadata.event_timestamp |
הניתוח הוא RFC 3339 |
ts |
metadata.event_timestamp |
הניתוח הוא RFC 3339 |
action |
metadata.event_type |
מיפוי: unknown ← NETWORK_CONNECTION, allowed ← SCAN_PROCESS, blocked ← `SCAN_PROC... |
e_type |
metadata.event_type |
ערכים ממופים (11 סך הכול, למשל NonCompliant ← SCAN_HOST, SavDisabled ← `SETTING_MODIFIC... |
type |
metadata.event_type |
ערכים ממופים (13 בסך הכול, למשל Event::Endpoint::NonCompliant ← SCAN_HOST, Event::Endpoin... |
e_type |
metadata.product_event_type |
מיפוי ישיר |
type |
metadata.product_event_type |
מיפוי ישיר |
action |
network.direction |
מיפוי: warned ← OUTBOUND, unknown ← OUTBOUND |
e_type |
network.direction |
מיפוי: WindowsFirewall::Blocked ← OUTBOUND |
type |
network.direction |
מיפוי: Event::Endpoint::WindowsFirewall::Blocked ← OUTBOUND |
action |
network.ip_protocol |
מיפוי: warned ← TCP, unknown ← TCP |
appSha256 |
principal.file.sha256 |
מיפוי ישיר |
dhost |
principal.hostname |
מיפוי ישיר |
host |
principal.hostname |
מיפוי ישיר |
source_info.ip |
principal.ip |
ממוזג |
src_ip |
principal.ip |
ממוזג |
id |
principal.resource.id |
מיפוי ישיר |
suser |
principal.user.user_display_name |
מיפוי ישיר |
suser |
principal.user.userid |
מיפוי ישיר |
user |
principal.user.userid |
מיפוי ישיר |
user_id |
principal.user.userid |
מיפוי ישיר |
endpoint_id_label |
security_result.about.labels |
ממוזג |
endpoint_type_label |
security_result.about.labels |
ממוזג |
action |
security_result.action |
ערכים ממופים (5 בסך הכול, למשל allow ← sec_action, unknown ← sec_action, allowed ← `... |
sec_action |
security_result.action |
ממוזג |
group |
security_result.category_details |
ממוזג |
sub_cat |
security_result.category_details |
ממוזג |
desc |
security_result.description |
מיפוי ישיר |
e_type |
security_result.description |
מיפוי: (UpdateRebootRequired/ServiceNotRunning/NonCompliant/OutOfDate) → `security_result... |
type |
security_result.description |
ממופה: Event::Endpoint::(UpdateRebootRequired/ServiceNotRunning/NonCompliant/OutOfDate) ←... |
rule |
security_result.rule_name |
מיפוי ישיר |
rules |
security_result.rule_name |
מיפוי ישיר |
severity |
security_result.severity |
ערכים ממופים (6 סך הכול, לדוגמה low ← LOW, low ← MEDIUM, low ← HIGH) |
security_result.description |
security_result.summary |
שם שונה/מיפוי |
application |
target.application |
מיפוי ישיר |
endpoint_id |
target.asset_id |
מיפוי ישיר |
f_path |
target.file.full_path |
מיפוי ישיר |
f_size |
target.file.size |
שם שונה/מיפוי |
dhost |
target.hostname |
מיפוי ישיר |
host |
target.hostname |
מיפוי ישיר |
application |
target.process.file.full_path |
מיפוי ישיר |
customer_id |
target.resource.id |
מיפוי ישיר |
e_type |
target.resource.name |
מיפוי: SavDisabled ← Real time protection, OutOfDate ← Device Registration, Regist... |
p_device |
target.resource.name |
מיפוי ישיר |
scan_name |
target.resource.name |
מיפוי ישיר |
type |
target.resource.name |
מיפוי: Event::Endpoint::SavDisabled ← Real time protection, `Event::Endpoint::OutOfDate... |
action |
target.resource.type |
מיפוי: blocked ← Device, restricted to read-only ← Device |
e_type |
target.resource.type |
ערכים ממופים (5 סך הכול, למשל SavDisabled → SETTING, OutOfDate → SETTING, Registered... |
type |
target.resource.type |
ערכים ממופים (5 בסך הכול, למשל Event::Endpoint::SavDisabled → SETTING, `Event::Endpoint::O... |
url |
target.url |
מיפוי ישיר |
duid |
target.user.userid |
מיפוי ישיר |
suser |
target.user.userid |
מיפוי ישיר |
user |
target.user.userid |
מיפוי ישיר |
| לא רלוונטי | metadata.event_type |
קבוע: GENERIC_EVENT |
| לא רלוונטי | metadata.product_name |
קבוע: Sophos Anti-Virus |
| לא רלוונטי | metadata.vendor_name |
קבוע: Sophos |
| לא רלוונטי | network.direction |
קבוע: OUTBOUND |
| לא רלוונטי | network.ip_protocol |
קבוע: TCP |
| לא רלוונטי | security_result.description |
קבוע: security_result.summary |
| לא רלוונטי | security_result.severity |
קבוע: LOW |
| לא רלוונטי | target.resource.name |
קבוע: Real time protection |
| לא רלוונטי | target.resource.type |
קבוע: SETTING |
שנה רישום
צפייה ביומן השינויים של כלי הניתוח הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.