跳至主要内容
版本:1.0.7

代理程式與執行歷程

在 Agents 檢視代理程式狀態、上次與下次執行時間及定義更新時間。可依名稱正向或反向排序,並切換磚塊或清單檢視。管理員可啟用 Show system jobs 以顯示系統工作。依權限與代理程式類型,可啟用或停用、調整排程與時區,或使用 Run now。日期時間會使用目前選取帳戶的時區;History 也會使用相同時區。

代理程式列表會依目前選取帳戶的來源設定篩選:Devo 代理程式需要非空白的 DevoDomain,三個 Sentinel 代理程式(mssentinel-alert-download、mssentinel-user-behavior-profile-download 與 mssentinel-heartbeat)則需要 SentinelTenantId 才會顯示。Sentinel 代理程式要啟用或執行,還需要完成帳戶認證資料與有效的運作設定。每個磚塊或清單列會使用代理程式定義的 description 作為顯示標題,並在下方顯示代理程式類型與版本。

Devo 警示資料收集​

devo-alert-download 代理程式會為目前選取的 SIEM+ 帳戶,從 Devo 的 siem.logtrust.alert.info 資料表收集警示。帳戶的 DevoDomain 設定會作為 Devo client 篩選條件,帳戶時區則用來將收集範圍分割為當地日曆日。

每次一般執行會:

  1. 從帳戶內 Source 為 devo 或以 devo- 開頭的已儲存警示最新時間開始,加入三天的復原重疊期間。若尚無 Devo 警示,則從 Days to sync 設定的回溯期間開始,預設為30天。
  2. 收集至當地時間目前的小時,依帳戶當地日期分割範圍,再以每15分鐘的範圍處理每一天。每次要求會對 siem.logtrust.alert.info 指定 client、limit=50 與 offset(skip),直到回應少於50筆。
  3. 依設定的 Devo client 篩選回應資料,收到每個頁面後立即寫入。暫時性的閘道、網路或連線錯誤最多重試5次。
  4. 將警示 upsert 至 Alerts,並使用帳戶與 client 範圍的來源 ID。來源 ID 優先使用 Devo 警示 ID(id、alertid 或 uuid),沒有 ID 時使用原始資料列的 SHA-256 雜湊。重複警示會更新既有記錄,不會建立重複資料。
  5. 若 extraData 是物件,將其內容儲存至 AlertData,否則儲存原始資料列。DataSource 取自警示的來源資料表欄位,Source 通常建立為 devo-<source>;AlertType 會先串接可用的 MITRE ID、戰術與技術,否則回退至警示類型欄位。新警示的狀態會設為 open。

若管理員要求重新整理過去日期的警示,代理程式會在一般下載後處理指定範圍,只有一般作業與指定作業都成功完成後才清除要求。帳戶警示寫入完成後會更新警示數量的實體化檢視。檢入的預設排程為每六小時一次,可自訂,並使用帳戶的排程時區。

Devo 使用者行為特徵收集​

devo-user-behavior-profile-download 代理程式與 Devo 警示擷取分開執行,會建立帳戶範圍的使用者行為特徵。它使用 auth.all 資料表作為必要的驗證來源,依帳戶時區處理七個日曆日的範圍。每一天會先持久化暫存,再套用可選的補充資料。

驗證查詢會將成功、失敗與無法判定的登入結果正規化,包含常見 Windows 結果碼與來源特定的成功訊息,並記錄活動時段、來源 IP/地理位置、動作與來源資料表。代理程式會逐日重試,中斷後可續用已完成的暫存,只會彙整必要的驗證與補充階段都完成的日期;部分日期涵蓋狀態會記錄在執行結果與基準來源中。

可用時,補充資料會針對驗證 cohort 中的使用者查詢 firewall.paloalto.globalprotect、firewall.fortinet.event.user、cloud.office365.management、有歸屬使用者的 firewall.all.traffic、box.all.win、box.all.unix 與 cloud.gsuite.reports。選用資料表無法使用,或流量沒有歸屬使用者時,會記錄為涵蓋範圍缺口,但不會捨棄其他已完成來源的資料。每位使用者至少需要5筆符合條件的驗證事件才會更新特徵。代理程式會建立平日與週末典型活躍時段、來源地理位置、資料來源分布、動作分布、驗證失敗率與未知分類率,並保留既有角色與部門中繼資料。檢入的預設排程為每週六 00:00 UTC,且為唯讀。

