איסוף יומנים של Big Switch BigCloudFabric

גרסת המנתח: 2.0

נתמך ב:

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

‫Arista Networks Big Cloud Fabric‏ (BCF), שנקרא עכשיו Converged Cloud Fabric‏ (CCF), הוא פתרון של שירותי Networking מוגדרי-תוכנה (SDN) שמספק ניהול אוטומטי של רשת מרכז נתונים באמצעות בקר מרכזי. בקר BCF/CCF מנהל ארכיטקטורות רשת מסוג leaf-spine, ומספק יכולות ריכוזיות של הגדרה, מעקב ופתרון בעיות ברשתות של מרכזי נתונים ארגוניים. המוצר הזה פותח במקור על ידי Big Switch Networks לפני שנרכש על ידי Arista Networks.

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

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

  • מופע של Google SecOps
  • ‫Windows Server 2016 ואילך, או מארח Linux עם systemd
  • קישוריות רשת בין סוכן Bindplane לבין בקר BCF/CCF
  • אם מריצים את הסוכן מאחורי שרת proxy, מוודאים שיציאות חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane
  • הרשאת אדמין לבקר BCF/CCF דרך GUI או CLI
  • בקר BCF/CCF בגרסה 2.5 ואילך (לתמיכה ב-syslog)

קבלת פרטי כניסה ל-Google SecOps עבור סוכן Bindplane

