收集 Microsoft System Center Endpoint Protection (SCEP) 記錄

支援的國家/地區:

本文說明如何使用 Microsoft Azure Blob 儲存體 V2 設定 Google Security Operations 資訊提供,藉此收集 Microsoft System Center Endpoint Protection (SCEP) 記錄。

Microsoft System Center Endpoint Protection (SCEP) 是與 System Center Configuration Manager (SCCM) 整合的企業級防惡意軟體和防毒解決方案。SCEP 可為 Windows 端點提供即時防護,防範惡意軟體、病毒、間諜軟體和其他惡意軟體。SCEP 會將安全性事件寫入 Microsoft-Windows-Windows Defender/Operational Windows 事件記錄檔通道,這些事件可使用 Azure 監視器代理程式收集,並匯出至 Azure Blob 儲存體。

事前準備

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

  • Google SecOps 執行個體
  • 具備下列權限的 Microsoft Azure 入口網站特殊存取權:
    • 建立儲存空間帳戶
    • 建立及管理 Log Analytics 工作區
    • 建立及管理資料收集規則
    • 設定資料匯出規則
    • 管理存取金鑰
  • 已安裝 SCEP 的 Windows Server 2012 R2 以上版本,或已安裝 Windows Defender 防毒軟體的 Windows Server 2016 以上版本
  • Windows 伺服器上安裝的 Azure 監視器代理程式 (地端部署伺服器需要 Azure Arc,或 Azure VM 的原生支援)
  • 在部署 SCEP 的 Windows 伺服器上擁有管理員存取權

設定 Azure 儲存體帳戶

建立儲存空間帳戶

  1. Azure 入口網站中,搜尋「儲存體帳戶」
  2. 點選「+ 建立」
  3. 請提供下列設定詳細資料:

    設定
    訂閱項目 選取 Azure 訂閱項目
    資源群組 選取現有資料庫或建立新資料庫
    儲存體帳戶名稱 輸入不重複的名稱 (例如 sceplogssa)
    區域 選取區域 (例如 East US)
    效能 標準 (建議)
    備援功能 GRS (異地備援儲存空間) 或 LRS (本機備援儲存空間)
  4. 按一下「Review + create」

  5. 查看帳戶總覽,然後按一下「建立」

  6. 等待部署作業完成。

取得儲存空間帳戶憑證

  1. 前往您剛建立的「儲存空間帳戶」
  2. 在左側導覽中,選取「Security + networking」(安全性 + 網路) 下方的「Access keys」(存取金鑰)
  3. 按一下「顯示金鑰」
  4. 複製並儲存下列項目,以供日後使用:
    • 儲存體帳戶名稱:您建立的名稱 (例如 sceplogssa)
    • 金鑰 1金鑰 2:共用存取金鑰 (採用 Base64 編碼的 512 位元隨機字串)

取得 Blob 服務端點

  1. 在同一個儲存空間帳戶中,選取左側導覽列的「Endpoints」(端點)
  2. 複製並儲存 Blob 服務端點網址。
    • 範例:https://sceplogssa.blob.core.windows.net/

建立 Log Analytics 工作區

  1. Azure 入口網站中,搜尋 記錄檔分析工作區
  2. 點選「+ 建立」
  3. 請提供下列設定詳細資料:

    設定
    訂閱項目 選取 Azure 訂閱項目
    資源群組 選取與儲存空間帳戶相同的資源群組
    名稱 輸入不重複的名稱 (例如 scep-logs-workspace)
    區域 選取與儲存空間帳戶相同的區域
  4. 按一下「檢查並建立」

  5. 點選「建立」

  6. 等待部署作業完成。

在 Windows 伺服器上安裝 Azure 監視器代理程式

如要使用執行 SCEP 的地端部署伺服器,您必須先將伺服器加入 Azure Arc,然後安裝 Azure 監視器代理程式。

將地端部署伺服器加入 Azure Arc

  1. Azure 入口網站中,搜尋 Azure Arc
  2. 選取「基礎架構」下方的「伺服器」
  3. 按一下「+ 新增」
  4. 選取「新增單一伺服器」,然後按一下「產生指令碼」
  5. 請提供下列設定詳細資料:
    • 訂閱項目:選取 Azure 訂閱項目
    • 資源群組:選取資源群組
    • 區域:選取與儲存空間帳戶相同的區域
    • 作業系統:選取「Windows」
  6. 按一下「下載並執行指令碼」
  7. 在執行 SCEP 的 Windows 伺服器上,以管理員身分開啟 PowerShell
  8. 執行下載的指令碼,完成 Azure Arc 新手上路流程。

