在 Microsoft Sentinel 中建立及自訂分析規則

已完成

將資料來源連線至 Microsoft Sentinel 之後,請建立自訂分析規則,以協助探索環境中的威脅和異常行為。

分析規則會搜尋整個環境的特定事件或事件集、在達到特定事件閾值或條件時發出警示、產生事件以供 SOC 分級和調查,以及使用自動化追蹤和補救程序回應威脅。

使用排程查詢建立自訂分析規則

  1. 從 Microsoft Sentinel 導覽功能表中,選取 [分析]

  2. 在頂端的動作列中,選取 [+建立],然後選取 [排程的查詢規則]。 這會開啟 [分析規則精靈]。

此螢幕擷取畫面顯示如何執行排程查詢的範例。

分析規則精靈 - [一般] 索引標籤

  • 提供唯一的名稱和描述。
  • 在 [策略和技術] 欄位中,您可以從要分類規則的攻擊類別中選擇。 這些類別是以 MITRE ATT&CK 架構的策略和技術為基礎。
  • 從對應至 MITRE ATT&CK 策略和技術的規則偵測到的警示所建立的事件,會自動繼承規則的對應。
  • 視需要設定警示嚴重性。
    • 告知性。 對系統沒有任何影響,此資訊可能表示威脅執行者計劃的未來步驟。
    • 低。 當下的影響微乎其微。 威脅執行者可能需要執行多個步驟,才能對環境造成影響。
    • 一般。 威脅執行者可能會透過此活動對環境造成一些影響,但範圍有限,或需要額外的活動。
    • 高。 所識別的活動提供威脅執行者對環境執行動作的各種存取權,或因對環境的影響而觸發所識別的活動。
  • 嚴重性等級預設值不保證目前或環境的影響等級。 自訂警示詳細資料,以使用查詢輸出中任何相關欄位的值,自訂指定警示實例的嚴重性、策略和其他屬性。
  • Microsoft Sentinel 分析規則範本的嚴重性定義僅適用於分析規則所建立的警示。 針對從其他服務擷取的警示,會依來源安全性服務來定義其嚴重性。
  • 當您建立規則時,其狀態預設為 [啟用],這表示此規則會在您完成規則的建立後立即執行。 如果您不想立即執行,請選取 [停用],並將該規則新增至 [作用中規則] 索引標籤,並在您需要時從該處加以啟用。

此螢幕擷取畫面顯示如何建立新規則的範例。

定義規則查詢邏輯並進行設定

在 [設定規則邏輯] 索引標籤中,您可以直接在 [規則查詢] 欄位中撰寫查詢,或在 Log Analytics 中建立查詢,然後複製並貼到此處。

  • 查詢是以 Kusto 查詢語言 (KQL) 撰寫的。
  • 此螢幕擷取畫面中顯示的範例會查詢 SecurityEvent 資料表,以顯示失敗的 Windows 登入事件類型。

此螢幕擷取畫面顯示如何設定規則邏輯的範例。

以下是另一個範例查詢,此查詢會在 Azure 活動中建立異常的資源數量時發出警示。

Kusto

AzureActivity

| where OperationNameValue == "MICROSOFT.COMPUTE/VIRTUALMACHINES/WRITE" or OperationNameValue == "MICROSOFT.RESOURCES/DEPLOYMENTS/WRITE"

| where ActivityStatusValue == "Succeeded"

| make-series dcount(ResourceId) default=0 on EventSubmissionTimestamp in range(ago(7d), now(), 1d) by Caller

重要

我們建議查詢使用進階安全性資訊模型 (ASIM) 剖析器,而不是原生資料表。 這可確保查詢支援任何目前或未來的相關資料來源,而不是單一資料來源。

規則查詢最佳做法:

  • 查詢長度應介於 1 到 10,000 個字元之間,且不能包含 search *union *。 您可以使用使用者定義的函式來克服查詢長度限制。
  • 不支援使用 ADX 函數,在 Log Analytics 查詢視窗中建立 Azure 資料總管查詢。
  • 在查詢中使用 bag_unpack 函數時,如果您使用 project field1 將資料行投射為欄位,而且該資料行不存在時,則查詢將會失敗。 若要防範這種情況發生,您必須如下所示投射資料行:
    • project field1 = column_ifexists("field1","")

