איסוף יומנים של 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. נכנסים למסוףGoogle Cloud ובוחרים את הפרויקט ב- Google Cloud שמקושר למכונה של Google SecOps.
  2. נכנסים לדף IAM & Admin > Service Accounts.
  3. לוחצים על Create service account.
  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 בספריית 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 כך שיתאים לנתיב שבו שמרתם אותו.
  12. עוברים אל IAM & Admin > Settings ומעתיקים את הערך של Project number. תצטרכו אותו כדי להגדיר את הייצוא.

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

  1. נכנסים למסוף Google SecOps.
  2. עוברים אל הגדרות > ניהול נתונים > סוכני איסוף. אם אתם משתמשים בפלטפורמת SIEM בלבד, עוברים אל הגדרות > סוכני איסוף.
  3. מורידים את קובץ האימות להטמעת נתונים.
  4. שומרים את הקובץ בצורה מאובטחת במערכת שבה יותקן הסוכן של Bindplane.

איך מקבלים את מספר הלקוח ב-Google SecOps

  1. נכנסים למסוף Google SecOps.
  2. עוברים אל הגדרות > ניהול > פרופיל. אם אתם משתמשים בפלטפורמה של SIEM בלבד, עוברים אל הגדרות > פרופיל.
  3. מעתיקים את מספר הלקוח מהקטע פרטי הארגון ושומרים אותו.

התקנת הסוכן של Bindplane

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

התקנת חלונות

  1. פותחים את שורת הפקודה או את PowerShell כאדמין.
  2. מריצים את הפקודה הבאה:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

התקנה ב-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
    

מקורות מידע נוספים בנושא התקנה

לאפשרויות התקנה נוספות, עיינו במדריך ההתקנה.

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

  1. ניגשים לקובץ התצורה:
    • מאתרים את הקובץ config.yaml. בדרך כלל, הוא נמצא בספרייה /opt/observiq-otel-collector/ ב-Linux או בספריית ההתקנה ב-Windows.
    • פותחים את הקובץ באמצעות כלי לעריכת טקסט (לדוגמה, nano,‏ vi או פנקס הרשימות).
  2. עורכים את הקובץ 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

  1. נכנסים לממשק המשתמש באינטרנט של Cisco ExpressWay.
  2. עוברים אל Maintenance > Logging.
  3. מזינים את כתובות ה-IP של סוכן Bindplane בתור שרת ה-syslog המרוחק.
  4. לוחצים על אפשרויות.
  5. מזינים את פרטי ההגדרה הבאים:
    • תעבורה: בוחרים באפשרות UDP.
    • יציאה: מזינים את מספר היציאה של סוכן Bindplane.
    • פורמט ההודעה: בוחרים באפשרות BSD. האפשרות השנייה היא IETF.
    • סינון לפי חומרה: בוחרים באפשרות לידיעה.
  6. לוחצים על 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.