安裝 Azure Monitor 代理程式

  1. Azure 入口網站中,依序前往「Azure Arc」>「伺服器」 (或 Azure VM 的「虛擬機器」)。
  2. 選取執行 SCEP 的伺服器。
  3. 在左側導覽中,選取「設定」下方的「擴充功能」
  4. 按一下「+ 新增」
  5. 搜尋並選取「Azure Monitor Agent」
  6. 依序點選「下一步」和「檢閱 + 建立」
  7. 點選「建立」
  8. 等待擴充功能安裝完成。

為 SCEP 事件建立資料收集規則

  1. Azure 入口網站中,搜尋「Monitor」
  2. 選取「設定」下方的「資料收集規則」
  3. 點選「+ 建立」
  4. 在「基本」分頁中,提供下列設定詳細資料:
    • 規則名稱:輸入描述性名稱,例如 dcr-scep-events
    • 訂閱項目:選取 Azure 訂閱項目
    • 資源群組:選取資源群組
    • 區域:選取與記錄檔分析工作區相同的區域
    • 平台類型:選取「Windows」
  5. 按一下「下一步:資源」
  6. 在「資源」分頁中:
    1. 按一下「+ 新增資源」
    2. 展開資源群組,然後選取執行 SCEP 的伺服器 (Azure Arc 伺服器或 Azure VM)。
    3. 按一下「套用」
  7. 按一下「下一步:收取和交付」
  8. 在「收取和運送」分頁中:

    1. 按一下「+ 新增資料來源」
    2. 在「資料來源類型」下拉式選單中,選取「Windows 事件記錄」
    3. 選取「自訂」,輸入 XPath 查詢。
    4. 按一下「+ 新增 XPath 查詢」,然後輸入下列 XPath 查詢,收集所有 SCEP 和 Windows Defender 事件:

      Microsoft-Windows-Windows Defender/Operational!*[System[(Level=1 or Level=2 or Level=3 or Level=4 or Level=5)]]
      

      這項 XPath 查詢會從 Windows Defender Operational 頻道收集所有事件 (重大、錯誤、警告、資訊和詳細)。如要只收集特定事件 ID (例如惡意軟體偵測),請使用更精確的查詢,例如:

      Microsoft-Windows-Windows Defender/Operational!*[System[(EventID=1006 or EventID=1007 or EventID=1116 or EventID=1117 or EventID=2000 or EventID=2001 or EventID=5007)]]
      
    5. 在「目的地」分頁中,按一下「+ 新增目的地」

    6. 選取「Azure Monitor Logs」(Azure 監視器記錄) 做為「Destination type」(目的地類型)

    7. 選取您先前建立的記錄檔分析工作區 (例如 scep-logs-workspace)。

  9. 按一下「新增資料來源」

  10. 按一下「Review + create」

  11. 點選「建立」

收集的重要事件 ID

資料收集規則會從 Microsoft-Windows-Windows Defender/Operational 管道收集事件,包括下列重要 SCEP 事件 ID:

事件 ID 說明
1006 防惡意軟體引擎偵測到惡意軟體
1007 對偵測到的惡意軟體採取防惡意軟體行動
1116 即時防護功能偵測到惡意軟體或垃圾軟體
1117 即時防護功能已對惡意軟體採取行動
2000 已開始更新防惡意軟體簽章
2001 反惡意軟體簽章更新完成
5007 防惡意軟體平台設定已變更

設定從 Log Analytics 工作區匯出資料至 Azure Blob 儲存體

註冊 Microsoft.Insights 資源提供者

  1. Azure 入口網站中,前往「訂閱項目」
  2. 選取訂閱方案。
  3. 在左側導覽中,選取「設定」下方的「資源供應商」
  4. 搜尋「Microsoft.Insights」Microsoft.Insights
  5. 如果狀態不是「已註冊」,請選取該 CMP,然後按一下「註冊」

建立資料匯出規則

  1. Azure 入口網站中,前往 記錄檔分析工作區 (例如 scep-logs-workspace)。
  2. 在左側導覽選單中,選取「設定」下方的「資料匯出」
  3. 按一下「+ 新增匯出規則」
  4. 在「Basics」(基本) 分頁中:
    • 資料匯出規則名稱:輸入描述性名稱,例如 export-scep-to-blob
  5. 按一下「下一步:來源」
  6. 在「來源」分頁中,選取「事件」資料表。

  7. 按一下「下一步:目的地」

  8. 在「目的地」分頁中:

    • 目的地類型:選取「儲存空間帳戶」
    • 訂閱項目:選取包含儲存空間帳戶的訂閱項目
    • 儲存空間帳戶:選取您先前建立的儲存空間帳戶 (例如 sceplogssa)
  9. 按一下「下一步:檢閱 + 建立」

  10. 點選「建立」

  • 設定完成後,系統會自動將事件匯出至儲存空間帳戶。系統會在儲存體帳戶中建立名為 am-Event 的容器。Blob 會儲存在 5 分鐘資料夾中,路徑結構如下:

    am-Event/
      └── WorkspaceResourceId=/subscriptions/{subscription-id}/resourcegroups/{resource-group}/providers/microsoft.operationalinsights/workspaces/{workspace}/
          └── y={year}/m={month}/d={day}/h={hour}/m={minute}/
              └── PT05M.json
    

