איסוף יומני מודיעין איומים בפורמט STIX

נתמך ב:

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

‫STIX (ראשי תיבות של Structured Threat Information Expression) היא שפה ופורמט סטנדרטיים לשיתוף סימנים מחשידים (IoC) ונתוני מודיעין איומי סייבר בין ארגונים. נתוני STIX מתקבלים בדרך כלל כקובצי JSON או XML משרתי TAXII או מפלטפורמות מודיעין איומי סייבר. סוכן Bindplane אוסף קובצי נתונים של STIX ישירות ממערכת הקבצים המקומית.

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

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

  • מופע של Google SecOps
  • ‫Windows Server 2016 ואילך, או מארח Linux עם systemd
  • אם מריצים מאחורי שרת proxy, מוודאים שיציאות חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane
  • לקוח TAXII או פלטפורמת מודיעין איומי סייבר ששומרת קבצים בפורמט STIX‏ (JSON או XML) בספרייה מקומית

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

  1. נכנסים למסוף Google SecOps.
  2. עוברים אל SIEM Settings > Collection Agents.
  3. מורידים את קובץ האימות להטמעת נתונים.
  4. שומרים את הקובץ בצורה מאובטחת במערכת שבה תותקן 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 להטמעה של יומנים ושליחה שלהם אל Google SecOps

איתור קובץ ההגדרות

  • ‫Linux:

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

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

