איסוף יומנים של Oracle Unified Directory
במאמר הזה מוסבר איך להטמיע יומנים של Oracle Unified Directory ב-Google Security Operations באמצעות Bindplane.
Oracle Unified Directory הוא שירות ספריות LDAP ארגוני לניהול זהויות. הוא מספק ספרייה מבוססת-תקנים וניתנת להרחבה לאחסון ולניהול של נתוני זהות, עם תמיכה באימות, בהרשאה ובפונקציונליות של שרתי proxy של ספריות. המנתח מחלץ שדות מרשומות ביומן של Oracle Unified Directory וממפה אותם ל-Unified Data Model (UDM).
לפני שמתחילים
חשוב לוודא שיש לכם את הדברים הבאים:
- מכונה של Google SecOps
- Windows Server 2016 ואילך, או מארח Linux עם
systemd - קישוריות לרשת בין סוכן Bindplane לבין שרת Oracle Unified Directory
- אם מריצים את הסוכן מאחורי שרת proxy, מוודאים שיציאות חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane
- גישה מורשית לשרת Oracle Unified Directory עם הרשאות אדמין
קבלת פרטי כניסה ל-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). - 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בספריית 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 ומעתיקים את הערך של Project number. תצטרכו אותו כדי להגדיר את כלי הייצוא.
אפשרות 2: הורדה של קובץ האימות להטמעת נתונים (מדור קודם)
- נכנסים למסוף Google SecOps.
- עוברים אל הגדרות SIEM > סוכני איסוף.
- מורידים את קובץ האימות להטמעת נתונים.
- שומרים את הקובץ בצורה מאובטחת במערכת שבה יותקן סוכן Bindplane.
איך מקבלים את מספר הלקוח ב-Google SecOps
- נכנסים למסוף Google SecOps.
- עוברים אל SIEM Settings > Profile.
מעתיקים את מספר הלקוח מהקטע פרטי הארגון ושומרים אותו.
התקנת סוכן 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
השירות אמור להופיע כ-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: tcplog: listen_address: "0.0.0.0:514" exporters: chronicle/oracle_oud: 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: ORACLE_OUD raw_log_field: body service: pipelines: logs/oracle_oud: receivers: - tcplog exporters: - chronicle/oracle_oud
פרמטרים להגדרה
מחליפים את ה-placeholders הבאים:
הגדרת המקלט:
-
tcplog: סוג המקלט לפי הפרוטוקול:-
udplogל-UDP syslog -
tcplogfor TCP syslog -
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:
-
כלי לייצוא נתונים מ-Legacy ingestion API
אם אתם משתמשים בקובץ האימות להטמעת נתונים מאפשרות 2, החליפו את הבלוק
exportersבקוד הבא. מגדירים אתcreds_file_pathלנתיב לקובץ האימות של ההעברה, ואם המופע שלכם נמצא מחוץ לארה"ב, מחליפים אתmalachiteingestion-pa.googleapis.comבנקודת הקצה האזורית (לדוגמה,europe-malachiteingestion-pa.googleapis.com).exporters: chronicle/oracle_oud: compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: ORACLE_OUD 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 ב-Oracle Unified Directory
ב-Oracle Unified Directory, היומנים נשמרים באופן מקומי במערכת הקבצים של השרת, בדרך כלל בספרייה OUD_INSTANCE/logs/. מגדירים העברה של syslog באמצעות ה-daemon של syslog במערכת כדי לשלוח את היומנים האלה לסוכן Bindplane.
מזהים את ספריית היומנים של Oracle Unified Directory. קבצי יומן נפוצים כוללים את
access,errors,replicationו-audit.מגדירים את ה-daemon של ה-syslog במערכת (לדוגמה,
rsyslog) כדי לעקוב אחרי קובצי היומן של OUD ולהעביר אותם. יוצרים קובץ תצורה חדש של rsyslog:sudo nano /etc/rsyslog.d/oud-forward.confמוסיפים את התוכן הבא:
module(load="imfile") input(type="imfile" File="/path/to/oud-instance/logs/access" Tag="oracle-oud" Severity="info" Facility="local0") input(type="imfile" File="/path/to/oud-instance/logs/errors" Tag="oracle-oud" Severity="error" Facility="local0") local0.* @@BINDPLANE_AGENT_IP:514מפעילים מחדש את שירות rsyslog:
sudo systemctl restart rsyslog
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | היגיון |
|---|---|---|
| conn,op,msgID,oid,result,etime,filter,attrs,ou,version,type,authFailureID,authFailureReason,name,o | additional.fields | מטא-נתונים נוספים שלא נכללים בשדות אחרים של UDM |
| metadata.event_type | סוג האירוע (למשל, USER_LOGIN, NETWORK_CONNECTION) | |
| operation,operation1 | metadata.product_event_type | סוג אירוע שספציפי למוצר |
| פרוטוקול | network.application_protocol | פרוטוקול האפליקציה שמשמש בחיבור לרשת |
| שם המארח | principal.hostname | שם המארח של הנכס העיקרי |
| srcaddr | principal.ip | כתובת ה-IP של הגורם המרכזי |
| srcport | principal.port | מספר היציאה שמשמש את ה-principal |
| uid | principal.user.userid | מזהה המשתמש של המשתמש הראשי |
| פעולה | security_result.action_details | פרטים על הפעולה שבוצעה על ידי מוצר האבטחה |
| reason | security_result.description | תיאור של תוצאת האבטחה |
| msg_data | security_result.summary | סיכום תוצאות האבטחה |
| destaddr | target.ip | כתובת ה-IP של היעד |
| destport | target.port | מספר היציאה שמשמש את היעד |
| metadata.product_name | שם המוצר שיוצר את האירוע | |
| metadata.vendor_name | שם הספק של המוצר | |
authFailureID", "filter", "attrs", "changetype", "replace" and "authFailureReason |
additional.fields |
מופה מיומן השינויים |
from |
principal.ip |
מופה מיומן השינויים |
יומן שינויים
צפייה ביומן השינויים של כלי הניתוח הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.