收集 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
    

取得 Bindplane 代理程式的 Google SecOps 憑證

如要向 Google SecOps 驗證 Bindplane 代理程式,請選擇下列其中一種方法:

  • 新部署作業:使用 Chronicle API (選項 1)。
  • 舊版部署作業:繼續使用擷取驗證檔案 (選項 2),直到 Ingestion API 於 2027 年 7 月 20 日停用。
  1. 登入 Google Cloud 控制台,然後選取連結至 Google SecOps 執行個體的 Google Cloud 專案。
  2. 依序前往「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶)。
  3. 按一下「建立服務帳戶」。
  4. 提供下列設定詳細資料:
    • 服務帳戶名稱:輸入帳戶名稱 (例如 bindplane-ingest)。
    • 「服務帳戶說明」:輸入說明 (例如 Bindplane agent log ingestion)。
  5. 點按「Create and continue」(建立並繼續)。
  6. 在「將專案存取權授予這個服務帳戶」部分,按一下「選取角色」,然後選取「Chronicle 編輯者」。
  7. 依序點選「繼續」和「完成」。
  8. 按一下您建立的服務帳戶,然後前往「金鑰」分頁。
  9. 依序點選「新增金鑰」>「建立新的金鑰」。
  10. 選取「JSON」,然後點選「建立」。金鑰檔案會下載到電腦。
  11. 將金鑰檔案儲存為 Bindplane 收集器目錄中的 ingestion-auth.json (Linux 上的 /opt/observiq-otel-collector/ingestion-auth.json 或 Windows 上的 C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json),或更新 config.yaml 中的 creds_file_path,使其與儲存路徑相符。
  12. 依序前往「IAM & Admin」(IAM 與管理) >「Settings」(設定),然後複製「Project number」(專案編號)。匯出工具設定時會用到。

方法 2:下載擷取驗證檔案 (舊版)

  1. 登入 Google SecOps 控制台。
  2. 依序前往「SIEM 設定」>「收集代理程式」。
  3. 下載擷取驗證檔案。
  4. 將檔案安全地儲存在要安裝 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
    

    服務應顯示為「active (running)」。

其他安裝資源

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

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

找出設定檔

  • Linux:

    sudo nano /opt/observiq-otel-collector/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:
        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
    

設定參數

替換下列預留位置:

  • 匯出工具設定:

    • <CUSTOMER_ID>:在上一個步驟中複製的 Google SecOps 客戶 ID
    • creds_file_path:服務帳戶 JSON 金鑰檔案的完整路徑 (選項 1):
      • Linux:/opt/observiq-otel-collector/ingestion-auth.json
      • Windows:C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • location:將 <LOCATION> 替換為 Google SecOps 執行個體的區域 (例如 us、europe 或 asia-southeast1)。匯出工具會以這個值做為 chronicle.googleapis.com 的前置字元。如需完整清單,請參閱「區域性端點」。
    • project:將 <PROJECT_NUMBER> 替換為「IAM 與管理」>「設定」中的專案編號。
    • 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:依序點選「檔案」 > 「儲存」

重新啟動 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. 提供下列 syslog 連線詳細資料:
    • 遠端 syslog 主機:輸入 Bindplane 代理程式主機的 IP 位址或主機名稱 (例如 192.168.1.100)。
    • Syslog 通訊埠編號:輸入 514 (或 Bindplane 代理程式 config.yaml 中設定的通訊埠)。
    • 遠端 Syslog 通訊協定:選取「UDP」 (必須與 Bindplane 代理程式設定中的接收器類型相符)。
  10. 點選「下一步」。
  11. 設定要匯出的資料類型:
    1. 啟用「活動」滑桿。
    2. 在「活動」的「套用至」下拉式選單中,設定篩選器以納入 SharePoint 活動:
      1. 選取「App equals」(應用程式等於),然後選擇「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 入口網站中,依序前往「Settings」>「雲端應用程式」>「SIEM agents」。
  2. 確認 SIEM 代理程式狀態顯示為「已連線」 (綠色)。
  3. 在 Bindplane 代理程式主機上,確認是否收到 syslog 訊息:

    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」中的「Created」鍵和「LastModified」中的「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 專家尋求解答。