איסוף יומנים של Sangfor Proxy
במאמר הזה מוסבר איך להטמיע יומנים של Sangfor Proxy ב-Google Security Operations באמצעות סוכן Bindplane.
Sangfor IAG (שער לגישה לאינטרנט), שמופיע ב-Chronicle בתור Sangfor Proxy, הוא שער אבטחה לאינטרנט שמספק סינון כתובות URL, הגנה מפני איומים ובקרה על הגישה לאינטרנט. המנתח מחלץ שדות מרשומות ביומן של Sangfor Proxy וממפה אותם ל-Unified Data Model (UDM), ומתעד חיבורים לרשת, זהות משתמש, תשובות DNS ומטא-נתונים של אבטחה.
לפני שמתחילים
חשוב לוודא שיש לכם את הדברים הבאים:
- מכונה של Google SecOps
- Windows Server 2016 ואילך, או מארח Linux עם
systemd - קישוריות רשת בין סוכן Bindplane לבין מכשיר Sangfor IAG
- אם השרת פועל מאחורי שרת proxy, צריך לוודא שהיציאות של חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane.
- גישה מורשית למסוף הניהול של Sangfor IAG עם הרשאות אדמין
קבלת פרטי כניסה ל-Google SecOps בשביל סוכן Bindplane
כדי לאמת את סוכן Bindplane ב-Google SecOps, בוחרים אחת מהשיטות הבאות:
- פריסות חדשות: משתמשים ב-Chronicle API (אפשרות 1).
- פריסות קודמות: ממשיכים להשתמש בקובץ האימות להטמעת נתונים (אפשרות 2) עד שה-Ingestion API יופסק ב-20 ביולי 2027.
אפשרות 1: יצירת חשבון שירות ל-Chronicle API (מומלץ)
- נכנסים למסוףGoogle Cloud ובוחרים את הפרויקט ב- Google Cloud שמקושר למכונה של Google SecOps.
- נכנסים לדף IAM & Admin > Service Accounts.
- לוחצים על Create service account.
- מספקים את פרטי ההגדרה הבאים:
- Service account name: מזינים שם לחשבון (לדוגמה,
bindplane-ingest). - Service account description: מזינים תיאור (לדוגמה,
Bindplane agent log ingestion).
- Service account name: מזינים שם לחשבון (לדוגמה,
- לוחצים על 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בספריית ה-collector של Bindplane (/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.
מעתיקים את מספר הלקוח מהקטע פרטי הארגון ושומרים אותו.
התקנת הסוכן של 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/sangfor_proxy: 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: SANGFOR_PROXY raw_log_field: body service: pipelines: logs/sangfor_proxy: receivers: - udplog exporters: - chronicle/sangfor_proxy
פרמטרים להגדרה
מחליפים את ה-placeholders הבאים:
הגדרת המקלט:
-
udplog: סוג הנמען לפי הפרוטוקול:udplogעבור UDP syslog-
tcplogל-syslog של TCP -
syslogל-syslog של RFC 3164/5424
-
0.0.0.0: כתובת ה-IP להאזנה:0.0.0.0כדי להאזין בכל הממשקים (מומלץ)- כתובת IP ספציפית להאזנה בממשק אחד
-
514: מספר היציאה להאזנה (לדוגמה,514, 1514, 6514)
-
הגדרת כלי הייצוא:
-
<customer_id>: מספר הלקוח מהשלב הקודם -
location: מחליפים את<LOCATION>באזור של מופע Google SecOps (לדוגמה,us,europeאוasia-southeast1). ערך זה מתווסף לתחיליתchronicle.googleapis.comשל הכלי לייצוא. לרשימה המלאה, ראו נקודות קצה אזוריות. -
project: מחליפים את<PROJECT_NUMBER>במספר הפרויקט שמופיע בקטע IAM & Admin > Settings. -
endpoint: צריך להשאיר את ההגדרהchronicle.googleapis.com. - משנים את
creds_file_pathלנתיב של קובץ מפתח ה-JSON של חשבון השירות (אפשרות 1), בהתאם לפלטפורמה:- Linux:
/opt/observiq-otel-collector/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
-
מייצא API להטמעה מדור קודם
אם אתם משתמשים בקובץ האימות להטמעת נתונים מאפשרות 2, החליפו את הבלוק
exportersבקוד הבא. מגדירים אתcreds_file_pathלנתיב של קובץ האימות להטמעת נתונים. אם המכונה נמצאת מחוץ לארה"ב, מחליפים אתmalachiteingestion-pa.googleapis.comבנקודת הקצה האזורית (לדוגמה,europe-malachiteingestion-pa.googleapis.com).exporters: chronicle/sangfor_proxy: compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: SANGFOR_PROXY 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 ב-Sangfor IAG
- נכנסים למסוף הניהול של Sangfor IAG.
- עוברים אל System > Log Settings > Syslog (מערכת > הגדרות יומן > Syslog).
- מפעילים את ההעברה של Syslog.
- מספקים את פרטי ההגדרה הבאים:
- כתובת השרת: מזינים את כתובת ה-IP של המארח של סוכן Bindplane (לדוגמה,
192.168.1.100). - יציאה: מזינים
514(חייבת להתאים ליציאת המקלט של Bindplane). - פרוטוקול: בוחרים באפשרות UDP (חייב להיות זהה לסוג המקלט של Bindplane).
- כתובת השרת: מזינים את כתובת ה-IP של המארח של סוכן Bindplane (לדוגמה,
- בוחרים את קטגוריות היומנים שרוצים להעביר (לדוגמה, סינון כתובות URL, הגנה מפני איומים, יומני תנועה).
- לוחצים על Save.
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | היגיון |
|---|---|---|
| log_type,serv,net_action,url,title,snapshot,risk_level,identify,category,family,nProtocol,ioc_id | additional.fields | מוזג עם תוויות שמכילות את key ו-string_value מכל שדה מקור |
| record_time | metadata.event_timestamp | ההמרה בוצעה באמצעות התאמת תאריכים לפי RFC 3339 |
| metadata.event_type | הערך מוגדר כ-"NETWORK_CONNECTION" אם יש has_principal ו-has_target, אחרת הוא מוגדר כ-"STATUS_UPDATE" אם יש has_principal, אחרת הוא מוגדר כ-"USER_UNCATEGORIZED" אם יש has_user, אחרת הוא מוגדר כ-"GENERIC_EVENT" | |
| metadata.product_name | צריך להגדיר את הערך "SANGFOR_PROXY" | |
| metadata.vendor_name | ההגדרה היא SANGFOR_PROXY | |
| dns | network.dns.answers | מוזג עם dns_answers שמכיל נתונים מ-dns |
| down_flux | network.received_bytes | הומר ל-uinteger |
| up_flux | network.sent_bytes | הומר ל-uinteger |
| מארח | principal.asset.hostname | הערך הועתק ישירות |
| host_ip | principal.asset.ip | הערך הועתק ישירות |
| קבוצה | principal.group.group_display_name | הערך הועתק ישירות |
| מארח | principal.hostname | הערך הועתק ישירות |
| host_ip | principal.ip | הערך הועתק ישירות |
| src_port | principal.port | ההמרה למספר שלם בוצעה |
| שם משתמש | principal.user.userid | הערך הועתק ישירות |
| וירוס | security_result.detection_fields | השדה אוחד עם virus_field שמכיל את המפתח virus ואת הערך מ-virus |
| אפליקציה | target.application | הערך הועתק ישירות |
| dst_ip | target.asset.ip | הערך הועתק ישירות |
| dst_ip | target.ip | הערך הועתק ישירות |
| tm_type | target.platform | אם יש התאמה ל-"Win", מגדירים את הערך "WINDOWS". אם יש התאמה ל-"Mac", מגדירים את הערך "MAC". אם יש התאמה ל-"Linux", מגדירים את הערך "LINUX". |
| יציאה | target.port | ההמרה למספר שלם בוצעה |
| file_name | target.process.file.full_path | הערך הועתק ישירות |
| file_type | target.process.file.mime_type | הערך הועתק ישירות |
| אתר | target.resource.attribute.labels | מוזג עם site_label שמכיל את המפתח "site" ואת הערך מהאתר |
יומן שינויים
צפייה ביומן השינויים של המנתח הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.