איסוף יומנים של Citrix StoreFront

גרסת המנתח: 1.0

נתמך ב:

במסמך הזה מוסבר איך להטמיע יומנים של Citrix StoreFront ב-Google Security Operations באמצעות Bindplane.

‫Citrix StoreFront היא אפליקציית אינטרנט שמספקת חנות אפליקציות ארגונית לאפליקציות ולמחשבים וירטואליים של Citrix. הוא מאמת משתמשים באתרים של Citrix Virtual Apps and Desktops ומרכז את המשאבים הזמינים בפורטל אחד. ‫StoreFront כותב אירועי אימות, הפעלת סשן ושירות ביומן האירועים של Windows, במקורות אירועים עם הקידומת Citrix.

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

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

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

קבלת פרטי כניסה ל-Google SecOps בשביל סוכן Bindplane

כדי לאמת את סוכן Bindplane ב-Google SecOps, בוחרים באחת מהשיטות הבאות:

  • פריסות חדשות: משתמשים ב-Chronicle API (אפשרות 1).
  • פריסות קודמות: ממשיכים להשתמש בקובץ האימות להטמעת נתונים (אפשרות 2) עד שה-Ingestion API יופסק ב-20 ביולי 2027.
  1. נכנסים למסוףGoogle Cloud ובוחרים את הפרויקט ב- Google Cloud שמקושר למכונה של Google SecOps.
  2. נכנסים לדף IAM & Admin > Service Accounts.
  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 בספריית Bindplane collector (/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 בלבד, עוברים אל הגדרות > פרופיל.
  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 להטמעת יומני אירועים של Windows ושליחה אל Google SecOps

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

  1. פותחים את שורת הפקודה כאדמין.
  2. עוברים לספריית ההתקנה של סוכן Bindplane ופותחים את קובץ התצורה:

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

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

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

    receivers:
      windowseventlog/storefront_application:
        channel: Application
        raw: true
        start_at: end
        operators:
          - type: filter
            expr: 'record["source_name"] matches "^Citrix"'
    
    processors:
      batch:
    
    exporters:
      chronicle/storefront:
        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: '{
          "type": "service_account",
          "project_id": "YOUR_PROJECT_ID",
          "private_key_id": "YOUR_PRIVATE_KEY_ID",
          "private_key": "-----BEGIN PRIVATE KEY-----\nYOUR_PRIVATE_KEY\n-----END PRIVATE KEY-----\n",
          "client_email": "YOUR_CLIENT_EMAIL",
          "client_id": "YOUR_CLIENT_ID",
          "auth_uri": "https://accounts.google.com/o/oauth2/auth",
          "token_uri": "https://oauth2.googleapis.com/token",
          "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
          "client_x509_cert_url": "YOUR_CERT_URL"
        }'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: chronicle.googleapis.com
        log_type: 'CITRIX_STOREFRONT'
        override_log_type: false
        raw_log_field: body
    
    service:
      pipelines:
        logs/storefront:
          receivers:
            - windowseventlog/storefront_application
          processors:
            - batch
          exporters:
            - chronicle/storefront
    

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

