איסוף יומנים של Varonis
במאמר הזה מוסבר איך להטמיע יומני Varonis ב-Google Security Operations באמצעות סוכן Bindplane.
Varonis היא פלטפורמה לאבטחת מידע ולניתוח נתונים, שיוצרת הודעות syslog בפורמט CEF ו-LEEF לאירועי גישה לקבצים, שינויים בהרשאות, פעילות אימות והתראות אבטחה של DatAlert. הכלי לניתוח מחלץ שדות מיומנים בפורמטים CEF, LEEF ופורמט של צמדי מפתח-ערך, וממפה אותם למודל הנתונים המאוחד (UDM).
לפני שמתחילים
חשוב לוודא שמתקיימות הדרישות המוקדמות הבאות:
- מכונה של Google SecOps
- Windows Server 2016 ואילך, או מארח Linux עם
systemd - קישוריות רשת בין סוכן Bindplane לשרת Varonis
- אם מריצים את הסוכן מאחורי שרת proxy, מוודאים שיציאות חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane
- גישה מיוחדת ל-Varonis
קבלת פרטי כניסה ל-Google SecOps בשביל סוכן Bindplane
כדי לאמת את סוכן Bindplane ב-Google SecOps, בוחרים באחת מהשיטות הבאות:
- פריסות חדשות: משתמשים ב-Chronicle API (אפשרות 1).
- פריסות מדור קודם: אפשר להמשיך להשתמש בקובץ האימות של ה-API להעברת נתונים (אפשרות 2) עד שה-API להעברת נתונים יפסיק לפעול ב-20 ביולי 2027.
אפשרות 1: יצירת חשבון שירות עבור Chronicle API (מומלץ)
- נכנסים למסוףGoogle Cloud ובוחרים את הפרויקט ב- Google Cloud שמקושר למכונה של Google SecOps.
- נכנסים לדף IAM & Admin > Service Accounts.
- לוחצים על יצירת חשבון שירות.
- מספקים את פרטי ההגדרה הבאים:
- שם חשבון השירות: מזינים שם לחשבון (לדוגמה,
bindplane-ingest). - תיאור חשבון השירות: מזינים תיאור (לדוגמה,
Bindplane agent log ingestion).
- שם חשבון השירות: מזינים שם לחשבון (לדוגמה,
- לוחצים על 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 (ניהול הרשאות גישה ואדמין > הגדרות) ומעתיקים את מספר הפרויקט. תצטרכו אותו כדי להגדיר את הייצוא.
אפשרות 2: הורדת קובץ אימות להטמעת נתונים (גרסה מדור קודם)
- נכנסים למסוף Google SecOps.
- עוברים אל הגדרות SIEM > סוכני איסוף.
- מורידים את קובץ האימות להטמעת נתונים.
- שומרים את הקובץ בצורה מאובטחת במערכת שבה יותקן סוכן Bindplane.
איך מקבלים את מספר הלקוח ב-Google SecOps
- נכנסים למסוף Google SecOps.
- עוברים אל SIEM Settings > Profile (הגדרות SIEM > פרופיל).
מעתיקים את מספר הלקוח מהקטע פרטי הארגון ושומרים אותו.
התקנת הסוכן של Bindplane
מתקינים את הסוכן של Bindplane במערכת ההפעלה Windows או Linux לפי ההוראות הבאות.
התקנת חלונות
- פותחים את שורת הפקודה או את 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השירות אמור להופיע כ-active (running).
מקורות מידע נוספים להתקנה
אפשרויות התקנה נוספות ופתרון בעיות מפורטים במדריך להתקנת סוכן Bindplane.
הגדרת סוכן Bindplane להטמעת syslog ושליחה אל Google SecOps
מאתרים את קובץ התצורה
Linux:
sudo nano /opt/observiq-otel-collector/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
עריכת קובץ תצורה
מחליפים את כל התוכן של
config.yamlבהגדרה הבאה:receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/varonis: 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: VARONIS raw_log_field: body service: pipelines: logs/varonis_to_chronicle: receivers: - udplog exporters: - chronicle/varonis
פרמטרים להגדרה
מחליפים את ה-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
- Linux:
-
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.
-
כלי לייצוא נתונים מ-Legacy ingestion API
אם משתמשים בקובץ האימות של ההעלאה מאפשרות 2, מחליפים את הבלוק
exportersבבלוק הבא. מגדירים אתcreds_file_pathלנתיב של קובץ האימות להטמעת נתונים. אם המכונה נמצאת מחוץ לארה"ב, מחליפים אתmalachiteingestion-pa.googleapis.comבנקודת הקצה האזורית (לדוגמה,europe-malachiteingestion-pa.googleapis.com).exporters: chronicle/varonis: compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: VARONIS raw_log_field: body
שמירת קובץ התצורה
- אחרי שמסיימים לערוך, שומרים את הקובץ:
- 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"
- לוחצים על
הגדרת ייצוא של syslog ב-Varonis
- נכנסים לממשק המשתמש באינטרנט של Varonis.
- עוברים אל כלים > DatAlert > בחירה ב-DatAlert.
- לוחצים על Configuration.
- מזינים את פרטי ההגדרה הבאים:
- כתובת ה-IP של הודעת Syslog: מזינים את כתובת ה-IP של סוכן Bindplane.
- יציאה: מזינים את מספר היציאה של סוכן Bindplane (לדוגמה,
514ל-UDP). - שם המתקן: בוחרים מתקן.
- לוחצים על אישור.
הגדרת פורמט syslog ב-Varonis
- עוברים אל כלים > DatAlert > תבניות של התראות.
- לוחצים על עריכת תבנית ההתראה ובוחרים באפשרות תבנית ברירת המחדל של מערכת חיצונית.
- בקטע Apply to alert methods, בוחרים באפשרות Syslog message מהרשימה.
- בתפריט, בוחרים באפשרות כללים > שיטת התראה.
- בוחרים באפשרות הודעת Syslog.
- לוחצים על OK.
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | היגיון |
|---|---|---|
act |
security_result.summary |
הערך מהשדה act בהודעת ה-CEF. |
cn1 |
security_result.rule_id |
הערך מהשדה cn1 בהודעת ה-CEF. |
cs1 |
network.email.to |
הערך מהשדה cs1 בהודעת CEF, במיוחד הנמען של האימייל. |
cs2 |
security_result.rule_name |
הערך מהשדה cs2 בהודעת ה-CEF. |
device_version |
metadata.product_version |
הערך מהשדה device_version בהודעת ה-CEF. |
dhost |
principal.hostname |
הערך מהשדה dhost בהודעת ה-CEF, שמייצג את שם המארח הראשי. אם file_server קיים והוא לא DirectoryServices, הוא מחליף את הערך הזה. |
duser |
target.user.userid |
הערך מהשדה duser בהודעת ה-CEF. עובר טרנספורמציה של gsub כדי להסיר קווים נטויים הפוכים ולפצל ל-target.user.userid ול-target.administrative_domain. |
dvchost |
target.hostname |
הערך מהשדה dvchost בהודעת ה-CEF. |
filePath |
target.file.full_path |
הערך מהשדה filePath בהודעת ה-CEF. |
rt |
metadata.event_timestamp |
הערך מהשדה rt בהודעת ה-CEF, מנותח כחותמת זמן. |
severity |
security_result.severity |
הערך מהשדה severity בהודעת CEF או בהודעת LEEF. הומר לאותיות רישיות. ממופה לערכי חומרה של UDM (נמוך, מידע, בינוני, גבוה, קריטי) על סמך ערך מספרי או מילת מפתח. |
Acting Object |
target.user.user_display_name |
הערך מהשדה Acting Object בנתוני המפתח/ערך. מפצלים לפי "\" כדי לחלץ את השם המוצג. |
Acting Object SAM Account Name |
target.user.userid |
הערך מהשדה Acting Object SAM Account Name בנתוני המפתח/ערך. |
Device hostname |
target.hostname |
הערך מהשדה Device hostname בנתוני המפתח/ערך. |
Device IP address |
target.ip |
הערך מהשדה Device IP address בנתוני המפתח/ערך. |
Event Time |
metadata.event_timestamp |
הערך מהשדה Event Time בנתוני המפתח-ערך, שנותח כחותמת זמן. |
Event Type |
target.application, metadata.event_type |
הערך מהשדה Event Type בנתוני המפתח/ערך. משמש להפקת metadata.event_type (FILE_OPEN, USER_CHANGE_PERMISSIONS, USER_CHANGE_PASSWORD, USER_UNCATEGORIZED). |
File Server/Domain |
principal.hostname |
הערך מהשדה File Server/Domain בנתוני המפתח/ערך. אם לא, הוא מחליף את principal.hostname שנגזר מ-dhost. |
Path |
target.file.full_path |
הערך מהשדה Path בנתוני המפתח/ערך. |
Rule Description |
metadata.description |
הערך מהשדה Rule Description בנתוני המפתח/ערך. |
Rule ID |
security_result.rule_id |
הערך מהשדה Rule ID בנתוני המפתח/ערך. |
Rule Name |
security_result.rule_name |
הערך מהשדה Rule Name בנתוני המפתח/ערך. |
intermediary_host |
intermediary.hostname |
ערך שחולץ על ידי grok, שמייצג את שם המארח של המתווך. |
log_type |
metadata.log_type |
מקודד בתוך הקוד ל-VARONIS. |
metadata.event_type |
metadata.event_type |
הערך נגזר על סמך הערכים של evt_typ, act ו-filepath. ערך ברירת המחדל הוא STATUS_UPDATE אם event_type הוא GENERIC_EVENT ו-principal_hostname קיים. |
metadata.product_name |
metadata.product_name |
מקודד באופן קשיח ל-VARONIS, אבל אפשר לשנות אותו באמצעות השדה product_name מהודעת ה-LEEF. |
metadata.vendor_name |
metadata.vendor_name |
הערך מוטמע כ-VARONIS, אבל אפשר להחליף אותו בשדה vendor מהודעת LEEF. |
prin_host |
principal.hostname |
הערך שחולץ על ידי grok, שמייצג את שם המארח הראשי. |
product_name |
metadata.product_name |
ערך מהודעת LEEF. |
security_result.action |
security_result.action |
הערך נגזר מהשדה result או מהשדה Event Status. אם התוצאה היא Success, הערך שמוגדר הוא ALLOW. אחרת, הערך שמוגדר הוא BLOCK. |
timestamp |
timestamp, metadata.event_timestamp |
חותמת הזמן של האירוע נגזרת משדות שונים (datetime1, event_time, start_datetime, datetime2) בהתאם לזמינות. הערך create_time מהיומן הגולמי משמש כגיבוי וממופה גם ל-timestamp וגם ל-metadata.event_timestamp אם אין שדות אחרים של חותמות זמן. |
vendor |
metadata.vendor_name |
ערך מהודעת LEEF. |
fname |
event.idm.read_only_udm.target.file.names |
מופה מיומן השינויים |
msg |
event.idm.read_only_udm.security_result.description |
מופה מיומן השינויים |
cs7 |
event.idm.read_only_udm.security_result.url_back_to_product |
מופה מיומן השינויים |
usrName |
principal.user.userid |
מופה מיומן השינויים |
Event_Type |
metadata.product_event_type |
מופה מיומן השינויים |
domain |
prinicipal.administrative_domain |
מופה מיומן השינויים |
proto", "cat", "Event_Additional_Data", "Event_Status", "Email_Attachment_Name", "Email_Date", "Account_of_Changed_Permissions", "Permissions_Changes", "Permissions_before_Change", and "Permissions_after_Change |
additional.fields |
מופה מיומן השינויים |
Affected_Object_Path |
taregt.file.full_path |
מופה מיומן השינויים |
Affected_Object |
security_result.detection_fields |
מופה מיומן השינויים |
src |
principal.ip |
מופה מיומן השינויים |
Alert_ID |
security_result.rule_id |
מופה מיומן השינויים |
Email_Recipients |
network.email.to |
מופה מיומן השינויים |
Email_Item", "Mailbox_Access_by_Owner", "Threshold_Value", "Threshold_First_Timestamp", "Event_by_MailboxOwner", and "Email_Sender |
additional.fields |
מופה מיומן השינויים |
Email_Sender |
network.email.from |
מופה מיומן השינויים |
accountName |
target.user.userid |
מופה מיומן השינויים |
Device_Name |
taregt.hostname |
מופה מיומן השינויים |
Event_Type_ID |
metadata.product_log_id |
מופה מיומן השינויים |
Event_File_Server_Domain |
target.administrative_domain |
מופה מיומן השינויים |
Alert_Page_URL |
taregt.url |
מופה מיומן השינויים |
devTime |
metadata.event_timestamp |
מופה מיומן השינויים |
יומן שינויים
צפייה ביומן השינויים של כלי הניתוח הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.