כדי לאמת את סוכן Bindplane ב-Google SecOps, בוחרים באחת מהשיטות הבאות:

  • פריסות חדשות: משתמשים ב-Chronicle API (אפשרות 1).
  • פריסות קודמות: ממשיכים להשתמש בקובץ האימות להטמעת נתונים (אפשרות 2) עד שה-Ingestion API יופסק ב-20 ביולי 2027.
  1. נכנסים למסוףGoogle Cloud ובוחרים את הפרויקט ב- Google Cloud שמקושר למכונה של Google SecOps.
  2. נכנסים לדף IAM & Admin > Service Accounts.
  3. לוחצים על Create service account.
  4. מזינים את פרטי ההגדרה הבאים:
    • שם חשבון השירות: מזינים שם לחשבון (לדוגמה, bindplane-ingest).
    • תיאור חשבון השירות: מזינים תיאור (לדוגמה, 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 (ניהול הרשאות גישה ואדמין > הגדרות) ומעתיקים את מספר הפרויקט. תצטרכו אותו כדי להגדיר את הייצוא.

אפשרות 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
    

    השירות אמור להופיע כ-active (running).

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

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

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

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

  • Linux:

    sudo nano /opt/observiq-otel-collector/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/bigswitch_bcf:
        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: 'YOUR_CUSTOMER_ID'
        endpoint: chronicle.googleapis.com
        log_type: BIGSWITCH_BCF
        raw_log_field: body
        ingestion_labels:
          env: production
          source: bcf_controller
    
    service:
      pipelines:
        logs/bcf_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/bigswitch_bcf
    
  2. מחליפים את ה-placeholders הבאים:

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

      • המקלט מוגדר להאזין ליציאת UDP‏ 514 להודעות syslog מבקר BCF/CCF
      • כדי להשתמש ביציאה אחרת, צריך לשנות את 514 למספר היציאה הרצוי (לדוגמה, 1514 להתקנות Linux ללא הרשאות)
    • הגדרת הייצוא:

      • ‫creds_file_path: הנתיב המלא לקובץ המפתח בפורמט JSON של חשבון השירות (אפשרות 1):

        • ‫Linux: /opt/observiq-otel-collector/ingestion-auth.json
        • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
      • ‫YOUR_CUSTOMER_ID: מחליפים ב-Customer ID. פרטים נוספים זמינים במאמר קבלת מזהה לקוח ב-Google SecOps.

      • ‫location: מחליפים את <LOCATION> באזור של מופע Google SecOps (לדוגמה, us,‏ europe או asia-southeast1). ערך זה מתווסף לתחילית chronicle.googleapis.com של הכלי לייצוא. רשימה מלאה של נקודות הקצה האזוריות מופיעה במאמר Regional Endpoints.

      • ‫project: מחליפים את <PROJECT_NUMBER> במספר הפרויקט מתוך IAM & Admin > Settings.

      • ‫endpoint: משאירים את הערך chronicle.googleapis.com.

      • ‫log_type: מוגדר ל-BIGSWITCH_BCF (לא משנים)

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

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

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

    exporters:
      chronicle/bigswitch_bcf:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: BIGSWITCH_BCF
        raw_log_field: body
        ingestion_labels:
          env: production
          source: bcf_controller
    

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

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

  • ‫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 של Big Switch BigCloudFabric

מגדירים את בקר ה-BCF/CCF כך שיעביר הודעות syslog לסוכן Bindplane באמצעות GUI או CLI.

שיטה 1: הגדרת syslog באמצעות ממשק המשתמש הגרפי (GUI)

  1. נכנסים לממשק האינטרנט של בקר BCF/CCF באמצעות פרטי הכניסה של האדמין.
  2. עוברים אל Maintenance > Logging.
  3. לוחצים על הכרטיסייה רישום ביומן מרחוק.
  4. כדי ליצור הגדרה חדשה של שרת syslog מרוחק, לוחצים על הוספה.
  5. מזינים את פרטי ההגדרה הבאים:
    • שרת: מזינים את כתובת ה-IP של המארח של סוכן Bindplane (לדוגמה, 192.168.1.100).
    • ‫Port: מזינים 514 (או את היציאה שהוגדרה בקובץ config.yaml של סוכן Bindplane).
    • פרוטוקול: בוחרים באפשרות UDP.
  6. לוחצים על שמירה או על אישור כדי לשמור את ההגדרה.
  7. מוודאים שההגדרה מופיעה ברשימה "רישום ביומן מרחוק".

שיטה 2: הגדרת syslog באמצעות ה-CLI

  1. מתחברים לבקר BCF/CCF באמצעות SSH עם פרטי הכניסה של האדמין.
  2. מזינים את הפקודה enable:

    controller-1> enable
    
  3. נכנסים למצב הגדרה:

    controller-1# configure
    
  4. מגדירים את שרת ה-syslog המרוחק:

    controller-1(config)# logging remote 192.168.1.100
    

    מחליפים את 192.168.1.100 בכתובת ה-IP של המארח של סוכן Bindplane.

  5. יציאה ממצב הגדרה:

    controller-1(config)# exit
    
  6. מאמתים את ההגדרות של syslog:

    controller-1# show logging
    

    בפלט אמורה להופיע כתובת ה-IP של שרת ה-syslog המרוחק שהוגדר.

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

  1. כדי ליצור אירועים ביומן הבדיקה בבקר BCF/CCF, צריך לבצע שינויים בהגדרות או להציג את סטטוס המערכת.
  2. בודקים את היומנים של סוכן Bindplane כדי לוודא שהודעות syslog מתקבלות:

    • Linux:

      sudo journalctl -u observiq-otel-collector -f
      
    • ‫Windows:

      type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
      
  3. נכנסים למסוף Google SecOps ומוודאים שהיומנים מופיעים בממשק Search עם תווית ההטמעה BIGSWITCH_BCF.

טבלת מיפוי UDM

שדה ביומן מיפוי UDM היגיון
description metadata.description הערך הועתק ישירות, והוסרו רווחים לבנים בתחילת הטקסט או בסופו
target_host, time, product_event_type, description, application metadata.event_type הגדרת STATUS_HEARTBEAT אם target_host ו-time לא ריקים; הגדרת SERVICE_STOP אם product_event_type == PORT_DOWN; הגדרת SERVICE_START אם התיאור תואם ל-".Running job." או product_event_type == PORT_UP או application == snmpd-execstart; הגדרת STATUS_SHUTDOWN אם התיאור תואם ל-".status down."; ‫SERVICE_DELETION אם product_event_type == Removing Endpoint;‏ SERVICE_CREATION אם product_event_type == Adding Endpoint;‏ SERVICE_MODIFICATION אם product_event_type == Moving Endpoint או אם התיאור תואם ל-‎ ".change instances."; NETWORK_CONNECTION if target_host not empty; else GENERIC_EVENT
product_event_type metadata.product_event_type הערך הועתק ישירות
application_protocol network.application_protocol צריך להגדיר את הערך "UNKNOWN_APPLICATION_PROTOCOL" אם application_protocol == "lldpa"
מארח principal.hostname הערך הועתק ישירות
ip principal.ip הערך הועתק ישירות
process_id principal.process.pid הערך הועתק ישירות
משתמש principal.user.userid הערך הועתק ישירות
log_level security_result אובייקט עם רמת חומרה שמוגדרת כ-INFORMATIONAL אם INFO, ‏ MEDIUM אם WARN, ‏ HIGH אם ERROR; פעולה שמוגדרת כ-ALLOW אם INFO או WARN, ‏ BLOCK אם ERROR
אפליקציה target.application הערך הועתק ישירות
target_host target.hostname הערך הועתק ישירות
יציאה target.port הומר למספר שלם
פקודה target.process.command_line הערך הועתק ישירות
product_specific_id target.process.product_specific_process_id עם הקידומת "Bigswitch:"
kv_1, kv2, kv3 target.user.group_identifiers הערך ממוזג מ-kv_1 אם הוא לא ריק, מ-kv2 אם הוא לא ריק, מ-kv3 אם הוא לא ריק
metadata.product_name הגדרה ל-"Big Cloud Fabric"
metadata.vendor_name הגדרה כ "מתג גדול"

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