Share via


使用 Microsoft Sentinel 搭配 Azure Web 應用程式防火牆偵測新威脅

Web 應用程式經常遭受惡意攻擊,這些攻擊會利用已知的弱點,例如程式碼插入和路徑遍歷攻擊。 這些攻擊很難在應用程式程式碼防範,因為需要在應用程式架構的多個層級持續維護、修補和監視。 Web 應用程式防火牆 (WAF) 解決方案透過修補所有 Web 應用程式的已知弱點,而非個別保護每個 Web 應用程式,提供更快速集中的安全機制。 Azure Web 應用程式防火牆是雲端原生服務,可保護 Web 應用程式免於常見的 Web 駭客技術。 它部署快速,可取得 Web 應用程式流量的完整可見度,並封鎖惡意 Web 攻擊。

整合 Azure WAF 與 Microsoft Sentinel (雲端原生 SIEM 解決方案) 後,您可將威脅/事件/警示的偵測和回應自動化,讓更新 WAF 原則的工作更省時省力。 本文說明如何針對程式碼插入等攻擊,在 Microsoft Sentinel 建置分析規則/偵測。

Web 應用程式攻擊的偵測查詢

Azure 網路安全性 GitHub 存放庫包含下列預先建置的查詢,可用於在 Microsoft Sentinel 建立分析規則。 這些分析規則可協助自動偵測和回應各種攻擊,例如程式碼插入、路徑遍歷和掃描程式型攻擊。

  • 程式碼插入式攻擊 (應用程式閘道和 Front Door WAF)

    程式碼插入攻擊這種網路攻擊,會將惡意程式碼插入應用程式。 然後,應用程式會解譯或執行程式碼,隨之影響應用程式的效能和功能。

  • 路徑遍歷攻擊 (應用程式閘道和 Front Door WAF)

    路徑遍歷攻擊這種網路攻擊,會先竄改應用程式的檔案路徑,然後存取儲存在 Web 根資料夾外的檔案和目錄。 攻擊者可使用特殊字元序列,例如 …/…\,在目錄階層向上移動,並存取敏感或機密資料,例如設定檔、原始程式碼或系統檔案。

  • 掃描程式型攻擊 (應用程式閘道 WAF)

    掃描程式型 Web 攻擊這種網路攻擊,利用 Web 弱點掃描程式尋找及惡意探索 Web 應用程式的安全性弱點。 Web 弱點掃描程式這種工具,可自動掃描 Web 應用程式是否有常見的弱點,例如 SQL 插入、XSS、CSRF 和路徑遍歷。 攻擊者使用掃描程式即可識別易受攻擊的目標,並發動攻擊入侵目標。

在 Microsoft Sentinel 設定 Web 應用程式攻擊的分析規則

設定分析規則的必要條件如下:

使用下列步驟在 Sentinel 設定分析規則。

  1. 瀏覽至 Microsoft Sentinel,然後選取 [Analytics]索引標籤。選取[建立],然後選取[排程查詢規則]。 Screenshot showing creating a scheduled query rule.

    此處提供的策略和技術僅供參考,資料來源是 MITRE 攻擊知識庫。這是根據真實世界觀察的克敵策略和技術知識庫。

  2. 您可以使用 Analytics 規則精靈設定此事件的嚴重性層級。 因為這些是重大攻擊,因此選取 [高嚴重性]。

    Screenshot showing the analytics rule wizard.

  3. 在 [設定規則邏輯]頁面上,輸入下列預先建置的程式碼插入查詢:您可以在 Azure 網路安全 GitHub 存放庫找到此查詢。 同樣地,您可以使用存放庫中任何其他可用的查詢來建立分析規則,並偵測個別的攻擊模式。

     let Threshold = 3; 
    
     AzureDiagnostics
     | where Category == "ApplicationGatewayFirewallLog"
     | where action_s == "Matched"
     | where Message has "Injection" or Message has "File Inclusion"
     | where ruleGroup_s == "REQUEST-932-APPLICATION-ATTACK-RCE" or ruleGroup_s ==    "REQUEST-931-APPLICATION-ATTACK-RFI" or ruleGroup_s == "REQUEST-932-APPLICATION-ATTACK-RCE" or    ruleGroup_s == "REQUEST-933-APPLICATION-ATTACK-PHP" or ruleGroup_s ==    "REQUEST-942-APPLICATION-ATTACK-SQLI" or ruleGroup_s == "REQUEST-921-PROTOCOL-ATTACK" or ruleGroup_s    == "REQUEST-941-APPLICATION-ATTACK-XSS"
     | project transactionId_g, hostname_s, requestUri_s, TimeGenerated, clientIp_s, Message,    details_message_s, details_data_s
     | join kind = inner(
    
     AzureDiagnostics
    
     | where Category == "ApplicationGatewayFirewallLog"
     | where action_s == "Blocked") on transactionId_g
     | extend Uri = strcat(hostname_s,requestUri_s)
     | summarize StartTime = min(TimeGenerated), EndTime = max(TimeGenerated), TransactionID = make_set   (transactionId_g,100), Message = make_set(Message,100), Detail_Message = make_set(details_message_s,   100), Detail_Data = make_set(details_data_s,100), Total_TransactionId = dcount(transactionId_g) by    clientIp_s, Uri, action_s
     | where Total_TransactionId >= Threshold
    

    Screenshot showing the rule query.

    注意

    請務必先確定 WAF 記錄已位於 Log Analytics 工作區,再建立此分析規則。 否則,Microsoft Sentinel 無法辨識查詢中的某些資料行,而且您必須為每個產生錯誤的資料行新增額外的輸入,例如 | extend action_s = column_ifexists(“action_s”, “”), transactionId_g = column_ifexists(“transactionId_g”, “”)。 此輸入會手動建立資料行名稱,並指派 Null 值。 若要略過此步驟,請先將 WAF 記錄傳送至工作區。

  4. 在 [事件設定]頁面上,啟用[從此分析規則觸發的警示建立事件]。您可以視需要設定警示群組。

  5. 或者,您也可以視需要將任何自動化回應新增至事件。 如需自動化回應設定的詳細資訊,請參閱使用 Microsoft Sentinel 自動偵測和回應 Azure WAF

  6. 最後,在[檢閱並建立] 索引標籤選取[儲存]。

此分析規則可讓 Microsoft Sentinel 根據記錄任何程式碼插入式攻擊的 WAF 記錄建立事件。 根據預設,Azure WAF 會封鎖這些攻擊,但建立事件可為安全性分析師提供更多支援,回應未來的威脅。

您可以使用 Azure 網路安全 GitHub 存放庫中可用的預先建置偵測查詢,在 Microsoft Sentinel 設定各種 Web 應用程式攻擊的分析規則。 這些查詢將直接新增至 Sentinel 偵測範本。 新增之後,Microsoft Sentinel 的 [分析規則範本] 區段會直接提供這些查詢。

下一步