איסוף יומני DDI של EfficientIP

גרסת מנתח הנתונים: 9.0

נתמך ב:

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

‫EfficientIP SOLIDserver הוא פתרון מקיף של DDI ‏ (DNS-DHCP-IPAM) שמספק מכשירי חומרה ווירטואליים חזקים, מאובטחים וניתנים להרחבה לשירותי רשת קריטיים, כולל DNS,‏ DHCP, ניהול כתובות IP,‏ NTP ו-TFTP. הפלטפורמה מספקת ניהול מרכזי ואוטומציה של תשתית הרשת, עם יכולות מתקדמות של מעקב ואבטחה.

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

חשוב לוודא שמתקיימות הדרישות המוקדמות הבאות:

  • מופע של Google SecOps
  • ‫Windows Server 2016 ואילך, או מארח Linux עם systemd
  • קישוריות רשת בין סוכן Bindplane לבין מכשיר EfficientIP SOLIDserver
  • אם מפעילים את Bindplane מאחורי שרת proxy, צריך לוודא שיציאות חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane.
  • הרשאת אדמין במסוף האינטרנט של EfficientIP SOLIDserver
  • ‫SOLIDserver מגרסה 8.0 ואילך (נבדק עם גרסאות 8.3.x ו-8.4.x)

קבלת קובץ אימות להטמעת נתונים ב-Google SecOps

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

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

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

התקנת סוכן Bindplane

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

התקנת 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.

התקנה של 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 agent להטמעה של syslog ושליחה אל Google SecOps

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

  • Linux:

    sudo nano /etc/bindplane-agent/config.yaml
    
  • ‫Windows:

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

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

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

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/efficientip_ddi:
        compression: gzip
        creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: EFFICIENTIP_DDI
        raw_log_field: body
        ingestion_labels:
          env: production
          source: solidserver
    
    service:
      pipelines:
        logs/efficientip_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/efficientip_ddi
    
  2. מחליפים את ה-placeholders הבאים:

    • הגדרות המקלט:

      • listen_address: מוגדר ל-0.0.0.0:514 כדי להאזין לכל הממשקים ביציאת UDP‏ 514.
        • בפריסות של Linux שאינן root, צריך להשתמש ביציאה 1514 ומעלה.
        • מוודאים שהיציאה תואמת להגדרה ב-SOLIDserver.
    • הגדרת הייצוא:

      • creds_file_path: הנתיב המלא לקובץ האימות להטמעת נתונים:

        • Linux: /etc/bindplane-agent/ingestion-auth.json
        • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
      • customer_id: מחליפים את YOUR_CUSTOMER_ID במזהה הלקוח מהשלב הקודם.

      • endpoint: נקודת קצה אזורית:

        • ארה"ב: malachiteingestion-pa.googleapis.com
        • אירופה: europe-malachiteingestion-pa.googleapis.com
        • אסיה: asia-southeast1-malachiteingestion-pa.googleapis.com
        • רשימה מלאה של נקודות הקצה האזוריות זמינה במאמר נקודות קצה אזוריות.
      • log_type: מוגדר ל-EFFICIENTIP_DDI (נדרשת התאמה מדויקת).

      • ingestion_labels: תוויות אופציונליות לסיווג יומנים (אפשר להתאים אישית לפי הצורך).

שמירת קובץ ההגדרות

אחרי שמסיימים לערוך, שומרים את הקובץ:

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

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

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

    1. מריצים את הפקודה הבאה:

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

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

      sudo journalctl -u observiq-otel-collector -f
      
  • כדי להפעיל מחדש את סוכן 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"
      

הגדרת העברת syslog של EfficientIP DDI

  1. נכנסים למסוף האינטרנט של EfficientIP SOLIDserver.
  2. בחלונית הניווט הימנית, לוחצים על ניהול.
  3. בקטע מעקב, לוחצים על הגדרה.
  4. בתפריט, לוחצים על + הוספה.
  5. ברשימה Services, בוחרים את השירותים הבאים: named (לרישומי DNS)
  6. בשדה Target server (שרת יעד), מזינים את כתובת ה-IP והיציאה של מארח סוכן Bindplane בפורמט <ip-address>:<port>.
    • לדוגמה: 192.168.1.100:514
    • אם משתמשים ביציאה לא סטנדרטית ב-Linux, מציינים את היציאה בהתאם (לדוגמה, 192.168.1.100:1514)
  7. לוחצים על אישור כדי לשמור את ההגדרה.

