重要
本文中的某些信息与预发行的产品有关,该产品在商业发布之前可能有重大修改。 Microsoft 对此处所提供的信息不作任何明示或默示的保证。
自定义检测规则是使用 高级搜寻 查询设计和调整的规则。 这些规则可让你主动监视各种事件和系统状态,包括可疑的泄露活动和配置错误的终结点。 可以将它们设置为在匹配时定期运行、生成警报以及执行响应操作。
管理自定义检测所需的权限
重要
Microsoft 建议使用权限最少的角色。 这有助于提高组织的安全性。 全局管理员是一个权限很高的角色,应仅限于在无法使用现有角色的紧急情况下使用。
若要管理自定义检测,需要能够管理这些检测目标的数据的角色。 例如,若要管理多个数据源 (Microsoft Defender XDR 和Microsoft Sentinel的自定义检测,或者) 多个 Defender 工作负载,需要所有适用的Defender XDR和Sentinel角色。 有关详细信息,请参阅以下部分。
Microsoft Defender XDR
若要管理Microsoft Defender XDR数据的自定义检测,需要分配以下角色之一:
安全设置 (管理) - 具有此Microsoft Defender XDR权限的用户可以在Microsoft Defender门户中管理安全设置。
安全管理员 - 具有此Microsoft Entra角色的用户可以在Microsoft Defender门户和其他门户和服务中管理安全设置。
安全操作员 - 具有此Microsoft Entra角色的用户可以管理警报,并具有对安全相关功能的全局只读访问权限,包括Microsoft Defender门户中的所有信息。 仅当Microsoft Defender for Endpoint中关闭基于角色的访问控制 (RBAC) 时,此角色才足以管理自定义检测。 如果已配置 RBAC,还需要 Defender for Endpoint 的“管理安全设置” 权限。
如果具有适当的权限,则可以管理应用于特定Defender XDR解决方案中的数据的自定义检测。 例如,如果只有Office 365 Microsoft Defender的管理权限,则可以使用Email*表Identity*而不是表创建自定义检测。
同样,由于IdentityLogonEvents该表包含来自 Microsoft Defender for Cloud Apps 和 Defender for Identity 的身份验证活动信息,你需要拥有这两个服务的管理权限,以便管理查询该表的自定义检测。
注意
若要管理自定义检测,如果启用了 RBAC,安全操作员必须在 Microsoft Defender for Endpoint 中具有“管理安全设置”权限。
Microsoft Sentinel
若要管理Microsoft Sentinel数据的自定义检测,需要分配Microsoft Sentinel参与者角色。 具有此Azure角色的用户可以管理Microsoft Sentinel SIEM 工作区数据,包括警报和检测。 可以在特定的主工作区、Azure资源组或整个订阅上分配此角色。
管理所需权限
若要管理所需的权限,全局管理员可以:
在“角色安全管理员”下的Microsoft 365 管理中心中分配安全管理员或安全操作员角色>。
在“设置权限>角色”下的“Microsoft Defender XDR中检查Microsoft Defender for Endpoint的 RBAC 设置>。 选择相应的角色以分配 管理安全设置 权限。
注意
用户还需要对正在创建或编辑的自定义检测规则 的设备范围内的设备 具有适当的权限,然后才能继续作。 如果同一用户没有对所有设备的权限,则用户无法编辑限定为在所有设备上运行的自定义检测规则。
创建自定义检测规则
1. 准备查询
在Microsoft Defender门户中,转到“高级搜寻”,选择现有查询或创建新查询。 使用新查询时,请运行查询以识别错误并了解可能的结果。
重要
为了防止服务返回过多的警报,每个规则每次运行时只能生成 150 个警报。 在创建规则之前,请调整查询以避免对正常的日常活动发出警报。
查询结果中必需的列
若要使用Defender XDR数据创建自定义检测规则,查询必须返回以下列:
Timestamp或TimeGenerated- 此列设置生成的警报的时间戳。 查询不应作此列,而应返回它与原始事件中显示的完全相同。对于基于 XDR 表的检测,列或列组合可唯一标识这些表中的事件:
- 对于Microsoft Defender for Endpoint表,
Timestamp、DeviceId和ReportId列必须出现在同一事件中 - 对于 Alert* 表,
Timestamp必须出现在 事件中 - 对于“观察”* 表,
Timestamp和ObservationId必须出现在同一事件中 - 对于所有其他事件,
Timestamp和ReportId必须出现在同一事件中
- 对于Microsoft Defender for Endpoint表,
包含受影响资产的强标识符的列。 若要在向导中自动映射受影响的资产,请投影以下列之一,其中包含受影响资产的强标识符:
DeviceIdDeviceNameRemoteDeviceNameRecipientEmailAddress-
SenderFromAddress(信封发件人或返回路径地址) -
SenderMailFromAddress(电子邮件客户端显示的发件人地址) SenderObjectIdRecipientObjectIdAccountObjectIdAccountSidAccountUpnInitiatingProcessAccountSidInitiatingProcessAccountUpnInitiatingProcessAccountObjectId
注意
将新表添加到 高级搜寻架构时,将添加对更多实体的支持。
简单查询(例如不使用 project 或 summarize 运算符自定义或聚合结果的查询)通常返回这些常见列。
有多种方法可以确保更复杂的查询返回这些列。 例如,如果希望按列(如 DeviceId)下的实体进行聚合和计数,仍可返回 Timestamp , ReportId 并通过从涉及每个唯一 DeviceId的最新事件获取它们。
重要
避免使用 Timestamp 列筛选自定义检测。 根据检测频率预筛选用于自定义检测的数据。
以下示例查询对具有防病毒检测 () DeviceId 的唯一设备数进行计数,并使用此计数仅查找具有五个以上检测的设备。 若要返回最新 Timestamp 和相应的 ReportId,它将 运算符 summarize 与 函数一起使用 arg_max 。
DeviceEvents
| where ingestion_time() > ago(1d)
| where ActionType == "AntivirusDetection"
| summarize (Timestamp, ReportId)=arg_max(Timestamp, ReportId), count() by DeviceId
| where count_ > 5
提示
为了提高查询性能,请设置与规则的预期运行频率匹配的时间筛选器。 由于最不频繁的运行 是每 24 小时运行一次,因此过去一天的筛选将涵盖所有新数据。
2. 创建新规则并提供警报详细信息
使用查询编辑器中的查询,选择“ 创建检测规则 ”并指定以下警报详细信息:
- 检测名称 - 检测规则的名称;应是唯一的。
- 频率 - 运行查询和执行作的间隔。 请参阅规则频率部分中的更多指南
- 警报标题 - 显示由规则触发的警报的标题;应是唯一且以纯文本形式表示的。 出于安全目的,对字符串进行清理,因此 HTML、Markdown 和其他代码不起作用。 游戏中包含的任何 URL 都应遵循 百分比编码格式 才能正确显示。
- 严重性 - 规则标识的组件或活动的潜在风险。
- 类别 - 规则标识的威胁组件或活动。
- MITRE ATT&CK 技术 - MITRE ATT&CK 框架中所述,规则标识的一种或多种攻击技术。 对于某些警报类别,包括恶意软件、勒索软件、可疑活动和不需要的软件,此部分是隐藏的。
- 威胁分析报告 - 将生成的警报链接到现有威胁分析报告,使其显示在威胁分析的“ 相关事件 ”选项卡中。
- 说明 - 有关规则标识的组件或活动的详细信息。 出于安全目的,对字符串进行清理,因此 HTML、Markdown 和其他代码不起作用。 说明中包含的任何 URL 都应遵循百分比编码格式,以便正确显示。
- 建议的作 - 响应者在响应警报时可能采取的其他作。
规则频率
保存新规则时,它会运行并检查过去 30 天数据中的匹配项。 然后,该规则会以固定的时间间隔再次运行,根据你选择的频率应用回溯期:
- 每 24 小时 - 每 24 小时运行一次,检查过去 30 天的数据。
- 每 12 小时 - 每 12 小时运行一次,检查过去 48 小时的数据。
- 每 3 小时 - 每 3 小时运行一次,检查过去 12 小时的数据。
- 每小时 - 每小时运行一次,检查过去 4 小时的数据。
- 连续 (NRT) - 连续运行,在近实时 (NRT) 收集和处理事件时检查事件中的数据,请参阅 连续 (NRT) 频率。
- 自定义 - 根据所选频率运行。 如果规则仅基于引入到Microsoft Sentinel的数据,则此选项可用,请参阅Microsoft Sentinel数据的自定义频率 (预览版) 。
提示
将查询中的时间筛选器与回溯周期匹配。 将忽略回溯期之外的结果。
编辑规则时,更改会根据设置的频率在计划的下一个运行时应用。 规则频率基于事件时间戳,而不是引入时间。 特定运行中也可能有小延迟,因此配置的频率不是 100% 准确。
连续 (NRT) 频率
将自定义检测设置为在连续 (NRT) 频率中运行,可提高组织更快地识别威胁的能力。 使用连续 (NRT) 频率对资源使用情况的影响最小,因此应考虑用于组织中任何限定的自定义检测规则。
在“自定义检测规则”页中,可以使用“ 立即迁移”按钮迁移适合连续 (NRT) 频率的自定义检测规则:
选择“ 迁移”现在 会根据 KQL 查询提供所有兼容规则的列表。 只能根据自己的偏好选择迁移所有或所选规则:
选择“ 保存”后,所选规则的频率将更新为连续 (NRT) 频率。
可以连续运行的查询
可以连续运行查询,前提是:
- 查询仅引用一个表。
- 该查询使用 支持的 KQL 功能列表中的运算符。 (对于
matches regex,正则表达式必须编码为字符串文本,并遵循字符串引用规则。例如,正则表达式\A在 KQL 中表示为"\\A"。额外的反斜杠指示另一个反斜杠是正则表达式\A.) - 查询不使用联接、联合或
externaldata运算符。 - 查询不包含任何注释行/信息。
支持连续 (NRT) 频率的表
下表支持准实时检测:
AlertEvidenceCloudAppEventsDeviceEventsDeviceFileCertificateInfoDeviceFileEventsDeviceImageLoadEventsDeviceLogonEventsDeviceNetworkEventsDeviceNetworkInfoDeviceInfoDeviceProcessEventsDeviceRegistryEventsEmailAttachmentInfo-
EmailEvents(和LatestDeliveryLocationLatestDeliveryAction列) EmailPostDeliveryEventsEmailUrlInfoIdentityDirectoryEventsIdentityLogonEventsIdentityQueryEventsUrlClickEvents
注意
只有正式版列支持 连续 (NRT) 频率。
Microsoft Sentinel数据 (预览版) 的自定义频率
如果规则仅基于引入到Microsoft Sentinel的数据,则加入Microsoft Defender Microsoft Sentinel客户可以选择“自定义频率”。
选择此频率选项时,将显示 “运行查询每个输入 ”组件。 键入规则的所需频率,并使用下拉列表选择单位:分钟、小时或天。 支持的范围为 5 分钟到 14 天的任何值。 选择频率时,将使用以下逻辑自动确定回溯周期:
- 对于设置为每天运行频率高于一次的检测,回溯的频率是频率的四倍。 例如,如果频率为 20 分钟,则回溯为 80 分钟。
- 对于设置为每天运行一次或更少频率的检测,回溯为 30 天。 例如,如果设置为每三天运行一次,则回溯为 30 天
重要
选择自定义频率时,我们会从Microsoft Sentinel提取数据。 这意味着:
- 必须在Microsoft Sentinel中提供数据。
- Defender XDR数据不支持范围界定,因为Microsoft Sentinel不支持范围界定。
3.定义警报扩充详细信息
可以通过提供和定义更多详细信息来扩充警报,以便:
- 创建动态警报标题和说明
- 添加自定义详细信息 以显示在警报侧面板中
- 链接实体
创建动态警报标题和说明 (预览)
可以使用查询结果动态创建警报的标题和说明,使其准确且具有指示性。 在对警报和事件进行会审以及尝试快速了解警报的本质时,此功能可以提高 SOC 分析师的效率。
若要动态配置警报的标题或说明,请使用查询结果中可用的列的自由文本名称并用双大括号括起来,将它们集成到 “警报详细信息 ”部分。
例如:User {{AccountName}} unexpectedly signed in from {{Location}}
注意
每个字段中可引用的列数限制为三个。
为了帮助你确定要引用的确切列名,可以选择“ 浏览查询和结果”,这将打开规则创建向导顶部的“高级搜寻上下文”窗格,可在其中检查查询逻辑及其结果。
(预览) 添加自定义详细信息
通过在警报侧面板中显示重要详细信息,可以进一步提高 SOC 分析师的工作效率。 可以在从这些事件构造的警报中显示事件的数据。 此功能可让你的 SOC 分析师立即了解其事件的事件内容,使他们能够更快地进行会审、调查和得出结论。
在 “自定义详细信息 ”部分中,添加与要显示的详细信息对应的键值对:
- 在 “密钥” 字段中,输入所选名称,并在警报中显示为字段名称。
- 在 “参数 ”字段中,从下拉列表中选择要在警报中显示的事件参数。 此列表由与 KQL 查询输出的列名对应的值填充。
以下屏幕截图显示了如何在警报侧面板中显示自定义详细信息:
重要
自定义详细信息具有以下限制:
- 每个规则最多限制为 20 个自定义详细信息的键/值对
- 单个警报中所有自定义详细信息及其值的组合大小限制为 4 KB。 如果自定义详细信息数组超出此限制,则会从警报中删除整个自定义详细信息数组。
链接实体
标识查询结果中希望在其中找到受影响的主要实体的列。 例如,查询可能会返回发件人 (SenderFromAddress 或 SenderMailFromAddress) 和收件人 (RecipientEmailAddress) 地址。 识别这些列中哪些代表主要受影响的实体,有助于该服务汇总相关警报、关联事件,并有针对性地执行响应操作。
可以为每个实体类型 (邮箱、用户或设备) 选择仅一列。 不能选择查询未返回的列。
展开的实体映射 (预览)
可以将各种实体类型链接到警报。 链接更多实体可帮助关联引擎将警报分组到相同事件,并将事件关联在一起。 如果你是Microsoft Sentinel客户,这也意味着你可以映射第三方数据源中引入Microsoft Sentinel的任何实体。
对于Microsoft Defender XDR数据,将自动选择实体。 如果数据来自Microsoft Sentinel,则需要手动选择实体。
注意
实体会影响将警报分组到事件中的方式,因此请务必仔细查看实体,以确保高事件的质量。 详细了解事件关联和警报分组。
展开的 “实体映射 ”部分下有两个部分,可以选择实体:
-
受影响的资产 – 添加所选事件中显示的受影响资产。 可以添加以下类型的资产:
- 帐户
- Device
- 邮箱
- 云应用程序
- Azure 资源
- Amazon Web Services 资源
- Google Cloud Platform 资源
-
相关证据 - 添加所选事件中显示的非资产。 支持的实体类型包括:
- 流程
- 文件
- 注册表值
- IP
- OAuth 应用程序
- DNS
- 安全组
- URL
- 邮件群集
- 邮件
注意
目前,只能将资产映射为受影响的实体。
选择实体类型后,选择所选查询结果中存在的标识符类型,以便可用于标识此实体。 每个实体类型都有一个受支持的标识符列表,如相关下拉菜单中所示。 阅读将鼠标悬停在每个标识符上时显示的说明,以便更好地了解它。
选择标识符后,从查询结果中选择包含所选标识符的列。 选择“ 浏览查询和结果 ”以打开高级搜寻上下文面板。 此选项允许浏览查询和结果,以确保为所选标识符选择正确的列。
4. 指定操作
如果自定义检测规则使用Defender XDR数据,它可以自动对查询返回的设备、文件、用户或电子邮件执行作。
对设备执行的操作
这些操作应用于查询结果 DeviceId 列中的设备:
- 隔离设备 - 使用Microsoft Defender for Endpoint应用完全网络隔离,防止设备连接到任何应用程序或服务。 详细了解Microsoft Defender for Endpoint计算机隔离。
- 收集调查包 - 收集 ZIP 文件中的设备信息。 详细了解Microsoft Defender for Endpoint调查包。
- 运行防病毒扫描 - 在设备上执行完整的Microsoft Defender防病毒扫描。
- 启动调查 - 对设备启动 自动调查 。
- 限制应用执行 - 将设备上的限制设置为仅允许使用Microsoft颁发的证书签名的文件运行。 详细了解Microsoft Defender for Endpoint的应用限制。
对文件执行的操作
选中后,“ 允许/阻止 ”作可应用于文件。 仅当具有文件的 修正 权限并且查询结果已标识文件 ID(如 SHA1)时,才允许阻止文件。 阻止文件后,也会阻止所有设备中同一文件的其他实例。 可以控制将阻止应用到哪个设备组,但不能控制特定设备。
选中后,“隔离文件”作可应用于查询结果、
SHA1、InitiatingProcessSHA1SHA256或InitiatingProcessSHA256列中的文件。 此操作将从文件的当前位置删除,并将副本置于隔离区中。
对用户执行的操作
选中后,将对查询结果中的
AccountObjectId、InitiatingProcessAccountObjectId或RecipientObjectId列中的用户执行 将用户标记为已泄露 的操作。 此作在Microsoft Entra ID中将用户风险级别设置为“高”,从而触发相应的标识保护策略。选择 “禁用用户 ”,暂时阻止用户登录。
选择“ 强制密码重置 ”以提示用户在下次登录会话中更改其密码。
Disable user和Force password reset选项都需要用户 SID,这些 ID 位于 、InitiatingProcessAccountSid、RequestAccountSid和OnPremSid列中AccountSid。
有关用户作的详细信息,请参阅 Microsoft Defender for Identity 中的修正作。
对电子邮件执行的作
如果自定义检测生成电子邮件,则可以选择“ 移动到邮箱文件夹 ”,将电子邮件移动到所选文件夹, (“ 垃圾邮件”、“ 收件箱”或“ 已删除邮件 ”文件夹) 。 具体而言,可以通过选择 “收件箱 ”选项来移动隔离项目 (电子邮件结果,例如,如果误报) 。
或者,可以选择“ 删除电子邮件 ”,然后选择将电子邮件移动到“已删除邮件” (软删除) 或永久删除所选电子邮件 (硬删除) 。
列 NetworkMessageId 和 RecipientEmailAddress 必须存在于查询的输出结果中,才能将作应用于电子邮件。
5. 设置规则作用域
设置范围以指定规则涵盖的设备。 作用域影响检查设备的规则,不会影响仅检查邮箱和用户帐户或标识的规则。
设置作用域时,可以选择:
- 所有设备
- 特定设备组
该规则仅从范围内的设备查询数据。 它仅在这些设备上执行作。
注意
仅当用户对规则范围中包含的设备具有相应权限时,用户才能创建或编辑自定义检测规则。 例如,如果管理员具有所有设备组的权限,则只能创建或编辑作用域为所有设备组的规则。
6. 查看并启用规则
查看规则后,选择 创建 以保存规则。 自定义检测规则立即运行。 它根据配置的频率再次运行,以检查匹配、生成警报和执行响应作。
重要
定期查看自定义检测的效率和有效性。 有关如何优化查询的指南,请参阅 高级搜寻查询最佳做法。 若要确保创建触发真实警报的检测,请花时间按照管理现有自定义检测规则中的步骤查看 现有自定义检测。
可以控制自定义检测的广泛性或特定性。 自定义检测生成的任何虚假警报都可能表明需要修改规则的某些参数。
自定义检测如何处理重复警报
创建和查看自定义检测规则时的一个重要注意事项是警报干扰和疲劳。 自定义检测将事件分组和重复数据删除到单个警报中。 如果自定义检测对包含相同实体、自定义详细信息和动态详细信息的事件触发两次,则只会为这两个事件创建一个警报。 如果检测识别到事件相同,则只记录所创建的警报上的一个事件,然后处理重复项,当回溯期超过频率时,可能会发生这种情况。 如果事件不同,自定义检测会在警报中记录这两个事件。
另请参阅
- 自定义检测概述
- 管理自定义检测
- 高级搜寻概述
- 了解高级搜寻查询语言
- 从Microsoft Defender for Endpoint迁移高级搜寻查询
- 用于自定义检测的 Microsoft Graph 安全 API
提示
想要了解更多信息? 请在我们的技术社区中与 Microsoft 安全社区互动:Microsoft Defender XDR 技术社区。