איסוף יומנים של ForgeRock OpenAM
גרסת כלי הניתוח: 4.0
במאמר הזה מוסבר איך להטמיע יומנים של ForgeRock OpenAM ב-Google Security Operations באמצעות סוכן Bindplane.
ForgeRock OpenAM הוא פתרון לניהול גישה שיוצר הודעות syslog לאירועי אימות, להחלטות לגבי בקרת גישה, לפעילות בסשן ולשינויים בהגדרות. הכלי לניתוח מחלץ שדות מיומני ביקורת בפורמט JSON וממפה אותם למודל הנתונים המאוחד (UDM).
לפני שמתחילים
חשוב לוודא שמתקיימות הדרישות המוקדמות הבאות:
- מופע של Google SecOps
- Windows Server 2016 ואילך, או מארח Linux עם
systemd - קישוריות לרשת בין סוכן Bindplane לבין שרת ForgeRock OpenAM
- אם מריצים מאחורי שרת proxy, מוודאים שיציאות חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane
- גישת אדמין למסוף AM (לדוגמה,
amAdmin)
קבלת קובץ אימות להטמעת נתונים ב-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 /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/openam: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: OPENAM raw_log_field: body service: pipelines: logs/openam_to_chronicle: receivers: - udplog exporters: - chronicle/openam
פרמטרים להגדרה
מחליפים את ה-placeholders הבאים:
הגדרת מקלט:
-
listen_address: כתובת ה-IP והיציאה להאזנה:-
0.0.0.0כדי להאזין בכל הממשקים (מומלץ) - יציאה
514היא יציאת syslog רגילה (נדרשת הרשאת root ב-Linux; אפשר להשתמש ב-1514ללא הרשאת root)
-
-
הגדרת כלי הייצוא:
-
creds_file_path: הנתיב המלא לקובץ האימות להטמעת נתונים:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
-
customer_id: מספר הלקוח שהועתק ממסוף Google SecOps -
endpoint: כתובת ה-URL של נקודת הקצה האזורית:- ארה"ב:
malachiteingestion-pa.googleapis.com - אירופה:
europe-malachiteingestion-pa.googleapis.com - אסיה:
asia-southeast1-malachiteingestion-pa.googleapis.com - רשימה מלאה מופיעה במאמר בנושא נקודות קצה אזוריות.
- ארה"ב:
-
שמירת קובץ ההגדרות
- אחרי שמסיימים לערוך, שומרים את הקובץ:
- 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 handlers ל-ForgeRock OpenAM
- נכנסים למסוף AM כאדמינים (לדוגמה, amAdmin).
- כדי ליצור את ה-גורם מטפל באירועים בהגדרה הגלובלית, עוברים אל הגדרה > שירותים גלובליים > יומן ביקורת.
- כדי ליצור את ה-event handler בתחום, עוברים אל תחומים > שם התחום > שירותים > רישום ביומן ביקורת.
- לוחצים על Add a Secondary Configuration > Syslog (הוספת הגדרה משנית > Syslog).
- מספקים את פרטי ההגדרה הבאים:
- שם: מזינים שם לגורם המטפל באירועים (לדוגמה,
Syslog Event Handler). - שם המארח של השרת: מזינים את כתובת ה-IP של סוכן Bindplane.
- יציאת השרת: מזינים את מספר היציאה של סוכן Bindplane (לדוגמה,
514ל-UDP). - פרוטוקול העברה: בוחרים באפשרות UDP.
- זמן קצוב לתפוגה של חיבור: מזינים את מספר השניות לחיבור (לדוגמה,
120). - אופציונלי: מפעילים את האפשרות Buffering (אגירת נתונים).
- שם: מזינים שם לגורם המטפל באירועים (לדוגמה,
- לוחצים על יצירה.
- בכרטיסייה General Handler Configuration (הגדרה כללית של גורם מטפל), בוחרים באפשרות Enabled (מופעל) כדי להפעיל את גורם מטפל באירועים.
- בוחרים את הנושאים של יומני הביקורת:
- גישה
- פעילות
- אימות
- הגדרות אישיות
- לוחצים על Save.
- בכרטיסייה Syslog Configuration (הגדרת Syslog), מזינים את פרטי ההגדרה הבאים:
- שם המארח של השרת: מזינים את כתובת ה-IP של Bindplane.
- יציאת השרת: מזינים את מספר היציאה של Bindplane.
- זמן קצוב לתפוגה של החיבור: מזינים את מספר השניות לחיבור (לדוגמה,
120). - פרוטוקול העברה: בוחרים באפשרות UDP.
- מתקן: בוחרים באפשרות Local0.
- כל הנושאים מוגדרים ברמת חומרה INFORMATIONAL.
- לוחצים על Save.
- בכרטיסייה Buffering (אגירת נתונים), בוחרים באפשרות Buffering Enabled (אגירת נתונים מופעלת) כדי להפעיל אותה.
- לוחצים על Save.
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | היגיון |
|---|---|---|
client.ip |
principal.ip |
כתובת ה-IP של הלקוח ששולח את הבקשה. |
client.ip |
principal.asset.ip |
כתובת ה-IP של נכס הלקוח ששולח את הבקשה. |
client.port |
principal.port |
היציאה שבה משתמש הלקוח שמגיש את הבקשה. |
entries[0].info.authLevel |
principal.resource.resource_subtype |
רמת האימות שמשויכת לאירוע. הקידומת היא authLevel:. |
entries[0].info.displayName |
security_result.description |
שם תיאורי לצומת בעץ האימות. |
entries[0].info.ipAddress |
principal.asset.ip |
כתובת ה-IP שמשויכת לגורם הראשי באירוע. |
entries[0].info.ipAddress |
principal.ip |
כתובת ה-IP שמשויכת לגורם הראשי באירוע. |
entries[0].info.nodeId |
principal.resource.id |
המזהה הייחודי של הצומת בעץ האימות. הערך מתחיל ב-nodeId:. |
entries[0].info.nodeOutcome |
principal.resource.attribute.labels.value |
התוצאה של הצומת בעץ האימות. |
entries[0].info.nodeType |
principal.resource.type |
סוג הצומת בעץ האימות. הקידומת היא nodeType:. |
entries[0].info.treeName |
principal.resource.name |
השם של עץ האימות. הקידומת היא treeName:. |
eventName |
metadata.product_event_type |
שם האירוע הגולמי מיומני OpenAM. |
http.request.headers.host[0] |
target.asset.hostname |
שם המארח של שרת היעד, שחולץ מהכותרת host. |
http.request.headers.host[0] |
target.hostname |
שם המארח של שרת היעד, שחולץ מהכותרת host. |
http.request.headers.user-agent[0] |
network.http.user_agent |
סוכן המשתמש של בקשת ה-HTTP. |
http.request.method |
network.http.method |
ה-method של ה-HTTP שמשמשת בבקשה. |
http.request.path |
target.url |
הנתיב של כתובת ה-URL של בקשת ה-HTTP. |
info.failureReason |
security_result.summary |
הסיבה לכשל באימות. הערך מוטמע בקוד כ-'SSO'. הערך נקבע על ידי לוגיקה שמבוססת על eventName ושדות אחרים. יכול להיות GENERIC_EVENT, USER_LOGIN, USER_LOGOUT, NETWORK_HTTP או STATUS_UPDATE. הערך מוטמע בקוד כ-"OPENAM". ההגדרה מוצפנת ב-OpenAM. הערך מוטמע בקוד כ-ForgeRock. |
principal |
target.user.userid |
מזהה המשתמש שמשויך לאירוע, שחולץ מהשדות userId, principal או runAs. |
result |
security_result.action_details |
התוצאה של האירוע (למשל, SUCCESSFUL, FAILED). |
response.detail.reason |
security_result.summary |
הסיבה לכשל באירוע של תוצאת גישה. |
response.status |
security_result.action_details |
הסטטוס של התשובה באירוע של תוצאת גישה. |
runAs |
target.user.userid |
מזהה המשתמש שמשויך לאירוע, שחולץ מהשדות userId, principal או runAs. |
security_result.action |
security_result.action |
הפעולה שבוצעה כתוצאה מאירוע האבטחה (למשל, ALLOW, BLOCK). |
server.ip |
target.asset.ip |
כתובת ה-IP של שרת היעד. |
server.ip |
target.ip |
כתובת ה-IP של שרת היעד. |
server.port |
target.port |
היציאה של שרת היעד. |
timestamp |
metadata.event_timestamp |
חותמת הזמן של האירוע. |
trackingIds |
metadata.product_log_id |
מזהה לצורכי מעקב שמשויך לאירוע. |
transactionId |
metadata.product_deployment_id |
מזהה העסקה שמשויך לאירוע. |
userId |
target.user.userid |
מזהה המשתמש שמשויך לאירוע, שחולץ מהשדות userId, principal או runAs. |
userId |
target.user.group_identifiers |
מזהי הקבוצות שמשויכים למשתמש. |
am_group |
target.user.group_identifiers |
מזהי הקבוצות שמשויכים למשתמש. |
am_user |
target.user.email_addresses |
כתובת האימייל של המשתמש, אם היא מופיעה בשדה am_user. |
loginID[0] |
target.user.userid |
מזהה הכניסה שנעשה בו שימוש באירוע. |
loginID[0] |
target.user.email_addresses |
כתובת האימייל ששימשה לכניסה, אם היא מופיעה בשדה loginID. |
hostip |
intermediary.hostname |
שם המארח של מכשיר מתווך. |
hostip |
intermediary.ip |
כתובת ה-IP של מכשיר ביניים. |
src_ip |
principal.asset.ip |
כתובת ה-IP של המקור. |
src_ip |
principal.ip |
כתובת ה-IP של המקור. |
desc |
metadata.description |
תיאור האירוע. |
payload |
metadata.description |
המטען הייעודי של האירוע. |
http.request.headers.host.0 |
tatget.hostname |
מופה מיומן השינויים |
http.request.headers.user-agent.0 |
network.http.user_agent |
מופה מיומן השינויים |
extensions.auth.type |
SSO |
מופה מיומן השינויים |
יומן שינויים
צפייה ביומן השינויים של מנתח התוכן הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.