איסוף יומנים של מאזן עומסי רשת של A10

גרסת המנתח: 7.0

נתמך ב:

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

חברת A10 Networks מספקת בקרי שליחת אפליקציות (ADC) ומאזני עומסים שמבצעים אופטימיזציה של תעבורת הנתונים באפליקציות ומאבטחים אותה. סדרת A10 Thunder תומכת באיזון עומסים בשרת, בהעברת הצפנת SSL, בהגנה מפני DDoS וביכולות של חומת אש ליישומי אינטרנט (WAF).

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

חשוב לוודא שיש לכם את הדברים הבאים:

  • מכונה של Google SecOps
  • ‫Windows Server 2016 ואילך, או מארח Linux עם systemd
  • קישוריות רשת בין סוכן Bindplane לבין מאזן העומסים של A10
  • אם אתם משתמשים בשרת proxy, ודאו שהיציאות של חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane.
  • גישה עם הרשאות ל-CLI של A10 מאזן עומסים (LB) (פרטי כניסה של אדמין)

קבלת פרטי כניסה ל-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
    
  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/a10_lb:
        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: '<customer_id>'
        endpoint: chronicle.googleapis.com
        log_type: A10_LOAD_BALANCER
        raw_log_field: body
    
    service:
      pipelines:
        logs/a10_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/a10_lb
    

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

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

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

    • ‫listen_address: כתובת ה-IP והיציאה להאזנה:
      • ‫0.0.0.0 כדי להאזין בכל הממשקים (מומלץ)
      • יציאה 514 היא יציאת syslog הרגילה (נדרש root ב-Linux; צריך להשתמש ב-1514 ללא root)
  • הגדרת הייצוא:

    • ‫creds_file_path: הנתיב המלא לקובץ המפתח של חשבון השירות בפורמט JSON (אפשרות 1):
      • Linux: /opt/observiq-otel-collector/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • ‫customer_id: מספר הלקוח שהועתק ממסוף Google SecOps
    • ‫location: מחליפים את <LOCATION> באזור של המכונה של Google SecOps (לדוגמה, us,‏ europe או asia-southeast1). המייצא מוסיף את הערך הזה בתחילת chronicle.googleapis.com. לרשימה המלאה, ראו נקודות קצה אזוריות.
    • ‫project: מחליפים את <PROJECT_NUMBER> במספר הפרויקט שמופיע בקטע IAM & Admin > Settings.
    • ‫endpoint: משאירים את הערך chronicle.googleapis.com.

מייצא API להטמעה מדור קודם

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

    exporters:
      chronicle/a10_lb:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: A10_LOAD_BALANCER
        raw_log_field: body
    

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

  • אחרי שמסיימים לערוך, שומרים את הקובץ:
    • 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 במאזן העומסים של A10

  1. יוצרים חיבור SSH למאזן העומסים של A10 באמצעות לקוח SSH.
  2. מריצים את הפקודה הבאה כדי להיכנס למצב הגדרה:

    config
    
  3. מריצים את הפקודה הבאה כדי להגדיר את שרת ה-syslog המרוחק:

    logging host <BINDPLANE_IP> <PORT>
    
    • מחליפים את <BINDPLANE_IP> בכתובת ה-IP של מארח הסוכן של Bindplane (לדוגמה, 192.168.1.100).
    • מחליפים את <PORT> ביציאה שהוגדרה במקלט של Bindplane (לדוגמה, 514).
  4. מריצים את הפקודה הבאה כדי להגדיר את רמת החומרה:

    logging level information
    
  5. כדי לוודא שהרישום ביומן של syslog מופעל, מריצים את הפקודה הבאה:

    logging enable
    
  6. שומרים את ההגדרות כדי לוודא שהן יישמרו אחרי הפעלה מחדש:

    write memory
    
  7. דוגמה להגדרה מלאה של CLI:

    config
    logging host 192.168.1.100 514
    logging level information
    logging enable
    write memory
    

טבלת מיפוי UDM

