איסוף יומני ArcSight CEF
גרסת כלי הניתוח: 34.0
במאמר הזה מוסבר איך להטמיע יומני ArcSight CEF ב-Google Security Operations באמצעות סוכן Bindplane.
ArcSight (עכשיו חלק מ-OpenText) משתמש בפורמט Common Event Format (CEF) כדי לבצע נורמליזציה של אירועי אבטחה ממקורות שונים. ה-ArcSight SmartConnector אוסף אירועים ומעביר אותם בפורמט CEF דרך syslog לצרכנים במורד הזרם, כולל פלטפורמות SIEM.
לפני שמתחילים
חשוב לוודא שמתקיימות הדרישות המוקדמות הבאות:
- מופע של Google SecOps
- Windows Server 2016 ואילך, או מארח Linux עם
systemd - קישוריות לרשת בין סוכן Bindplane לבין המארח של ArcSight SmartConnector
- אם מריצים מאחורי שרת proxy, מוודאים שיציאות חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane
- גישה לפורטל התמיכה של OpenText כדי להוריד את SmartConnector
- הרשאת אדמין בשרת SmartConnector
קבלת קובץ אימות להטמעת נתונים ב-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/arcsight_cef: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: ARCSIGHT_CEF raw_log_field: body service: pipelines: logs/arcsight_to_chronicle: receivers: - udplog exporters: - chronicle/arcsight_cef
פרמטרים להגדרה
מחליפים את ה-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"
- מקישים על
הורדת ArcSight SmartConnector
- נכנסים לפורטל התמיכה של OpenText.
- מאתרים ומורידים את ArcSight SmartConnector העדכני ביותר ל-Linux.
- דוגמה לשם קובץ:
ArcSight-Connector-Linux64-8.4.0.8499.0.bin.
התקנת ArcSight SmartConnector
מעלים את הקובץ
.binלשרת SmartConnector:scp ArcSight-Connector-Linux64-8.4.0.8499.0.bin user@your-smartconnector-host:/tmpנכנסים לשרת SmartConnector באמצעות SSH ומריצים את הפקודה:
cd /tmp chmod +x ArcSight-Connector-Linux64-8.4.0.8499.0.bin ./ArcSight-Connector-Linux64-8.4.0.8499.0.binפועלים לפי ההוראות במנהל ההתקנה האינטראקטיבי:
- בוחרים את ספריית ההתקנה (לדוגמה,
/opt/arcsight/connectors/current). - מאשרים את הרישיון.
- כשמופיעה בקשה, לוחצים על התקנת המחבר.
- בוחרים את ספריית ההתקנה (לדוגמה,
הגדרת ArcSight SmartConnector לשליחת CEF ל-syslog
ב-SmartConnector host, מפעילים את אשף היעד:
cd /opt/arcsight/connectors/current/bin ./arcsight connectorsבאשף, מבצעים את הפעולות הבאות:
- לוחצים על הוספת יעד.
- בוחרים באפשרות CEF Syslog.
מספקים את פרטי ההגדרה הבאים:
- מארח/IP: מזינים את כתובת ה-IP של סוכן Bindplane.
- יציאה: מזינים את מספר היציאה של סוכן Bindplane (לדוגמה,
514). - פרוטוקול: בוחרים באפשרות UDP.
מסיימים את ההגדרה ומפעילים מחדש את המחבר:
./arcsight agentsמריצים בדיקה של הקישוריות (מחפשים:
Successfully connected to syslog: X.X.X.X:514):tail -f /opt/arcsight/connectors/current/logs/agent.log
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | היגיון |
|---|---|---|
| לפעול | security_result.action_details | ממופה ישירות מהשדה act. |
| agt | principal.ip | ממופה ישירות מהשדה agt. |
| agt | principal.asset.ip | ממופה ישירות מהשדה agt. |
| אפליקציה | network.application_protocol | ממופה ישירות מהשדה app. |
| אומנות | metadata.event_timestamp.seconds | ממופה ישירות מהשדה art. |
| cs2 | additional.fields.value.string_value | ממופה ישירות מהשדה cs2 כשהערך של cs2Label הוא EventlogCategory. |
| cs2Label | additional.fields.key | ממופה ישירות מהשדה cs2Label כשהערך שלו הוא EventlogCategory. |
| cs3 | additional.fields.value.string_value | ממופה ישירות מהשדה cs3 כשהערך של cs3Label הוא Process ID. |
| cs3Label | additional.fields.key | ממופה ישירות מהשדה cs3Label כשהערך שלו הוא Process ID. |
| cs5 | additional.fields.value.string_value | ממופה ישירות מהשדה cs5 כשהערך של cs5Label הוא Authentication Package Name. |
| cs5Label | additional.fields.key | ממופה ישירות מהשדה cs5Label כשהערך שלו הוא Authentication Package Name. |
| cs6 | additional.fields.value.string_value | ממופה ישירות מהשדה cs6 כשהערך של cs6Label הוא Logon GUID. |
| cs6Label | additional.fields.key | ממופה ישירות מהשדה cs6Label כשהערך שלו הוא Logon GUID. |
| dhost | about.hostname | ממופה ישירות מהשדה dhost. |
| dhost | target.hostname | ממופה ישירות מהשדה dhost. |
| dntdom | about.administrative_domain | ממופה ישירות מהשדה dntdom. |
| dntdom | target.administrative_domain | ממופה ישירות מהשדה dntdom. |
| dproc | about.process.command_line | ממופה ישירות מהשדה dproc. |
| dproc | target.process.command_line | ממופה ישירות מהשדה dproc. |
| dst | principal.ip | ממופה ישירות מהשדה dst. |
| dst | principal.asset.ip | ממופה ישירות מהשדה dst. |
| dst | target.ip | ממופה ישירות מהשדה dst. |
| duid | target.user.userid | ממופה ישירות מהשדה duid. |
| duser | target.user.user_display_name | ממופה ישירות מהשדה duser. |
| dvc | about.ip | ממופה ישירות מהשדה dvc. |
| dvchost | about.hostname | ממופה ישירות מהשדה dvchost. |
| eventId | additional.fields.value.string_value | ממופה ישירות מהשדה eventId. |
| externalId | metadata.product_log_id | ממופה ישירות מהשדה externalId. |
| fname | additional.fields.value.string_value | ממופה ישירות מהשדה fname. |
| msg | metadata.description | ממופה ישירות מהשדה msg. |
| proto | network.ip_protocol | ממופה ישירות מהשדה proto. מתרגם שמות של פרוטוקולים לקבועים המתאימים (למשל, tcp ל-TCP). |
| rt | metadata.event_timestamp.seconds | ממופה ישירות מהשדה rt. |
| shost | about.hostname | ממופה ישירות מהשדה shost. |
| shost | principal.hostname | ממופה ישירות מהשדה shost. |
| src | principal.ip | ממופה ישירות מהשדה src. |
| src | principal.asset.ip | ממופה ישירות מהשדה src. |
| src | target.ip | ממופה ישירות מהשדה src. |
| sproc | principal.process.command_line | ממופה ישירות מהשדה sproc. |
| spt | principal.port | ממופה ישירות מהשדה spt. |
| spt | target.port | ממופה ישירות מהשדה spt. |
| additional.EventRecordID | additional.fields.value.string_value | ממופה ישירות מהשדה ad.EventRecordID. |
| additional.ThreadID | additional.fields.value.string_value | ממופה ישירות מהשדה ad.ThreadID. |
| additional.Opcode | additional.fields.value.string_value | ממופה ישירות מהשדה ad.Opcode. |
| additional.ProcessID | additional.fields.value.string_value | ממופה ישירות מהשדה ad.ProcessID. |
| additional.TargetDomainName | additional.fields.value.string_value | ממופה ישירות מהשדה ad.TargetDomainName. |
| additional.Version | additional.fields.value.string_value | ממופה ישירות מהשדה ad.Version. |
| deviceExternalId | about.asset.hardware.serial_number | ממופה ישירות מהשדה deviceExternalId. |
| deviceInboundInterface | additional.fields.value.string_value | ממופה ישירות מהשדה deviceInboundInterface. |
| deviceOutboundInterface | additional.fields.value.string_value | ממופה ישירות מהשדה deviceOutboundInterface. |
| PanOSConfigVersion | security_result.detection_fields.value | ממופה ישירות מהשדה PanOSConfigVersion. |
| PanOSContentVersion | security_result.detection_fields.value | ממופה ישירות מהשדה PanOSContentVersion. |
| PanOSDGHierarchyLevel1 | security_result.detection_fields.value | ממופה ישירות מהשדה PanOSDGHierarchyLevel1. |
| PanOSDestinationLocation | target.location.country_or_region | ממופה ישירות מהשדה PanOSDestinationLocation. |
| PanOSRuleUUID | metadata.product_log_id | ממופה ישירות מהשדה PanOSRuleUUID. |
| PanOSThreatCategory | security_result.category_details | ממופה ישירות מהשדה PanOSThreatCategory. |
| PanOSThreatID | security_result.threat_id | ממופה ישירות מהשדה PanOSThreatID. |
| about.asset.asset_id | נוצר על ידי שרשור של Palo Alto Networks., שם הספק (LF) והשדה deviceExternalId. |
|
| extensions.auth.type | מגדירים ל-AUTHTYPE_UNSPECIFIED אם השדה event_name מכיל את הערך logged on. |
|
| metadata.description | אם השדה description מכיל את הערך by ואחריו כתובת IP, כתובת ה-IP מחולצת וממופה ל-principal.ip ול-principal.asset.ip. |
|
| metadata.event_type | הערך נקבע על סמך סדרה של בדיקות מותנות בשדות שונים, כולל event_name, principal_*, target_* ו-device_event_class_id. הלוגיקה קובעת את סוג האירוע המתאים ביותר על סמך המידע שזמין. |
|
| metadata.log_type | הערך שהוגדר הוא ARCSIGHT_CEF. |
|
| metadata.product_event_type | נוצר על ידי שרשור של \[, the device_event_class_id field, \] - והשדה name. |
|
| metadata.product_name | מוגדר ל-NGFW אם השדה product_name הוא LF. |
|
| principal.asset.ip | אם השדה description מכיל את הערך by ואחריו כתובת IP, כתובת ה-IP מחולצת וממופה ל-principal.ip ול-principal.asset.ip. |
|
| principal.ip | אם השדה description מכיל את הערך by ואחריו כתובת IP, כתובת ה-IP מחולצת וממופה ל-principal.ip ול-principal.asset.ip. |
|
| security_result.action | הערך ALLOW מוגדר אם השדה act הוא alert, אחרת הערך BLOCK מוגדר. |
|
| security_result.severity | הערך הוא HIGH אם השדה sev גדול מ-7 או שווה לו, אחרת הערך הוא LOW. |
|
PanOSFileType |
event.idm.read_only_udm.target.file.mime_type |
מופה מיומן השינויים |
PanOSEmailSubject |
event.idm.read_only_udm.network.email.subject |
מופה מיומן השינויים |
PanOSNSSAINetworkSliceType |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
PanOSURLCounter |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
PanOSReportID |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
PanOSDGHierarchyLevel2 |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
PanOSVirtualSystemName |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
PanOSSigFlags |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
PanOSPartialHash |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
version |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
cn3 |
network.duration.seconds |
מופה מיומן השינויים |
PanOSTenantID |
additional.fields |
מופה מיומן השינויים |
cn3 |
additional.fields |
מופה מיומן השינויים |
PanOSCortexDataLakeTenantID |
additional.fields |
מופה מיומן השינויים |
target_user |
target.user.userid |
מופה מיומן השינויים |
principal_ip |
principal.ip |
מופה מיומן השינויים |
PanOSStage", "PanOSConnectionError", and "PanOSEventDetails |
additional.fields |
מופה מיומן השינויים |
outcome |
security_result.action_details |
מופה מיומן השינויים |
PanOSDescription |
metadata.description |
מופה מיומן השינויים |
PanOSSourceUser |
principal.user.userid |
מופה מיומן השינויים |
app |
target.application |
מופה מיומן השינויים |
flexString2", "PanOSFileHash", and "filePath |
additional.fields |
מופה מיומן השינויים |
threat_name |
security_result.threat_name |
מופה מיומן השינויים |
principal_ip1 |
principal.ip |
מופה מיומן השינויים |
metadata.event_type |
NETWORK_CONNECTION |
מופה מיומן השינויים |
deviceOutboundInterface", "deviceInboundInterface |
additional.fields |
מופה מיומן השינויים |
query |
additional fields |
מופה מיומן השינויים |
יומן שינויים
צפייה ביומן השינויים של מנתח התוכן הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.