首頁  >  文章  >  OpenAI 和 Microsoft Sentinel 第 2 部分:解釋分析規則

OpenAI 和 Microsoft Sentinel 第 2 部分:解釋分析規則

WBOY
WBOY轉載
2023-04-15 11:31:021421瀏覽

歡迎回到我們關於 OpenAI 和 Microsoft Sentinel 的系列!今天我們將探討 OpenAI 廣受歡迎的語言模式的另一個案例,並了解 Sentinel REST API。如果您還沒有 Microsoft Sentinel 實例,您可以使用免費的 Azure 帳戶建立一個實例並按照Sentinel 入門快速入門進行操作。您還需要一個帶有 API 金鑰的個人 OpenAI 帳戶。準備好?讓我們開始吧!

安全從業者面臨的任務之一是如何快速使用分析規則、查詢和定義來理解觸發警報的原因。例如,以下是一個用Kusto 查詢語言(KQL) 編寫的相對較短的Microsoft Sentinel 分析規則範例:

OpenAI 和 Microsoft Sentinel 第 2 部分:解釋分析規則

經驗豐富的KQL 操作員不會有任何困難將其解析出來,但仍需要一些時間來在腦海中映射出關鍵字、日誌來源、操作和事件邏輯。從未使用過 KQL 的人可能需要更多時間來了解此規則旨在檢測的內容。幸運的是,我們有一個非常擅長閱讀程式碼並用自然語言解釋的朋友——OpenAI 的 GPT3!
OpenAI 和 Microsoft Sentinel 第 2 部分:解釋分析規則

DaVinci 等 GPT3 引擎非常擅長用自然語言解釋程式碼,並且在 Microsoft Sentinel KQL 語法和用法方面接受過廣泛培訓。更好的是,Sentinel 有一個內建的 OpenAI 連接器,使我們能夠將 GPT3 模型整合到自動化的 Sentinel 劇本中!我們可以使用此連接器為描述分析規則的 Sentinel 事件新增評論。這將是一個具有線性操作流程的簡單邏輯應用程式:

OpenAI 和 Microsoft Sentinel 第 2 部分:解釋分析規則

讓我們從觸發器開始逐步了解邏輯應用程式。我們為此劇本使用 Microsoft Sentinel 事件觸發器,以便我們可以使用 Sentinel 連接器從事件中提取所有相關的分析規則 ID。我們將使用規則 ID 使用 Sentinel REST API 來尋找規則查詢文本,我們可以在文本完成提示中將其傳遞給 AI 模型。最後,我們會將 AI 模型的輸出作為評論加入事件。

我們的第一個動作是作用於Sentinel 的「事件相關分析規則ID 項目」的「For each」邏輯區塊:

OpenAI 和 Microsoft Sentinel 第 2 部分:解釋分析規則

##接下來,我們需要使用Sentinel REST API 來請求預定的警報規則本身。此 API 端點記錄在此:https://learn.microsoft.com/en-us/rest/api/securityinsights/stable/alert-rules/get ?tabs= HTTP 。如果您以前沒有使用過 Sentinel API,您可以點擊程式碼區塊旁邊的綠色「試用」按鈕,使用您的憑證預覽實際請求。這是探索 API 的好方法!在我們的例子中,「Get - Alert Rules」請求如下所示:

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/alertRules/{ruleId}?api-version=2022-11-01

我們可以在我們的邏輯應用程式中使用「HTTP」操作進行此 API 呼叫。幸運的是,我們剛剛添加到「For each」邏輯區塊的與事件相關的分析規則 ID 項幾乎帶有所有預先填入的參數。我們只需要在 API 網域前面加上版本規格到最後 - subscriptionID、resourceGroupName、workspaceName 和 ruleId 的所有參數都會來自我們的動態內容物件。我的 URI 區塊的實際文字如下:

https://management.azure.com@{items('For_each_related_Analytics_Rule_ID')}?api-version=2022-11-01

我們還需要為 HTTP 操作配置驗證選項 - 我正在為我的邏輯應用程式使用託管識別碼。完成的操作區塊如下所示:

OpenAI 和 Microsoft Sentinel 第 2 部分:解釋分析規則

現在我們有了警報規則,我們只需要解析規則文本,以便我們可以將其傳遞給 GPT3。讓我們使用 Parse JSON 操作,為其提供 HTTP 步驟中的正文內容,並定義架構以符合此 API 呼叫的預期輸出。生成架構最簡單的方法是上傳範例有效負載,但我們不需要包含我們不感興趣的所有屬性。我已將架構縮短為如下所示:

{"type": "object","properties": {"id": {"type": "string"},"type": {"type": "string"},"kind": {"type": "string"},"properties": {"type": "object","properties": {"severity": {"type": "string"},"query": {"type": "string"},"tactics": {},"techniques": {},"displayName": {"type": "string"},"description": {"type": "string"},"lastModifiedUtc": {"type": "string"}}}}}

到目前為止,我們的邏輯區塊如下所示:

OpenAI 和 Microsoft Sentinel 第 2 部分:解釋分析規則

現在是時候讓AI 參與進來了!從 OpenAI 連接器中選擇「GPT3 Completes your prompt」並使用上一個 Parse JSON 步驟中的「query」動態內容物件來編寫您的提示。我們將使用最新的達文西引擎並保留大部分預設參數。我們的查詢沒有顯示高溫值和低溫值之間的顯著差異,但我們確實希望增加「max tokens」參數,為達文西模型提供更多的長答案空間。完成的動作應該是這樣的:

OpenAI 和 Microsoft Sentinel 第 2 部分:解釋分析規則

我們劇本的最後一步是使用 GPT3 的結果文字為事件添加評論。如果您想改為新增事件任務,只需選擇該 Sentinel 操作即可。新增「事件 ARM ID」動態內容對象,並使用 GPT3 操作輸出的「文字(完成文字)」撰寫評論訊息。邏輯應用程式設計器會自動將您的評論操作包裝在「For each」邏輯區塊中。完成的評論操作應與此類似:

OpenAI 和 Microsoft Sentinel 第 2 部分:解釋分析規則

儲存邏輯應用,讓我們在事件中試用它!如果一切順利,我們的邏輯應用程式運行歷史將顯示成功完成。如果出現任何問題,您可以檢查每個步驟的確切輸入和輸出詳細資訊 - 一個非常寶貴的故障排除工具!在我們的例子中,它一直是綠色的複選標記:

OpenAI 和 Microsoft Sentinel 第 2 部分:解釋分析規則

成功!劇本為事件添加了評論,為我們過度勞累的安全分析師節省了幾分鐘。

OpenAI 和 Microsoft Sentinel 第 2 部分:解釋分析規則

以上是OpenAI 和 Microsoft Sentinel 第 2 部分:解釋分析規則的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yundongfang.com。如有侵權,請聯絡admin@php.cn刪除