收集 Microsoft SharePoint (Office 365) 記錄

支援的國家/地區:

本文說明如何使用 Bindplane,將 Microsoft SharePoint (Office 365) 記錄檔收集到 Google Security Operations。

Microsoft SharePoint 是以網路為基礎的協作平台,可與 Microsoft 361 整合。SharePoint 稽核記錄會擷取使用者活動,包括檔案作業、資料夾活動、共用作業、清單作業和網站管理動作。這些記錄可透過 Microsoft Defender for Cloud Apps SIEM 代理程式存取,該代理程式會從 SharePoint Online 和商務用 OneDrive 擷取稽核資料,並以系統記錄的形式串流至本機接收器。

事前準備

請確認您已完成下列事前準備事項:

  • Google SecOps 執行個體
  • Windows Server 2016 以上版本,或搭載 systemd 的 Linux 主機
  • 如果透過 Proxy 執行,請確認防火牆通訊埠已開啟
  • 具有 SharePoint Online 的 Microsoft 365 租戶
  • Microsoft Defender for Cloud Apps 授權 (隨附於 Microsoft 365 E5 或以加購形式提供)
  • Microsoft Defender 入口網站的全域管理員或安全性管理員角色
  • 搭載 Java 8 以上版本的 Windows 或 Linux 伺服器,用於執行 SIEM 代理程式 (可與 Bindplane 位於同一主機)
  • 在 Microsoft 365 中啟用統合稽核記錄

啟用統一稽核記錄

Microsoft Defender for Cloud Apps 必須先為 Microsoft 365 租戶啟用統一稽核記錄,才能擷取 SharePoint 稽核資料。

  1. 登入 Microsoft Purview 合規入口網站
  2. 前往「稽核」
  3. 如果系統提示,請按一下「開始記錄使用者和管理員活動」。 注意:啟用統一稽核記錄後,最多可能需要 12 小時,內容才會顯示。
  • 或者,您也可以使用 PowerShell 啟用統一稽核記錄:

    Connect-ExchangeOnline
    Set-AdminAuditLogConfig -UnifiedAuditLogIngestionEnabled $true
    

取得 Google SecOps 擷取驗證檔案

  1. 登入 Google SecOps 控制台。
  2. 依序前往「SIEM 設定」>「收集代理程式」
  3. 下載擷取驗證檔案,並將檔案安全地儲存在要安裝 Bindplane 的系統中。

取得 Google SecOps 客戶 ID

  1. 登入 Google SecOps 控制台。
  2. 依序前往「SIEM 設定」>「設定檔」
  3. 複製並儲存「機構詳細資料」部分中的客戶 ID

安裝 Bindplane 代理程式

請按照下列操作說明,在 Windows 或 Linux 作業系統上安裝 Bindplane 代理程式。

Windows 安裝

  1. 以管理員身分開啟「命令提示字元」或「PowerShell」
  2. 執行下列指令:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. 等待安裝完成。

  4. 執行下列指令,確認安裝成功:

    sc query observiq-otel-collector
    

    服務應顯示為「RUNNING」

Linux 安裝

  1. 開啟具有根層級或 sudo 權限的終端機。
  2. 執行下列指令:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. 等待安裝完成。

  4. 執行下列指令,確認安裝成功:

    sudo systemctl status observiq-otel-collector
    

    服務應顯示為有效 (執行中)

其他安裝資源

如需其他安裝選項和疑難排解資訊,請參閱 Bindplane 代理程式安裝指南

設定 Bindplane 代理程式,擷取系統記錄檔並傳送至 Google SecOps

找出設定檔

  • Linux:

    sudo nano /etc/bindplane-agent/config.yaml
    
  • Windows:

    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
    

設定參數

替換下列預留位置:

  • 匯出工具設定:

    • <CUSTOMER_ID>:在上一個步驟中複製的 Google SecOps 客戶 ID
    • creds_file_path:擷取驗證檔案的完整路徑:
      • Linux/etc/bindplane-agent/ingestion-auth.json
      • WindowsC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • 端點:區域端點網址:
      • 美國malachiteingestion-pa.googleapis.com
      • 歐洲europe-malachiteingestion-pa.googleapis.com
      • 亞洲asia-southeast1-malachiteingestion-pa.googleapis.com
      • 如需完整清單,請參閱「區域端點

儲存設定檔

  • 編輯完成後,請儲存檔案:
    • Linux:依序按下 Ctrl+OEnterCtrl+X
    • Windows:依序點選「檔案」>「儲存」

重新啟動 Bindplane 代理程式,以套用變更

如要在 Linux 中重新啟動 Bindplane 代理程式,請執行下列步驟:

  1. 執行下列指令:

    sudo systemctl restart observiq-otel-collector
    
  2. 確認服務正在執行:

    sudo systemctl status observiq-otel-collector
    
  3. 檢查記錄中是否有錯誤:

    sudo journalctl -u observiq-otel-collector -f
    

