איסוף יומנים של חומת האש של 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. נכנסים למסוףGoogle Cloud ובוחרים את הפרויקט ב- Google Cloud שמקושר למכונה של Google SecOps.
  2. נכנסים לדף IAM & Admin > Service Accounts.
  3. לוחצים על Create service account.
  4. מספקים את פרטי ההגדרה הבאים:
    • שם חשבון השירות: מזינים שם לחשבון (לדוגמה, bindplane-ingest).
    • Service account description: מזינים תיאור (לדוגמה, Bindplane agent log ingestion).
  5. לוחצים על Create and continue.
  6. בקטע Grant this service account access to project, לוחצים על Select a role ובוחרים באפשרות Chronicle Editor.
  7. לוחצים על המשך ואז על סיום.
  8. לוחצים על חשבון השירות שיצרתם ואז עוברים לכרטיסייה Keys.
  9. לוחצים על Add key > Create new key.
  10. בוחרים באפשרות JSON ולוחצים על Create. קובץ המפתח יורד למחשב.
  11. שומרים את קובץ המפתח בתור 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 כך שיתאים לנתיב שבו שמרתם אותו.
  12. עוברים אל IAM & Admin > Settings ומעתיקים את הערך של Project number. תצטרכו אותו כדי להגדיר את כלי הייצוא.

אפשרות 2: הורדה של קובץ האימות להטמעת נתונים (מדור קודם)

  1. נכנסים למסוף Google SecOps.
  2. עוברים אל הגדרות SIEM > סוכני איסוף.
  3. מורידים את קובץ האימות להטמעת נתונים.
  4. שומרים את הקובץ בצורה מאובטחת במערכת שבה יותקן הסוכן של Bindplane.

איך מקבלים את מספר הלקוח ב-Google SecOps

  1. נכנסים למסוף Google SecOps.
  2. עוברים אל SIEM Settings > Profile.
  3. מעתיקים את מזהה הלקוח מהקטע פרטי הארגון ושומרים אותו.

התקנת הסוכן של Bindplane

מתקינים את הסוכן של Bindplane במערכת ההפעלה Windows לפי ההוראות הבאות.

התקנת חלונות

  1. פותחים את שורת הפקודה או את PowerShell כאדמין.
  2. מריצים את הפקודה הבאה:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. מחכים שההתקנה תסתיים.

  4. מאמתים את ההתקנה על ידי הרצת:

    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
    • ‫<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:

  1. בוחרים אחת מהאפשרויות האלה:

    • שורת הפקודה או PowerShell כאדמין:
    net stop observiq-otel-collector && net start observiq-otel-collector
    
    • מסוף השירותים:
      1. לוחצים על Win+R, מקלידים services.msc ולוחצים על Enter.
      2. מאתרים את observIQ OpenTelemetry Collector.
      3. לוחצים לחיצה ימנית ובוחרים באפשרות הפעלה מחדש.
  2. מוודאים שהשירות פועל:

    sc query observiq-otel-collector
    
  3. בודקים אם יש שגיאות ביומנים:

    type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
    

הגדרת רישום ביומן של חומת האש של Windows

  1. פותחים את חומת האש של Windows Defender עם אבטחה מתקדמת על ידי הקשה על Win+R, הקלדה של wf.msc והקשה על Enter.
  2. בחלונית הימנית, לוחצים לחיצה ימנית על Windows Defender Firewall with Advanced Security on Local Computer (חומת האש של Windows Defender עם אבטחה מתקדמת במחשב המקומי) ובוחרים באפשרות Properties (מאפיינים).
  3. בוחרים את הכרטיסייה המתאימה של הפרופיל (פרופיל דומיין, פרופיל פרטי או פרופיל גלוי לכולם).
  4. בקטע רישום ביומן, לוחצים על התאמה אישית.
  5. מספקים את פרטי ההגדרה הבאים:
    • Log dropped packets: בוחרים באפשרות Yes.
    • רישום ביומן של חיבורים מוצלחים: בוחרים באפשרות כן.
    • שם: מוודאים שהנתיב של קובץ היומן הוא %systemroot%\system32\LogFiles\Firewall\pfirewall.log (ברירת המחדל).
    • מגבלת גודל (KB): מגדירים לפחות 4096 כדי לתעד מספיק נתוני יומן.
  6. לוחצים על אישור כדי לשמור את הגדרות הרישום ביומן.
  7. חוזרים על שלבים 3 עד 6 בכל כרטיסיית פרופיל (דומיין, פרטי, ציבורי) לפי הצורך.
  8. מוודאים שקובץ היומן נכתב בנתיב C:\Windows\system32\LogFiles\Firewall\pfirewall.log.
  9. מוודאים שהנתיב של סוכן 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.