שדה ביומן מיפוי UDM Logic (פונקציה לוגית)
dns additional.fields.dns.value.string_value הערך נלקח מהשדה dns שחולץ על ידי תבנית ה-grok.
dns_server additional.fields.dns_server.value.string_value הערך נלקח מהשדה dns_server שחולץ על ידי תבנית ה-grok.
gslb additional.fields.gslb.value.string_value הערך נלקח מהשדה gslb שחולץ על ידי תבנית ה-grok.
host_name principal.hostnameprincipal.asset.hostname הערך נלקח מהשדה host_name שחולץ על ידי תבנית ה-grok.
httpmethod network.http.method הערך נלקח מהשדה httpmethod שחולץ על ידי תבנית ה-grok.
partion_id additional.fields.partion_id.value.string_value הערך נלקח מהשדה partion_id שחולץ על ידי תבנית ה-grok.
prin_ip principal.ipprincipal.asset.ip הערך נלקח מהשדה prin_ip שחולץ על ידי תבנית ה-grok.
prin_mac principal.mac הערך נלקח מהשדה prin_mac שחולץ על ידי תבנית ה-grok, כשהנקודות הוסרו והוכנסו נקודתיים כל שני תווים.
prin_port principal.port הערך נלקח מהשדה prin_port שחולץ על ידי תבנית ה-grok ומומר למספר שלם.
proto network.ip_protocol הערך נלקח מהשדה proto שחולץ על ידי תבנית ה-grok. אם השדה message מכיל את הערך UDP, הערך מוגדר כ-UDP.
sessionid network.session_id הערך נלקח מהשדה sessionid שחולץ על ידי תבנית ה-grok.
status_code network.http.response_code הערך נלקח מהשדה status_code שחולץ על ידי תבנית ה-grok ומומר למספר שלם.
tar_ip target.iptarget.asset.ip הערך נלקח מהשדה tar_ip שחולץ על ידי תבנית ה-grok.
tar_mac target.mac הערך נלקח מהשדה tar_mac שחולץ על ידי תבנית ה-grok, כשהנקודות הוסרו והוכנסו נקודתיים כל שני תווים.
tar_port target.port הערך נלקח מהשדה tar_port שחולץ על ידי תבנית ה-grok ומומר למספר שלם.
time metadata.event_timestamp.seconds הערך מנותח מהשדה time שחולץ על ידי תבנית ה-grok, באמצעות כמה פורמטים אפשריים של תאריכים.
url target.url הערך נלקח מהשדה url שחולץ על ידי תבנית ה-grok.
user principal.user.userid הערך נלקח מהשדה user שחולץ על ידי תבנית ה-grok.
לא רלוונטי metadata.event_type נקבע על ידי הלוגיקה של המנתח על סמך הנוכחות של מידע על חשבון המשתמש ועל היעד:
-NETWORK_CONNECTION: אם יש מידע גם על חשבון המשתמש וגם על היעד.‫
-STATUS_UPDATE: אם יש רק מידע על חשבון המשתמש.‫
-GENERIC_EVENT: אחרת.
לא רלוונטי metadata.log_type מקודד בתוך הקוד ל-A10_LOAD_BALANCER.
לא רלוונטי network.application_protocol צריך להגדיר את הערך HTTP אם השדה proto הוא HTTP.
dhost event.idm.read_only_udm.target.hostname מופה מיומן השינויים
inter_host event.idm.read_only_udm.observer.hostname מופה מיומן השינויים
virtualserver event.idm.read_only_udm.intermediary.hostname מופה מיומן השינויים
Script_name event.idm.read_only_udm.additional.fields מופה מיומן השינויים
len event.idm.read_only_udm.additional.fields מופה מיומן השינויים
seq_id event.idm.read_only_udm.additional.fields מופה מיומן השינויים
desc event.idm.read_only_udm.metadata.description מופה מיומן השינויים
target_user event.idm.read_only_udm.target.user.userid מופה מיומן השינויים
rule_name event.idm.read_only_udm.security_result.rule_name מופה מיומן השינויים
vendor_severity event.idm.read_only_udm.security_result.severity מופה מיומן השינויים
facility event.idm.read_only_udm.additional.fields מופה מיומן השינויים
proxy_machine_ip event.idm.read_only_udm.intermediary.ip וגם event.idm.read_only_udm.intermediary.asset.ip מופה מיומן השינויים
event_dt event.idm.read_only_udm.metadata.event_timestamp מופה מיומן השינויים
prin_host principal.hostname מופה מיומן השינויים
app target.application מופה מיומן השינויים
device_version metadata.product_version מופה מיומן השינויים
device_vendor metadata.vendor_name מופה מיומן השינויים
device_product metadata.product_name מופה מיומן השינויים
event_name" and "device_event_class_id metadata.product_event_type מופה מיומן השינויים
severity security_result.severity מופה מיומן השינויים
src principal.ip מופה מיומן השינויים
spt principal.port מופה מיומן השינויים
dst target.ip מופה מיומן השינויים
dpt target.port מופה מיומן השינויים
msg metadata.description מופה מיומן השינויים
suser principal.user.user_display_name מופה מיומן השינויים
act" and "cn1 additional.fields מופה מיומן השינויים
app_proto network.application_protocol מופה מיומן השינויים
tls_version network.tls.version מופה מיומן השינויים

יומן שינויים

הצגת יומן השינויים של המנתח הזה

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