如要在 Windows 中重新啟動 Bindplane 代理程式,請按照下列步驟操作:

  1. 您可以選擇下列其中一個選項:

    • 以管理員身分開啟命令提示字元或 PowerShell:
    net stop observiq-otel-collector && net start observiq-otel-collector
    
    • 服務控制台:
      1. 按下 Win+R,輸入 services.msc,然後按下 Enter 鍵。
      2. 找出 observIQ OpenTelemetry Collector
      3. 按一下滑鼠右鍵,然後選取「重新啟動」
  2. 確認服務正在執行:

    sc query observiq-otel-collector
    
  3. 檢查記錄中是否有錯誤:

    type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
    

設定 Microsoft Defender for Cloud Apps SIEM 代理程式,轉送 SharePoint 記錄

Microsoft SharePoint Online 是雲端服務,沒有內建的系統記錄轉送功能。如要透過 Syslog 轉送 SharePoint 稽核記錄,請使用 Microsoft Defender for Cloud Apps SIEM 代理程式,從 Defender for Cloud Apps 擷取快訊和活動,並以 Syslog 訊息 (CEF 格式) 串流至 Bindplane 代理程式。

SIEM 代理程式的必要條件

  • Windows 或 Linux 伺服器 (可以是虛擬機器),並具備下列條件:

    • 已安裝 Java 8 以上版本
    • 傳輸層安全標準 (TLS) 1.2 以上版本
    • CPU:2 核心
    • 磁碟空間:20 GB
    • RAM:2 GB

步驟 1:在 Microsoft Defender 入口網站中設定 SIEM 代理程式

  1. 登入 Microsoft Defender 入口網站
  2. 選取 [設定]。
  3. 選擇「雲端應用程式」
  4. 在「系統」下方,選取「SIEM 代理程式」
  5. 按一下「新增 SIEM 代理程式」,然後選擇「一般 SIEM」
  6. 按一下「啟動精靈」
  7. 請提供下列設定詳細資料:
    • 名稱:輸入描述性名稱 (例如 Chronicle-Bindplane-SharePoint)。
    • 選取 SIEM 格式:選取「CEF」
  8. 點選「下一步」
  9. 提供下列系統記錄連線詳細資料:
    • 遠端系統記錄檔主機:輸入 Bindplane 代理程式主機的 IP 位址或主機名稱 (例如 192.168.1.100)。
    • Syslog 通訊埠編號:輸入 514 (或在 Bindplane 代理程式 config.yaml 中設定的通訊埠)。
    • 遠端 Syslog 通訊協定:選取 UDP (必須與 Bindplane 代理程式設定中的接收器類型相符)。
  10. 點選「下一步」
  11. 設定要匯出的資料類型:
    1. 啟用「活動」滑桿。
    2. 在「活動」的「套用至」下拉式選單中,設定篩選器以納入 SharePoint 活動:
      1. 選取「應用程式等於」,然後選擇「Microsoft SharePoint Online」和「Microsoft OneDrive for Business」
    3. 如果也想接收與 SharePoint 相關的政策快訊,請啟用「快訊」滑桿。
  12. 按一下「編輯並預覽結果」,確認篩選條件符合預期活動。
  13. 點選「下一步」
  14. 複製摘要頁面顯示的權杖,並妥善保存。
  15. 按一下「完成」

步驟 2:下載並執行 SIEM 代理程式 JAR 檔案

  1. Microsoft 下載中心下載 SIEM 代理程式。
  2. 在 SIEM 代理程式執行的伺服器上,解壓縮下載的 ZIP 檔案。
  3. 執行下列指令來執行 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:

  • 設定排定工作:
    1. 開啟「工作排程器」
    2. 建立新工作,並選取「不論使用者是否登入,都執行工作」
    3. 將動作設為執行含有權杖參數的 JAR 檔案。
    4. 取消勾選「如果工作執行時間超過」

步驟 4:確認 SIEM 代理程式連線

  1. Microsoft Defender 入口網站中,依序前往「設定」>「雲端應用程式」>「SIEM 代理程式」
  2. 確認 SIEM 代理程式狀態顯示為「已連線」 (綠色)。
  3. 在 Bindplane 代理程式主機上,確認系統記錄訊息是否已收到:

    sudo journalctl -u observiq-otel-collector -f
    
  4. 在 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 如有 has_principal 且 (has_target_resource 或 has_target),則設為「USER_RESOURCE_ACCESS」;如有 has_principal,則設為「STATUS_UPDATE」;否則設為「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」鍵合併標籤,分別為「Created」和「Last Modified」
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 專業人員尋求答案。