警示擴充

  • 使用 [實體對應] 設定區段,將查詢結果中的參數對應至 Microsoft Sentinel 辨識的實體。 實體會使用基本資訊來擴充規則的輸出 (警示和事件),以作為任何調查程序的組建區塊,以及後續的補救動作。 這些也是您可以在 [事件設定] 索引標籤中,將警示共同分組到事件的準則。
  • 使用 [自訂詳細資料] 設定區段,從查詢擷取事件資料項目,並將其顯示在此規則所產生的警示中,您就可立即在警示和事件中看到事件內容。
  • 使用 [警示詳細資料] 設定區段,以基礎查詢結果的詳細資料覆寫警示屬性的預設值。 警示詳細資料可讓您在警示本身的標題中顯示攻擊者的 IP 位址或帳戶名稱,因此此資訊會出現在事件佇列中,讓您對威脅狀況有更豐富、更清晰的了解。

注意

整個警示的大小限制為 64 KB

  • 大於 64 KB 的警示將會遭到截斷。 識別實體時,會逐一將這些實體新增至警示,直到警示大小達到 64 KB 為止,而且任何剩餘的實體會從警示中卸除。
  • 其他警示擴充也會影響警示大小。
  • 若要減少警示的大小,請使用查詢中的 project-away 運算子來移除任何不必要的欄位。 (如果您只需要保留幾個欄位,也請考慮 project 運算子。)

查詢排程和警示閾值

  • 在 [查詢排程] 區段中,設定下列參數:

此螢幕擷取畫面顯示建立新排程規則的範例。

  • 設定 [查詢執行間隔] 以控制查詢的執行頻率:頻率可高達每隔 5 分鐘一次,或低至每隔 14 天一次。
  • 設定 [查閱資料 (來自上一個)] 來判斷查詢所涵蓋資料的時間週期:例如,其可以查詢過去 10 分鐘的資料,或過去 6 小時的資料。 最大值為 14 天。
  • 針對新的 [開始執行] 設定 (預覽版):
    • 將其設定為 [自動] 會繼續原來的行為:規則會在建立時立即首次執行,然後按照 [查詢執行間隔] 設定中所設定的間隔之後執行。
    • 如果您想要決定規則首次執行的時間,而不是立即運行,
    • 請將開關切換到 [在指定時間]。 然後使用行事曆選擇器選擇日期,然後以顯示的範例格式輸入時間。

此螢幕擷取畫面顯示如何設定查詢排程參數的範例。

規則的未來執行會在第一次執行之後的指定間隔發生。

[開始執行] 設定下的文字行 (左側有資訊圖示) 會摘要說明目前的查詢排程和回顧設定。

查詢間隔和回顧期間

在某種程度上,這兩個設定彼此獨立。 您可以以較短的間隔執行查詢,該間隔涵蓋比此間隔更久的週期 (實際上有重疊的查詢),但是您無法以超過涵蓋範圍週期的間隔執行查詢,否則在整體查詢涵蓋範圍中會出現間距。

擷取延遲

若要考慮在來源的事件產生與其擷取至 Microsoft Sentinel 之間可能發生的延遲,並確保完整的涵蓋範圍而不複製資料,Microsoft Sentinel 會在其排程時間的五分鐘延遲執行排程分析規則。

使用 [警示閾值] 區段來定義規則的敏感度等級。 例如,如果希望查詢在每次執行時傳回超過 1000 個結果時,規則才產生警示,則將查詢結果數目產生警示設為大於,並輸入數字 1000。 這是必要欄位,因此,如果您不想設定閾值,也就是說,如果您想要讓警示登錄每個事件,請在數字欄位中輸入 0。

設定事件建立設定

在 [事件設定] 索引標籤中,您可以選擇 Microsoft Sentinel 是否會將警示轉換成可採取動作的事件。 如果單獨保留此索引標籤,則 Microsoft Sentinel 將從每個警示中建立單一的個別事件。 您可以變更此索引標籤中的設定,選擇不建立任何事件,或將數個警示分組為單一事件。

事件設定

在 [事件設定] 區段中,[從此分析規則所觸發的警示建立事件] 預設會設定為 [啟用],這表示 Microsoft Sentinel 將從規則所觸發的每個警示中建立單一的個別事件。

  • 如果您不希望此規則導致任何事件的建立 (例如,如果此規則只是為了收集後續分析的資訊),請將此項設定為 [停用]。
  • 如果您想要從一組警示建立單一事件,而不是針對每個單一警示建立單一事件,請參閱下一節。