驗證資料匯出

  1. Azure 入口網站中,前往「儲存體帳戶」 (例如 sceplogssa)。
  2. 在左側導覽中,選取「資料儲存」下方的「容器」
  3. 確認容器 am-Event 是否存在。
  4. 進入容器,確認系統是否在資料夾結構中建立含有事件資料的 JSON 檔案。

在 Google SecOps 中設定資訊提供,以便擷取 Microsoft System Center Endpoint Protection (SCEP) 記錄

  1. 依序前往「SIEM 設定」>「動態饋給」
  2. 按一下「新增動態消息」
  3. 在下一個頁面中,按一下「設定單一動態饋給」
  4. 在「動態饋給名稱」欄位中輸入動態饋給名稱 (例如 Microsoft SCEP Logs)。
  5. 選取「Microsoft Azure Blob Storage V2」做為「來源類型」
  6. 選取「Microsoft System Center Endpoint Protection (SCEP)」做為「記錄類型」
  7. 點選「下一步」
  8. 指定下列輸入參數的值:

    • Azure URI:輸入 Blob 服務端點網址和容器路徑:
    https://sceplogssa.blob.core.windows.net/am-Event/
    

    更改下列內容:

    • sceplogssa:您的 Azure 儲存體帳戶名稱。
    • am-Event:儲存匯出事件的 Blob 容器名稱。
    • 來源刪除選項:根據偏好選取刪除選項:
      • 永不:轉移後一律不刪除任何檔案。
      • 刪除已轉移的檔案:成功轉移檔案後刪除檔案。
      • 刪除已轉移的檔案和空白目錄:成功轉移檔案後,刪除檔案和空白目錄。
    • 檔案存在時間上限:包含在過去天數內修改的檔案 (預設為 180 天)
    • 共用金鑰:輸入從儲存空間帳戶擷取的共用金鑰值 (存取金鑰)
    • 資產命名空間資產命名空間
    • 擷取標籤:要套用至這個動態饋給事件的標籤
  9. 點選「下一步」

  10. 在「Finalize」(完成) 畫面中檢查新的動態饋給設定,然後按一下「Submit」(提交)

設定 Azure 儲存空間防火牆 (如已啟用)

如果 Azure 儲存體帳戶使用防火牆,您必須新增 Google SecOps IP 範圍。

  1. Azure 入口網站中,前往「儲存體帳戶」
  2. 選取「Security + networking」(安全性 + 網路) 下方的「Networking」(網路)
  3. 在「防火牆和虛擬網路」下方,選取「從所選虛擬網路和 IP 位址啟用」
  4. 在「防火牆」部分的「位址範圍」下方,按一下「+ 新增 IP 範圍」
  5. 以 CIDR 標記法新增每個 Google SecOps IP 範圍。

    如要取得目前的 IP 範圍,請按照下列步驟操作:

  6. 此外,請選取「Allow Azure services on the trusted services list to access this storage account」(允許受信任服務清單上的 Azure 服務存取這個儲存體帳戶) 核取方塊,允許記錄檔分析工作區資料匯出作業寫入儲存體帳戶。

  7. 按一下 [儲存]

UDM 對應表