אימות העברת היומנים

  1. בודקים את היומנים של סוכן Bindplane כדי לוודא שהיומנים מתקבלים:
    • Linux: sudo journalctl -u observiq-otel-collector -f
    • Windows: type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
  2. מחפשים רשומות ביומן שמכילות אירועים של שאילתות DNS ותשובות מ-SOLIDserver.
  3. נכנסים למסוף Google SecOps ומוודאים שהיומנים של EfficientIP DDI מופיעים בדף Events.

סוגי יומנים נתמכים

השילוב הזה אוסף את סוגי היומנים הבאים מ-EfficientIP SOLIDserver:

  • יומני שאילתות DNS: שאילתות DNS של לקוחות עם סוג שאילתה, שם דומיין וכתובת IP של הלקוח
  • יומני תשובות של DNS: תגובות DNS עם רשומות תשובה, TTL וקודי תגובה
  • יומני DHCP: פעולות DHCP כולל DISCOVER,‏ OFFER,‏ REQUEST,‏ ACK,‏ NAK,‏ RELEASE ו-INFORM
  • יומנים של DNS Guardian: אירועי אבטחה, כולל זיהוי התנהגות חשודה, הפעלה/השבתה של טריגרים
  • יומנים של העברת תחום DNS: פעולות והתראות של העברת תחום
  • יומני שגיאות DNS: שגיאות בפורמט, SERVFAIL,‏ REFUSED ושגיאות DNS אחרות

טבלת מיפוי UDM