מחליפים את ה-placeholders הבאים בערכים בפועל:

  • הגדרת הייצוא:

    • ‫YOUR_PROJECT_ID: מזהה הפרויקט מקובץ האימות להטמעת נתונים
    • ‫YOUR_PRIVATE_KEY_ID: מזהה המפתח הפרטי מקובץ האימות להטמעת נתונים
    • ‫YOUR_PRIVATE_KEY: המפתח הפרטי מקובץ האימות להטמעת נתונים (חשוב לוודא שהתווים המיוחדים של שורות חדשות תקינים)
    • ‫YOUR_CLIENT_EMAIL: כתובת האימייל של הלקוח מקובץ האימות להטמעת נתונים
    • ‫YOUR_CLIENT_ID: מזהה הלקוח מקובץ האימות להטמעת נתונים
    • ‫YOUR_CERT_URL: כתובת ה-URL של אישור x509 של הלקוח מקובץ האימות להטמעת נתונים
    • ‫YOUR_CUSTOMER_ID: מספר הלקוח ב-Google SecOps
  • מחליפים את <LOCATION> באזור של המופע של Google SecOps (לדוגמה, us,‏ europe או asia-southeast1). המערכת מוסיפה את הערך הזה בתחילת chronicle.googleapis.com. לרשימה המלאה, ראו נקודות קצה אזוריות.

  • מחליפים את <PROJECT_NUMBER> במספר הפרויקט שמופיע בקטע IAM & Admin > Settings.

  • דוגמה:

    exporters:
      chronicle/storefront:
        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: 'YOUR_CUSTOMER_ID'
        endpoint: chronicle.googleapis.com
        log_type: 'CITRIX_STOREFRONT'
        override_log_type: false
        raw_log_field: body
    

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

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

    exporters:
      chronicle/storefront:
        compression: gzip
        creds_file_path: 'C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: 'CITRIX_STOREFRONT'
        override_log_type: false
        raw_log_field: body
    

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

  • אחרי שמסיימים לערוך, שומרים את הקובץ:
    • לוחצים על קובץ > שמירה.
    • סגירת Notepad

מפעילים מחדש את הסוכן של 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"
    

הגדרת רישום ביומן של אירועים ב-Citrix StoreFront

כברירת מחדל, ב-StoreFront בגרסה 2311 ואילך נרשמות הודעות ברמות Error,‏ Warning ו-Info. בגרסאות קודמות (2308 ומטה), כברירת מחדל נרשמות רק הודעות ברמת Error.

הפעלת רישום מפורט (verbose) ביומן (אופציונלי)

כדי להגדיל את רמת הפירוט של הרישום ביומן לצורך פתרון בעיות:

  1. נכנסים לשרת StoreFront עם הרשאות אדמין מקומיות.
  2. פותחים את PowerShell כאדמין.
  3. מריצים את הפקודה הבאה כדי להפעיל רישום מפורט ביומן לכל השירותים:

    Set-STFDiagnostics -All -TraceLevel "Verbose" -confirm:$False
    
  4. אחרי פתרון הבעיות, מחזירים את רמת הרישום ביומן לברירת המחדל:

    Set-STFDiagnostics -All -TraceLevel "Info" -confirm:$False
    

אימות אירועים ביומן האירועים של Windows

  1. מקישים על Win+R, מקלידים eventvwr.msc ומקישים על Enter כדי לפתוח את מציג האירועים.
  2. עוברים אל Application and Services Logs > Citrix Delivery Services.
  3. מוודאים שהאירועים מתועדים ביומן לאימות, לחנויות ולאתרים של Receiver for Web.
  4. עוברים אל Windows Logs > Application.
  5. מסננים אירועים לפי שמות מקור שמתחילים ב-Citrix כדי לוודא שנוצרים אירועים ברמת האפליקציה.

הגדרת ויסות קצב של יומן האירועים (אופציונלי)

ב-StoreFront יש תמיכה בהגבלת קצב של יומן האירועים כדי להגביל את מספר האירועים הכפולים. כדי להגדיר ויסות נתונים:

  1. עוברים לספריות של הגדרות השירות של StoreFront בשרת:
    • שירות האימות: C:\inetpub\wwwroot\Citrix\Authentication
    • חנות: C:\inetpub\wwwroot\Citrix\<storename>
    • אתר Receiver for Web: ‏C:\inetpub\wwwroot\Citrix\<storename>\Web
  2. פותחים את הקובץ web.config בכל ספרייה באמצעות כלי לעריכת טקסט.
  3. מאתרים את הרכיב logger ומגדירים את הפרמטרים של ויסות הנתונים:

    <logger duplicateInterval="00:01:00" duplicateLimit="10">
    
    • ‫duplicateInterval: פרק הזמן (שעות:דקות:שניות) שבו מתבצע מעקב אחרי רשומות כפולות ביומן
    • ‫duplicateLimit: מספר הרשומות הכפולות שצריך לתעד במרווח הזמן כדי להפעיל את ההגבלה
  4. שומרים את קובצי התצורה.

