איסוף יומנים של Fortinet Web Proxy

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

נתמך ב:

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

שרת ה-Proxy לאינטרנט Fortinet FortiGate יוצר יומנים עבור הפעלות של שרת Proxy גלוי ושקוף, ומתעד תנועת HTTP/HTTPS, החלטות סינון של כתובות URL ואירועי גישה לאינטרנט. היומנים משתמשים בפורמט של צמדי מפתח/ערך של syslog וכוללים מטא נתונים של הרשת, פעולות אבטחה ופרטים מזהים של המשתמשים.

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

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

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

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

  1. נכנסים למסוף Google SecOps.
  2. עוברים אל SIEM Settings > Collection Agents (הגדרות SIEM > סוכני איסוף).
  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 להטמעה של 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/fortinet_webproxy:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: FORTINET_WEBPROXY
            raw_log_field: body
            ingestion_labels:
                env: production
    
    service:
        pipelines:
            logs/webproxy_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/fortinet_webproxy
    

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

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

  • הגדרת מקלט:

    • udplog: סוג הנמען על סמך הפרוטוקול:
      • udplog ל-UDP syslog
      • tcplog עבור Syslog ב-TCP
    • 0.0.0.0: כתובת ה-IP להאזנה:
      • 0.0.0.0 כדי להאזין בכל הממשקים (מומלץ)
      • כתובת IP ספציפית להאזנה בממשק אחד
    • 514: מספר היציאה להאזנה (לדוגמה, 514, ‏ 1514, ‏ 6514)
  • הגדרות של הכלי לייצוא:

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

    • webproxy_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"
        

הגדרת העברת syslog של proxy לאינטרנט ב-Fortinet FortiGate

  1. נכנסים לממשק האינטרנט של FortiGate.
  2. עוברים אל Log & Report > Log Settings (יומן ודוח > הגדרות יומן).
  3. גוללים למטה לקטע Remote Logging and Archiving (רישום ביומן והעברה לארכיון מרחוק).
  4. בקטע Syslog, לוחצים על הוספה.
  5. מזינים את פרטי ההגדרה הבאים:
    • שם: מזינים שם תיאורי (לדוגמה, Chronicle-Bindplane).
    • כתובת IP/FQDN: מזינים את כתובת ה-IP של מארח סוכן Bindplane (לדוגמה, 192.168.1.100).
    • יציאה: מזינים 514 (חייב להיות זהה ליציאת המקלט של סוכן Bindplane).
    • פרוטוקול: בוחרים באפשרות UDP.
    • רמה מינימלית: בוחרים באפשרות מידע או התראה.
  6. מוודאים שקטגוריית היומן Web Proxy מופעלת. אפשר גם להשתמש ב-CLI כדי להגדיר את המסנן של syslog:

    config log syslogd setting
        set status enable
        set server <BINDPLANE_AGENT_IP>
        set port 514
    end
    config log syslogd filter
        set filter "logid(0300)"
        set filter-type include
    end
    
    • טווח מזהי היומן 0300 כולל אירועים של שרתי proxy לאינטרנט. משנים את המסנן בהתאם לסביבה.
    • מחליפים את <BINDPLANE_AGENT_IP> בכתובת ה-IP של המארח של סוכן Bindplane.
  7. לוחצים על אישור כדי לשמור.

  8. בפינה השמאלית העליונה, לוחצים על אישור כדי להחיל את ההגדרה.

  9. כדי לוודא שהודעות syslog מתקבלות, בודקים את היומנים של סוכן Bindplane.

טבלת מיפוי UDM

שדה היומן מיפוי UDM לוגיקה
group, profile, agent, subtype, catdesc, reqtype additional.fields מיזוג עם תוויות שנוצרו מכל שדה
action, has_network, has_principal, has_target metadata.event_type הערך הוא USER_LOGIN אם הפעולה היא auth-logon, אחרת NETWORK_HTTP אם has_network הוא true, אחרת NETWORK_CONNECTION אם has_principal ו-has_target הם true, אחרת STATUS_UPDATE אם has_principal הוא true, אחרת GENERIC_EVENT
eventtype metadata.product_event_type הערך הועתק ישירות
logid metadata.product_log_id הערך הועתק ישירות
metadata.product_name ההגדרה היא FORTINET_WEBPROXY
metadata.vendor_name ההגדרה היא FORTINET_WEBPROXY
שירות network.application_protocol הערך מועתק ישירות אם השירות הוא HTTP או HTTPS
כיוון network.direction הערך הוא INBOUND אם הכיוון הוא נכנס, דואר נכנס, תגובה, אחרת הערך הוא OUTBOUND אם הכיוון הוא יוצא, דואר יוצא
httpmethod network.http.method הערך מועתק ישירות אם httpmethod הוא GET או POST
referralurl network.http.referral_url הערך הועתק ישירות
proto, subtype, service network.ip_protocol הערך הוא UDP אם proto=17, ‏ TCP אם proto=6 או subtype=wad, ‏ IP6IN4 אם proto=41, ‏ ICMP אם service=PING או proto=1 או אם service תואם ל-ICMP
rcvdbyte network.received_bytes הומר למספר שלם לא חתום
sentbyte network.sent_bytes הומר למספר שלם לא חתום
sessionid network.session_id הערך הועתק ישירות
devname principal.asset.hostname הערך הועתק ישירות
srcip principal.asset.ip הערך הועתק ישירות
devname principal.hostname הערך הועתק ישירות
srcip principal.ip הערך הועתק ישירות
srccountry principal.location.country_or_region הערך מועתק ישירות אם הוא לא שמור ולא ריק
srcport principal.port הומר למספר שלם
srcuuid principal.user.product_object_id הערך הועתק ישירות
vd principal.user.user_display_name הערך הועתק ישירות
משתמש principal.user.userid הערך הועתק ישירות
filtername security_result.about.resource.attribute.labels התווית תמוזג עם התווית שנוצרה מ-filtername אם הוא לא ריק ולא מכיל את התו '-'
פעולה security_result.action הערך הוא BLOCK אם action=blocked, ‏ ALLOW אם action in accept, ‏ passthrough
devid, policyid, srcintf, srcintfrole, ratemethod, cat security_result.detection_fields מיזוג עם תוויות שנוצרו מכל שדה
msg security_result.description הערך הועתק ישירות
poluuid security_result.rule_id הערך הועתק ישירות
policytype security_result.rule_type הערך הועתק ישירות
רמה security_result.severity מגדירים את הערך HIGH אם level=warning, ‏ MEDIUM אם level=notice
סוג security_result.summary הערך הועתק ישירות
dstip target.asset.ip הערך הועתק ישירות
filename target.file.full_path הערך הועתק ישירות
filetype target.file.mime_type הערך הועתק ישירות
filesize target.file.size הומר למספר שלם לא חתום
hostname target.hostname הערך הועתק ישירות
dstip target.ip הערך הועתק ישירות
dstcountry target.location.country_or_region הערך הועתק ישירות
dstport target.port הומר למספר שלם
dstintf, dstintfrole target.resource.attribute.labels מיזוג עם תוויות שנוצרו מכל שדה
dstuuid target.resource.product_object_id הערך הועתק ישירות
url target.url הערך הועתק ישירות
eventtime event.idm.read_only_udm.metadata.event_timestamp מופה מיומן השינויים
ts event.idm.read_only_udm.metadata.collected_timestamp מופה מיומן השינויים
transid event.idm.read_only_udm.additional.fields מופה מיומן השינויים
method event.idm.read_only_udm.security_result.detection_fields מופה מיומן השינויים

שנה רישום

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

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