איסוף יומני Trend Micro DDI

נתמך ב:

במאמר הזה מוסבר איך להטמיע יומנים של Trend Micro Deep Discovery Inspector‏ (DDI) ב-Google Security Operations באמצעות סוכן Bindplane.

‫Trend Micro Deep Discovery Inspector הוא מכשיר רשת שעוקב אחרי כל היציאות ופרוטוקולי הרישות כדי לזהות איומים מתקדמים. הוא יוצר הודעות syslog בפורמט CEF לתוצאות ניתוח של Virtual Analyzer, לזיהויים של מוצרים משולבים, לאירועים של סריקה מוקדמת של ICAP, לאירועים של המערכת ולאירועים של התראות. הכלי לניתוח מחלץ שדות מיומנים בפורמט CEF וממפה אותם למודל הנתונים המאוחד (UDM).

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

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

  • מופע של Google SecOps
  • ‫Windows Server 2016 ואילך, או מארח Linux עם systemd
  • קישוריות רשת בין סוכן Bindplane לבין מכשיר Trend Micro DDI
  • אם השרת פועל מאחורי שרת proxy, צריך לוודא שהיציאות של חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane.
  • גישה עם הרשאות למכונה של Trend Micro Deep Discovery Inspector

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

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

  1. נכנסים למסוף Google SecOps.
  2. עוברים אל SIEM Settings > Collection Agents (הגדרות 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:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/trendmicro_ddi:
        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: TRENDMICRO_DDI
        raw_log_field: body
    
    service:
      pipelines:
        logs/trendmicro_ddi_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/trendmicro_ddi
    

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

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

  • הגדרת מקלט:

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

    • ‫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.

כלי לייצוא נתונים מ-Legacy ingestion API

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

    exporters:
      chronicle/trendmicro_ddi:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: TRENDMICRO_DDI
        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 ב-Trend Micro Deep Discovery Inspector

  1. נכנסים לממשק המשתמש באינטרנט של Trend Micro Deep Discovery Inspector.
  2. עוברים אל ניהול > מוצרים או שירותים משולבים > Syslog.
  3. לוחצים על הוספה כדי להוסיף שרת Syslog חדש.
  4. מספקים את פרטי ההגדרה הבאים:
    • מפעילים את פרופיל Syslog.
    • שם הפרופיל: מזינים שם ייחודי ומשמעותי.
    • כתובת השרת: מזינים את כתובת ה-IP של סוכן Bindplane.
    • יציאה: מזינים את מספר היציאה של סוכן Bindplane (לדוגמה, UDP: 514).
    • פרוטוקול: בוחרים באפשרות UDP (או בפרוטוקול אחר בהתאם להגדרות של Bindplane).
    • ‫Facility: מזינים Local0.
    • רמת החומרה: בוחרים באפשרות מידע.
    • פורמט: בוחרים באפשרות CEF.
    • היקף היומנים: בוחרים באפשרויות יומני ניתוח של Virtual Analyzer, יומני זיהוי של מוצרים משולבים, יומני סריקה מראש של ICAP, יומני אירועים של המערכת ויומני אירועים של התראות.
  5. לוחצים על Save.

טבלת מיפוי UDM

שדה ביומן מיפוי UDM היגיון
message about מופה: CEF: ← about
deviceNtDomain about.administrative_domain שם שונה/מיפוי
deviceExternalId about.asset.asset_id מיפוי ישיר
device_product about.asset.asset_id מיפוי ישיר
device_vendor about.asset.asset_id מיפוי ישיר
fileHash about.file.full_path מיפוי ישיר
filePath about.file.full_path שם שונה/מיפוי
_hash about.file.sha256 שינוי שם/מיפוי
fileHash about.file.sha256 שינוי שם/מיפוי
fsize about.file.size שינוי שם/מיפוי
dvchost about.hostname שינוי שם/מיפוי
ips about.ip ממוזג
message about.ip מופה: CEF: ← ips
dvc_mac about.mac מיפוי: slot → mac_address
dvcmac about.mac ממוזג
mac_address about.mac ממוזג
message about.mac מיפוי: CEF: ← mac_address, CEF: ← dvcmac
deviceTranslatedAddress about.nat_ip ממוזג
message about.nat_ip מופה: CEF: ← deviceTranslatedAddress
Emne about.process.command_line מיפוי ישיר
Path about.process.command_line מיפוי ישיר
Subject about.process.command_line מיפוי ישיר
deviceProcessName about.process.command_line שם שונה/מיפוי
dvcpid about.process.pid שינוי שם/מיפוי
message about.resource.attribute.permissions מופה: CEF: ← permissions
permissions about.resource.attribute.permissions ממוזג
additional_cfp1 additional.fields ממוזג
additional_cfp2 additional.fields ממוזג
additional_cfp3 additional.fields ממוזג
additional_cfp4 additional.fields ממוזג
additional_cn1 additional.fields ממוזג
additional_cn2 additional.fields ממוזג
additional_cn3 additional.fields ממוזג
additional_cs1 additional.fields ממוזג
additional_cs2 additional.fields ממוזג
additional_cs3 additional.fields ממוזג
additional_cs4 additional.fields ממוזג
additional_cs5 additional.fields ממוזג
additional_cs6 additional.fields ממוזג
additional_cs7 additional.fields ממוזג
additional_devicePayloadId additional.fields ממוזג
additional_eventId additional.fields ממוזג
additional_flexString1 additional.fields ממוזג
additional_fname additional.fields ממוזג
appGroup_label additional.fields ממוזג
cn4_label additional.fields ממוזג
cn5_label additional.fields ממוזג
cnt_label additional.fields ממוזג
compressed_file_hash_label additional.fields ממוזג
cs10_label additional.fields ממוזג
cs2 additional.fields מופה: arc_test ← additional_cs2
cs5_label additional.fields ממוזג
cs8_label additional.fields ממוזג
cs9_label additional.fields ממוזג
device_mac_address_label additional.fields ממוזג
evt_cat_label additional.fields ממוזג
fileType_label additional.fields ממוזג
message additional.fields ערכים ממופים (33 בסך הכול, למשל CEF: ← additional_eventId, ‏ CEF: ← `additional_devicePayl...
pcomp_label additional.fields ממוזג
ptype_label additional.fields ממוזג
vlan_info additional.fields ממוזג
msg metadata.description שינוי שם/מיפוי
Generated metadata.event_timestamp נותח בתור yyyy-MM-ddTHH:mm:ss
Received metadata.event_timestamp ניתוח הכתובות שברשימה: yyyy-MM-ddTHH:mm:ss
date_value metadata.event_timestamp נותח בתור MMM dd yyyy HH:mm:ss ZZ
rt metadata.event_timestamp נותח בתור yyyy-MM-ddTHH:mm:ssZ
event_name metadata.event_type מופה: "LogSpyware","LogPredictiveMachineLearning" ← SCAN_UNCATEGORIZED
message metadata.event_type ערכים ממופים (5 סך הכול, למשל CEF: ← PROCESS_UNCATEGORIZED, ‏ CEF: ← SCAN_UNCATEGORIZED...
principal_present metadata.event_type מיפוי: true ← NETWORK_CONNECTION, ‏ true ← STATUS_UPDATE
device_event_class_id metadata.product_event_type מיפוי ישיר
event_name metadata.product_event_type מיפוי ישיר
externalId metadata.product_log_id מיפוי ישיר
device_product metadata.product_name מיפוי ישיר
device_version metadata.product_version מיפוי ישיר
device_vendor metadata.vendor_name שינוי שם/מיפוי
app_protocol_output network.application_protocol מיפוי ישיר
deviceDirection network.direction מופו: 0 ← INBOUND, 1 ← OUTBOUND
message network.direction מיפוי: CEF: ← INBOUND, ‏ CEF: ← OUTBOUND
message network.dns.questions מופה: CEF: ← question
question network.dns.questions ממוזג
requestMethod network.http.method שינוי שם/מיפוי
requestClientApplication network.http.user_agent שם שונה/מיפוי
ip_protocol_out network.ip_protocol מיפוי ישיר
in network.received_bytes שם שונה/מיפוי
out network.sent_bytes שינוי שם/מיפוי
sntdom principal.administrative_domain שינוי שם/מיפוי
sourceServiceName principal.application שם שונה/מיפוי
Group_name principal.group.group_display_name מיפוי ישיר
Gruppenavn principal.group.group_display_name מיפוי ישיר
Device_name principal.hostname מיפוי ישיר
Enhetsnavn principal.hostname מיפוי ישיר
shost principal.hostname שינוי שם/מיפוי
message principal.ip מיפוי: CEF: ← principal_ip, CEF: ← shost
principal_ip principal.ip ממוזג
shost principal.ip ממוזג
deviceMacAddress principal.mac ממוזג
mac principal.mac ממוזג
message principal.mac מיפוי: CEF: ← mac, CEF: ← deviceMacAddress
message principal.nat_ip מיפוי: CEF: → sourceTranslatedAddress
sourceTranslatedAddress principal.nat_ip ממוזג
sourceTranslatedPort principal.nat_port שינוי שם/מיפוי
spt principal.port שינוי שם/מיפוי
sproc principal.process.command_line שינוי שם/מיפוי
spid principal.process.pid שינוי שם/מיפוי
message principal.user.attribute.roles מופה: CEF: ← principal_role
principal_role principal.user.attribute.roles ממוזג
suser principal.user.user_display_name מיפוי ישיר
suid principal.user.userid שם שונה/מיפוי
message security_result מופה: CEF: ← security_result
_action security_result.action ממוזג
act security_result.action מופו: accept ← _action, deny ← _action
message security_result.action מופה: CEF: ← _action
Action_Taken security_result.action_details מיפוי ישיר
act security_result.action_details מיפוי ישיר
cat security_result.category_details ממוזג
message security_result.category_details מופה: CEF: ← cat
deviceRiskConfidenceLevel security_result.confidence_score מיפוי ישיר
message security_result.confidence_score מיפוי: CEF: → float
Scan_Type security_result.description מיפוי ישיר
Type security_result.description מיפוי ישיר
msg_data_2 security_result.description מיפוי ישיר
infection_channel_label security_result.detection_fields ממוזג
message security_result.detection_fields ערכים ממופים (7 בסך הכול, למשל CEF: ← operation_label, CEF: ← operasjon_label, CEF: ...
operasjon_label security_result.detection_fields ממוזג
operation_label security_result.detection_fields ממוזג
permission_label security_result.detection_fields ממוזג
spyware_Grayware_Type_label security_result.detection_fields ממוזג
threat_probability_label security_result.detection_fields ממוזג
tillatelse_label security_result.detection_fields ממוזג
ruleId security_result.rule_id מיפוי ישיר
mwProfile security_result.rule_name מיפוי ישיר
ruleName security_result.rule_name מיפוי ישיר
hostSeverity security_result.severity מיפוי: "0", "1", "2", "3" ← LOW, "4", "5", "6" ← MEDIUM, "7", "8" ← HIGH, ‏‎"9"‎,...
message security_result.severity מיפוי: CEF: → LOW, ‏ CEF: → MEDIUM, ‏ CEF: → HIGH, ‏ CEF: → CRITICAL
severity security_result.severity מופו: "0", "1", "2", "3", "LOW" ← LOW, ‏"4", "5", "6", "MEDIUM", "SUBSTANTIAL", "INFO"...
Result security_result.summary מיפוי ישיר
appcategory security_result.summary מיפוי ישיר
reason security_result.summary שינוי שם/מיפוי
Spyware security_result.threat_name מיפוי ישיר
Unknown_Threat security_result.threat_name מיפוי ישיר
Virus_Malware_Name security_result.threat_name מיפוי ישיר
malType security_result.threat_name מיפוי ישיר
oldFilePath src.file.full_path שם שונה/מיפוי
oldFileSize src.file.size שינוי שם/מיפוי
message src.resource.attribute.permissions מופה: CEF: ← old_permissions
old_permissions src.resource.attribute.permissions ממוזג
dntdom target.administrative_domain שינוי שם/מיפוי
destinationServiceName target.application שם שונה/מיפוי
temp_dhost target.hostname מיפוי ישיר
IPv6_Address target.ip ממוזג
dst_ip target.ip ממוזג
ipv6 target.ip מיפוי: - → IPv6_Address
message target.ip מיפוי: CEF: ← dst_ip, ‏ CEF: ← IPv6_Address
mac_address target.mac ממוזג
message target.mac מיפוי: CEF: → mac_address
destination_translated_address target.nat_ip ממוזג
message target.nat_ip מיפוי: CEF: → destination_translated_address
destinationTranslatedPort target.nat_port שינוי שם/מיפוי
dpt target.port שינוי שם/מיפוי
dproc target.process.command_line שם שונה/מיפוי
File_name target.process.file.full_path מיפוי ישיר
Infected_Resource target.process.file.full_path מיפוי ישיר
Object target.process.file.full_path מיפוי ישיר
Objekt target.process.file.full_path מיפוי ישיר
dpid target.process.pid שינוי שם/מיפוי
message target.resource.attribute.labels מיפוי: CEF: → resource_Type_label
resource_Type_label target.resource.attribute.labels ממוזג
request target.url מיפוי ישיר
message target.user.attribute.roles מיפוי: CEF: → target_role
target_role target.user.attribute.roles ממוזג
CustomerName target.user.user_display_name מיפוי ישיר
temp_duser target.user.user_display_name מיפוי ישיר
Bruker target.user.userid מיפוי ישיר
User_value target.user.userid מיפוי ישיר
temp_duid target.user.userid מיפוי ישיר
לא רלוונטי metadata.event_type קבוע: PROCESS_UNCATEGORIZED
לא רלוונטי network.direction קבוע: INBOUND
לא רלוונטי security_result.severity קבוע: LOW
reason event.idm.read_only_udm.network.dns.questions.name מופה מיומן השינויים
deviceMacAddress event.idm.read_only_udm.principal.mac מופה מיומן השינויים
deviceRiskConfidenceLevel event.idm.read_only_udm.security_result.confidence_score מופה מיומן השינויים
ruleId event.idm.read_only_udm.security_result.rule_id מופה מיומן השינויים
ruleName event.idm.read_only_udm.security_result.rule_name מופה מיומן השינויים
hostSeverity event.idm.read_only_udm.security_result.severity מופה מיומן השינויים
malType event.idm.read_only_udm.security_result.threat_name מופה מיומן השינויים
vLANId event.idm.read_only_udm.additional.fields מופה מיומן השינויים
cnt event.idm.read_only_udm.additional.fields מופה מיומן השינויים
evtCat event.idm.read_only_udm.additional.fields מופה מיומן השינויים
deviceGUID event.idm.read_only_udm.additional.fields מופה מיומן השינויים
ptype event.idm.read_only_udm.additional.fields מופה מיומן השינויים
cs9 event.idm.read_only_udm.additional.fields מופה מיומן השינויים
cs10 event.idm.read_only_udm.additional.fields מופה מיומן השינויים
pComp event.idm.read_only_udm.additional.fields מופה מיומן השינויים
cn4 event.idm.read_only_udm.additional.fields מופה מיומן השינויים
cn5 event.idm.read_only_udm.additional.fields מופה מיומן השינויים
cs8 event.idm.read_only_udm.additional.fields מופה מיומן השינויים
fileType event.idm.read_only_udm.additional.fields מופה מיומן השינויים
appGroup event.idm.read_only_udm.additional.fields מופה מיומן השינויים
compressedFileHash event.idm.read_only_udm.additional.fields מופה מיומן השינויים

יומן שינויים

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

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