מידע נוסף זמין במסמכי התיעוד של קובצי היומן של Citrix StoreFront.

טבלת מיפוי UDM

שדה ביומן מיפוי UDM Logic (פונקציה לוגית)
OpcodeValue_label additional.fields ממוזג
Opcode_label additional.fields ממוזג
ThreadID_label additional.fields ממוזג
X-Citrix-Via_label additional.fields ממוזג
XCitrixGateway_label additional.fields ממוזג
keyword_label additional.fields ממוזג
_vulns extensions.vulns.vulnerabilities ממוזג
_intermediary intermediary ממוזג
_intermediary_controller intermediary ממוזג
_intermediary_hypervisor intermediary ממוזג
_intermediary_storefront intermediary ממוזג
description metadata.description מיפוי ישיר
EventTime metadata.event_timestamp נותח בתור RFC 3339
Machine.CreatedDate metadata.event_timestamp נותח בתור RFC 3339
Machine.LastDeregisteredDate metadata.event_timestamp נותח בתור RFC 3339
Machine.ModifiedDate metadata.event_timestamp נותח בתור RFC 3339
Machine.PoweredOnDate metadata.event_timestamp נותח בתור RFC 3339
Machine.RegistrationStateChangeDate metadata.event_timestamp נותח בתור RFC 3339
Session.EndDate metadata.event_timestamp נותח בתור RFC 3339
Session.StartDate metadata.event_timestamp נותח בתור RFC 3339
event_date metadata.event_timestamp נותח בתור RFC 3339
has_principal metadata.event_type מופה: true ← NETWORK_CONNECTION, true ← STATUS_UPDATE
EventID metadata.product_event_type מיפוי ישיר
RecordNumber metadata.product_log_id מיפוי ישיר
Machine.AgentVersion metadata.product_version שינוי שם/מיפוי
_network network שינוי שם/מיפוי
_principal principal שינוי שם/מיפוי
Channel_label security_result.about.resource.attribute.labels ממוזג
severity security_result.severity מופו: (?i)Info ← INFORMATIONAL, (?i)Error ← ERROR, (?i)Warning ← MEDIUM
SeverityValue security_result.severity_details מיפוי ישיר
Connection.ConnectedViaHostName src.hostname מיפוי ישיר
_target target שינוי שם/מיפוי
לא רלוונטי extensions.auth.auth_details קבוע: ACTIVE
לא רלוונטי extensions.auth.type קבוע: MACHINE
לא רלוונטי metadata.event_type קבוע: GENERIC_EVENT
לא רלוונטי metadata.product_name קבוע: Monitor Service OData
לא רלוונטי metadata.vendor_name קבוע: Citrix
לא רלוונטי security_result.severity קבוע: INFORMATIONAL
OpcodeValue","X-Citrix-Via","ThreadID","XCitrixGateway","Opcode","Keywords", "OpcodeValue additional.fields מופה מיומן השינויים
X-Citrix-Via-VIP _target.ip מופה מיומן השינויים
Remoteadresse taregt.ip מופה מיומן השינויים
invalid_X-Forwarded-For _principal.ip מופה מיומן השינויים
Task _target.resource.type מופה מיומן השינויים
Hostname _principal.hostname מופה מיומן השינויים
SourceModuleName target.resource.name מופה מיומן השינויים
SourceModuleType _principal.resource.attribute.labels מופה מיומן השינויים
Machine.AssociatedUserUPNs target.group.email_addresses מופה מיומן השינויים

יומן שינויים

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

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