איסוף יומנים של Forcepoint NGFW
גרסת כלי הניתוח: 16.0
במאמר הזה מוסבר איך להטמיע יומני Forcepoint NGFW ב-Google Security Operations באמצעות סוכן Bindplane.
לפני שמתחילים
חשוב לוודא שיש לכם את הדברים הבאים:
- מופע של Google SecOps
- מארח עם Windows 2016 ואילך או Linux עם
systemd - אם השרת פועל מאחורי שרת proxy, צריך לוודא שהיציאות של חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane.
- גישת אדמין ל-Forcepoint Security Management Center (SMC)
קבלת פרטי כניסה ל-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 (ניהול הרשאות גישה (IAM) & אדמין > חשבונות שירות).
- לוחצים על Create service account.
- מזינים את פרטי ההגדרה הבאים:
- Service account name: מזינים שם לחשבון (לדוגמה,
bindplane-ingest). - תיאור חשבון השירות: מזינים תיאור (לדוגמה,
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 ומעתיקים את הערך של Project number. תצטרכו אותו כדי להגדיר את הייצוא.
אפשרות 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
התקנה ב-Linux
- פותחים טרמינל עם הרשאות root או sudo.
מריצים את הפקודה הבאה:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
מקורות מידע נוספים להתקנה
אפשרויות התקנה נוספות מפורטות במדריך להתקנת סוכן Bindplane.
הגדרת סוכן Bindplane להטמעת Syslog ושליחה ל-Google SecOps
ניגשים לקובץ התצורה:
- מאתרים את הקובץ
config.yaml. בדרך כלל, הוא נמצא בספרייה/opt/observiq-otel-collector/ב-Linux או בספריית ההתקנה ב-Windows. - פותחים את הקובץ באמצעות כלי לעריכת טקסט (לדוגמה,
nano,viאו פנקס הרשימות).
- מאתרים את הקובץ
עורכים את הקובץ
config.yamlבאופן הבא:receivers: tcplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: 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 # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: YOUR_CUSTOMER_ID endpoint: chronicle.googleapis.com # Add optional ingestion labels for better organization log_type: 'FORCEPOINT_FIREWALL' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels- מחליפים את היציאה ואת כתובת ה-IP לפי הצורך בתשתית.
- מחליפים את
<LOCATION>באזור של מכונת Google SecOps (לדוגמה,us,europeאוasia-southeast1). המייצא מוסיף את הערך הזה בתחילתchronicle.googleapis.com. - מחליפים את
<PROJECT_NUMBER>במספר הפרויקט שמופיע בקטע IAM & Admin > Settings. - מחליפים את
YOUR_CUSTOMER_IDבמספר הלקוח בפועל. - מעדכנים את
/path/to/ingestion-authentication-file.jsonלנתיב הקובץ שבו נשמר קובץ המפתח של חשבון השירות (אפשרות 1) בשלב 1.
מייצא API להטמעה מדור קודם
אם אתם משתמשים בקובץ האימות להטמעת נתונים מאפשרות 2, החליפו את הבלוק
exportersבקוד הבא. מגדירים אתcreds_file_pathלנתיב לקובץ האימות של ההעברה, ואם המופע שלכם נמצא מחוץ לארה"ב, מחליפים אתmalachiteingestion-pa.googleapis.comבנקודת הקצה האזורית (לדוגמה,europe-malachiteingestion-pa.googleapis.com).exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: YOUR_CUSTOMER_ID endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization log_type: 'FORCEPOINT_FIREWALL' raw_log_field: body ingestion_labels:
מפעילים מחדש את סוכן Bindplane כדי להחיל את השינויים.
כדי להפעיל מחדש את הסוכן של Bindplane ב-Linux, מריצים את הפקודה הבאה:
sudo systemctl restart observiq-otel-collectorכדי להפעיל מחדש את סוכן Bindplane ב-Windows, אפשר להשתמש במסוף Services או להזין את הפקודה הבאה:
net stop observiq-otel-collector && net start observiq-otel-collector
הגדרת העברה של Syslog ב-Forcepoint NGFW
- נכנסים אל Forcepoint Security Management Center (SMC).
- עוברים אל Configuration > Log Server > Properties.
- עוברים לקטע העברת יומנים.
- לוחצים על הוספה כדי ליצור כלל העברה חדש.
- מספקים את פרטי ההגדרה הבאים:
- שם: מזינים שם תיאורי (לדוגמה,
Google SecOps Bindplane Syslog). - Host: מזינים את כתובת ה-IP של הסוכן של Bindplane.
- יציאה: מזינים את מספר היציאה של סוכן Bindplane (לדוגמה,
514). - Protocol: בוחרים באפשרות TCP או UDP, בהתאם להגדרות בפועל של סוכן Bindplane.
- פורמט: בוחרים באפשרות JSON.
- שם: מזינים שם תיאורי (לדוגמה,
- מגדירים את השדות ביומן להעברה:
- לוחצים על בחירת שדות או ניגשים להגדרות של בחירת השדות.
- בוחרים את שדות היומן הרלוונטיים בהתאם לדרישות. בדרך כלל צריך למלא את השדות הבאים כדי לבצע ניתוח אבטחה:
TIMESTAMP(מועד היצירה)LOG_ID(מזהה נתונים)-
EVENT(אירוע) EVENT_ID(מזהה האירוע)-
SRC(כתובת המקור) -
DST(כתובת היעד) -
Sport(Source Port) Dport(יציאת יעד)PROTOCOL(פרוטוקול)SERVICE(שירות)RULE_ID(תג כלל)ACTION(פעולה)-
NAT_SRC, NAT_DST, NAT_SPORT, NAT_DPORT(שדות NAT) -
ACC_RX_BYTES,ACC_TX_BYTES,ACC_ELAPSED(שדות הנהלת חשבונות) NODE_ID(השולח)COMP_ID(מזהה הרכיב)-
FACILITY(מתקן) -
INFO_MSG(הודעת מידע) SITUATION(מצב)-
APPLICATION(אפליקציה)
- לרשימה המלאה של השדות שאפשר לייצא, עיינו במסמך Forcepoint NGFW Exportable Firewall and Layer 2 Firewall log entry fields.
- גוללים למטה לקטע אירועים ובוחרים את סוגי היומנים הרלוונטיים או באפשרות הכול.
- שומרים את ההגדרה.
מחילים את השינויים בשרת היומנים.
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | היגיון |
|---|---|---|
AccElapsed |
network.session_duration.seconds |
ממופה ישירות מ-AccElapsed אם הוא לא ריק או 0. הומר למספר שלם. |
AccRxBytes |
network.received_bytes |
מופה ישירות מ-AccRxBytes. הומר למספר שלם לא חתום. |
AccTxBytes |
network.sent_bytes |
מיפוי ישיר מ-AccTxBytes. הומר למספר שלם ללא סימן. |
Action |
security_result.action_details |
מופה ישירות מ-Action. |
Action |
security_result.action |
אם הערך של Action הוא "Allow", מגדירים אותו כ-"ALLOW". אם הערך של Action הוא Discard (השלכה), צריך להגדיר אותו כ-BLOCK (חסימה). |
CompId |
target.hostname |
מיפוי ישיר מ-CompId. |
Dport |
target.port |
ממופה ישירות מ-Dport אם הערך שונה מ-0. הומר למספר שלם. |
Dst |
target.ip |
מופה ישירות מ-Dst. |
Event |
metadata.product_event_type |
מיפוי ישיר מ-Event. |
Facility |
metadata.description |
מיפוי ישיר מ-Facility. |
InfoMsg |
security_result.description |
מופה ישירות מ-InfoMsg. |
LogId |
metadata.product_log_id |
מופה ישירות מ-LogId. |
NatDport |
target.nat_port |
ממופה ישירות מ-NatDport אם הערך שונה מ-0. הומר למספר שלם. |
NatDst |
target.nat_ip |
מופה ישירות מ-NatDst. |
NatSport |
principal.nat_port |
ממופה ישירות מ-NatSport אם הערך שונה מ-0. הומר למספר שלם. |
NatSrc |
principal.nat_ip |
מופה ישירות מ-NatSrc. |
NodeId |
intermediary.ip |
ממופה ישירות מ-NodeId אם קיימים גם Src או Dst וגם NodeId. |
NodeId |
principal.ip |
ממופה ישירות מ-NodeId אם NodeId קיים אבל Src ו-Dst לא קיימים. |
Protocol |
network.ip_protocol |
ממופה מ-Protocol אחרי המרה למספר שלם, ואז שימוש בחיפוש כדי להמיר את המספר לשם הפרוטוקול (לדוגמה, 6 הופך ל-TCP). |
RuleId |
security_result.rule_id |
מיפוי ישיר מ-RuleId. |
Service |
principal.application |
ממופה ישירות מ-Service אם זה לא "Dest. הגישה אינה אפשרית (היציאה לא נגישה)'. |
Service |
network.application_protocol |
אם Service הוא "HTTP" או "HTTPS", מגדירים את הערך של Service. אם Service מכיל את המילה "DNS", מגדירים את הערך "DNS". |
Service |
metadata.event_type |
אם הערך של Service הוא HTTP או HTTPS, צריך להגדיר את metadata.event_type כ-NETWORK_HTTP. |
Situation |
security_result.summary |
מופה ישירות מ-Situation. |
Sport |
principal.port |
ממופה ישירות מ-Sport אם הערך שונה מ-0. הומר למספר שלם. |
Src |
principal.ip |
מיפוי ישיר מ-Src. |
Timestamp |
metadata.event_timestamp |
ממופה ישירות מ-Timestamp אחרי ניתוח שלו כתאריך. |
Type |
security_result.severity_details |
מופה ישירות מ-Type. |
Type |
security_result.severity |
אם הערך של Type הוא "Notification", צריך להגדיר את הערך "LOW". אם קיימים Src או NodeId ו-Dst או CompId, צריך להגדיר את הערך NETWORK_CONNECTION. אם רק principal.ip קיים, מגדירים את הערך STATUS_UPDATE. אחרת, מגדירים את הערך "GENERIC_EVENT". צריך להגדיר את הערך "FORCEPOINT_FIREWALL". מגדירים את הערך FORCEPOINT FIREWALL. ההגדרה היא FORCEPOINT. |
rt |
metadata.event_timestamp |
ממופה ישירות מ-rt אחרי ניתוח שלו כתאריך בבלוק CEF. |
act |
security_result.action_details |
ממופה ישירות מ-act בבלוק CEF. |
app |
principal.application |
ממופה ישירות מ-app בבלוק CEF. |
deviceFacility |
metadata.description |
ממופה ישירות מ-deviceFacility בבלוק CEF. |
destinationTranslatedAddress |
target.nat_ip |
ממופה ישירות מ-destinationTranslatedAddress בבלוק CEF. |
destinationTranslatedPort |
target.nat_port |
ממופה ישירות מ-destinationTranslatedPort בבלוק CEF. |
dst |
target.ip |
ממופה ישירות מ-dst בבלוק CEF. |
dpt |
target.port |
ממופה ישירות מ-dpt בבלוק CEF. |
dvchost |
intermediary.ip |
ממופה ישירות מ-dvchost בבלוק CEF. |
event_name |
metadata.product_event_type |
ממופה ישירות מ-event_name בבלוק CEF. |
msg |
security_result.description |
ממופה ישירות מ-msg בבלוק CEF. |
proto |
network.ip_protocol |
ממופה מ-proto אחרי המרה למספר שלם, ואז שימוש בחיפוש כדי להמיר את המספר לשם הפרוטוקול (למשל, 6 הופך ל-TCP) בבלוק ה-CEF. |
sourceTranslatedAddress |
principal.nat_ip |
ממופה ישירות מ-sourceTranslatedAddress בבלוק CEF. |
sourceTranslatedPort |
principal.nat_port |
ממופה ישירות מ-sourceTranslatedPort בבלוק CEF. |
spt |
principal.port |
ממופה ישירות מ-spt בבלוק CEF. |
src |
principal.ip |
ממופה ישירות מ-src בבלוק CEF. |
NodeId |
event.idm.read_only_udm.intermediary.ip |
מופה מיומן השינויים |
CompId |
event.idm.read_only_udm.intermediary.hostname |
מופה מיומן השינויים |
eventid |
metadata.product_log_id |
מופה מיומן השינויים |
יומן שינויים
צפייה ביומן השינויים של המנתח הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.