Microsoft Sentinel 中的監控清單幫助安全分析師有效關聯並豐富事件資料。 它們提供你靈活管理參考資料的方式,例如高價值資產清單或被解雇員工的清單。 將監控清單整合進偵測規則、威脅狩獵及應變工作流程中,以減少警示疲勞並加速對威脅的回應。 本文說明如何在 Microsoft Sentinel 中使用監視清單,概述關鍵情境與限制,並提供建立與查詢監視清單以強化安全運作的指引。
在搜尋查詢、偵測規則、威脅狩獵和回應手冊中使用監看清單。 監控清單會以名稱與值對的形式儲存在您的 Microsoft Sentinel 工作區Watchlist的表格中,並快取以達到最佳查詢效能。
重要事項
監控清單範本的功能以及從 Azure 儲存檔案建立觀看清單的功能目前都在預覽階段。 Azure 預覽補充條款包含適用於 Azure 測試版、預覽版或其他尚未正式發布的功能的額外法律條款。
何時使用觀察清單
在以下情境下使用監視清單:
調查威脅的方法是匯入來自逗號分隔值 (CSV) 檔案的 IP 位址、檔案雜湊值及其他資料,然後在警示規則、威脅搜捕、活頁簿、筆記本和查詢中,使用監視清單中的名稱-值組進行聯結和篩選。
將商業資料匯入作為監視清單。 例如,匯入具有特權系統存取權的使用者名單或被解雇員工名單。 接著,利用監視清單建立允許清單和封鎖清單,偵測或阻止這些使用者登入網路。
減少警戒疲勞。 建立允許清單,以抑制特定一群使用者所觸發的警報,例如來自已授權 IP 位址且執行原本通常會觸發警報之工作的使用者。 防止無害事件變成警報。
透過外部資料來源的名稱與值組合來豐富事件資料。
監看清單限制
在建立監視清單前,請先檢視以下限制事項:
| 限制 | 詳細資料 |
|---|---|
| 觀察名單名稱與別名長度 | 觀察清單名稱與別名必須介於3至64字元之間。 首尾字元必須為字母數字;中間允許使用空格、連字號和底線。 |
| 預期用途 | 只用監視清單作為參考資料。 監視清單不是為大量資料量設計的。 |
| 監看清單中作用中的項目數上限 | 在一個工作區中的所有觀察清單裡,你最多可以有 1,000 萬個使用中的觀察清單項目。 刪除的項目不算數。 對於較大的體積,可以使用 自訂的日誌。 |
| 資料保留 | Log Analytics 監控清單表中的資料會保留 28 天。 |
| 重新整理間隔 | 監控清單每 12 天更新一次,更新 TimeGenerated 欄位。 |
| 跨工作空間管理 | 不支援使用 Azure Lighthouse 跨工作區管理監視清單。 |
| 本地檔案上傳大小 | 本地檔案上傳限制於最高 3.8 MB 的檔案。 |
| Azure 儲存檔案上傳大小 (預覽) | Azure 儲存裝置的上傳檔案容量限制在 500 MB 以內。 |
| 欄位與表格限制 | 監看清單的資料行和名稱必須遵循 Kusto 查詢語言 (KQL) 實體命名限制。 |
Microsoft Sentinel 監視清單建立方法
要在 Microsoft Sentinel 建立監視清單,請使用以下方法之一:
- 從本地資料夾或你的 Azure 儲存體 帳號上傳檔案。
- 從 Microsoft Sentinel 下載一個觀察清單範本,加入你的資料,然後上傳檔案。
若要從大型檔案(最多 500 MB)建立監視清單,請將該檔案上傳至您的 Azure 儲存體帳戶。 建立一個共享存取簽章 (SAS) URL,讓Microsoft Sentinel能取得監視清單資料。 SAS URL 包含資源 URI 和資源的 SAS 令牌,就像你儲存帳號中的 CSV 檔案一樣。 在 Microsoft Sentinel 中將監視清單加入你的工作區。
如需詳細資訊,請參閱:
在搜尋與偵測規則查詢中使用監看清單
若要將監看清單資料與其他 Microsoft Sentinel 資料建立關聯,請搭配 join 資料表使用 Kusto 資料表運算子 (例如 lookup 和 Watchlist)。 Microsoft Sentinel 提供以下內建功能協助查詢監視清單:
-
_GetWatchlistAlias- 回傳你所有監看清單的別名 -
_GetWatchlist- 查詢指定監視清單的名稱與值對
當你建立監視清單時,你會定義 SearchKey。 搜尋鍵是觀察清單中某個資料行的名稱,預期會用來與其他資料進行聯結,或作為經常搜尋的對象。 舉例來說,假設你有一個伺服器監控清單,裡面包含國家/地區名稱及其對應的兩字母國家代碼。 你預期搜尋或加入時會經常使用國家代碼。 所以你用國家代碼欄位作為搜尋鍵。
Heartbeat
| lookup kind=leftouter _GetWatchlist('mywatchlist')
on $left.RemoteIPCountry == $right.SearchKey
讓我們來看看其他一些範例查詢。
假設你想在分析規則中使用監控清單。 你建立一個名為 ipwatchlist 的監視清單,欄位包括 IPAddress 和 Location。 你設定 IPAddress 為 搜尋鍵。
IPAddress,Location |
|---|
10.0.100.11,Home |
172.16.107.23,Work |
10.0.150.39,Home |
172.20.32.117,Work |
若要只包含來自監看清單中 IP 位址的事件,你可以使用查詢,將 watchlist 作為變數或直接內嵌。
此範例查詢使用監視清單作為變數:
//Watchlist as a variable
let watchlist = (_GetWatchlist('ipwatchlist') | project IPAddress);
Heartbeat
| where ComputerIP in (watchlist)
此範例查詢使用內嵌於查詢中的監視清單,以及為該監視清單定義的搜尋索引鍵。
//Watchlist inline with the query
//Use SearchKey for the best performance
Heartbeat
| where ComputerIP in (
(_GetWatchlist('ipwatchlist')
| project SearchKey)
)
欲了解更多關於使用監視清單建立查詢與偵測規則的資訊,請參閱 Microsoft Sentinel 中的「用監視清單建立查詢與偵測規則」;關於 Kusto 運算子與語句,請參見以下文章:
欲了解更多關於KQL的資訊,請參閱Kusto 查詢語言 (KQL) 概述。
其他資源:
在事件和查詢問題期間疑難排解監看清單
故障排除入口網站或 API 可用性問題
如果 Watchlist 頁面是空白、反覆刷新,或 watchlist 操作回傳 502 Bad Gateway 或其他 5XX 回應,先判斷問題是否可能是服務端,再更改 watchlist 設定。
請使用以下檢查方法:
確認此問題是否影響所有監看清單,還是多個監看清單。
確認這個問題是否影響到多個使用者。
確認這個問題是否同時影響 Azure 入口網站和自動化,還是基於 API 的操作。
驗證監視清單資料是否仍可從日誌查詢:
_GetWatchlistAlias如果你知道監視清單的別名,也請測試:
_GetWatchlist('watchlist-alias') | take 10請檢查 Azure 服務健康狀態 和目前進行中的事件通訊,以確認是否有與 Microsoft Sentinel 相關的影響。
避免在事件持續期間重複嘗試刪除並重新建立。 入口網站或 API 失敗不一定代表監控清單資料遺失。
若入口網站空白,或監看清單的建立、讀取、更新和刪除 (CRUD) 作業在多個使用者或工作區間傳回
502或其他5XX錯誤,請將其視為潛在的服務事件,直到排除更廣泛的平台影響為止。如果呼叫監視清單作業的 Logic Apps 工作流程開始回傳
502 Bad Gateway或其他類似的暫時性失敗,請先確認 Microsoft Sentinel 的服務健康狀態,再判定問題是由連接器權限或工作流程設定所造成。 自動化失敗可能在監控清單服務事件中以一般存取或閘道錯誤形式出現,即使工作流程身份與設定未變。
在服務事件發生時,最安全的先驗證是確認監視清單是否仍可查詢。 如果查詢存取也失敗,請在開啟支援請求前擷取時間戳記、操作和 HTTP 狀態碼。
了解保留與重新整理行為
28 天保留值並不代表 28 天後監控清單就無法使用。
觀看清單會一直保留,直到你刪除它們為止。 保留值適用於底層 Log Analytics 監控清單資料表中的紀錄,而監視清單服務則會定期刷新監視清單資料。 因為監視清單會定期更新,除非你刪除它或有其他問題影響可用性,否則它會隨時間保持可查詢狀態。
這個區分在規劃長期分析或驗證追蹤清單是否仍應出現在查詢結果時非常重要。
疑難排解建立後顯示零資料列的監看清單
如果監看清單已成功建立,但入口網站或 _GetWatchlist() 未傳回任何資料列,請檢閱工作區擷取限制,做為疑難排解的一部分。
確認監視清單是在預期的工作區建立的。
以別名查詢監視清單:
_GetWatchlist('watchlist-alias') | take 10請檢視 Log Analytics 工作區設定中的資料擷取限制,包括每日上限。
如果工作區已達到每日上限,請等待擷取恢復,然後重新驗證監看清單。
零列結果並不總是代表缺少監視清單定義。 與擷取相關的工作區限制,可能會影響監看清單資料在工作區中顯示的時間。
疑難排解管理平面與查詢行為的差異
查詢存取與管理存取在臨時服務問題中可能會有不同的行為。
在某些情況下,即使入口網站介面、編輯作業或其他管理平面作業暫時無法使用,你仍可使用 _GetWatchlistAlias 或 _GetWatchlist() 查詢監視清單。 如果查詢結果回傳,但入口網站是空白或監控清單更新失敗,請在假設監控清單已被刪除或其結構改變前,先驗證服務健康狀態。
成功的 KQL 查詢表示即使管理體驗下降,工作區中仍有監控清單資料可用。
疑難排解查詢結果為空白或僅部分顯示的問題
重要事項
監視清單查詢結果可能會受到查詢時間範圍及周圍查詢所施加的過濾器影響。
監視清單會以週期性時間間隔重新整理,查詢函式則從底層的監視清單資料回傳當前的監視清單狀態。 如果你在排除故障時套用狹窄的全域日期時間範圍或其他限制性過濾器,查詢可能會排除回傳預期監控清單內容所需的紀錄。 在這種情況下,即使監控清單仍然存在,_GetWatchlist() 也可能看起來像是傳回空白或不完整的結果。
當您對意外的空白結果進行疑難排解時:
- 確認你查詢的是正確的觀看清單別名。
- 移除或擴大查詢層級的時間範圍。
- 重新執行查詢並比較結果。
對於依賴查詢層級日期時間範圍的情境,請使用足夠寬的時間範圍,以包含監視清單刷新週期。