איסוף יומנים של 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
- נכנסים למסוף Google SecOps.
- עוברים אל SIEM Settings > Collection Agents.
מורידים את קובץ האימות להטמעת נתונים. שומרים את הקובץ בצורה מאובטחת במערכת שבה תותקן Bindplane.
איך מוצאים את מספר הלקוח ב-Google SecOps
- נכנסים למסוף Google SecOps.
- עוברים אל SIEM Settings > Profile (הגדרות SIEM > פרופיל).
מעתיקים את מזהה הלקוח מהקטע פרטי הארגון ושומרים אותו.
התקנת סוכן Bindplane
מתקינים את סוכן Bindplane במערכת ההפעלה Windows או Linux לפי ההוראות הבאות.
התקנה ב-Windows
- פותחים את שורת הפקודה או את 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
השירות צריך להופיע כפעיל (פועל).
מקורות מידע נוספים להתקנה
אפשרויות התקנה נוספות ופתרון בעיות מפורטים במדריך להתקנת סוכן Bindplane.
הגדרה של סוכן Bindplane להטמעה של syslog ושליחה אל Google SecOps
איתור קובץ ההגדרות
Linux:
sudo nano /etc/bindplane-agent/config.yamlWindows:
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
- Linux:
-
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
- Linux:
-
<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: לוחצים על קובץ > שמירה.
- Linux: מקישים על
מפעילים מחדש את סוכן 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"
אימות המיקומים של קובצי היומן של Tableau Server
- נכנסים למארח Tableau Server עם הרשאות אדמין.
- מאמתים את הספריות של קובצי היומן:
- Linux:
/var/opt/tableau/tableau_server/data/tabsvc/logs/ - Windows:
C:\ProgramData\Tableau\Tableau Server\data\tabsvc\logs\
- Linux:
- קבצים ותיקיות משנה של יומן המפתחות:
-
httpd/access.*.log: יומני גישה של Apache עם פרטים של בקשות HTTP -
vizqlserver/*.log: יומני שרת VizQL עם פעילות של שאילתות להמחשה -
backgrounder/*.log: יומני משימות ברקע עם פעילות של משימות מתוזמנות
-
(אופציונלי) כדי לבצע אימות, יוצרים ארכיון של יומן הרישום באמצעות כלי שורת הפקודה TSM:
tsm maintenance ziplogs -a -t -o -f tableau-logs.zipאם ספריית היומנים שונה מהברירות מחדל, צריך לעדכן את
includeהנתיבים בסוכן Bindplaneconfig.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.