איסוף יומנים של ManageEngine ADAudit Plus
במאמר הזה מוסבר איך להטמיע יומני רישום של ManageEngine ADAudit Plus ב-Google Security Operations באמצעות סוכן Bindplane. הכלי לניתוח (parser) מטפל ביומנים מ-ADAudit Plus וממיר אותם לפורמט UDM. הוא משתמש בתבניות grok כדי לחלץ שדות מ-SYSLOG (CEF) וממסרים בפורמט של מפתח-ערך, ממפה אותם לשדות UDM על סמך סוגי אירועים שנגזרים מפרופילים של התראות ודוחות, ומעשיר את הנתונים בהקשר נוסף. הכלי לניתוח מחרוזות מטפל גם בתרחישים ספציפיים כמו כניסות שנכשלו, שינויים במשתמשים ושינויים בקבצים, ומתאים את מיפוי UDM בהתאם.
לפני שמתחילים
- מוודאים שיש לכם מכונת Google SecOps.
- ודאו שאתם משתמשים ב-Windows 2016 ואילך, או במארח Linux עם
systemd. - אם מריצים מאחורי שרת proxy, מוודאים שהיציאות בחומת האש פתוחות.
- מוודאים שיש לכם הרשאות גישה מיוחדות ל-ManageEngine ADAudit.
קבלת קובץ אימות להטמעת נתונים ב-Google SecOps
- נכנסים למסוף Google SecOps.
- עוברים אל SIEM Settings > Collection Agents.
- מורידים את קובץ האימות להטמעת נתונים. שומרים את הקובץ בצורה מאובטחת במערכת שבה תותקן Bindplane.
איך מוצאים את מספר הלקוח ב-Google SecOps
- נכנסים למסוף Google SecOps.
- עוברים אל SIEM Settings > Profile (הגדרות SIEM > פרופיל).
- מעתיקים את מזהה הלקוח מהקטע פרטי הארגון ושומרים אותו.
התקנת סוכן Bindplane
התקנה ב-Windows
- פותחים את שורת הפקודה או את 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 להטמעה של Syslog ושליחה אל Google SecOps
ניגשים לקובץ התצורה:
- מאתרים את הקובץ
config.yaml. בדרך כלל, הוא נמצא בספרייה/etc/bindplane-agent/ב-Linux או בספריית ההתקנה ב-Windows. - פותחים את הקובץ באמצעות כלי לעריכת טקסט (לדוגמה,
nano,viאו Notepad).
- מאתרים את הקובץ
עורכים את הקובץ
config.yamlבאופן הבא:receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization ingestion_labels: log_type: ADAUDIT_PLUS raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labelsמחליפים את היציאה ואת כתובת ה-IP לפי הצורך בתשתית.
מחליפים את
<customer_id>במזהה הלקוח בפועל.מעדכנים את
/path/to/ingestion-authentication-file.jsonלנתיב שבו קובץ האימות נשמר בקטע קבלת קובץ אימות להעברה ל-Google SecOps.
מפעילים מחדש את סוכן Bindplane כדי להחיל את השינויים.
כדי להפעיל מחדש את סוכן Bindplane ב-Linux, מריצים את הפקודה הבאה:
sudo systemctl restart bindplane-agentכדי להפעיל מחדש את סוכן Bindplane ב-Windows, אפשר להשתמש במסוף Services או להזין את הפקודה הבאה:
net stop BindPlaneAgent && net start BindPlaneAgent
הגדרת ManageEngine ADAudit Plus Syslog
- נכנסים לממשק המשתמש באינטרנט של ManageEngine ADAudit Plus.
- עוברים אל Admin > Configuration > SIEM Integration.
- לוחצים על הפעלה כדי לשלוח את היומנים של ADAudit Plus.
- בוחרים בפורמט ArcSight (CEF).
- מספקים את פרטי ההגדרה הבאים:
- כתובת IP: כתובת ה-IP של סוכן Bindplane.
- יציאה: מספר היציאה של Bindplane, לדוגמה,
514ל-UDP. - סוג היעד: בוחרים באפשרות UDP (אפשר גם לבחור באפשרות TCP, בהתאם להגדרות של סוכן Bindplane).
- לוחצים על Save.
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | היגיון |
|---|---|---|
ACCOUNT_DOMAIN |
principal.administrative_domain |
הערך של ACCOUNT_DOMAIN מיומן הגולמי מוקצה לשדה הזה ב-UDM. |
ACCOUNT_NAME |
principal.user.userid |
הערך של ACCOUNT_NAME מיומן הגולמי מוקצה לשדה הזה ב-UDM. |
ALERT_PROFILE |
security_result.summary |
הערך של ALERT_PROFILE מיומן הגולמי מוקצה לשדה הזה ב-UDM. |
APPLICATION_NAME |
target.resource.name |
הערך של APPLICATION_NAME מיומן הגולמי מוקצה לשדה הזה ב-UDM. הפונקציה גם מגדירה את target.resource.resource_type ל-TASK ואת has_target_resource ל-true. |
CALLER_DISPLAY_NAME |
target.user.user_display_name |
הערך של CALLER_DISPLAY_NAME מיומן הגולמי מוקצה לשדה הזה ב-UDM. |
CALLER_USER_NAME |
target.user.userid |
הערך של CALLER_USER_NAME מיומן הגולמי מוקצה לשדה הזה ב-UDM. |
CALLER_USER_SID |
target.group.windows_sid |
הערך של CALLER_USER_SID מיומן הגולמי משויך לשדה הזה ב-UDM אחרי הסרת התווים [%,{,}]. הפעולה הזו מתבצעת רק אם הערך תואם לדפוס של SID ב-Windows. |
Category |
metadata.product_event_type |
הערך של Category מיומן הגולמי מוקצה לשדה הזה ב-UDM. |
CLIENT_HOST_NAME |
target.hostname, target.asset.hostname |
הערך של CLIENT_HOST_NAME מיומן הגולמי מוקצה לשדות האלה ב-UDM. |
CLIENT_IP_ADDRESS |
target.ip, target.asset.ip |
הערך של CLIENT_IP_ADDRESS מהיומן הגולמי מוקצה לשדות ה-UDM האלה אחרי שמוודאים שזו כתובת IP תקינה. |
CLIENT_PORT |
target.port |
הערך של CLIENT_PORT מיומן הגולמי משויך לשדה הזה ב-UDM אחרי שהוא מומר למספר שלם. |
DOMAIN |
target.administrative_domain |
הערך של DOMAIN מיומן הגולמי מוקצה לשדה הזה ב-UDM. יכול להיות שהערך הזה יידרס בהמשך על ידי ACCOUNT_DOMAIN אם הוא קיים. |
FILE_LOCATION |
target.file.full_path |
הערך של FILE_LOCATION מיומן הגולמי מוקצה לשדה הזה ב-UDM. |
FILE_NAME |
target.file.full_path |
הערך של FILE_NAME מיומן הגולמי מוקצה לשדה הזה ב-UDM אם FILE_LOCATION לא קיים. |
FORMAT_MESSAGE |
security_result.description |
הערך של FORMAT_MESSAGE מיומן הגולמי מוקצה לשדה הזה ב-UDM. יכול להיות שחלקים מהשדה הזה ישמשו לאכלוס שדות אחרים ב-UDM ואז יוסרו מהתיאור. |
IP |
principal.ip, principal.asset.ip |
הערך של IP מהיומן הגולמי מוקצה לשדות ה-UDM האלה אחרי שמוודאים שזו כתובת IP תקינה. |
loggerHost |
intermediary.hostname, intermediary.asset.hostname |
הערך של loggerHost שחולץ משדה ההודעה ביומן הגולמי מוקצה לשדות UDM האלה. |
login_name |
target.user.userid או target.user.email_addresses או target.user.user_display_name |
אם הערך מכיל @, המערכת מתייחסת אליו כאל כתובת אימייל. אם הוא מכיל רווחים, הוא נחשב לשם לתצוגה. אחרת, הוא ייחשב כמזהה משתמש. הפעולה גם מגדירה את event_type לערך USER_LOGIN, את extensions.auth.type לערך MACHINE ואת extensions.auth.mechanism לערך USERNAME_PASSWORD. |
RECORD_NUMBER |
principal.process.pid |
הערך של RECORD_NUMBER מיומן הגולמי מוקצה לשדה הזה ב-UDM. |
REPORT_PROFILE |
metadata.description |
הערך של REPORT_PROFILE מיומן הגולמי מוקצה לשדה הזה ב-UDM. |
SEVERITY |
security_result.severity |
הערך של SEVERITY קובע את הערך של השדה הזה ב-UDM: 1 ממופה ל-LOW, 2 ממופה ל-MEDIUM ו-3 ממופה ל-HIGH. |
SOURCE |
principal.hostname, principal.asset.hostname |
הערך של SOURCE מיומן הגולמי, בשילוב עם DOMAIN אם SOURCE לא מכיל חלק של דומיין, מוקצה לשדות האלה ב-UDM. הפרמטר הזה מגדיר גם את has_principal_host ל-true. |
TIME_GENERATED |
metadata.event_timestamp.seconds |
הערך של TIME_GENERATED מיומן הגולמי משמש כחותמת הזמן של האירוע. |
UNIQUE_ID |
metadata.product_log_id |
הערך של UNIQUE_ID מיומן הגולמי מוקצה לשדה הזה ב-UDM. |
USERNAME |
principal.user.userid |
הערך של USERNAME מיומן הגולמי מוקצה לשדה הזה ב-UDM אם ACCOUNT_NAME לא קיים. |
USER_OU_GUID |
metadata.product_log_id |
הערך של USER_OU_GUID מיומן הגולמי, אחרי הסרת הסוגריים המסולסלים, מוקצה לשדה הזה ב-UDM אם UNIQUE_ID לא קיים. |
access_mode |
security_result.detection_fields.value |
הערך של access_mode מיומן הגולמי משויך לשדה הזה ב-UDM, והמפתח מוגדר ל-ACCESS_MODE. |
action_name |
security_result.description |
הערך של action_name מיומן הגולמי מוקצה לשדה הזה ב-UDM. |
domain_name |
principal.administrative_domain |
הערך של domain_name מיומן הגולמי מוקצה לשדה הזה ב-UDM. |
event.idm.read_only_udm.extensions.auth.mechanism |
event.idm.read_only_udm.extensions.auth.mechanism |
מגדירים את הערך USERNAME_PASSWORD אם המאפיין login_name קיים או אם הערך של event_type הוא USER_LOGIN. |
event.idm.read_only_udm.extensions.auth.type |
event.idm.read_only_udm.extensions.auth.type |
מגדירים את הערך MACHINE אם המאפיין login_name קיים או אם הערך של event_type הוא USER_LOGIN. |
event.idm.read_only_udm.metadata.event_type |
event.idm.read_only_udm.metadata.event_type |
הערך נקבע על ידי מנתח התוכן על סמך הערכים של ALERT_PROFILE, REPORT_PROFILE ו-FORMAT_MESSAGE. יכול להיות אחד מכמה ערכים, כולל USER_CHANGE_PERMISSIONS, USER_STATS, USER_LOGIN, USER_CHANGE_PASSWORD, SETTING_MODIFICATION, FILE_DELETION, FILE_MODIFICATION, STATUS_SHUTDOWN, SCHEDULED_TASK_CREATION, FILE_READ, NETWORK_CONNECTION, GENERIC_EVENT, USER_UNCATEGORIZED או STATUS_UPDATE. |
event.idm.read_only_udm.metadata.log_type |
event.idm.read_only_udm.metadata.log_type |
הערך תמיד יהיה ADAUDIT_PLUS. |
event.idm.read_only_udm.metadata.product_name |
event.idm.read_only_udm.metadata.product_name |
הערך תמיד יהיה ADAudit Plus. |
event.idm.read_only_udm.metadata.vendor_name |
event.idm.read_only_udm.metadata.vendor_name |
הערך תמיד יהיה Zoho Corporation. |
host |
principal.hostname, principal.asset.hostname |
הערך של host מיומן הגולמי מוקצה לשדות האלה ב-UDM. הפרמטר הזה מגדיר גם את has_principal_host ל-true. |
intermediary.hostname, intermediary.asset.hostname |
intermediary.hostname, intermediary.asset.hostname |
הערך שמוגדר הוא loggerHost. |
principalHost |
principal.hostname, principal.asset.hostname |
הערך של principalHost מיומן הגולמי מוקצה לשדות האלה ב-UDM אחרי בדיקה אם מדובר בכתובת IP. הפרמטר הזה מגדיר גם את has_principal_host ל-true. |
security_result.action |
security_result.action |
הערך הוא ALLOW אם outcome או msg_data_2 מכילים את Success, או אם FORMAT_MESSAGE מכיל את Status:Success. הערך BLOCK אם status מכיל את הערכים denied, locked out, incorrect, does not meet או Unable to validate. מגדירים את הערך BLOCK אם הערך של ALERT_PROFILE הוא Logon Failures for Admin Users. |
security_result.category |
security_result.category |
מגדירים את הערך POLICY_VIOLATION אם event_type הוא USER_STATS או אם ALERT_PROFILE הוא Logon Failures for Admin Users. |
security_result.rule_name |
security_result.rule_name |
הערך הזה מחולץ מהשדה FORMAT_MESSAGE אם הוא מכיל את הערך Reason:. |
status |
security_result.summary |
הערך של status מיומן הגולמי מוקצה לשדה הזה ב-UDM. |
targetHost |
target.hostname, target.asset.hostname או target.ip, target.asset.ip |
הערך של targetHost מיומן הגולמי מוקצה לשדות האלה ב-UDM אחרי בדיקה אם מדובר בכתובת IP. |
targetUser |
target.user.userid |
הערך של targetUser מיומן הגולמי מוקצה לשדה הזה ב-UDM. |
_CNtargetUser |
target.user.user_display_name |
הערך של _CNtargetUser מיומן הגולמי מוקצה לשדה הזה ב-UDM. |
_user |
principal.user.userid או target.user.userid |
הערך של _user מיומן הגולמי משויך ל-principal.user.userid, אלא אם event_type הוא USER_CHANGE_PASSWORD, ובמקרה כזה הוא משויך ל-target.user.userid. |
יומן שינויים
צפייה ביומן השינויים של מנתח התוכן הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.