עריכת קובץ ההגדרות

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

    receivers:
        filelog:
            include:
                - /var/log/stix/*.json
            start_at: beginning
    
    exporters:
        chronicle/stix:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: STIX
            raw_log_field: body
            ingestion_labels:
                env: production
    
    service:
        pipelines:
            logs/stix_to_chronicle:
                receivers:
                    - filelog
                exporters:
                    - chronicle/stix
    

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

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

  • הגדרת מקלט:

    • filelog: סוג המקלט לאיסוף קובצי יומן מהדיסק
    • ‫include: רשימה של נתיבי קבצים למעקב. מגדירים את הספרייה שבה נשמרים קובצי STIX:
      • ‫Linux: /var/log/stix/*.json
      • ‫Windows: C:\Logs\stix\*.json
    • ‫start_at: הערך beginning מאפשר לקרוא יומנים קיימים, והערך end מאפשר לקרוא רק רשומות חדשות
  • הגדרת כלי הייצוא:

    • ‫stix: שם תיאורי של הכלי לייצוא
    • ‫creds_file_path: הנתיב המלא לקובץ האימות להטמעת נתונים:
      • ‫Linux: /etc/bindplane-agent/ingestion-auth.json
      • ‫Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • ‫<customer_id>: מספר הלקוח מהשלב הקודם
    • ‫endpoint: כתובת ה-URL של נקודת הקצה האזורית:
      • ארה"ב: malachiteingestion-pa.googleapis.com
      • אירופה: europe-malachiteingestion-pa.googleapis.com
      • אסיה: asia-southeast1-malachiteingestion-pa.googleapis.com
      • רשימה מלאה מופיעה במאמר בנושא נקודות קצה אזוריות.
    • ‫STIX: סוג היומן בדיוק כמו שהוא מופיע ב-Chronicle
    • ‫ingestion_labels: תוויות אופציונליות בפורמט YAML (לדוגמה, env: production)
  • הגדרת צינור עיבוד נתונים:

    • ‫stix_to_chronicle: שם תיאורי של צינור העיבוד

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

  • אחרי שמסיימים לערוך, שומרים את הקובץ:
    • ‫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"
        

הגדרת איסוף של קובץ נתונים בפורמט STIX

‫STIX הוא פורמט נתונים, לא מוצר. נתוני מודיעין איומים בפורמט STIX מתקבלים בדרך כלל כקובצי JSON או XML מלקוחות TAXII, מפלטפורמות מודיעין איומים או מהורדות ידניות. צריך לוודא שהקבצים האלה ממוקמים בספרייה שהסוכן של Bindplane עוקב אחריה.

Linux

  1. יוצרים ספרייה לאחסון קובצי נתונים בפורמט STIX:

    sudo mkdir -p /var/log/stix
    
  2. מגדירים את לקוח TAXII או את פלטפורמת מודיעין איומי סייבר לשמירת קובצי STIX ב-/var/log/stix/.

  3. מוודאים שלחשבון השירות של סוכן Bindplane יש גישת קריאה לספרייה:

    sudo chmod 755 /var/log/stix
    

Windows

  1. יוצרים ספרייה לאחסון קובצי נתונים בפורמט STIX:

    mkdir C:\Logs\stix
    
  2. מגדירים את לקוח TAXII או את פלטפורמת המודיעין על איומים לשמירת קובצי STIX בתיקייה ‎ `C:\Logs\stix`‎.

  3. צריך לעדכן את הנתיב של סוכן Bindplane‏ include ב-config.yaml כך שיתאים ל:

    include:
        - C:\Logs\stix\*.json
    

טבלת מיפוי UDM

שדה ביומן מיפוי UDM היגיון
entity.administrative_domain הוגדר כ-'TEST'
assetid_value entity.asset.asset_id ערך מ-assetid_value אם הוא לא ריק
condition_label, related_indicators_relationship_label, related_indicators_scope, indicator_types_label, valid_start_time_label, controlled_structure_label, marking_structure_label entity.asset.attribute.labels מיזוג מתוויות שונות
name entity.file.full_path הערך הועתק ישירות
val, hash.simple_hash_value, MD5_val, hash_value entity.file.md5 הערך מ-val אם הוא תואם לביטוי הרגולרי md5, אחרת hash.simple_hash_value אם הסוג הוא MD5, אחרת MD5_val, אחרת hash_value
value entity.file.names הערך הועתק ישירות
val, hash.simple_hash_value, sha1_val, hash_value entity.file.sha1 הערך מ-val אם הוא תואם לביטוי הרגולרי sha1, אחרת hash.simple_hash_value אם הסוג הוא SHA1, אחרת sha1_val, אחרת hash_value
val, hash.simple_hash_value, sha256val, sha_value, sha_value entity.file.sha256 הערך מ-val אם הוא תואם לביטוי הרגולרי sha256, אחרת hash.simple_hash_value אם הסוג הוא SHA256, אחרת sha256val, אחרת sha_value
observable.object.properties.value, dom, value, host, name, external_references.0.source_name entity.hostname הערך מ-observable.object.properties.value אם הסוג הוא FQDN, אחרת dom מ-grok, אחרת value אם הסוג הוא domain-name, אחרת host, אחרת name אם main_observable_type הוא domain/hostname, אחרת external_references.0.source_name
ip_val, ipval, ip, source_ip, value, src_ip entity.ip הערך מ-ip_val אם grok התאים, אחרת ipval אם הקטגוריה היא ipv4-addr, אחרת ip מהתבנית grok, אחרת source_ip, אחרת value אם הסוג הוא ipv4, אחרת src_ip מ-grok
source_port, src_port entity.port ערך מ-source_port או src_port
indicator_label, extension_value1, extension_value2, extension_value3, extension_value4, revoked_value, spec_version_value, object_marking_ref_value, label_value entity.resource.attribute.labels מיזוג מתוויות שונות
observable.object.properties.value, url_val, value, observable_properties_value entity.url הערך מ-observable.object.properties.value אם הסוג הוא URL, אחרת url_val מ-grok, אחרת value אם הסוג הוא URL, אחרת observable_properties_value אם הוא לא ריק
email_val, mail, value entity.user.email_addresses ערך מ-email_val אם grok התאים, אחרת mail מ-grok, אחרת ערך אם הסוג הוא email-addr
חותמת זמן metadata.collected_timestamp ההמרה בוצעה באמצעות התאמת תאריכים בפורמט ISO8601/RFC 3339
כותרת, תיאור metadata.description ערך מהשם או מהתיאור
entity_type metadata.entity_type הערך הועתק ישירות
timestamp, valid_until metadata.interval.end_time הערך הומר מחותמת זמן או מ-valid_until באמצעות התאמת תאריך בפורמט ISO8601/RFC 3339
timestamp, ‏ valid_from, ‏ created metadata.interval.start_time הערך הומר מחותמת זמן, valid_from,‏ created או timestamp באמצעות התאמת תאריך ISO8601/RFC 3339
id metadata.product_entity_id הערך הועתק ישירות
גרסה metadata.product_version הערך הועתק ישירות
threat_detail metadata.threat מוזג מ-threat_detail
threat_detail_category threat.category הערך הועתק ישירות
confidence_value, confidence, x_stix_confidence, x_ctix_confidence_score threat.confidence_details הערך מתוך confidence_value, אחרת confidence אם no_value, אחרת x_stix_confidence, אחרת x_ctix_confidence_score
value, confidence, x_ctix_confidence_score threat.confidence_score הערך מתוך הערך אם השם הוא Confidence Score, אחרת confidence, אחרת x_ctix_confidence_score, שהומר לערך מסוג float
property_label, ‏ sha512_value, ‏ observable_id, ‏ observable_object_id, ‏ keyword_label threat.detection_fields מיזוג מתוויות שונות
description threat.description הערך הועתק ישירות
value, extensions.extension-definition--ea279b3e-5c71-4632-ac08-831c66a786ba.score threat.risk_score הערך מתוך הערך אם השם הוא Risk, אחרת הציון של התוספים, שהומר לערך מסוג float
metadata.product_name ההגדרה היא STIX
metadata.vendor_name ההגדרה היא STIX
dom event.idm.entity.entity.hostname מופה מיומן השינויים
name event.idm.entity.entity.url מופה מיומן השינויים
valid_from event.idm.entity.entity.resource.attribute.labels מופה מיומן השינויים
valid_until event.idm.entity.entity.resource.attribute.labels מופה מיומן השינויים
pattern_version event.idm.entity.entity.resource.attribute.labels מופה מיומן השינויים
observable.object.properties.value.condition event.idm.entity.entity.asset.attribute.labels מופה מיומן השינויים
handling.controlled_structure event.idm.entity.entity.asset.attribute.labels מופה מיומן השינויים
handling.marking_structures.color event.idm.entity.entity.asset.attribute.labels מופה מיומן השינויים
related_indicators.related_indicators event.idm.entity.entity.asset.attribute.labels מופה מיומן השינויים
related_indicators.scope event.idm.entity.entity.asset.attribute.labels מופה מיומן השינויים
indicator_types event.idm.entity.entity.asset.attribute.labels מופה מיומן השינויים
valid_time_positions event.idm.entity.entity.asset.attribute.labels מופה מיומן השינויים
observable.object.properties.custom_properties event.idm.entity.metadata.threat.detection_fields מופה מיומן השינויים
observable.object.properties.value event.ioc.domain_and_ports.domain מופה מיומן השינויים
mitre-extension-definition.extension_type entity.resource.attribute.labels.value מופה מיומן השינויים
sco-extension-definition.extension_type entity.resource.attribute.labels.value מופה מיומן השינויים
x_ctix_confidence_score threat_detail.confidence_score מופה מיומן השינויים
modified timestamp מופה מיומן השינויים
valid_from entity_event.metadata.interval.start_time מופה מיומן השינויים
confidence threat_detail.confidence_score מופה מיומן השינויים
name entity.entity.file.full_path מופה מיומן השינויים
description threat_detail.description מופה מיומן השינויים
external_references.0.source_name entity_event.entity.hostname מופה מיומן השינויים
entity_type IP_ADDRESS מופה מיומן השינויים
entity_type USER מופה מיומן השינויים
entity_type FILE מופה מיומן השינויים
entity_type DOMAIN_NAME מופה מיומן השינויים

יומן שינויים

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

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