Sentinel 警示資料收集​

mssentinel-alert-download 代理程式會為目前選取的 SIEM+ 帳戶收集 Microsoft Sentinel 警示資料。其目的是使用 SIEM+ 共用的警示結構,讓 Sentinel 偵測結果可在帳戶的警示與案件流程中使用。此代理程式使用 Microsoft Graph security API,不會下載 Sentinel 工作區記錄或驗證事件。

每次執行會:

  1. 使用 lastUpdateDateTime 篩選條件,分別擷取事件與警示。首次執行從設定的初始回填期間開始(預設七天);後續執行使用分開的事件與警示游標。代理程式會持續追蹤 Microsoft Graph 的 @odata.nextLink,直到讀取所有頁面。
  2. 儲存事件中繼資料以提供內容與關聯,然後將警示記錄 upsert 至目前帳戶。若相同外部警示 ID 的 Sentinel 警示已存在,系統會更新而不是重複建立。
  3. 以每個警示的 incidentId 對應同一次執行取得的事件。若目前事件結果中沒有對應事件,仍會保留警示,但不含事件內容。
  4. 將事件時間、標題、類別、嚴重性、狀態、服務來源、產品、說明、MITRE 技術、使用者、來源與目的地 IP 位址及雲端應用程式等調查欄位正規化。
  5. 將原始 Graph 警示與關聯的事件中繼資料保留在 AlertData,並將不同格式的 Graph 證據儲存在 SentinelAlertEntities。

兩個擷取流程彼此獨立且會同時執行。只有成功的擷取流程會提交其批次並推進對應游標,因此其中一個 Graph 端點失敗時,執行結果可能是部分成功。即使事件擷取失敗,成功的警示擷取結果仍可儲存;缺少的事件內容可能在後續事件更新時補上。每個擷取流程的錯誤與最終狀態都會記錄在執行歷程中。

準備 Sentinel 資料來源​

請在代理程式使用的 Entra 應用程式註冊中加入下列最低權限的 Microsoft Graph 應用程式權限:

收集目的端點應用程式權限
下載警示內容所需的事件記錄GET /v1.0/security/incidentsSecurityIncident.Read.All
下載警示記錄與證據GET /v1.0/security/alerts_v2SecurityAlert.Read.All

這兩項權限是 List incidents 與 List alerts API 所需。請使用 Microsoft Graph 的 Application permissions,不要使用 Delegated permissions,並授予整個租用戶的管理員同意。

執行收集前,必須同時完成帳戶與代理程式設定:

  1. 在目前帳戶的 Admin > Integrations 中,設定目標租用戶的 Microsoft Sentinel tenant ID、Application (client) ID 與 Client secret。若要指定特徵與心跳使用的工作區,也可輸入選用的 workspace ID。若租用戶 ID 留空,帳戶中不會顯示 Sentinel 代理程式,也不會執行。
  2. 在 Integrations 按 Save。若要保留既有用戶端密碼,請將欄位留空;儲存後密碼不會顯示。
  3. 在 Agents 開啟 Sentinel 設定,只儲存運作設定。SIEM+ 會在應用程式啟動時檢查每個已啟用 Sentinel 代理程式所需的 Graph 端點,並回報驗證或權限不足錯誤。收集執行失敗時,錯誤會記錄在代理程式歷程中。
  4. 若要立即收集,請按 Run now;否則依照代理程式排程執行。警示代理程式的預設排程為每六小時一次,也可針對帳戶自訂。

初始回填預設為七天,頁面大小預設為50;受 Microsoft Graph security API 限制,頁面大小不可超過50。重試次數、重試退避與對應設定檔版本也會儲存在 Sentinel 代理程式設定中。

運作設定會儲存在 Sentinel 代理程式定義內容中,由使用相同定義的帳戶共用。Sentinel 認證資料按帳戶儲存在 Admin > Integrations;API 只會回傳應用程式 ID 與密碼是否已設定,不會回傳密碼本身。只有帳戶管理員應變更認證資料或共用的運作設定。

Sentinel 使用者行為特徵收集​

mssentinel-user-behavior-profile-download 代理程式會透過 Microsoft Graph Advanced Hunting,從 Sentinel 正規化的 ASimAuthenticationEventLogs 資料表建立帳戶範圍的使用者行為特徵。此代理程式與 mssentinel-alert-download 分開執行,並將建立的基準儲存至 UserBehaviorProfiles。

