איסוף יומנים של חומת האש של Windows
במאמר הזה מוסבר איך להטמיע יומנים של חומת האש של Windows ב-Google Security Operations באמצעות Bindplane.
חומת האש של Windows היא חומת אש מובנית במארח של Windows, שיוצרת יומני אירועים של שירותים, שינויים בכללים ואישור או חסימה של חיבורים. סוכן Bindplane אוסף את קובצי היומן של חומת האש ישירות ממערכת הקבצים המקומית.
לפני שמתחילים
חשוב לוודא שמתקיימות הדרישות המוקדמות הבאות:
- מכונה של Google SecOps
- Windows Server 2016 ואילך עם תמיכה בשירות
observiq-otel-collector - אם השרת פועל מאחורי שרת proxy, צריך לוודא שהיציאות של חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane.
- הרשאת אדמין למארחי Windows שיוצרים יומני חומת אש
קבלת פרטי כניסה ל-Google SecOps בשביל סוכן Bindplane
כדי לאמת את סוכן Bindplane ב-Google SecOps, בוחרים אחת מהשיטות הבאות:
- פריסות חדשות: משתמשים ב-Chronicle API (אפשרות 1).
- פריסות מדור קודם: אפשר להמשיך להשתמש בקובץ האימות של ה-API להעברת נתונים (אפשרות 2) עד שה-API להעברת נתונים יפסיק לפעול ב-20 ביולי 2027.
אפשרות 1: יצירת חשבון שירות ל-Chronicle API (מומלץ)
- נכנסים למסוףGoogle Cloud ובוחרים את הפרויקט ב- Google Cloud שמקושר למכונה של Google SecOps.
- נכנסים לדף IAM & Admin > Service Accounts.
- לוחצים על Create service account.
- מספקים את פרטי ההגדרה הבאים:
- שם חשבון השירות: מזינים שם לחשבון (לדוגמה,
bindplane-ingest). - Service account description: מזינים תיאור (לדוגמה,
Bindplane agent log ingestion).
- שם חשבון השירות: מזינים שם לחשבון (לדוגמה,
- לוחצים על Create and continue.
- בקטע Grant this service account access to project, לוחצים על Select a role ובוחרים באפשרות Chronicle Editor.
- לוחצים על המשך ואז על סיום.
- לוחצים על חשבון השירות שיצרתם ואז עוברים לכרטיסייה Keys.
- לוחצים על Add key > Create new key.
- בוחרים באפשרות JSON ולוחצים על Create. קובץ המפתח יורד למחשב.
- שומרים את קובץ המפתח בתור
ingestion-auth.jsonבספריית ה-collector של Bindplane (/opt/observiq-otel-collector/ingestion-auth.jsonב-Linux אוC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.jsonב-Windows), או מעדכנים אתcreds_file_pathב-config.yamlכך שיתאים לנתיב שבו שמרתם אותו. - עוברים אל IAM & Admin > Settings ומעתיקים את הערך של Project number. תצטרכו אותו כדי להגדיר את כלי הייצוא.
אפשרות 2: הורדה של קובץ האימות להטמעת נתונים (מדור קודם)
- נכנסים למסוף Google SecOps.
- עוברים אל הגדרות SIEM > סוכני איסוף.
- מורידים את קובץ האימות להטמעת נתונים.
- שומרים את הקובץ בצורה מאובטחת במערכת שבה יותקן הסוכן של Bindplane.
איך מקבלים את מספר הלקוח ב-Google SecOps
- נכנסים למסוף Google SecOps.
- עוברים אל SIEM Settings > Profile.
מעתיקים את מזהה הלקוח מהקטע פרטי הארגון ושומרים אותו.
התקנת הסוכן של Bindplane
מתקינים את הסוכן של Bindplane במערכת ההפעלה Windows לפי ההוראות הבאות.
התקנת חלונות
- פותחים את שורת הפקודה או את PowerShell כאדמין.
מריצים את הפקודה הבאה:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietמחכים שההתקנה תסתיים.
מאמתים את ההתקנה על ידי הרצת:
sc query observiq-otel-collector
השירות אמור להופיע כ-RUNNING.
מקורות מידע נוספים להתקנה
לאפשרויות התקנה נוספות ולפתרון בעיות, קראו את מדריך ההתקנה של סוכן Bindplane.
הגדרת סוכן Bindplane להטמעת יומנים ושליחה שלהם ל-Google SecOps
איתור קובץ התצורה
Windows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
עריכת קובץ התצורה
מחליפים את כל התוכן של
config.yamlבהגדרות הבאות:receivers: filelog: include: - C:\Windows\system32\LogFiles\Firewall\pfirewall.log start_at: beginning exporters: chronicle/windows_firewall: protocol: https # Region of your instance, for example us, europe, asia-southeast1 location: <LOCATION> # Project number of the Google Cloud project linked to the instance project: '<PROJECT_NUMBER>' compression: gzip creds_file_path: 'C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json' customer_id: '<customer_id>' endpoint: chronicle.googleapis.com log_type: WINDOWS_FIREWALL raw_log_field: body ingestion_labels: env: production service: pipelines: logs/firewall_to_chronicle: receivers: - filelog exporters: - chronicle/windows_firewall
פרמטרים להגדרה
מחליפים את ה-placeholders הבאים:
הגדרת מקלט:
filelog: סוג המקלט לאיסוף קובצי יומן מהדיסק-
include: רשימה של נתיבי קבצים למעקב. מיקום ברירת המחדל של יומן חומת האש של Windows:C:\Windows\system32\LogFiles\Firewall\pfirewall.log
-
start_at: הערךbeginningמאפשר לקרוא יומנים קיימים, והערךendמאפשר לקרוא רק רשומות חדשות
הגדרת כלי הייצוא:
-
windows_firewall: שם תיאורי של המייצא -
creds_file_path: הנתיב המלא לקובץ המפתח של חשבון השירות בפורמט JSON (אפשרות 1):- Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Windows:
-
<customer_id>: מספר הלקוח מהשלב הקודם -
location: מחליפים את<LOCATION>באזור של המכונה של Google SecOps (לדוגמה,us,europeאוasia-southeast1). המייצא מוסיף את הערך הזה בתחילתchronicle.googleapis.com. רשימה מלאה של נקודות הקצה האזוריות מופיעה במאמר Regional Endpoints. -
project: מחליפים את<PROJECT_NUMBER>במספר הפרויקט מתוך IAM & Admin > Settings. -
endpoint: משאירים את הערךchronicle.googleapis.com. -
WINDOWS_FIREWALL: סוג היומן בדיוק כמו שהוא מופיע ב-Chronicle -
ingestion_labels: תוויות אופציונליות בפורמט YAML (לדוגמה,env: production)
-
הגדרת צינור עיבוד הנתונים:
-
firewall_to_chronicle: שם תיאורי לצינור עיבוד הנתונים
-
כלי לייצוא נתונים מ-Legacy ingestion API
אם אתם משתמשים בקובץ האימות להטמעת נתונים מאפשרות 2, החליפו את הבלוק
exportersבקוד הבא. מגדירים אתcreds_file_pathלנתיב לקובץ האימות של ההעברה, ואם המופע שלכם נמצא מחוץ לארה"ב, מחליפים אתmalachiteingestion-pa.googleapis.comבנקודת הקצה האזורית (לדוגמה,europe-malachiteingestion-pa.googleapis.com).exporters: chronicle/windows_firewall: compression: gzip creds_file_path: 'C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: WINDOWS_FIREWALL raw_log_field: body ingestion_labels: env: production
שמירת קובץ התצורה
- אחרי שמסיימים לערוך, שומרים את הקובץ:
- Windows: לוחצים על קובץ > שמירה.
מפעילים מחדש את סוכן Bindplane כדי להחיל את השינויים.
כדי להפעיל מחדש את סוכן 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"
הגדרת רישום ביומן של חומת האש של Windows
- פותחים את חומת האש של Windows Defender עם אבטחה מתקדמת על ידי הקשה על
Win+R, הקלדה שלwf.mscוהקשה על Enter. - בחלונית הימנית, לוחצים לחיצה ימנית על Windows Defender Firewall with Advanced Security on Local Computer (חומת האש של Windows Defender עם אבטחה מתקדמת במחשב המקומי) ובוחרים באפשרות Properties (מאפיינים).
- בוחרים את הכרטיסייה המתאימה של הפרופיל (פרופיל דומיין, פרופיל פרטי או פרופיל גלוי לכולם).
- בקטע רישום ביומן, לוחצים על התאמה אישית.
- מספקים את פרטי ההגדרה הבאים:
- Log dropped packets: בוחרים באפשרות Yes.
- רישום ביומן של חיבורים מוצלחים: בוחרים באפשרות כן.
- שם: מוודאים שהנתיב של קובץ היומן הוא
%systemroot%\system32\LogFiles\Firewall\pfirewall.log(ברירת המחדל). - מגבלת גודל (KB): מגדירים לפחות
4096כדי לתעד מספיק נתוני יומן.
- לוחצים על אישור כדי לשמור את הגדרות הרישום ביומן.
- חוזרים על שלבים 3 עד 6 בכל כרטיסיית פרופיל (דומיין, פרטי, ציבורי) לפי הצורך.
- מוודאים שקובץ היומן נכתב בנתיב
C:\Windows\system32\LogFiles\Firewall\pfirewall.log. מוודאים שהנתיב של סוכן Bindplane
includeב-config.yamlתואם לנתיב של קובץ היומן של חומת האש.
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | היגיון |
|---|---|---|
| tcpflags, tcpsyn, tcpack, tcpwin, icmptype, icmpcode | about.labels | ממוזגים כצמדי מפתח/ערך אם השדה != "-" |
| חותמת זמן | metadata.event_timestamp | הניתוח מתבצע באמצעות הפורמט yyyy-MM-dd HH:mm:ss |
| metadata.event_type | צריך להגדיר את הערך "NETWORK_CONNECTION" | |
| כיוון | network.direction | הערך הוא OUTBOUND אם הכיוון הוא SEND או FORWARD, והערך הוא INBOUND אם הכיוון הוא RECEIVE |
| פרוטוקול | network.ip_protocol | הערך מועתק ישירות אם הפרוטוקול הוא אחד מהפרוטוקולים הבאים: ['TCP', 'UDP', 'ICMP'] |
| size | network.received_bytes | מומר ל-uinteger אם direction == "RECEIVE" ו-size != "-" |
| size | network.sent_bytes | מומר ל-uinteger אם הכיוון הוא ["SEND", "FORWARD"] והגודל הוא לא "-" |
| src_ip | principal.ip | הערך הועתק ישירות |
| src_port | principal.port | מומר למספר שלם אם src_port != "-" |
| פעולה | security_result.action | ההגדרה היא BLOCK אם הפעולה היא DROP, ו-ALLOW אם הפעולה היא ALLOW |
| מידע | security_result.summary | הערך מועתק ישירות אם info != "-" |
| dst_ip | target.ip | הערך הועתק ישירות |
| dst_port | target.port | מומר למספר שלם אם dst_port != "-" |
| metadata.product_name | מגדירים את "חומת האש של Windows" | |
| metadata.vendor_name | מגדירים את האפשרות Microsoft. |
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.