記錄欄位 UDM 對應 邏輯
about.hostname about.hostname 設為「%{_DB_HOST}」
_DB_PORT about.port 直接複製值,並轉換為整數
_DB_DRIVER about.resource.name 設為「%{_DB_DRIVER}」
_DB_URL about.url 設為「%{_DB_URL}」
signature_labels event.idm.read_only_udm.additional.fields 如果簽章不為空白,則從 signature_labels 合併;如果 PendingAction 不為空白,則從 pending_action 合併;如果 ExecutionStatus 不為空白,則從 execution_status 合併;如果 RecordID 不為空白,則從 record_id 合併;如果 ErrorCode 不為空白,則從 error_code 合併;如果 ActionSuccess 不為空白,則從 action_success 合併
pending_action event.idm.read_only_udm.additional.fields
execution_status event.idm.read_only_udm.additional.fields
record_id event.idm.read_only_udm.additional.fields
error_code event.idm.read_only_udm.additional.fields
action_success event.idm.read_only_udm.additional.fields
source_url event.idm.read_only_udm.src.url 如果 source_url 不是空白,則取用該值,否則取用 my_string1 (如果不是空白)
my_string1 event.idm.read_only_udm.src.url
has_principal metadata.event_type 如果 has_principal 和 has_target 為 true,則設為「NETWORK_CONNECTION」;如果 has_principal 為 true,則設為「STATUS_UPDATE」;如果 no_target_host 為 false 且 path_available 為 true,則設為「SCAN_FILE」;如果 no_target_host 為 false,則設為「STATUS_UNCATEGORIZED」;如果 has_user 為 true,則設為「USER_UNCATEGORIZED」;否則設為「GENERIC_EVENT」
has_user metadata.event_type
has_target metadata.event_type
no_target_host metadata.event_type
path_available metadata.event_type
名稱 metadata.product_event_type 直接複製值
DetectionID metadata.product_log_id 直接複製值
metadata.product_name metadata.product_name 設為「MICROSOFT SYSTEM CENTER ENDPOINT PROTECTION」
metadata.vendor_name metadata.vendor_name 設為「MICROSOFT」
NTdomain principal.administrative_domain 直接複製值
主機名稱 principal.asset.hostname 如果主機名稱不為空白,則為該名稱的值,否則為 TargetHost 的值
TargetHost principal.asset.hostname
action_type principal.group.attribute.labels 如果 action_type 不為空白,則從 action_type_label 合併
主機名稱 principal.hostname 如果主機名稱不為空白,則為該名稱的值,否則為 TargetHost 的值
TargetHost principal.hostname
程序 principal.process.file.full_path 如果「程序」不為空白,則直接複製值
使用者名稱 principal.user.user_display_name 直接複製值
使用者名稱 principal.user.userid 如果 UserName 有值,則使用該值;否則使用 user 的值 (如果有的話)
使用者 principal.user.userid
動作 security_result.action 根據動作值設定 (ALLOW 代表成功/已建立/已啟動/已傳送/已允許,BLOCK 代表失敗/已封鎖/已終止/已延遲/已刪除/已拒絕/已捨棄/錯誤/已鎖定,ALLOW_WITH_MODIFICATION 代表 acl_modified/modified,QUARANTINE 代表已隔離) 或 CleanAction (FAIL 代表失敗,QUARANTINE 代表已隔離,ALLOW 代表已允許,BLOCK 代表已封鎖)
CleanAction security_result.action
CleanAction security_result.action_details 如果 CleanAction 不為空白,則直接複製值
category security_result.category_details 如果類別不為空白,則從類別合併,否則從「類別」合併
類別 security_result.category_details
DetectionID security_result.detection_fields 如果 DetectionID 不為空白,則從 DetectionID_field 合併;如果 detectionid 不為空白,則從 detectionid_field 合併;如果 detection_source 不為空白,則從 detection_source_labels 合併;如果 pending_action 不為空白,則從 pending_action_labels 合併;如果 source_url、file_path 和 Path 不為空白,則從 detection_Path 合併
detectionid security_result.detection_fields
detection_source security_result.detection_fields
pending_action security_result.detection_fields
路徑 security_result.detection_fields
嚴重性 security_result.severity 根據嚴重程度 (0/1/2/3/LOW 為 LOW,4/5/6/MEDIUM/SUBSTANTIAL/INFO 為 MEDIUM,7/8/HIGH/SEVERE 為 HIGH,9/10/VERY-HIGH/CRITICAL 為 CRITICAL) 或 SeverityID (1 為 LOW,2 為 MEDIUM,4 為 HIGH,5 為 CRITICAL,其他為 UNKNOWN_SEVERITY) 設定
SeverityID security_result.severity
SeverityID security_result.severity_details 直接複製值
ThreatID security_result.threat_id 直接複製值
ThreatName security_result.threat_name 直接複製值
MaliciousFileCt security_result.verdict_info 直接複製值、轉換為整數,並合併為 malicious_file_ct
dest_nt_domain target.administrative_domain 直接複製值
dest_name target.asset.hostname 如果 dest_name 不是空白,則直接複製值
file_path target.file.full_path 如果 file_path 不為空白,則取自 file_path;如果 file_path 為空白,則取自 Path;如果 Path 為空白,則取自 my_string (如果 my_string 不為空白)
路徑 target.file.full_path
my_string target.file.full_path
dest_name target.hostname 如果 dest_name 不是空白,則直接複製值
ResourceID target.resource.name 如果 ResourceID 不是空白,則為該值;如果 resourceid 不是空白,則為該值
resourceid target.resource.name
使用者 target.user.userid 如果使用者不為空,則直接複製值
時間 metadata.event_timestamp 如果時間不為空,則使用「MMM dd HH:mm:ss」格式從時間轉換,否則使用 UNIX_MS 從 DetectionTime 或 detectiontime 轉換
DetectionTime metadata.event_timestamp
detectiontime metadata.event_timestamp

還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。