警示分組

在 [警示群組] 區段中,如果您想要從最多 150 個類似或週期性警示的群組產生單一事件 (請參閱筆記),請將此分析規則觸發的 [群組相關警示] 設定為 [啟用],並設定下列參數。

  • 將群組限制在所選時間範圍內建立的警示:判斷將類似或週期性警示分為一組的時間範圍。 此時間範圍內的所有對應警示都會共同產生事件或一組事件 (視下面的群組設定而定)。 此時間範圍內以外的警示會產生個別的事件或一組事件。
  • 將此分析規則所觸發的警示分組為單一事件,依據為:選擇將警示分為一組的依據:
選項 說明
如果所有實體都相符,將警示分組為單一事件 如果警示針對每個對應的實體 (在上述的 [設定規則邏輯] 索引標籤中定義) 共用相同的值,警示會分為一組。 此為建議設定值。
將此規則所觸發的所有警示分組為單一事件 即使這些警示沒有共用相同的值,此規則所產生的所有警示都分為一組。
如果選取的實體和詳細資料相符,將警示分組為單一事件 如果從個別下拉式清單中選取的所有對應實體、警示詳細資料,以及自訂詳細資料的警示共用相同的值,則會將警示分為一組。

例如,如果您想要根據來源或目標 IP 位址來建立個別事件,或者如果您想要將符合特定實體和嚴重性的警示分組,則建議您使用此設定。

注意:當您選取此選項時,至少必須選取此規則的一個實體類型或欄位。 否則,規則驗證將失敗,而且規則不會建立。
  • 重新開啟已關閉的相符事件:如果事件已解決並關閉,而稍後在另一個產生的警示應該屬於該事件,如果您想要重新開啟已關閉的事件,請將此設定設為 [啟用],如果您想要讓警示建立新的事件,請將此設定保持為 [停用]。

注意

最多 150 個警示可以分組成單一事件。

  • 只有在產生所有警示之後,才會建立此事件。 建立事件時,所有警示都會立即新增至事件。
  • 如果將警示分組為單一事件的規則會產生超過 150 個警示,就會使用與原始事件相同的事件詳細資料來建立新事件,並將過量的警示分組至新事件中。

設定自動化回應並建立規則

在 [自動回應] 索引標籤中,您可以使用自動化規則,將自動化回應設定為在三種場合的任何一種:

  1. 當此分析規則產生警示時。
  2. 使用此分析規則所產生的警示建立事件時。
  3. 當以此分析規則所產生的警示更新事件時。

在自動化規則底下顯示的格線會顯示已套用至此分析規則的自動化規則 (因為其符合這些規則中定義的條件)。 您可以選取每個資料列結尾的省略符號,來編輯其中任何一項。 或者,您可以建立新的自動化規則。

使用自動化規則來執行事件的基本分級、指派、工作流程和關閉。

自動化更複雜的工作,並從遠端系統叫用回應,藉由從這些自動化規則呼叫劇本來修正威脅。 您可以針對事件和個別警示執行此動作。

此螢幕擷取畫面顯示如何設定自動化回應的範例。

  • 在畫面底部的 [警示自動化 (傳統)] 底下,您會看到您已設定為在使用舊方法產生警示時自動執行的任何劇本。
    • 自 2023 年 6 月起,您就不再能夠將劇本新增至此清單。 此處列出的劇本將繼續執行,直到此方法遭取代為止 (2026 年 3 月起生效)。
    • 如果您仍然擁有這裡列出的任何劇本,則應該改為根據建立的警示觸發程序建立自動化規則,並從該處叫用劇本。 完成之後,請選取此處所列劇本行結尾的省略符號,然後選取 [移除]。

選取 [檢閱並建立] 以檢閱新分析規則的所有設定。 出現 [驗證通過] 訊息時,請選取 [建立]

檢視規則及其輸出

  • 您可以在主要 [分析] 畫面的 [使用中規則] 索引標籤下,在資料表中找到剛建立的自訂規則 (類型為「已排程」)。 您可以從此清單中啟用、停用或刪除每個規則。
  • 若要檢視您所建立的分析規則結果,請移至 [事件] 頁面,您可以在其中將事件分級、調查事件,以及修正威脅。
  • 您可以更新規則查詢以排除誤判。