שדה היומן מיפוי UDM לוגיקה
ip_version additional.fields אם הערך לא ריק, הוא ימוזג כתווית עם המפתח ip_version
message_size additional.fields אם הערך לא ריק, הוא ימוזג כתווית עם המפתח message_size
domain_name additional.fields אם הערך לא ריק, הוא ימוזג כתווית עם המפתח domain_name
לא רלוונטי מתווך מוזג מאובייקט ביניים
description metadata.description הערך מועתק ישירות אם הוא לא ריק
msg2 metadata.description צריך להגדיר את הערך msg2 אם event_type הוא GENERIC_EVENT והתיאור ריק
su_cmd metadata.event_type הערך שמוגדר הוא PROCESS_OPEN אם su_cmd הוא sudo
activity_type metadata.event_type הערך הוא NETWORK_DNS אם activity_type תואם ל-dns ו-has_dns_questions הוא true
הודעה metadata.event_type הערך הוא NETWORK_DHCP אם ההודעה תואמת ל-DHCP
inner_message metadata.event_type הערך הוא NETWORK_UNCATEGORIZED אם inner_message תואם לתבניות ספציפיות והערכים של has_principal ו-has_target הם true
תהליך דיפוזיה הפוך metadata.event_type הערך הוא NETWORK_DNS אם התהליך הוא named והמאפיין has_dns_questions הוא true. הערך הוא STATUS_UPDATE אם התהליך הוא named והמאפיין has_principal הוא true. הערך הוא GENERIC_EVENT אם התהליך הוא named. הערך הוא NETWORK_DHCP אם התהליך הוא dhcpd.
PWD metadata.event_type הערך הוא PROCESS_OPEN אם PWD לא ריק והערך של has_target או has_principal הוא true
activity_type metadata.product_event_type הערך הועתק ישירות
לא רלוונטי metadata.vendor_name ההגדרה היא EFFICIENTIP_DDI
לא רלוונטי metadata.product_name ההגדרה היא 'EFFICIENTIP_DDI DHCP'
activity_type network.application_protocol הערך הוא DNS אם activity_type תואם ל-dns ו-has_dns_questions הוא true
הודעה network.application_protocol הערך שמוגדר הוא DHCP אם ההודעה תואמת ל-dhcp
תהליך דיפוזיה הפוך network.application_protocol הערך הוא DNS אם התהליך הוא named, והערך הוא DHCP אם התהליך הוא dhcpd
src_mac network.dhcp.chaddr הערך מועתק ישירות אם התהליך הוא dhcpd
src_ip network.dhcp.ciaddr הערך מועתק ישירות אם dhcp_info הוא REQUEST
giaddr network.dhcp.giaddr הערך הועתק ישירות
dhcp_info network.dhcp.opcode הערך צריך להיות BOOTREQUEST אם dhcp_info הוא INFORM,‏ DISCOVER או REQUEST, ו-BOOTREPLY אם dhcp_info הוא OFFER או ACK.
siaddr network.dhcp.siaddr הערך הועתק ישירות
transaction_id network.dhcp.transaction_id הערך מומר למספר שלם לא שלילי אם הוא לא ריק או לא '0'
dhcp_info network.dhcp.type הערך הוא INFORM אם dhcp_info הוא INFORM, הערך הוא DISCOVER אם dhcp_info הוא DISCOVER, הערך הוא OFFER אם dhcp_info הוא OFFER, הערך הוא REQUEST אם dhcp_info הוא REQUEST, הערך הוא ACK אם dhcp_info הוא PACK
yiaddr network.dhcp.yiaddr הערך הועתק ישירות
src_ip network.dhcp.yiaddr מוגדר ל-src_ip אם התהליך הוא dhcpd והערך של yiaddr ריק
answer_rrs network.dns.answers מוזג מאובייקט התשובה לכל rd ב-answer_rrs
לא רלוונטי network.dns.questions המיזוג מתבצע מאובייקט השאלות אם הערך של has_dns_questions הוא True
rcode network.dns.response_code הערך שהומר ל-uinteger
response_code network.dns.response_code הערך ממופה לקוד מספרי ומומר ל-uinteger
תחבורה network.ip_protocol הערך מומר לאותיות רישיות אם הוא תואם ל-udp או ל-tcp
משקיף observer.ip הערך הומר לכתובת IP
su_cmd principal.application הערך מועתק ישירות אם su_cmd הוא sudo
תהליך דיפוזיה הפוך principal.application ההגדרה היא 'לעיבוד' אם התהליך הוא 'named' או 'dhcpd'
מארח principal.asset.hostname הערך מועתק ישירות אם הוא לא ריק
hostname principal.asset.hostname הערך מועתק ישירות אם הוא לא ריק ושדה המארח ריק
src_ip principal.asset.ip הערך הועתק ישירות
asset_id principal.asset_id הערך שמתקבל הוא 'ID:' + asset_id
מארח principal.hostname הערך מועתק ישירות אם הוא לא ריק
hostname principal.hostname הערך מועתק ישירות אם הוא לא ריק ושדה המארח ריק
domain_name principal.hostname הערך מועתק ישירות אם התיאור מכיל שם מארח והשדות host או hostname ריקים
src_ip principal.ip הערך מועתק ישירות אם ההמרה ל-ipaddress מצליחה; הוא מחולץ מהתיאור אם src_ip ריק
src_mac principal.mac הערך הועתק ישירות
src_port principal.port הערך שהומר למספר שלם
process_id principal.process.pid הערך הועתק ישירות
source_user principal.user.userid הערך הועתק ישירות
לא רלוונטי security_result התוצאות הממוזגות
dst_ip target.asset.ip הערך הועתק ישירות
file_path target.file.full_path הערך הועתק ישירות
dst_ip target.hostname הערך מועתק ישירות אם הוא לא כתובת IP תקינה
מארח target.hostname הערך מועתק ישירות אם inner_message תואם לדפוסים ספציפיים
dst_ip target.ip הערך הועתק ישירות
dst_port target.port הערך שהומר למספר שלם
target_cmd_line target.process.command_line הערך הועתק ישירות
target_user target.user.userid הערך הועתק ישירות
RR_msg event.idm.read_only_udm.metadata.description מופה מיומן השינויים
client_id event.idm.read_only_udm.additional.fields מופה מיומן השינויים
key_office event.idm.read_only_udm.additional.fields מופה מיומן השינויים
rrset_type event.idm.read_only_udm.additional.fields מופה מיומן השינויים
syslog_priority event.idm.read_only_udm.additional.fields מופה מיומן השינויים
updating_zone event.idm.read_only_udm.additional.fields מופה מיומן השינויים
view_office event.idm.read_only_udm.additional.fields מופה מיומן השינויים

שנה רישום

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

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