共用方式為


使用摘要規則彙總 Microsoft Sentinel 資料 (預覽)

使用 Microsoft Sentinel 中的摘要規則,彙總背景中的大量資料集,以在所有記錄層之間取得更順暢的安全性作業體驗。 摘要資料會在自訂記錄資料表中預先編譯,以及提供快速的查詢效能,包括針對衍生自低成本記錄層的資料執行查詢。 摘要規則可協助最佳化您的資料,以:

  • 分析和報告,特別是針對大型資料集和時間範圍,安全性與事件分析、每月或年度商務報告等情況下需要。
  • 針對詳細資訊記錄的成本節省,您可以保留低費用基本記錄資料表中的一小部分或所需部分,並僅將摘要資料傳送至 Analytics 資料表進行分析和報告即可。
  • 藉由移除或模糊化摘要共用資料中的隱私權詳細資料,以及限制對具有未經處理資料的資料表存取,來獲得安全性和資料隱私權

透過 Kusto 查詢語言 (KQL),跨偵測、調查、搜捕和報告活動存取摘要規則結果。 在歷史調查、搜捕和合規性活動中,使用摘要規則結果較長的時間。

摘要規則結果會儲存在 Analytics 行動數據方案下的個別資料表中,並據以收費。 如需行動數據方案和儲存體成本的詳細資訊,請參閱根據 Log Analytics 工作區中的使用模式選取資料表計劃

重要

摘要規則目前處於「預覽狀態」。 請參閱 Microsoft Azure Preview 補充使用規定,了解適用於搶鮮版 (Beta)、預覽版或尚未正式發行 Azure 功能的其他法律條款。

Microsoft Sentinel 現已在 Microsoft Defender 入口網站中 Microsoft 統一的安全性作業平台中正式推出。 如需詳細資訊,請參閱 Microsoft Defender 入口網站中的 Microsoft Sentinel

必要條件

若要在 Microsoft Sentinel 中建立摘要規則:

建議您先在 [記錄] 頁面中試驗摘要規則查詢,再建立規則。 確認查詢未達到或接近查詢限制,並檢查查詢是否會產生想要的結構描述和預期結果。 如果查詢接近查詢限制,請考慮使用較小的 binSize 來處理每個間隔的資料。 您也可以修改查詢以傳回較少的記錄,或移除具有較高磁碟區的欄位。

建立摘要規則

建立新的摘要規則,將特定的大型資料集彙總至動態資料表。 設定規則頻率,以判斷彙總資料集從未經處理資料更新的頻率。

  1. 在 Azure 入口網站的 [Microsoft Sentinel] 導覽功能表中,選取 [組態] 底下的 [摘要規則 (預覽)]。 在 Defender 入口網站中,選取 [Microsoft Sentinel > 組態 > 摘要規則 (預覽)]。 例如:

    Azure 入口網站中 [摘要規則] 頁面的螢幕擷取畫面。

  2. 選取 [+ 建立],然後輸入下列詳細資料:

    • 名稱. 為規則輸入有意義的名稱。

    • 描述。 輸入選擇性描述。

    • 目的地資料表。 定義彙總資料所在的自訂記錄資料表:

      • 如果您選取 [現有的自訂記錄資料表],請選取要使用的資料表。

      • 如果您選取 [新增自訂記錄資料表],請為您的資料表輸入有意義的名稱。 您的完整資料表名稱會使用下列語法:<tableName>_CL

  3. 建議您在工作區上啟用 SummaryLogs 診斷設定,以取得歷程記錄執行和失敗的可見度。 如果未啟用 SummaryLogs 診斷設定,系統會提示您在 [診斷設定] 區域中啟用它們。

    如果 SummaryLogs 診斷設定已啟用,但您想要修改設定,請選取 [設定進階診斷設定]。 當您回到 [摘要規則精靈] 頁面時,請務必選取 [重新整理] 以重新整理您的設定詳細資料。

    重要

    SummaryLogs 診斷設定有額外的成本。 如需詳細資訊,請參閱 Azure 監視器中的診斷設定:資源記錄

  4. 選取 [下一步:設定摘要邏輯 >] 以繼續。

  5. 在 [設定摘要邏輯] 頁面上,輸入您的摘要查詢。 例如,若要從 Google Cloud Platform 提取內容,您可能想要輸入:

    GCPAuditLogs
    | where ServiceName == 'pubsub.googleapis.com'
    | summarize count() by Severity
    

    如需詳細資訊,請參閱範例摘要規則案例Azure 監視器中的 Kusto 查詢語言 (KQL)

  6. 選取 [預覽結果] 以顯示您使用已設定查詢所收集的資料範例。

  7. 在 [查詢排程] 區域中,定義下列詳細資料:

    • 您希望規則執行的頻率
    • 您是否希望規則以任何延遲方式執行 (以分鐘為單位)
    • 當您想要讓規則開始執行時

    排程中定義的時間是以資料中的 timegenerated 資料行為基礎

  8. 選取 [下一步:檢閱 + 建立 >]>[儲存] 以完成摘要規則。

