איסוף יומנים של Cisco VCS
גרסת המנתח: 2.0
במאמר הזה מוסבר איך להטמיע ב-Google Security Operations יומנים של Cisco VCS (שירות תקשורת וידאו, שנשלט באמצעות ExpressWay) באמצעות Bindplane. המנתח מחלץ שדות מההודעות של syslog, מנרמל אותם למודל נתונים מאוחד (UDM) ומסווג את סוג האירוע על סמך פרטים שחולצו, כמו כתובות IP, יציאות ופעולות. הוא מטפל בפורמטים שונים של יומנים, מחלץ צמדים של מפתח/ערך וממפה רמות חומרה לערכים סטנדרטיים לצורך ניתוח אבטחה.
לפני שמתחילים
חשוב לוודא שיש לכם את הדברים הבאים:
- מופע של Google SecOps
- מארח עם Windows 2016 ואילך או עם Linux, עם
systemd - אם אתם משתמשים בשרת proxy, היציאות של חומת האש פתוחות
- גישה עם הרשאות ניהול ל-Cisco ExpressWay
קבלת פרטי כניסה ל-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.
- מזינים את פרטי ההגדרה הבאים:
- Service account name: מזינים שם לחשבון (לדוגמה,
bindplane-ingest). - Service account description: מזינים תיאור (לדוגמה,
Bindplane agent log ingestion).
- Service account name: מזינים שם לחשבון (לדוגמה,
- לוחצים על 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בספריית Bindplane collector (/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 ומעתיקים את הערך של Project number. תצטרכו אותו כדי להגדיר את הייצוא.
אפשרות 2: הורדה של קובץ האימות להטמעת נתונים (גרסה קודמת)
- נכנסים למסוף Google SecOps.
- עוברים אל הגדרות > ניהול נתונים > סוכני איסוף. אם אתם משתמשים בפלטפורמת SIEM בלבד, עוברים אל הגדרות > סוכני איסוף.
- מורידים את קובץ האימות להטמעת נתונים.
- שומרים את הקובץ בצורה מאובטחת במערכת שבה יותקן הסוכן של Bindplane.
איך מקבלים את מספר הלקוח ב-Google SecOps
- נכנסים למסוף Google SecOps.
- עוברים אל הגדרות > ניהול > פרופיל. אם אתם משתמשים בפלטפורמה של SIEM בלבד, עוברים אל הגדרות > פרופיל.
- מעתיקים את מספר הלקוח מהקטע פרטי הארגון ושומרים אותו.
התקנת הסוכן של Bindplane
מתקינים את הסוכן של Bindplane במערכת ההפעלה Windows או Linux לפי ההוראות הבאות.
התקנת חלונות
- פותחים את שורת הפקודה או את PowerShell כאדמין.
מריצים את הפקודה הבאה:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
התקנה ב-Linux
- פותחים טרמינל עם הרשאות root או sudo.
מריצים את הפקודה הבאה:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
מקורות מידע נוספים בנושא התקנה
לאפשרויות התקנה נוספות, עיינו במדריך ההתקנה.
הגדרת סוכן Bindplane להטמעת Syslog ושליחה אל Google SecOps
- ניגשים לקובץ התצורה:
- מאתרים את הקובץ
config.yaml. בדרך כלל, הוא נמצא בספרייה/opt/observiq-otel-collector/ב-Linux או בספריית ההתקנה ב-Windows. - פותחים את הקובץ באמצעות כלי לעריכת טקסט (לדוגמה,
nano,viאו פנקס הרשימות).
- מאתרים את הקובץ
עורכים את הקובץ
config.yaml:receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: 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 # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: chronicle.googleapis.com # Add optional ingestion labels for better organization log_type: 'CISCO_VCS' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels- מחליפים את היציאה ואת כתובת ה-IP לפי הצורך בתשתית שלכם.
- מחליפים את
<LOCATION>באזור של המופע של Google SecOps (לדוגמה,us,europeאוasia-southeast1). המערכת מוסיפה את הערך הזה בתחילתchronicle.googleapis.com. - מחליפים את
<PROJECT_NUMBER>במספר הפרויקט שמופיע בקטע IAM & Admin > Settings. - מחליפים את
<customer_id>במספר הלקוח בפועל. - מעדכנים את
/path/to/ingestion-authentication-file.jsonלנתיב שבו נשמר קובץ המפתח של חשבון השירות (אפשרות 1) בקטע קבלת פרטי כניסה ל-Google SecOps בשביל סוכן Bindplane.
מייצא API להטמעה מדור קודם
אם אתם משתמשים בקובץ האימות להטמעת נתונים מאפשרות 2, החליפו את הבלוק
exportersבקוד הבא. מגדירים אתcreds_file_pathלנתיב של קובץ האימות להטמעת נתונים. אם המכונה נמצאת מחוץ לארה"ב, מחליפים אתmalachiteingestion-pa.googleapis.comבנקודת הקצה האזורית (לדוגמה,europe-malachiteingestion-pa.googleapis.com).exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization log_type: 'CISCO_VCS' raw_log_field: body ingestion_labels:
מפעילים מחדש את הסוכן של Bindplane כדי להחיל את השינויים.
כדי להפעיל מחדש את הסוכן של Bindplane ב-Linux, מריצים את הפקודה הבאה:
sudo systemctl restart bindplane-agentכדי להפעיל מחדש את הסוכן של Bindplane ב-Windows, אפשר להשתמש במסוף Services או להזין את הפקודה הבאה:
net stop BindPlaneAgent && net start BindPlaneAgent
הגדרת Syslog ל-Cisco ExpressWay
- נכנסים לממשק המשתמש באינטרנט של Cisco ExpressWay.
- עוברים אל Maintenance > Logging.
- מזינים את כתובות ה-IP של סוכן Bindplane בתור שרת ה-syslog המרוחק.
- לוחצים על אפשרויות.
- מזינים את פרטי ההגדרה הבאים:
- תעבורה: בוחרים באפשרות UDP.
- יציאה: מזינים את מספר היציאה של סוכן Bindplane.
- פורמט ההודעה: בוחרים באפשרות BSD. האפשרות השנייה היא IETF.
- סינון לפי חומרה: בוחרים באפשרות לידיעה.
- לוחצים על Save.
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | Logic (פונקציה לוגית) |
|---|---|---|
| פעולה | read_only_udm.security_result.action_details | הערך של השדה Action מהיומן הגולמי. |
| קוד | read_only_udm.network.http.response_code | הערך של השדה Code מהיומן הגולמי, שהומר למספר שלם. משמש כש-Response-code לא קיים. |
| פרטים | read_only_udm.security_result.description | הערך של השדה Detail מהיומן הגולמי. |
| Dst-ip | read_only_udm.target.ip | הערך של השדה Dst-ip מהיומן הגולמי. בשימוש כש-Action הוא לא Received. |
| Dst-port | read_only_udm.target.port | הערך של השדה Dst-port מהיומן הגולמי, שהומר למספר שלם. בשימוש כש-Action הוא לא Received. |
| אירוע | read_only_udm.metadata.product_event_type | הערך של השדה Event מהיומן הגולמי. |
| רמה | read_only_udm.security_result.severity_details | הערך של השדה Level מהיומן הגולמי. |
| רמה | read_only_udm.security_result.severity | ממופה על סמך הערך של השדה Level מהיומן הגולמי: – 9, 10, VERY-HIGH: קריטי – error, warning, 7, 8, HIGH: גבוה – notice, 4, 5, 6, MEDIUM: בינוני – information, info, 0, 1, 2, 3, LOW: נמוך |
| כתובת IP מקומית | read_only_udm.principal.ip | הערך של השדה Local-ip מהיומן הגולמי. בשימוש כש-Action הוא לא Received. |
| כתובת IP מקומית | read_only_udm.target.ip | הערך של השדה Local-ip מהיומן הגולמי. בשימוש כש-Action הוא Received. |
| Local-port | read_only_udm.principal.port | הערך של השדה Local-port מהיומן הגולמי, שהומר למספר שלם. בשימוש כש-Action הוא לא Received. |
| Local-port | read_only_udm.target.port | הערך של השדה Local-port מהיומן הגולמי, שהומר למספר שלם. בשימוש כש-Action הוא Received. |
| Method | read_only_udm.network.http.method | הערך של השדה Method מהיומן הגולמי. |
| יחידת לימוד | read_only_udm.additional.fields.value.string_value | הערך של השדה Module מהיומן הגולמי. |
| צומת | read_only_udm.additional.fields.value.string_value | הערך של השדה Node מהיומן הגולמי. |
| פרוטוקול | read_only_udm.network.ip_protocol | הערך של השדה Protocol מהיומן הגולמי, מנותח וממופה לשם פרוטוקול ה-IP התואם באמצעות הלוגיקה של parse_ip_protocol.include. |
| Response-code | read_only_udm.network.http.response_code | הערך של השדה Response-code מהיומן הגולמי, שהומר למספר שלם. |
| Src-ip | read_only_udm.principal.ip | הערך של השדה Src-ip מהיומן הגולמי. בשימוש כש-Action הוא Received. |
| Src-ip | read_only_udm.principal.ip | הערך של השדה Src-ip מהיומן הגולמי. בשימוש כש-Action הוא לא Received ו-Local-ip לא קיים. |
| Src-port | read_only_udm.principal.port | הערך של השדה Src-port מהיומן הגולמי, שהומר למספר שלם. בשימוש כש-Action הוא Received. |
| Src-port | read_only_udm.principal.port | הערך של השדה Src-port מהיומן הגולמי, שהומר למספר שלם. בשימוש כש-Action הוא לא Received ו-Local-port לא קיים. |
| אפליקציה | read_only_udm.target.application | הערך של השדה application מהיומן הגולמי. |
| description | read_only_udm.security_result.description | הערך של השדה description מהיומן הגולמי. |
| inner_msg | read_only_udm.security_result.description | הערך של השדה inner_msg מהיומן הגולמי. משמש כשמתרחש inner_msg_grok_failure. |
| principal_hostname | read_only_udm.principal.hostname | הערך של השדה principal_hostname מהיומן הגולמי. |
| חותמת זמן | read_only_udm.metadata.event_timestamp.seconds | חותמת הזמן של נקודת ההתחלה שחולצה מהשדה timestamp ביומן הגולמי. |
| חותמת זמן | read_only_udm.events.timestamp.seconds | חותמת הזמן של נקודת ההתחלה שחולצה מהשדה timestamp ביומן הגולמי. |
| read_only_udm.additional.fields.key | ערך בתוך הקוד: Module, Node |
|
| read_only_udm.metadata.log_type | ערך בקידוד קשיח: CISCO_VCS |
|
| read_only_udm.metadata.product_name | ערך בקידוד קשיח: CISCO VCS |
|
| read_only_udm.metadata.vendor_name | ערך בקידוד קשיח: CISCO VCS |
|
| read_only_udm.metadata.event_type | נקבע על סמך הערכים של השדות Action, Src-ip, principal_hostname, Local-ip ו-Dst-ip: – NETWORK_CONNECTION: אם (Action הוא Received ו-Local-ip קיים) או (Action הוא לא Received ו-Dst-ip קיים) – STATUS_UPDATE: אחרת |
יומן שינויים
הצגת יומן השינויים של המנתח הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.