איסוף יומנים של Delinea Distributed Engine

גרסת המנתח: 1.0

נתמך ב:

במסמך הזה מוסבר איך להטמיע יומנים של Delinea Distributed Engine ב-Google Security Operations באמצעות סוכן Bindplane.

‫Delinea Distributed Engine מספק קישוריות מאובטחת בין פלטפורמת הענן של Delinea לבין משאבים מקומיים. המנוע יוצר הודעות syslog בפורמט CEF לגבי אירועים שקשורים לגילוי, לסנכרון ולתפעול. המנתח מחלץ שדות וממפה אותם למודל הנתונים המאוחד (UDM).

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

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

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

קבלת פרטי כניסה ל-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. לוחצים על יצירת חשבון שירות.
  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 בספריית 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 Settings > Profile.
  3. מעתיקים את מספר הלקוח מהקטע פרטי הארגון ושומרים אותו.

התקנת סוכן Bindplane

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

התקנת חלונות

  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.

התקנה ב-Linux

  1. פותחים טרמינל עם הרשאות root או sudo.
  2. מריצים את הפקודה הבאה:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. מחכים שההתקנה תסתיים.

  4. כדי לוודא שההתקנה בוצעה, מריצים את הפקודה:

    sudo systemctl status observiq-otel-collector
    

    השירות צריך להופיע כפעיל (פועל).

מקורות מידע נוספים להתקנה

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

הגדרת סוכן Bindplane להטמעת syslog ושליחה אל Google SecOps

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

  • ‫Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows:

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

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

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

    receivers:
      tcplog:
        listen_address: "0.0.0.0:5145"
    
    exporters:
      chronicle/delinea_distributed_engine:
        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: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: chronicle.googleapis.com
        log_type: DELINEA_DISTRIBUTED_ENGINE
        raw_log_field: body
    
    service:
      pipelines:
        logs/delinea_distributed_engine_to_chronicle:
          receivers:
            - tcplog
          exporters:
            - chronicle/delinea_distributed_engine
    

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

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

  • הגדרת מקלט:

    • ‫listen_address: כתובת ה-IP והיציאה להאזנה:
      • 0.0.0.0 כדי להאזין בכל הממשקים (מומלץ)
      • יציאה 5145 היא יציאת ה-syslog שהוגדרה (צריך לשנות לפי הצורך)
  • הגדרת כלי הייצוא:

    • ‫creds_file_path: הנתיב המלא לקובץ מפתח JSON של חשבון השירות (אפשרות 1):
      • ‫Linux: /opt/observiq-otel-collector/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • ‫customer_id: מספר הלקוח שהועתק ממסוף Google SecOps
    • ‫location: מחליפים את <LOCATION> באזור של המכונה של Google SecOps (לדוגמה, us,‏ europe או asia-southeast1). המייצא מוסיף את הערך הזה בתחילת chronicle.googleapis.com. לרשימה המלאה, ראו נקודות קצה אזוריות.
    • ‫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/delinea_distributed_engine:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: DELINEA_DISTRIBUTED_ENGINE
        raw_log_field: body
    

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

  • אחרי שמסיימים לערוך, שומרים את הקובץ:
    • Linux: מקישים על Ctrl+O, אחר כך על Enter ואז על Ctrl+X
    • ‫Windows: לוחצים על קובץ > שמירה.

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

  • כדי להפעיל מחדש את הסוכן של Bindplane ב-Linux, מריצים את הפקודה הבאה:

    sudo systemctl restart observiq-otel-collector
    
    1. מוודאים שהשירות פועל:

      sudo systemctl status observiq-otel-collector
      
    2. בודקים אם יש שגיאות ביומנים:

      sudo journalctl -u observiq-otel-collector -f
      
  • כדי להפעיל מחדש את סוכן Bindplane ב-Windows, בוחרים באחת מהאפשרויות הבאות:

    • שורת פקודה או 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"
        

הגדרת syslog של Delinea

  1. נכנסים לממשק המשתמש של פורטל Delinea באינטרנט.
  2. עוברים אל Admin > Application.
  3. לוחצים על הלחצן עריכה.
  4. מסמנים את התיבה הפעלה של פלט יומן Syslog/CEF. מוצג הקטע Syslog.
  5. מזינים את כתובת ה-IP של סוכן Bindplane.
  6. מזינים את מספר היציאה של סוכן Bindplane.
  7. לוחצים על התפריט פרוטוקול ובוחרים באפשרות TCP.
  8. לוחצים כדי לבחור באפשרות Time Zone list to UTC Time (רשימת אזורי זמן לפי זמן UTC) או Server Time (זמן השרת), בהתאם להעדפה שלכם.
  9. לוחצים על התפריט אתר כדי לבחור את האתר הרלוונטי שבו יפעל Syslog/CEF.
  10. (אופציונלי) בוחרים באפשרות Write Syslogs As Windows Events (כתיבת Syslog כאירועי Windows) כדי לכתוב ביקורות ומינויים לאירועים ביומן האירועים של Windows.
  11. לוחצים על Save.

הגדרת רמת היומן למנועים מבוזרים

  1. נכנסים לממשק המשתמש של פורטל Delinea באינטרנט.
  2. עוברים אל Admin > Distributed Engine.
  3. לוחצים על סמל שלוש הנקודות מעל המנוע הרלוונטי ובוחרים באפשרות הצגת ההגדרות.
  4. בתפריט Log Level, בוחרים באפשרות Info.
  5. לוחצים על OK.