現有的摘要規則會列在 [摘要規則 (預覽)] 頁面上,您可以在其中檢閱規則狀態。 針對每個規則,選取資料列結尾的選項功能表,以採取下列任何動作:

  • 在 [記錄] 頁面中檢視規則的目前資料,就像您立即執行查詢一樣
  • 檢視所選規則的執行歷程記錄
  • 停用或啟用規則。
  • 編輯規則組態

若要刪除規則,請選取規則資料列,然後在頁面頂端的工具列中選取 [刪除]

注意

Azure 監視器也支援透過 API 或 Azure 資源監視器 (ARM) 範本建立摘要規則。 如需詳細資訊,請參閱建立或更新摘要規則

範例摘要規則案例

本節會檢閱在 Microsoft Sentinel 中建立摘要規則的常見案例,以及有關如何設定每個規則的建議。 如需詳細資訊和範例,請參閱搭配輔助記錄使用摘要規則 (範例程序)記錄來源以用於輔助記錄擷取

快速在網路流量中尋找惡意 IP 位址

案例:您是威脅搜捕者,而小組的目標之一,就是在過去 90 天內,惡意 IP 位址從作用中事件在網路流量記錄中進行互動時識別所有執行個體。

挑戰:Microsoft Sentinel 目前每天內嵌數 TB 的網路記錄。 您需要快速瀏覽它們,以尋找惡意 IP 位址的相符項目。

解決方案:我們建議使用摘要規則來執行下列動作:

  1. 為每個與事件相關的 IP 位址建立摘要資料集,包括 SourceIPDestinationIPMaliciousIPRemoteIP、每個列出重要屬性,例如 IPTypeFirstTimeSeenLastTimeSeen

    摘要資料集可讓您快速搜尋特定 IP 位址,並縮小至可找到 IP 位址的時間範圍。 即使搜尋的事件發生在超過 90 天前,而已超出其工作區保留期間,您也可以執行此動作。

    在此範例中,將摘要設定為每天執行,讓查詢每天新增摘要記錄,直到其到期為止。

  2. 建立分析規則,針對摘要資料集執行不到兩分鐘,在惡意 IP 位址與公司網路互動時,快速切入特定時間範圍。

    請務必至少設定五分鐘的執行間隔,以容納不同的摘要承載大小。 這可確保即使發生事件擷取延遲,也不會發生遺失。

    例如:

    let csl_columnmatch=(column_name: string) {
    CommonSecurityLog
    | where isnotempty(column_name)
    | extend
        Date = format_datetime(TimeGenerated, "yyyy-MM-dd"),
        IPaddress = column_ifexists(column_name, ""),
        FieldName = column_name
    | extend IPType = iff(ipv4_is_private(IPaddress) == true, "Private", "Public")
    | where isnotempty(IPaddress)
    | project Date, TimeGenerated, IPaddress, FieldName, IPType, DeviceVendor
    | summarize count(), FirstTimeSeen = min(TimeGenerated), LastTimeSeen = min(TimeGenerated) by Date, IPaddress, FieldName, IPType, DeviceVendor
    };
    union csl_columnmatch("SourceIP")
        , csl_columnmatch("DestinationIP") 
        , csl_columnmatch("MaliciousIP")
        , csl_columnmatch("RemoteIP")
    // Further summarization can be done per IPaddress to remove duplicates per day on larger timeframe for the first run
    | summarize make_set(FieldName), make_set(DeviceVendor) by IPType, IPaddress
    
  3. 執行後續搜尋或與其他資料相互關聯,以完成攻擊劇本。

針對網路資料產生威脅情報相符項目的警示

針對干擾、大量和低安全性的網路資料,產生威脅情報相符項目的警示。

案例:您必須建置防火牆記錄的分析規則,以比對已針對威脅情報網域名稱清單所瀏覽系統中的網域名稱。

大部分的資料來源都是干擾且具有大量資料的原始記錄,但安全性值較低,包括 IP 位址、Azure 防火牆流量、Fortigate 流量等等。 每天總容量約為 1 TB。

挑戰:建立個別規則需要多個邏輯應用程式,這需要額外的設定和維護額外負荷和成本。

