איסוף יומנים מ-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, צריך לוודא שהיציאות בחומת האש פתוחות.
- דייר 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 compliance portal.
- עוברים אל ביקורת.
- אם מוצגת בקשה, לוחצים על התחלת הקלטה של פעילות המשתמשים והאדמינים. הערה: אחרי שמפעילים את יומן הביקורת המאוחד, יכולות לעבור עד 12 שעות עד שהתוכן יהיה זמין.
לחלופין, אפשר להפעיל רישום מאוחד ביומן הביקורת באמצעות PowerShell:
Connect-ExchangeOnline Set-AdminAuditLogConfig -UnifiedAuditLogIngestionEnabled $true
קבלת קובץ אימות להטמעת נתונים ב-Google SecOps
- נכנסים למסוף Google SecOps.
- עוברים אל SIEM Settings > Collection Agents (הגדרות SIEM > סוכני איסוף).
מורידים את קובץ האימות להטמעת נתונים. שומרים את הקובץ באופן מאובטח במערכת שבה תותקן 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 /etc/bindplane-agent/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: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<CUSTOMER_ID>' endpoint: malachiteingestion-pa.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: הנתיב המלא לקובץ האימות להטמעת נתונים:
- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
- נקודת קצה (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"
הגדרת סוכן 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 ואילך
- מעבד: 2 ליבות
- נפח אחסון בדיסק: 20GB
- RAM: 2GB
שלב 1: הגדרת סוכן ה-SIEM בפורטל Microsoft Defender
- נכנסים לפורטל Microsoft Defender.
- לוחצים על Settings.
- בוחרים באפשרות אפליקציות בענן.
- בקטע מערכת, בוחרים באפשרות סוכני SIEM.
- לוחצים על הוספת סוכן SIEM ובוחרים באפשרות Generic 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 עם פרמטר הטוקן.
- מבטלים את הסימון של הפסקת המשימה אם היא פועלת יותר מ.
שלב 4: בדיקת החיבור של סוכן ה-SIEM
- בפורטל Microsoft Defender, עוברים אל הגדרות > אפליקציות בענן > סוכני SIEM.
- מוודאים שהסטטוס של סוכן SIEM הוא Connected (ירוק).
במארח של סוכן 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 אם יש principal וגם has_target_resource או has_target, אחרת הערך הוא STATUS_UPDATE אם יש 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 | התוויות מוזגו עם המפתח 'נוצר' מתוך 'נוצר' והמפתח 'תאריך שינוי אחרון' מתוך 'תאריך שינוי אחרון' |
| 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 | הגרסה לאחר מיזוג |
| 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.