特徵查詢使用固定七天的基準期間:

ASimAuthenticationEventLogs
| where TimeGenerated >= ago(7d) and TimeGenerated <= now()

Microsoft Graph Advanced Hunting 在此要求中不提供工作區 ASIM 剖析器函式 imAuthentication,因此目前實作會直接查詢正規化資料表。KQL 篩選條件與 Graph Timespan 使用相同的固定七天(P7D)基準期間。查詢會先依設定的租用戶與帳戶使用者範圍篩選,再將驗證活動彙整為行為特徵統計資料。

特徵代理程式會建立平日與週末典型活躍時段、來源地理位置、資料來源分布、動作分布、驗證失敗率與未知分類率。每位使用者至少需要5筆符合條件的驗證事件,才會更新其特徵。Sentinel 驗證資料不提供角色與部門,因此會保留既有的角色與部門中繼資料。

每次執行也會針對驗證 cohort 中的使用者查詢 ASimAuditEventLogs、ASimNetworkSessionLogs、ASimProcessEventLogs 與 ASimWebSessionLogs。這些補充資料表會標記為 populated、empty 或 unavailable;選用資料表無法使用時,會保留其他已完成來源,並將基準標記為部分涵蓋。此代理程式會呼叫 /v1.0/security/runHuntingQuery。請在 Entra 應用程式註冊中加入 Microsoft Graph ThreatHunting.Read.All Application permission,並授予整個租用戶的管理員同意。選取的 Sentinel 工作區必須提供 ASimAuthenticationEventLogs;選用補充資料表會個別記錄。在 Admin > Integrations 設定選用的 workspace ID,或留空以使用主要/預設工作區。

檢入的特徵代理程式預設每週六 00:00 UTC 執行,且排程為唯讀。設定 tenant ID 後代理程式才會顯示;啟用或執行前還必須完成 tenant ID、Application (client) ID、Client secret 與有效代理程式設定。

Sentinel 心跳資料收集​

mssentinel-heartbeat 代理程式會透過 Microsoft Graph Advanced Hunting 查詢 Sentinel 原生正規化的 ASIM 資料表,並將資料對應至既有的 SIEM+ 心跳類別。它依帳戶時區處理帳戶設定的心跳回溯期間,寫入每小時心跳數量。每個 ASIM 資料表只查詢一次,因此多個來源別名不會重複計算同一資料表。

ASIM 資料表心跳類別
ASimAuthenticationEventLogs、ASimAuditEventLogscloud_identity
ASimNetworkSessionLogs、ASimWebSessionLogsnetwork
ASimProcessEventLogs、ASimAlertEventLogsendpoint

心跳代理程式使用 /v1.0/security/runHuntingQuery,需要 Microsoft Graph ThreatHunting.Read.All Application permission、整個租用戶的管理員同意,以及對選取工作區的 Advanced Hunting 存取權。若不使用預設工作區,請在 Admin > Integrations 設定 workspace ID。

檢入的排程為每小時(0 * * * *),且為唯讀。設定 tenant ID 後代理程式會顯示;完成 tenant ID、Application (client) ID、Client secret 與有效代理程式設定後,才能啟用或執行。

代理程式管理​

卡片會顯示名稱、類型、定義版本、狀態、排程、上次與下次執行及定義更新時間。Healthy 代表已有完成紀錄的啟用工作;Awaiting first run 代表尚未完成執行;Running 代表執行中或排隊中;Disabled 代表不會執行。只有可自訂排程的代理程式可以編輯;devo-alert-download 使用 Agent timezone,其他代理程式使用 UTC。修改後按 Save。

如何使用代理程式工作管理​

  1. 確認標頭中的目前帳戶。
  2. 在 Agents 選擇檢視方式與名稱排序,需要時啟用 Show system jobs。
  3. 確認工作已啟用且不在執行中,再按 Run now;排隊或執行中的同一工作不能重複啟動。
  4. 在 History 依代理程式、狀態與時間範圍篩選,按 Search。
  5. 只有 Queued 的列可以按 Cancel 取消;結果可展開 JSON 或查看 Raw JSON。

執行歷程​

狀態包括 Running、Succeeded、Failed、Cancelled 與 Skipped。頁面每 15 秒更新;工作長時間排隊時,請先重新整理並確認狀態再重試。