איסוף יומנים של 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: יצירת חשבון שירות ל-Chronicle API (מומלץ)
- נכנסים למסוףGoogle Cloud ובוחרים את הפרויקט ב- Google Cloud שמקושר למכונה של Google SecOps.
- נכנסים לדף IAM & Admin > Service Accounts.
- לוחצים על Create service account.
- מזינים את פרטי ההגדרה הבאים:
- שם חשבון השירות: מזינים שם לחשבון (לדוגמה,
bindplane-ingest). - תיאור חשבון השירות: מזינים תיאור (לדוגמה,
Bindplane agent log ingestion).
- שם חשבון השירות: מזינים שם לחשבון (לדוגמה,
- לוחצים על Create and continue.
- בקטע Grant this service account access to project לוחצים על Select a role ובוחרים באפשרות Chronicle Editor.
- לוחצים על המשך ואז על סיום.
- לוחצים על חשבון השירות שיצרתם ואז עוברים לכרטיסייה Keys.
- לוחצים על Add key > Create new key.
- בוחרים באפשרות JSON ולוחצים על Create. קובץ המפתח יורד למחשב.
- שומרים את קובץ המפתח בתור
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כך שיתאים לנתיב שבו שמרתם אותו. - עוברים אל IAM & Admin > Settings (ניהול הרשאות גישה ואדמין > הגדרות) ומעתיקים את מספר הפרויקט. תצטרכו אותו כדי להגדיר את הייצוא.
אפשרות 2: הורדת קובץ אימות להטמעת נתונים (גרסה מדור קודם)
- נכנסים למסוף Google SecOps.
- עוברים אל SIEM Settings > Collection Agents (הגדרות SIEM > סוכני איסוף).
- מורידים את קובץ האימות להטמעת נתונים.
- שומרים את הקובץ בצורה מאובטחת במערכת שבה יותקן הסוכן של Bindplane.
איך מוצאים את מספר הלקוח ב-Google SecOps
- נכנסים למסוף Google SecOps.
- עוברים אל SIEM Settings > Profile.
מעתיקים את מזהה הלקוח מהקטע פרטי הארגון ושומרים אותו.
התקנת הסוכן של Bindplane
מתקינים את סוכן Bindplane במערכת ההפעלה Windows או Linux לפי ההוראות הבאות.
התקנת חלונות
- פותחים את שורת הפקודה או את PowerShell כאדמין.
מריצים את הפקודה הבאה:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietמחכים שההתקנה תסתיים.
מאמתים את ההתקנה על ידי הרצת:
sc query observiq-otel-collectorהשירות אמור להופיע כ-RUNNING.
התקנה ב-Linux
- פותחים טרמינל עם הרשאות root או sudo.
מריצים את הפקודה הבאה:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shמחכים שההתקנה תסתיים.
כדי לוודא שההתקנה בוצעה, מריצים את הפקודה:
sudo systemctl status observiq-otel-collectorהשירות אמור להופיע כ-active (running).
מקורות מידע נוספים להתקנה
אפשרויות התקנה נוספות ופתרון בעיות מפורטים במדריך להתקנת סוכן Bindplane.
הגדרה של סוכן Bindplane להטמעה של syslog ושליחה אל Google SecOps
איתור קובץ התצורה
Linux:
sudo nano /opt/observiq-otel-collector/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
עריכת קובץ התצורה
מחליפים את כל התוכן של
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מחליפים את ה-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
- Linux:
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:
מריצים את הפקודה הבאה:
sudo systemctl restart observiq-otel-collectorמוודאים שהשירות פועל:
sudo systemctl status observiq-otel-collectorבודקים אם יש שגיאות ביומנים:
sudo journalctl -u observiq-otel-collector -f
כדי להפעיל מחדש את הסוכן של Bindplane ב-Windows:
בוחרים אחת מהאפשרויות האלה:
שורת פקודה או PowerShell כאדמין:
net stop observiq-otel-collector && net start observiq-otel-collectorמסוף השירותים:
- מקישים על
Win+R, מקלידיםservices.mscומקישים על Enter. - מחפשים את observIQ OpenTelemetry Collector.
- לוחצים לחיצה ימנית ובוחרים באפשרות הפעלה מחדש.
- מקישים על
מוודאים שהשירות פועל:
sc query observiq-otel-collectorבודקים אם יש שגיאות ביומנים:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
הגדרת העברת syslog של Big Switch BigCloudFabric
מגדירים את בקר ה-BCF/CCF כך שיעביר הודעות syslog לסוכן Bindplane באמצעות GUI או CLI.
שיטה 1: הגדרת syslog באמצעות ממשק המשתמש הגרפי (GUI)
- נכנסים לממשק האינטרנט של בקר BCF/CCF באמצעות פרטי הכניסה של האדמין.
- עוברים אל Maintenance > Logging.
- לוחצים על הכרטיסייה רישום ביומן מרחוק.
- כדי ליצור הגדרה חדשה של שרת syslog מרוחק, לוחצים על הוספה.
- מזינים את פרטי ההגדרה הבאים:
- שרת: מזינים את כתובת ה-IP של המארח של סוכן Bindplane (לדוגמה,
192.168.1.100). - Port: מזינים
514(או את היציאה שהוגדרה בקובץ config.yaml של סוכן Bindplane). - פרוטוקול: בוחרים באפשרות UDP.
- שרת: מזינים את כתובת ה-IP של המארח של סוכן Bindplane (לדוגמה,
- לוחצים על שמירה או על אישור כדי לשמור את ההגדרה.
- מוודאים שההגדרה מופיעה ברשימה "רישום ביומן מרחוק".
שיטה 2: הגדרת syslog באמצעות ה-CLI
- מתחברים לבקר BCF/CCF באמצעות SSH עם פרטי הכניסה של האדמין.
מזינים את הפקודה enable:
controller-1> enableנכנסים למצב הגדרה:
controller-1# configureמגדירים את שרת ה-syslog המרוחק:
controller-1(config)# logging remote 192.168.1.100מחליפים את
192.168.1.100בכתובת ה-IP של המארח של סוכן Bindplane.יציאה ממצב הגדרה:
controller-1(config)# exitמאמתים את ההגדרות של syslog:
controller-1# show loggingבפלט אמורה להופיע כתובת ה-IP של שרת ה-syslog המרוחק שהוגדר.
אימות העברת היומנים
- כדי ליצור אירועים ביומן הבדיקה בבקר BCF/CCF, צריך לבצע שינויים בהגדרות או להציג את סטטוס המערכת.
בודקים את היומנים של סוכן Bindplane כדי לוודא שהודעות syslog מתקבלות:
Linux:
sudo journalctl -u observiq-otel-collector -fWindows:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
נכנסים למסוף 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.