解決方案:我們建議使用摘要規則來執行下列動作:

  1. 摘要 McAfee 防火牆每10分鐘記錄一次,並在每次執行時更新相同自訂資料表中的資料。 與 McAfee 記錄互動時,ASIM 函式在摘要查詢中可能很有幫助。

  2. 建立分析規則,以在摘要資料中的網域名稱符合威脅情報清單中的項目時觸發警示。 例如:

    //let timeRange = 5m;
    //let httpstrim = "https://";
    //let httptrim = "http://";
    let timeRangeStart = now (-10m);
    let timeRangeEnd = (timeRangeStart + 10m);
    //Take visited domains from McAfee proxy
    adx('https://adxfwlog01.northeurope.kusto.windows.net/nwlogs').MappedMcAfeeSyslog
    | where timestamp between (timeRangeStart .. timeRangeEnd)
    | where isnotempty(URL)
    | extend URLDomain = parse_url(URL).Host
    | extend URLDomain = iff(isempty(URLDomain),URL,URLDomain)
    | extend URLDomain = extract(@"([0-9a-zA-Z-]{1,}\.[0-9a-zA-Z-]{2,3}\.[0-9a-zA-Z-]{2,3}|[0-9a-zA-Z-]{1,}\.[0-9a-zA-Z-]{2,10})$", 0, URLDomain)
    | where isnotempty(URLDomain)
    | summarize by URLDomain
    //Match visited domains with TI DomainName list
    | join kind=inner (ThreatIntelligenceIndicator
        | where isnotempty(DomainName)
        | where Active == true
        | where ExpirationDateTime > now()
        | summarize LatestIndicatorTime = arg_max(TimeGenerated, *) by DomainName
          ) on $left.URLDomain == $right.DomainName
    | extend LogicApp = "SOC-McAfee-ADX-DstDomainAgainstThreatIntelligence"
    | project LatestIndicatorTime, TI_Domain = DomainName, Description, ConfidenceScore, AdditionalInformation, LogicApp
    

搭配輔助記錄使用摘要規則 (範例程序)

此程序描述使用摘要規則搭配輔助記錄的範例流程,使用透過 ARM 範本建立的自訂連線,從 Logstash 內嵌 CEF 資料。

  1. 從 Logstash 設定您的自訂 CEF 連接器:

    1. 將下列 ARM 範本部署至您的 Microsoft Sentinel 工作區,以建立使用資料收集規則 (DCR) 和資料收集端點 (DCE) 的自訂資料表:

      部署至 Azure

    2. 請注意 ARM 範本輸出中的下列詳細資料:

      • tenant_id
      • data_collection_endpoint
      • dcr_immutable_id
      • dcr_stream_name
    3. 建立Microsoft Entra 應用程式,並記下應用程式的用戶端識別碼祕密。 如需詳細資訊,請參閱教學課程:使用記錄擷取 API 將資料傳送至 Azure 監視器記錄 (Azure 入口網站)

    4. 使用我們的範例指令碼來更新您的 Logstash 組態檔。 更新會將 Logstash 設定為將 CEF 記錄傳送至 ARM 範本所建立的自訂資料表,並將 JSON 資料轉換成 DCR 格式。 在此指令碼中,請務必將預留位置值取代為您先前所建立自訂資料表和 Microsoft Entra 應用程式本身的值。

  2. 檢查您的 CEF 資料是否如預期般從 Logstash 流動。 例如,在 Microsoft Sentinel 中,移至 [記錄] 頁面並執行下列查詢:

    CefAux_CL
    | take 10
    
  3. 建立彙總 CEF 資料的摘要規則。 例如:

    • 查閱關注事件 (IoC) 資料:執行彙總的摘要查詢來搜捕特定 IoC,以產生唯一的發生次數,然後只查詢這些發生次數以取得更快的結果。 下列範例示範如何搭配其他中繼資料來帶入唯一的 Source Ip 摘要,以便可用於 IoC 查閱:

      // Daily Network traffic trend Per Destination IP along with Data transfer stats 
      // Frequency - Daily - Maintain 30 day or 60 Day History. 
        Custom_CommonSecurityLog 
        | extend Day = format_datetime(TimeGenerated, "yyyy-MM-dd") 
        | summarize Count= count(), DistinctSourceIps = dcount(SourceIP), NoofByesTransferred = sum(SentBytes), NoofBytesReceived = sum(ReceivedBytes)  
        by Day,DestinationIp, DeviceVendor 
      
    • 查詢異常偵測的摘要基準。 建議您不要對大型歷程記錄期間執行查詢,例如 30 或 60 天,而是將資料內嵌至自訂記錄,然後只查詢摘要基準資料,例如時間序列異常偵測。 例如:

      // Time series data for Firewall traffic logs 
      let starttime = 14d; 
      let endtime = 1d; 
      let timeframe = 1h; 
      let TimeSeriesData =  
      Custom_CommonSecurityLog 
        | where TimeGenerated between (startofday(ago(starttime))..startofday(ago(endtime))) 
        | where isnotempty(DestinationIP) and isnotempty(SourceIP) 
        | where ipv4_is_private(DestinationIP) == false 
        | project TimeGenerated, SentBytes, DeviceVendor 
        | make-series TotalBytesSent=sum(SentBytes) on TimeGenerated from startofday(ago(starttime)) to startofday(ago(endtime)) step timeframe by DeviceVendor