יומנים לדוגמה של Delinea Distributed Engine שנתמכים

  • ‫SYSLOG (פורמט קנייני של Delinea)

    2024-09-26 21:14:27,369 [CID:] [C:] [TID:PriorityScheduler Elastic Thread @ Normal] INFO Thycotic.DE.Feature.SS.LocalAccountDiscovery.Areas.Discovery.LocalAccountConsumer - server-dummy-01: Send Local Account Results Count: 0 - (null)
    

טבלת מיפוי UDM

שדה ביומן מיפוי UDM היגיון
ACTION security_result.action אם הערך של ACTION_CODE הוא "1", מגדירים אותו כ-"ALLOW". אחרת, אם ACTION_CODE לא ריק, הערך הוא BLOCK. אחרת, ברירת המחדל היא "UNKNOWN_ACTION" משלב מוקדם יותר במנתח.
ACTION_CODE security_result.action הערך הזה משמש בלוגיקה לקביעת הערך של security_result.action.
APP_NAME network.http.user_agent ממופים ישירות.
BYTES_RECVD network.received_bytes ממופה ישירות, מומר למספר שלם ללא סימן.
BYTES_SENT network.sent_bytes מופה ישירות, הומר למספר שלם לא חתום.
CLOUDGENIX_HOST principal.hostname מיפוי ישיר אם השדה NAME ריק. משמש כשם מארח מתווך אם NAME קיים.
CODE metadata.product_event_type הוצמד ל-FACILITY כדי ליצור את metadata.product_event_type. הפרמטר משמש גם לקביעת metadata.event_type (לדוגמה, אם CODE מכיל את הערך DOWN,‏ metadata.event_type מוגדר כ-STATUS_SHUTDOWN).
DESTINATION_ZONE_NAME about.labels ממופה ישירות כתווית עם המפתח "DESTINATION_ZONE_NAME".
DEVICE_TIME metadata.event_timestamp ממופה ישירות אחרי ניתוח כערך תאריך.
DST_INTERFACE target.hostname ממופים ישירות.
DST_IP target.ip ממופים ישירות.
DST_PORT target.port מיפוי ישיר, המרה למספר שלם.
ELEMENT_ID about.labels ממופה ישירות כתווית עם המפתח "ELEMENT_ID".
EVENT_TIME metadata.event_timestamp ממופה ישירות אחרי ניתוח כערך תאריך.
FACILITY metadata.product_event_type הוצמד ל-CODE כדי ליצור את metadata.product_event_type.
FLOW_EVENT security_result.summary משמש כחלק מהמחרוזת security_result.summary.
IDENTIFIER about.labels ממופה ישירות כתווית עם המפתח IDENTIFIER.
ION_HOST principal.hostname ממופה ישירות אם השדות CLOUDGENIX_HOST ו-NAME ריקים.
MSG metadata.description מיפוי ישיר. היא משמשת גם להתאמה לביטוי רגולרי כדי לקבוע את metadata.event_type ולחלץ את target.ip.
NAME principal.hostname ממופים ישירות. אם הוא קיים, CLOUDGENIX_HOST הופך ל-intermediary.hostname.
PROCESS_NAME principal.process.file.full_path ממופים ישירות.
PROTOCOL_NAME network.ip_protocol מיפוי ישיר, המרה לאותיות רישיות.
REMOTE_HOSTNAME target.hostname מיפוי ישיר.
REMOTE_IP target.ip ממופים ישירות.
RULE_NAME security_result.rule_name מיפוי ישיר.
SEVERITY security_result.severity, security_result.severity_details מופה אל security_result.severity_details. הוא משמש גם כדי לקבוע את security_result.severity (לדוגמה, אם SEVERITY הוא "minor", אז security_result.severity מוגדר כ-"LOW").
SOURCE_ZONE_NAME about.labels ממופה ישירות כתווית עם המפתח SOURCE_ZONE_NAME.
SRC_INTERFACE principal.hostname מיפוי ישיר.
SRC_IP principal.ip ממופים ישירות.
SRC_PORT principal.port מופה ישירות, מומר למספר שלם.
VPN_LINK_ID target.resource.id ממופים ישירות.
(לוגיקת הניתוח) is_alert צריך להגדיר את הערך כ-true אם log_type הוא alert או alarm.
(לוגיקת הניתוח) is_significant צריך להגדיר את הערך כ-true אם log_type הוא alert או alarm.
(לוגיקת הניתוח) metadata.event_type הערך נקבע על ידי סדרה של משפטי תנאי שמבוססים על הערכים של CODE,‏ MSG,‏ src_ip ו-dest_ip. ברירת המחדל היא GENERIC_EVENT.
(לוגיקת הניתוח) metadata.log_type מגדירים את הערך CLOUDGENIX_SDWAN.
(לוגיקת הניתוח) metadata.product_event_type ברירת המחדל היא שרשור של CODE ו-FACILITY. מגדירים את הערך cgxFlowLogV1 ליומני תעבורה.
(Parser Logic) metadata.product_name מגדירים את האפשרות CloudGenix SD-WAN.
(לוגיקת הניתוח) metadata.vendor_name ההגדרה היא Palo Alto Networks.
(לוגיקת הניתוח) principal.process.pid מגדירים את הערך של pid מיומן הגולמי ליומני תנועה.
(לוגיקת הניתוח) security_result.action ברירת המחדל היא UNKNOWN_ACTION.
(לוגיקת הניתוח) security_result.severity ברירת המחדל היא "UNKNOWN_SEVERITY". ההגדרה מתבססת על הערך של SEVERITY. מגדירים את הערך INFORMATIONAL ליומני זרימה.
(Parser Logic) security_result.summary הגדרה על סמך הערך של CODE להודעות syslog. הערך מוגדר למחרוזת תיאורית שכוללת את FLOW_EVENT, SRC_IP ו-DST_IP עבור יומני זרימת נתונים.

יומן שינויים

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

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