OpenAI 和 Microsoft Sentinel 第 2 部分:解释分析规则
admin
2023-08-01 08:27:08
0
  • 点击进入:ChatGPT工具插件导航大全

欢迎回到我们关于 OpenAI 和 Microsoft Sentinel 的系列!今天我们将探讨 OpenAI 广受欢迎的语言模型的另一个用例,并了解一下 Sentinel REST API。如果您还没有 Microsoft Sentinel 实例,您可以使用免费的 Azure 帐户创建一个实例并按照Sentinel 入门快速入门进行操作。您还需要一个带有 API 密钥的个人 OpenAI 帐户。准备好?让我们开始吧!

 

安全从业者面临的任务之一是如何快速使用分析规则、查询和定义来理解触发警报的原因。例如,下面是一个用 Kusto 查询语言 (KQL) 编写的相对较短的 Microsoft Sentinel 分析规则示例:

 

large.pngcharsetUTF-8-15large.pngcharsetUTF-8-15

 

经验丰富的 KQL 操作员不会有任何困难将其解析出来,但仍然需要一些时间来在脑海中映射出关键字、日志源、操作和事件逻辑。从未使用过 KQL 的人可能需要更多时间来了解此规则旨在检测的内容。幸运的是,我们有一个非常擅长阅读代码并用自然语言解释的朋友——OpenAI 的 GPT3!
large.pngcharsetUTF-8-16large.pngcharsetUTF-8-16

 

DaVinci 等 GPT3 引擎非常擅长用自然语言解释代码,并且在 Microsoft Sentinel KQL 语法和用法方面接受过广泛培训。更好的是,Sentinel 有一个内置的 OpenAI 连接器,使我们能够将 GPT3 模型集成到自动化的 Sentinel 剧本中!我们可以使用此连接器向描述分析规则的 Sentinel 事件添加评论。这将是一个具有线性操作流程的简单逻辑应用程序:

 

large.pngcharsetUTF-8-13large.pngcharsetUTF-8-16

 

让我们从触发器开始逐步了解逻辑应用。我们为此剧本使用 Microsoft Sentinel 事件触发器,以便我们可以使用 Sentinel 连接器从事件中提取所有相关的分析规则 ID。我们将使用规则 ID 使用 Sentinel REST API 查找规则查询文本,我们可以在文本完成提示中将其传递给 AI 模型。最后,我们会将 AI 模型的输出作为评论添加到事件中。

 

我们的第一个动作是作用于 Sentinel 的“事件相关分析规则 ID 项”的“For each”逻辑块:

 

medium.pngcharsetUTF-8large.pngcharsetUTF-8-16

 

接下来,我们需要使用 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 操作配置身份验证选项 – 我正在为我的逻辑应用程序使用托管标识。完成的操作块如下所示:

 

large.pngcharsetUTF-8-14large.pngcharsetUTF-8-16

 

现在我们有了警报规则,我们只需要解析规则文本,以便我们可以将其传递给 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\"
                }
            }
        }
    }
}

 

到目前为止,我们的逻辑块如下所示:

 

large.pngcharsetUTF-8-17large.pngcharsetUTF-8-16

 

现在是时候让 AI 参与进来了!从 OpenAI 连接器中选择“GPT3 Completes your prompt”并使用上一个 Parse JSON 步骤中的“query”动态内容对象编写您的提示。我们将使用最新的达芬奇引擎并保留大部分默认参数。我们的查询没有显示高温值和低温值之间的显着差异,但我们确实希望增加“max tokens”参数,为达芬奇模型提供更多的长答案空间。完成的动作应该是这样的:

 

large.pngcharsetUTF-8-20large.pngcharsetUTF-8-16

 

我们剧本的最后一步是使用 GPT3 的结果文本为事件添加评论。如果您想改为添加事件任务,只需选择该 Sentinel 操作即可。添加“事件 ARM ID”动态内容对象,并使用 GPT3 操作输出的“文本(完成文本)”撰写评论消息。逻辑应用程序设计器会自动将您的评论操作包装在“For each”逻辑块中。完成的评论操作应与此类似:

 

large.pngcharsetUTF-8-21large.pngcharsetUTF-8-16

 

保存逻辑应用,让我们在事件中试用它!如果一切顺利,我们的逻辑应用程序运行历史将显示成功完成。如果出现任何问题,您可以检查每个步骤的确切输入和输出详细信息 – 一个非常宝贵的故障排除工具!在我们的例子中,它一直是绿色的复选标记:

 

large.pngcharsetUTF-8-18large.pngcharsetUTF-8-16

 

成功!该剧本为事件添加了评论,为我们过度劳累的安全分析师节省了几分钟时间。

 

large.pngcharsetUTF-8-19large.pngcharsetUTF-8-16

相关内容

热门资讯

Windows 11 和 10... Windows 11/10 文件夹属性中缺少共享选项卡 – 已修复 1.检查共享选项卡是否可用 右键...
事件 ID 7034:如何通过... 点击进入:ChatGPT工具插件导航大全 服务控制管理器 (SCM) 负责管理系统上运行的服务的活动...
Radmin VPN Wind... Radmin VPN 是一款免费且用户友好的软件,旨在牢固地连接计算机以创建一个有凝聚力的虚拟专用网...
Hive OS LOLMine... 目前不清退的交易所推荐: 1、全球第二大交易所OKX欧意 国区邀请链接: https://www.m...
如何修复 Steam 内容文件... Steam 内容文件锁定是当您的 Steam 文件无法自行更新时出现的错误。解决此问题的最有效方法之...
Hive OS 部署 PXE ... 目前不清退的交易所推荐: 1、全球第二大交易所OKX欧意 国区邀请链接: https://www.m...
如何在电报Telegram中隐... 点击进入:ChatGPT工具插件导航大全 在Android上的电报中隐藏您的电话号码 您可以通过切换...
在 iCloud 上关闭“查找... 如果您是 Apple 的长期用户,您肯定会遇到过 Find My 应用程序,它本机安装在 iPhon...
farols1.1.501.0... faro ls 1.1.501.0(64bit)可以卸载,是一款无需连接外部PC机或笔记本计算机即可...
如何在Instagram上扫描... 如何在Instagram上扫描名称标签/ QR? 总而言之,您可以通过大约四种不同的方法来扫描这些I...