איסוף יומנים של Tableau

נתמך ב:

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

‫Tableau היא פלטפורמה לבינה עסקית ולהצגה חזותית של נתונים, שמייצרת יומני פעילות משתמשים, אימות וביקורת. ‫Tableau Server מאחסן קובצי יומן במערכת הקבצים של השרת, ולכן איסוף מבוסס-קבצים הוא אידיאלי להטמעה.

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

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

  • מופע של Google SecOps
  • ‫Windows Server 2016 ואילך, או מארח Linux עם systemd
  • קישוריות לרשת בין סוכן Bindplane לבין המארח של Tableau Server
  • אם מריצים מאחורי שרת proxy, מוודאים שיציאות חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane
  • גישת אדמין ל-Tableau Server
  • גישה לקובצי יומן של Tableau Server במערכת הקבצים של השרת

קבלת קובץ אימות להטמעת נתונים ב-Google SecOps

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

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

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

התקנת סוכן Bindplane

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

התקנה ב-Windows

  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 /etc/bindplane-agent/config.yaml
    
  • ‫Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

עריכת קובץ ההגדרות

  • מחליפים את כל התוכן של config.yaml בהגדרה הבאה:

    receivers:
        filelog:
            include:
                - /var/opt/tableau/tableau_server/data/tabsvc/logs/httpd/access.*.log
                - /var/opt/tableau/tableau_server/data/tabsvc/logs/vizqlserver/*.log
                - /var/opt/tableau/tableau_server/data/tabsvc/logs/backgrounder/*.log
            start_at: beginning
    
    exporters:
        chronicle/tableau:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: TABLEAU
            raw_log_field: body
            ingestion_labels:
                env: production
    
    service:
        pipelines:
            logs/tableau_to_chronicle:
                receivers:
                    - filelog
                exporters:
                    - chronicle/tableau
    

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

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

  • הגדרת מקלט:

    • filelog: סוג המקלט לאיסוף קובצי יומן מהדיסק
    • ‫include: רשימה של נתיבי קבצים או תבניות glob למעקב:
      • ‫Linux: /var/opt/tableau/tableau_server/data/tabsvc/logs/
      • ‫Windows: C:\ProgramData\Tableau\Tableau Server\data\tabsvc\logs\
      • קובצי יומן מרכזיים כוללים את httpd/access.*.log (יומני גישה של Apache),‏ vizqlserver/*.log (יומני שרת VizQL) ו-backgrounder/*.log (יומני משימות ברקע)
      • שינוי הנתיבים כך שיתאימו להתקנה של Tableau Server
    • ‫start_at: מגדירים את הערך ל-beginning כדי לקרוא קובצי יומן קיימים מההתחלה, או ל-end כדי לקרוא רק רשומות חדשות
  • הגדרת כלי הייצוא:

    • ‫tableau: שם תיאורי של הכלי לייצוא
    • ‫creds_file_path: הנתיב המלא לקובץ האימות להטמעת נתונים:
      • ‫Linux: /etc/bindplane-agent/ingestion-auth.json
      • ‫Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • ‫<customer_id>: מספר הלקוח מהשלב הקודם
    • ‫endpoint: כתובת ה-URL של נקודת הקצה האזורית:
      • ארה"ב: malachiteingestion-pa.googleapis.com
      • אירופה: europe-malachiteingestion-pa.googleapis.com
      • אסיה: asia-southeast1-malachiteingestion-pa.googleapis.com
      • רשימה מלאה מופיעה במאמר בנושא נקודות קצה אזוריות.
    • ‫TABLEAU: סוג היומן בדיוק כמו שהוא מופיע ב-Chronicle
    • ‫ingestion_labels: תוויות אופציונליות בפורמט YAML (לדוגמה, env: production)

הגדרת צינור עיבוד הנתונים: * tableau_to_chronicle: שם תיאורי של צינור עיבוד הנתונים

שמירת קובץ ההגדרות

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

אימות המיקומים של קובצי היומן של Tableau Server

  1. נכנסים למארח Tableau Server עם הרשאות אדמין.
  2. מאמתים את הספריות של קובצי היומן:
    • ‫Linux: /var/opt/tableau/tableau_server/data/tabsvc/logs/
    • ‫Windows: C:\ProgramData\Tableau\Tableau Server\data\tabsvc\logs\
  3. קבצים ותיקיות משנה של יומן המפתחות:
    • ‫httpd/access.*.log: יומני גישה של Apache עם פרטים של בקשות HTTP
    • ‫vizqlserver/*.log: יומני שרת VizQL עם פעילות של שאילתות להמחשה
    • ‫backgrounder/*.log: יומני משימות ברקע עם פעילות של משימות מתוזמנות
  4. (אופציונלי) כדי לבצע אימות, יוצרים ארכיון של יומן הרישום באמצעות כלי שורת הפקודה TSM:

    tsm maintenance ziplogs -a -t -o -f tableau-logs.zip
    
  5. אם ספריית היומנים שונה מהברירות מחדל, צריך לעדכן את include הנתיבים בסוכן Bindplane config.yaml.

טבלת מיפוי UDM

שדה ביומן מיפוי UDM היגיון
dataserver_permissions, local_dataserver, saved_credentials_viewerid, locale, server_oauth, :id, server_viewerid, dataserver_version, tablename, ElapsedTime, LastStatus, Timeszone additional.fields צמדים של מפתח/ערך שמוזגו משדות שצוינו
תוכן metadata.description הערך הועתק מיד אחרי ההסרה של '_'
מזהה, מארח מרוחק metadata.event_type הערך הוא USER_UNCATEGORIZED אם המזהה לא ריק, STATUS_UPDATE אם RemoteHost קיים, GENERIC_EVENT אחרת
פרוטוקול network.application_protocol הערך הועתק ישירות
http_version network.application_protocol_version הערך הועתק ישירות
method network.http.method הערך הועתק מיד אחרי ההסרה של ""
SizeBytes network.received_bytes הומר ל-uinteger
session_id network.session_id הערך הועתק ישירות
שם העובד principal.asset.hostname הערך הועתק ישירות
RemoteHost principal.asset.ip הערך הועתק ישירות
שם העובד principal.hostname הערך הועתק ישירות
RemoteHost principal.ip הערך הועתק ישירות
יציאה principal.nat_port הומר למספר שלם
מזהה principal.user.product_object_id הערך הועתק ישירות
RemoteUser principal.user.userid הערך מועתק ישירות אם הוא לא ריק או '_'
logging_ctx security_result.detection_fields צמד מפתח/ערך שמוזג מ-logging_ctx
נתיב target.file.full_path הערך הועתק ישירות
dbname target.resource.name הערך הועתק ישירות
metadata.product_name ההגדרה היא Tableau
metadata.vendor_name ההגדרה היא TABLEAU
temp_user event.idm.read_only_udm.principal.user.userid מופה מיומן השינויים
user_name event.idm.read_only_udm.principal.user.userid מופה מיומן השינויים
temp_domain event.idm.read_only_udm.principal.administrative_domain מופה מיומן השינויים
temp_role event.idm.read_only_udm.principal.user.attribute.roles מופה מיומן השינויים
source_info event.idm.read_only_udm.additional.fields מופה מיומן השינויים
user_application event.idm.read_only_udm.principal.application מופה מיומן השינויים
temp_http_uri event.idm.read_only_udm.target.url מופה מיומן השינויים
temp_api_call event.idm.read_only_udm.target.url מופה מיומן השינויים
temp_site_id event.idm.read_only_udm.target.resource.name מופה מיומן השינויים
java_method event.idm.read_only_udm.target.resource.name מופה מיומן השינויים
java_class event.idm.read_only_udm.target.resource.type מופה מיומן השינויים
temp_http_method event.idm.read_only_udm.network.http.method מופה מיומן השינויים
temp_http_status event.idm.read_only_udm.network.http.response_code מופה מיומן השינויים
"Computer" event.idm.read_only_udm.principal.hostname מופה מיומן השינויים
"TimeGenerated" event.idm.read_only_udm.security_result.first_discovered_time מופה מיומן השינויים
"_TimeReceived" event.idm.read_only_udm.security_result.last_discovered_time מופה מיומן השינויים
"_IsBillable" event.idm.read_only_udm.additional.fields מופה מיומן השינויים
"_BilledSize" event.idm.read_only_udm.additional.fields מופה מיומן השינויים
"_Internal_WorkspaceResourceId" event.idm.read_only_udm.additional.fields מופה מיומן השינויים
"_ItemId" event.idm.read_only_udm.additional.fields מופה מיומן השינויים
"TenantId" event.idm.read_only_udm.additional.fields מופה מיומן השינויים
"_SubscriptionId" event.idm.read_only_udm.additional.fields מופה מיומן השינויים
"_ResourceId" event.idm.read_only_udm.principal.resource.id מופה מיומן השינויים
"FilePath" event.idm.read_only_udm.additional.fields מופה מיומן השינויים
"Type" event.idm.read_only_udm.additional.fields מופה מיומן השינויים
"temp_message" event.idm.read_only_udm.metadata.description מופה מיומן השינויים
"temp_logger_name" event.idm.read_only_udm.principal.application מופה מיומן השינויים
"temp_pid" event.idm.read_only_udm.principal.process.pid מופה מיומן השינויים
"temp_thread_name" event.idm.read_only_udm.principal.process.file.full_path מופה מיומן השינויים
"temp_log_level" event.idm.read_only_udm.security_result.severity מופה מיומן השינויים
appname event.idm.read_only_udm.metadata.product_event_type מופה מיומן השינויים
id2 event.idm.read_only_udm.metadata.product_log_id מופה מיומן השינויים
pid event.idm.read_only_udm.observer.process.pid מופה מיומן השינויים
timestamp event.idm.read_only_udm.metadata.event_timestamp מופה מיומן השינויים
user event.idm.read_only_udm.principal.user.userid מופה מיומן השינויים
id1 event.idm.read_only_udm.network.session_id מופה מיומן השינויים
logger event.idm.read_only_udm.observer.process.command_line מופה מיומן השינויים
loglevel event.idm.read_only_udm.security_result.severity מופה מיומן השינויים
user_id event.idm.read_only_udm.target.user.userid מופה מיומן השינויים
site_id event.idm.read_only_udm.target.resource.id מופה מיומן השינויים
message event.idm.read_only_udm.metadata.description מופה מיומן השינויים
script_type event.idm.read_only_udm.target.resource.name מופה מיומן השינויים
id3 event.idm.read_only_udm.additional.fields מופה מיומן השינויים
thread event.idm.read_only_udm.additional.fields מופה מיומן השינויים
function_name event.idm.read_only_udm.security_result.summary מופה מיומן השינויים

יומן שינויים

צפייה ביומן השינויים של מנתח התוכן הזה

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