איסוף יומנים של Microsoft SharePoint (Office 365)
במסמך הזה מוסבר איך לאסוף יומנים של Microsoft SharePoint (Office 365) ב-Google Security Operations באמצעות Bindplane.
Microsoft SharePoint היא פלטפורמה מבוססת-אינטרנט לשיתוף פעולה שמשתלבת עם Microsoft 361. יומני הביקורת של SharePoint מתעדים את פעילויות המשתמשים, כולל פעולות על קבצים, פעילויות בתיקיות, פעולות שיתוף, פעולות ברשימות ופעולות ניהול של האתר. הגישה ליומנים האלה מתבצעת דרך סוכן ה-SIEM של Microsoft Defender for Cloud Apps, שמאחזר נתוני ביקורת מ-SharePoint Online ומ-OneDrive for Business ומעביר אותם כ-syslog למקלט מקומי.
לפני שמתחילים
חשוב לוודא שמתקיימות הדרישות המוקדמות הבאות:
- מכונה של Google SecOps
- Windows Server 2016 ואילך, או מארח Linux עם
systemd - אם אתם משתמשים בשרת proxy, ודאו שהיציאות של חומת האש פתוחות
- דייר (tenant) ב-Microsoft 365 עם SharePoint Online
- רישיון ל-Microsoft Defender for Cloud Apps (כלול ב-Microsoft 365 E5 או כתוסף)
- תפקיד אדמין גלובלי או אדמין אבטחה בפורטל Microsoft Defender
- שרת Windows או Linux עם Java 8 ואילך להפעלת סוכן ה-SIEM (יכול להיות אותו מארח כמו Bindplane)
- הפעלת רישום ביומן ביקורת מאוחד ב-Microsoft 365
הפעלת רישום מאוחד ביומן ביקורת
כדי שאפליקציות Microsoft Defender for Cloud יוכלו לתעד נתוני ביקורת של SharePoint, צריך להפעיל את רישום הביקורת המאוחד בדייר Microsoft 365.
- נכנסים לפורטל התאימות של Microsoft Purview.
- עוברים אל ביקורת.
- אם מופיעה בקשה, לוחצים על התחלת הרישום ביומן של פעילות משתמשים ואדמינים. הערה: אחרי שמפעילים את רישום היומן המאוחד, יכול להיות שיעברו עד 12 שעות לפני שהתוכן יהיה זמין.
אפשר גם להפעיל רישום מאוחד ביומן הביקורת באמצעות PowerShell:
Connect-ExchangeOnline Set-AdminAuditLogConfig -UnifiedAuditLogIngestionEnabled $true
קבלת פרטי כניסה ל-Google SecOps בשביל סוכן Bindplane
כדי לאמת את סוכן Bindplane ב-Google SecOps, בוחרים אחת מהשיטות הבאות:
- פריסות חדשות: משתמשים ב-Chronicle API (אפשרות 1).
- פריסות מדור קודם: אפשר להמשיך להשתמש בקובץ האימות של ה-API להעברת נתונים (אפשרות 2) עד שה-API להעברת נתונים יפסיק לפעול ב-20 ביולי 2027.
אפשרות 1: יצירת חשבון שירות ל-Chronicle API (מומלץ)
- נכנסים למסוףGoogle Cloud ובוחרים את הפרויקט ב- Google Cloud שמקושר למכונה של Google SecOps.
- נכנסים לדף IAM & Admin > Service Accounts.
- לוחצים על יצירת חשבון שירות.
- מספקים את פרטי ההגדרה הבאים:
- שם חשבון השירות: מזינים שם לחשבון (לדוגמה,
bindplane-ingest). - Service account description: מזינים תיאור (לדוגמה,
Bindplane agent log ingestion).
- שם חשבון השירות: מזינים שם לחשבון (לדוגמה,
- לוחצים על 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.
מעתיקים את מזהה הלקוח מהקטע פרטי הארגון ושומרים אותו.
התקנת הסוכן של Bindplane
מתקינים את הסוכן של Bindplane במערכת ההפעלה Windows או Linux לפי ההוראות הבאות.
התקנת חלונות
- פותחים את שורת הפקודה או את 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/sharepoint: 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: SHAREPOINT raw_log_field: body service: pipelines: logs/sharepoint_to_chronicle: receivers: - udplog exporters: - chronicle/sharepoint
פרמטרים להגדרה
מחליפים את ה-placeholders הבאים:
הגדרת הייצוא:
-
<CUSTOMER_ID>: מספר הלקוח ב-Google SecOps שהעתקתם בשלב הקודם - creds_file_path: הנתיב המלא לקובץ מפתח JSON של חשבון השירות (אפשרות 1):
- Linux:
/opt/observiq-otel-collector/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
-
location: מחליפים את<LOCATION>באזור של מופע Google SecOps (לדוגמה,us,europeאוasia-southeast1). ערך זה מתווסף לתחיליתchronicle.googleapis.comשל הכלי לייצוא. רשימה מלאה של נקודות הקצה האזוריות מופיעה במאמר Regional Endpoints. -
project: מחליפים את<PROJECT_NUMBER>במספר הפרויקט שמופיע בקטע IAM & Admin > Settings. -
endpoint: צריך להשאיר את ההגדרהchronicle.googleapis.com.
-
מייצא API להטמעה מדור קודם
אם אתם משתמשים בקובץ האימות להטמעת נתונים מאפשרות 2, החליפו את הבלוק
exportersבקוד הבא. מגדירים אתcreds_file_pathלנתיב של קובץ האימות להטמעת נתונים. אם המכונה נמצאת מחוץ לארה"ב, מחליפים אתmalachiteingestion-pa.googleapis.comבנקודת הקצה האזורית (לדוגמה,europe-malachiteingestion-pa.googleapis.com).exporters: chronicle/sharepoint: compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: '<CUSTOMER_ID>' endpoint: malachiteingestion-pa.googleapis.com log_type: SHAREPOINT 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"
הגדרת סוכן SIEM של Microsoft Defender for Cloud Apps להעברת יומני SharePoint
Microsoft SharePoint Online הוא שירות ענן ואין לו יכולת מובנית להעברת syslog. כדי להעביר את יומני הביקורת של SharePoint באמצעות syslog, משתמשים בסוכן ה-SIEM של Microsoft Defender for Cloud Apps, שמאחזר התראות ופעילויות מ-Defender for Cloud Apps ומעביר אותן כהודעות syslog (בפורמט CEF) לסוכן Bindplane.
דרישות מוקדמות לסוכן SIEM
שרת Windows או Linux (יכול להיות מכונה וירטואלית) עם:
- Java 8 או גרסה מתקדמת יותר מותקנת
- Transport Layer Security (TLS) 1.2 ואילך
- מעבד (CPU): 2 ליבות
- מקום בכונן: 20GB
- RAM: 2GB
שלב 1: הגדרת סוכן SIEM בפורטל Microsoft Defender
- נכנסים לפורטל Microsoft Defender.
- לוחצים על Settings.
- בוחרים באפשרות אפליקציות בענן.
- בקטע System, בוחרים באפשרות SIEM agents.
- לוחצים על הוספת סוכן SIEM ובוחרים באפשרות SIEM כללי.
- לוחצים על הפעלת האשף.
- מזינים את פרטי ההגדרה הבאים:
- שם: מזינים שם תיאורי (לדוגמה,
Chronicle-Bindplane-SharePoint). - בחירת פורמט ה-SIEM: בוחרים באפשרות CEF.
- שם: מזינים שם תיאורי (לדוגמה,
- לוחצים על הבא.
- מזינים את פרטי החיבור הבאים של Syslog:
- מארח syslog מרוחק: מזינים את כתובת ה-IP או את שם המארח של סוכן Bindplane (לדוגמה,
192.168.1.100). - מספר היציאה של Syslog: מזינים
514(או את היציאה שהוגדרה בסוכן Bindplaneconfig.yaml). - פרוטוקול Syslog מרוחק: בוחרים באפשרות UDP (צריך להתאים לסוג המקבל בהגדרות של סוכן Bindplane).
- מארח syslog מרוחק: מזינים את כתובת ה-IP או את שם המארח של סוכן Bindplane (לדוגמה,
- לוחצים על הבא.
- מגדירים את סוגי הנתונים לייצוא:
- מפעילים את פס ההזזה של פעילויות.
- בתפריט הנפתח החל על של פעילויות, מגדירים מסננים שיכללו פעילויות ב-SharePoint:
- בוחרים באפשרות האפליקציה שווה ל ובוחרים באפליקציות Microsoft SharePoint Online ו-Microsoft OneDrive for Business.
- מפעילים את פס ההזזה של התראות אם רוצים לקבל גם התראות מדיניות שקשורות ל-SharePoint.
- לוחצים על עריכה ותצוגה מקדימה של התוצאות כדי לוודא שהמסנן תואם לפעילויות הצפויות.
- לוחצים על הבא.
- מעתיקים את האסימון שמוצג בדף הסיכום ושומרים אותו בצורה מאובטחת.
לוחצים על סיום.
שלב 2: הורדה והפעלה של קובץ ה-JAR של סוכן SIEM
- מורידים את סוכן ה-SIEM ממרכז ההורדות של מיקרוסופט.
- מחלצים את קובץ ה-ZIP שהורד בשרת שבו יפעל סוכן ה-SIEM.
מריצים את סוכן ה-SIEM באמצעות הפקודה הבאה:
java -jar mcas-siemagent-0.87.20-signed.jar --token <TOKEN>
מחליפים את <TOKEN> בטוקן שהועתק מהפורטל של Microsoft Defender.
שלב 3: מגדירים את סוכן ה-SIEM כך שיפעל כשירות
כדי לוודא שהעברת היומנים תתבצע באופן רציף, צריך להגדיר את סוכן ה-SIEM כך שיופעל אוטומטית:
Linux:
מוסיפים את פקודת ההפעלה אל
/etc/rc.localאו יוצרים שירות systemd:java -jar /opt/mcas-siemagent/mcas-siemagent-0.87.20-signed.jar --token <TOKEN> &
Windows:
- מגדירים משימה מתוזמנת:
- פותחים את Task Scheduler (מתזמן המשימות).
- יוצרים משימה חדשה עם האפשרות הפעלה גם אם המשתמש מחובר וגם אם לא.
- מגדירים את הפעולה להרצת קובץ ה-JAR עם פרמטר האסימון.
- מבטלים את הסימון של האפשרות Stop the task if it runs longer than (עצירת המשימה אם היא נמשכת יותר מ-).
שלב 4: מאמתים את החיבור של סוכן ה-SIEM
- בפורטל Microsoft Defender, עוברים אל הגדרות > אפליקציות בענן > סוכני SIEM.
- מוודאים שהסטטוס של סוכן ה-SIEM הוא מחובר (ירוק).
במארח של סוכן Bindplane, מוודאים שהודעות syslog מתקבלות:
sudo journalctl -u observiq-otel-collector -fב-Google SecOps, מחפשים יומנים עם
metadata.log_type = "SHAREPOINT"כדי לוודא שהיומנים נבלעו.
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | היגיון |
|---|---|---|
| התרחש | metadata.event_timestamp | מנותח באמצעות מסנן תאריכים בפורמטים "MM/dd/yyyy HH:mm:ss A","MM/dd/yyyy HH:mm:ss a","M/d/yyyy HH:mm:ss A" |
| has_principal | metadata.event_type | מוגדר כ-"USER_RESOURCE_ACCESS" אם has_principal וגם (has_target_resource או has_target), אחרת מוגדר כ-"STATUS_UPDATE" אם has_principal, אחרת מוגדר כ-"GENERIC_EVENT" |
| has_target_resource | metadata.event_type | |
| has_target | metadata.event_type | |
| metadata.product_name | metadata.product_name | צריך להגדיר את הערך "SHAREPOINT" |
| EventData | metadata.product_version | הערך הועתק ישירות |
| metadata.vendor_name | metadata.vendor_name | צריך להגדיר את הערך "SHAREPOINT" |
| נוצר | principal.asset.attribute.labels | מוזגו תוויות עם המפתח "נוצר" מ-Created והמפתח "שונה לאחרונה" מ-LastModified |
| LastModified | principal.asset.attribute.labels | |
| SamAccountName | principal.asset.hostname | הערך הועתק ישירות |
| SamAccountName | principal.hostname | הערך הועתק ישירות |
| מסד נתונים | principal.process.file.names | מוזג ממסד נתונים |
| UserEmail | principal.user.email_addresses | המידע מוזג מ-UserEmail אם הוא תואם לביטוי הרגולרי של כתובת אימייל |
| שם משתמש | principal.user.user_display_name | הערך הועתק ישירות |
| EventType | security_result.description | הערך הועתק ישירות |
| ספרייה | target.file.full_path | הערך הועתק ישירות |
| עלה | target.file.names | מוזג מ-Leaf |
| ItemType | target.resource.type | הערך הועתק ישירות |
| SecUserURL | target.url | הערך הועתק ישירות |
| SecUserRole | target.user.attribute.roles | התפקיד מוזג עם השם מ-SecUserRole |
| SecUserEmail | target.user.email_addresses | מוזג מ-SecUserEmail אם יש התאמה לביטוי הרגולרי של כתובת אימייל |
| SecGroupName | target.user.group_identifiers | המיזוג בוצע מ-SecGroupName |
| SecUserName | target.user.user_display_name | הערך הועתק ישירות |
| SecSamAccountName | target.user.userid | הערך הועתק ישירות |
יומן שינויים
צפייה ביומן השינויים של המנתח הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.