איסוף יומני OpenLDAP
במאמר הזה מוסבר איך להטמיע יומנים של OpenLDAP ב-Google Security Operations באמצעות Bindplane.
OpenLDAP הוא שרת מדריך LDAP בקוד פתוח שיוצר יומני גישה, ביקורת ושכפול. הכלי לניתוח מחלץ שדות מיומני OpenLDAP וממפה אותם למודל הנתונים המאוחד (UDM), ומתעד את זהות המשתמש, אירועי אימות, פעולות LDAP ותוצאות אבטחה.
לפני שמתחילים
חשוב לוודא שיש לכם את הדברים הבאים:
- מכונה של Google SecOps
- Windows Server 2016 ואילך, או מארח Linux עם
systemd - קישוריות לרשת בין סוכן Bindplane לבין שרת OpenLDAP
- אם מריצים מאחורי שרת proxy, מוודאים שיציאות חומת האש פתוחות בהתאם לדרישות של סוכן Bindplane
- גישת אדמין לשרת OpenLDAP עם הרשאות root או הרשאות אדמין
קבלת קובץ אימות להטמעת נתונים ב-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 systemctl status observiq-otel-collectorWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
עריכת קובץ ההגדרות
מחליפים את כל התוכן של
config.yamlבהגדרה הבאה:receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/openldap: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: OPENLDAP raw_log_field: body service: pipelines: logs/openldap: receivers: - udplog exporters: - chronicle/openldap
פרמטרים להגדרה
מחליפים את ה-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>: מספר הלקוח מהשלב הקודם malachiteingestion-pa.googleapis.com: כתובת ה-URL של נקודת הקצה האזורית:- ארה"ב:
malachiteingestion-pa.googleapis.com - אירופה:
europe-malachiteingestion-pa.googleapis.com - אסיה:
asia-southeast1-malachiteingestion-pa.googleapis.com - רשימה מלאה מופיעה במאמר בנושא נקודות קצה אזוריות.
- ארה"ב:
- משנים את
creds_file_pathבהתאם לפלטפורמה:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
-
שמירת קובץ התצורה
- אחרי שמסיימים לערוך, שומרים את הקובץ:
- 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 ב-OpenLDAP
אפשר להגדיר את OpenLDAP (slapd) כך שיתעד ביומן באמצעות syslog. מגדירים את שד ה-syslog להעברת יומנים של OpenLDAP לסוכן Bindplane.
מוודאים ש-OpenLDAP מוגדר להתחבר ל-syslog. בודקים את ההנחיה
loglevelב-slapd.confאו ב-cn=config:loglevel stats connsיומני OpenLDAP נשלחים כברירת מחדל אל
local4syslog facility. מגדירים את rsyslog להעברת היומנים האלה לסוכן Bindplane. יוצרים קובץ תצורה:sudo nano /etc/rsyslog.d/openldap-forward.confמוסיפים את התוכן הבא:
local4.* @BINDPLANE_AGENT_IP:514מפעילים מחדש את שירות rsyslog:
sudo systemctl restart rsyslog
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | היגיון |
|---|---|---|
| op, fd, ou, cn, dc, dc1, base1, base2, base3, scope_data, valueData, method, filter, tag_data, err, attrData, ou_2, ou_1, syslog_message, immutable_user_id, resource | additional.fields | המיזוג עם תוויות שנוצרו מהשדות האלה |
| extensions.auth.type | הערך שמוגדר הוא AUTHTYPE_UNSPECIFIED | |
| caller_ip, proxy1_ip, proxy2_ip | מתווך | מוזג ממתווך, proxy_1, proxy_2 |
| msg1, inner_message | metadata.description | ערך מ-msg1 או מ-inner_message |
| metadata.event_type | הערך שמוגדר בהתחלה הוא GENERIC_EVENT, אחר כך STATUS_UPDATE אם כתובת ה-IP של הגורם הראשי קיימת, USER_UNCATEGORIZED אם המשתמש קיים, ו-USER_LOGIN אם חותמת הזמן או inner_ts קיימים | |
| ldap_action | metadata.product_event_type | ערך מ-ldap_action באותיות קטנות |
| ldap_conn | metadata.product_log_id | הערך מ-ldap_conn אחרי ההסרה של conn= |
| user_agent | network.http.user_agent | הערך הועתק ישירות |
| session_id | network.session_id | הערך הועתק ישירות |
| principal_ip, prin_ip, caller_ip, r_ip_or_host, proxy_client_ip, src_ip, client_ip | principal.asset.ip | מוזג מ-principal_ip (אחרי החלפת - ב-.), מ-prin_ip, מ-caller_ip, מ-r_ip_or_host (אם IP), מ-proxy_client_ip, מ-src_ip, מ-client_ip |
| r_ip_or_host, src_host | principal.hostname | ערך מ-r_ip_or_host אם שם המארח, אחרת src_host |
| principal_ip, prin_ip, caller_ip, r_ip_or_host, proxy_client_ip, src_ip, client_ip | principal.ip | מוזגו מ-principal_ip (אחרי החלפת המקף בנקודה), prin_ip, caller_ip, r_ip_or_host (אם IP), proxy_client_ip, src_ip, client_ip |
| מדינה | principal.location.country_or_region | הערך הועתק ישירות |
| prin_port, port, src_port | principal.port | ערך מ-prin_port, port או src_port, שהומר למספר שלם |
| syslog_process | principal.process.file.full_path | הערך הועתק ישירות |
| syslog_pid | principal.process.pid | הערך הועתק ישירות |
| org_name | principal.user.company_name | הערך הועתק ישירות |
| user, cn, uid | principal.user.userid | ערך מהמשתמש, cn או uid |
| security_result | security_result | מיזוג ישיר |
| action, sec_action | security_result.action | ערך מהפעולה (על סמך קודי שגיאה) או מהפעולה המשנית (על סמך login_status) |
| resource, immutable_user_id | security_result.detection_fields | מוזגו עם תוויות מהמשאב ומ-immutable_user_id |
| inner_descrption, security_description | security_result.description | ערך מ-inner_descrption או מ-security_description |
| tuser, username, userid | target.user.userid | ערך מ-tuser, username או userid |
| metadata.product_name | ההגדרה היא OpenLDAP | |
| metadata.vendor_name | מגדירים את האפשרות "OpenLDAP" | |
eventType |
event.idm.read_only_udm.metadata.product_event_type |
מופה מיומן השינויים |
cn |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
sequenceId |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
dc_2 |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
dc_3 |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
dc |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
dc_1 |
event.idm.read_only_udm.additional.fields |
מופה מיומן השינויים |
user |
event.idm.read_only_udm.principal.user.userid |
מופה מיומן השינויים |
path |
event.idm.read_only_udm.principal.process.file.full_path |
מופה מיומן השינויים |
ip1 |
principal.ip |
מופה מיומן השינויים |
base", "err", "attr", "tag", "scope", and "valueData |
additional.fields |
מופה מיומן השינויים |
security_result.action |
ALLOW |
מופה מיומן השינויים |
security_result.action |
BLOCK |
מופה מיומן השינויים |
יומן שינויים
צפייה ביומן השינויים של כלי הניתוח הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.