איסוף יומנים של Microsoft LAPS

נתמך ב:

במסמך הזה מוסבר איך להטמיע יומנים של Microsoft Windows LAPS (פתרון סיסמאות של אדמין מקומי) ב-Google Security Operations באמצעות סוכן Bindplane.

‫Windows LAPS מנהל סיסמאות של חשבונות אדמין מקומיים במכשירים שמצורפים לדומיין, ומפיק רשומות ביומן האירועים לגבי רוטציה של סיסמאות, עיבוד מדיניות ופעולות ניהול. המנתח מחלץ שדות מפורמט XML של יומן האירועים של Windows וממפה אותם למודל הנתונים המאוחד (UDM).

לפני שמתחילים

חשוב לוודא שיש לכם את הדברים הבאים:

  • מכונה של Google SecOps
  • ‫Windows Server 2016 ואילך עם סוכן Bindplane מותקן
  • אם השרת פועל מאחורי שרת proxy, צריך לוודא שהיציאות של חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane.
  • ‫Windows LAPS מוגדר ומוטמע בסביבה שלכם

קבלת פרטי כניסה ל-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 (ניהול הרשאות גישה (IAM) & אדמין > חשבונות שירות).
  3. לוחצים על Create service account.
  4. מספקים את פרטי ההגדרה הבאים:
    • Service account name: מזינים שם לחשבון (לדוגמה, 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 (ניהול הרשאות גישה ואדמין > הגדרות) ומעתיקים את מספר הפרויקט. תצטרכו אותו כדי להגדיר את כלי הייצוא.

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

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

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

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

התקנת סוכן Bindplane

  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 להטמעה של יומן האירועים של Windows ושליחה אל Google SecOps

איתור קובץ התצורה

  • כדי לאתר את קובץ התצורה, משתמשים בתחביר הבא:

      notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

עריכת קובץ התצורה

  • מחליפים את כל התוכן של config.yaml בהגדרות הבאות:

    receivers:
      windowseventlog/laps_operational:
        channel: Microsoft-Windows-LAPS/Operational
        max_reads: 100
        poll_interval: 5s
        raw: true
        start_at: end
    
    processors:
      batch:
    
    exporters:
      chronicle/laps:
        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_LAPS
        override_log_type: false
        raw_log_field: body
    
    service:
      pipelines:
        logs/laps:
          receivers:
            - windowseventlog/laps_operational
          processors: [batch]
          exporters: [chronicle/laps]
    

פרמטרים להגדרה

מחליפים את ה-placeholders הבאים:

  • הגדרת מקלט:

    • ‫channel: ערוץ יומן האירועים של Windows לקריאה (Microsoft-Windows-LAPS/Operational)
    • ‫max_reads: המספר המקסימלי של רשומות ביומן לקריאה בכל מחזור סקר
    • ‫poll_interval: התדירות של בדיקת אירועים חדשים
    • ‫start_at: המקום שבו מתחילים לקרוא (end לאירועים חדשים בלבד)
  • הגדרת הייצוא:

    • ‫creds_file_path: הנתיב המלא לקובץ מפתח ה-JSON של חשבון השירות (אפשרות 1) (C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json)
    • ‫customer_id: מספר הלקוח שהועתק ממסוף Google SecOps
    • ‫location: מחליפים את <LOCATION> באזור של מופע Google SecOps (לדוגמה, us,‏ europe או asia-southeast1). ערך זה מתווסף לתחילית chronicle.googleapis.com של הכלי לייצוא. רשימה מלאה של נקודות הקצה האזוריות מופיעה במאמר Regional Endpoints.
    • ‫project: מחליפים את <PROJECT_NUMBER> במספר הפרויקט מתוך IAM & Admin > Settings.
    • ‫endpoint: צריך להשאיר את ההגדרה chronicle.googleapis.com.

מייצא API להטמעה מדור קודם

  • אם אתם משתמשים בקובץ האימות להטמעת נתונים מאפשרות 2, החליפו את הבלוק exporters בקוד הבא. מגדירים את creds_file_path לנתיב של קובץ האימות להטמעת נתונים. אם המכונה נמצאת מחוץ לארה"ב, מחליפים את malachiteingestion-pa.googleapis.com בנקודת הקצה האזורית (לדוגמה, europe-malachiteingestion-pa.googleapis.com).

    exporters:
      chronicle/laps:
        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_LAPS
        override_log_type: false
        raw_log_field: body
    

שמירת קובץ התצורה

לוחצים על קובץ > שמירה.

מפעילים מחדש את הסוכן של Bindplane כדי להחיל את השינויים.

  • שורת הפקודה או PowerShell כאדמין:

    net stop observiq-otel-collector && net start observiq-otel-collector
    
  • מסוף השירותים:

    1. לוחצים על Win+R, מקלידים services.msc ולוחצים על Enter.
    2. מחפשים את observIQ OpenTelemetry Collector.
    3. לוחצים לחיצה ימנית ובוחרים באפשרות הפעלה מחדש.

    4. מוודאים שהשירות פועל:

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

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

הגדרת Microsoft Windows LAPS

  1. מקלידים eventvwr.msc בשורת הפקודה עם הרשאות ניהול ולוחצים על ENTER כדי לפתוח את מציג האירועים.
  2. עוברים אל Applications and Services Logs > Microsoft > Windows > LAPS.
  3. מרחיבים את LAPS.
  4. לוחצים לחיצה ימנית על LAPS ואז על Properties (מאפיינים).
  5. מסמנים את התיבה הפעלת רישום ביומן.
  6. כשמוצגת השאלה אם היומן מופעל, לוחצים על אישור.
  7. לוחצים על OK.

טבלת מיפוי UDM

שדה ביומן מיפוי UDM היגיון
ערוץ read_only_udm.additional.fields.key הערך נלקח מהשדה Channel ביומן הגולמי ומוקצה לשדה key.
ערוץ read_only_udm.additional.fields.value.string_value הערך נלקח מהשדה Channel ביומן הגולמי ומוקצה לשדה string_value.
מחשב read_only_udm.principal.hostname הערך נלקח מהשדה Computer ביומן הגולמי.
מחשב read_only_udm.principal.asset.hostname הערך נלקח מהשדה Computer ביומן הגולמי.
EventData.%1 read_only_udm.additional.fields.value.string_value הערך נלקח מהשדה EventData.%1 ביומן הגולמי ומוקצה לשדה string_value.
EventId read_only_udm.metadata.product_event_type הערך נלקח מהשדה EventId ביומן הגולמי.
EventId read_only_udm.security_result.rule_name הערך נלקח מהשדה EventId ביומן הגולמי ומצורף אל EventID:.
EventRecordID read_only_udm.metadata.product_log_id הערך נלקח מהשדה EventRecordID ביומן הגולמי.
מילות מפתח read_only_udm.additional.fields.key הערך נלקח מהשדה Keywords ביומן הגולמי ומוקצה לשדה key.
מילות מפתח read_only_udm.additional.fields.value.string_value הערך נלקח מהשדה Keywords ביומן הגולמי ומוקצה לשדה string_value.
רמה read_only_udm.security_result.severity הערך נלקח מהשדה Level ביומן הגולמי וממופה אל: INFORMATIONAL עבור INFO, Informational, Information, Normal, NOTICE; ERROR עבור ERROR, Error; CRITICAL עבור Critical.
קוד פעולה read_only_udm.additional.fields.key הערך נלקח מהשדה Opcode ביומן הגולמי ומוקצה לשדה key.
קוד אופרציה read_only_udm.additional.fields.value.string_value הערך נלקח מהשדה Opcode ביומן הגולמי ומוקצה לשדה string_value.
ProcessID read_only_udm.principal.process.pid הערך נלקח מהשדה ProcessID ביומן הגולמי.
ProviderName read_only_udm.metadata.product_name הערך נלקח מהשדה ProviderName ביומן הגולמי.
משימה read_only_udm.additional.fields.key הערך נלקח מהשדה Task ביומן הגולמי ומוקצה לשדה key.
משימה read_only_udm.additional.fields.value.string_value הערך נלקח מהשדה Task ביומן הגולמי ומוקצה לשדה string_value.
ThreadID read_only_udm.additional.fields.key הערך נלקח מהשדה ThreadID ביומן הגולמי ומוקצה לשדה key.
ThreadID read_only_udm.additional.fields.value.string_value הערך נלקח מהשדה ThreadID ביומן הגולמי ומוקצה לשדה string_value.
TimeCreated read_only_udm.metadata.event_timestamp הערך נלקח מהשדה TimeCreated ביומן הגולמי, ומנותח כחותמת זמן של UNIX_MS.
TimeCreated events.timestamp הערך נלקח מהשדה TimeCreated ביומן הגולמי, ומנותח כחותמת זמן של UNIX_MS.
גרסה read_only_udm.additional.fields.key הערך נלקח מהשדה Version ביומן הגולמי ומוקצה לשדה key.
גרסה read_only_udm.additional.fields.value.string_value הערך נלקח מהשדה Version ביומן הגולמי ומוקצה לשדה string_value.
read_only_udm.additional.fields.key הוקצה הערך EventData_P1.
read_only_udm.metadata.event_type מוקצה STATUS_UNCATEGORIZED באופן מותנה אם EventId הוא 7 או 2, אחרת GENERIC_EVENT.
read_only_udm.metadata.vendor_name הערך Microsoft הוקצה.

יומן שינויים

צפייה ביומן השינויים של המנתח הזה

הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.