创建和管理自定义检测规则

适用于:

  • Microsoft Defender XDR

自定义检测规则是可以使用 高级搜寻 查询设计和调整的规则。 这些规则可让你主动监视各种事件和系统状态,包括可疑的泄露活动和配置错误的终结点。 可以将它们设置为在匹配时定期运行、生成警报以及执行响应操作。

管理自定义检测所需的权限

重要

Microsoft 建议使用权限最少的角色。 这有助于提高组织的安全性。 全局管理员是一个权限很高的角色,应仅限于在无法使用现有角色的紧急情况下使用。

若要管理自定义检测,需要分配以下角色之一:

  • 安全设置 (管理) - 具有此Microsoft Defender XDR权限的用户可以在Microsoft Defender门户中管理安全设置。

  • 安全管理员 - 具有此Microsoft Entra角色的用户可以在Microsoft Defender门户和其他门户和服务中管理安全设置。

  • 安全操作员 - 具有此Microsoft Entra角色的用户可以管理警报,并具有对安全相关功能的全局只读访问权限,包括Microsoft Defender门户中的所有信息。 仅当Microsoft Defender for Endpoint中关闭基于角色的访问控制 (RBAC) 时,此角色才足以管理自定义检测。 如果已配置 RBAC,则还需要 Defender for Endpoint 的“管理安全设置”权限。

如果你对特定Microsoft Defender XDR解决方案具有适当的权限,则可以管理应用于特定Microsoft Defender XDR解决方案中的数据的自定义检测。 例如,如果仅对Microsoft Defender for Office 365具有管理权限,则可以使用表创建自定义检测,但不能Identity*使用Email*表。

同样,由于IdentityLogonEvents该表包含来自 Microsoft Defender for Cloud Apps 和 Defender for Identity 的身份验证活动信息,你需要拥有这两个服务的管理权限,以便管理查询该表的自定义检测。

注意

若要管理自定义检测,如果启用了 RBAC,安全操作员必须在 Microsoft Defender for Endpoint 中具有“管理安全设置”权限。

若要管理所需的权限,全局管理员可以:

  • 在“角色安全管理员”下的Microsoft 365 管理中心中分配安全管理员或安全操作员角色>。

  • 在“设置权限>角色”下的“Microsoft Defender XDR中检查Microsoft Defender for Endpoint的 RBAC 设置>。 选择相应的角色以分配 管理安全设置 权限。

注意

用户还需要对正在创建或编辑的自定义检测规则 的设备范围内的设备 具有适当的权限,然后才能继续操作。 如果同一用户没有对所有设备的权限,则用户无法编辑限定为在所有设备上运行的自定义检测规则。

创建自定义检测规则

1. 准备查询

在Microsoft Defender门户中,转到“高级搜寻”,选择现有查询或创建新查询。 使用新查询时,运行查询以识别错误并了解可能的结果。

重要

为了防止服务返回过多的警报,每条规则限制为每次运行时仅生成 100 个警报。 在创建规则之前,请调整查询以避免对正常的日常活动发出警报。

查询结果中必需的列

若要创建自定义检测规则,请查询 必须 返回以下列:

  • Timestamp- 用于设置生成的警报的时间戳
  • ReportId- 启用原始记录的查找
  • 用于标识特定设备、用户或邮箱的列之一:
    • DeviceId
    • DeviceName
    • RemoteDeviceName
    • RecipientEmailAddress
    • SenderFromAddress (信封发件人或返回路径地址)
    • SenderMailFromAddress (电子邮件客户端显示的发件人地址)
    • RecipientObjectId
    • AccountObjectId
    • AccountSid
    • AccountUpn
    • InitiatingProcessAccountSid
    • InitiatingProcessAccountUpn
    • InitiatingProcessAccountObjectId

注意

将新表添加到 高级搜寻架构时,将添加对其他实体的支持。

简单查询(例如不使用 projectsummarize 运算符自定义或聚合结果的查询)通常返回这些常见列。

有多种方法可以确保更复杂的查询返回这些列。 例如,如果希望按列(例如 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. 创建新规则并提供警报详细信息

使用查询编辑器中的查询,选择“ 创建检测规则 ”并指定以下警报详细信息:

  • 检测名称 - 检测规则的名称;应是唯一的
  • 频率 - 运行查询和执行操作的间隔。 请参阅规则频率部分中的更多指南
  • 警报标题 - 显示由规则触发的警报的标题;应是唯一的。
  • 严重性 - 规则标识的组件或活动的潜在风险。
  • 类别 - 规则标识的威胁组件或活动。
  • MITRE ATT&CK 技术 - MITRE ATT&CK 框架中所述,规则标识的一种或多种攻击技术。 对于某些警报类别,包括恶意软件、勒索软件、可疑活动和不需要的软件,此部分是隐藏的。
  • 说明 - 有关规则标识的组件或活动的详细信息。
  • 建议的操作 - 响应者在响应警报时可能采取的其他操作。

规则频率

保存新规则时,它会运行并检查过去 30 天数据中的匹配项。 然后,该规则会以固定的时间间隔再次运行,根据你选择的频率应用回溯持续时间:

  • 每 24 小时 - 每 24 小时运行一次,检查过去 30 天的数据。
  • 每 12 小时 - 每 12 小时运行一次,检查过去 48 小时的数据。
  • 每 3 小时 - 每 3 小时运行一次,检查过去 12 小时的数据。
  • 每小时 - 每小时运行一次,检查过去 4 小时的数据。
  • 连续 (NRT) - 连续运行,在近实时 (NRT) 收集和处理事件时检查事件中的数据,请参阅 连续 (NRT) 频率

提示

将查询中的时间筛选器与回溯持续时间匹配。 将忽略回溯持续时间之外的结果。

编辑规则时,它将根据设置的频率在下一个运行时间安排中运行应用的更改。 规则频率基于事件时间戳,而不是引入时间。

连续 (NRT) 频率

将自定义检测设置为在连续 (NRT) 频率中运行,可以提高组织更快地识别威胁的能力。 使用连续 (NRT) 频率对资源使用情况的影响最小,因此应考虑用于组织中任何限定的自定义检测规则。

在“自定义检测规则”页中,可以使用“ 立即迁移”按钮迁移适合连续 (NRT) 频率的自定义检测规则:

高级搜寻中“立即迁移”按钮的屏幕截图。

选择“ 迁移”现在 会根据 KQL 查询提供所有兼容规则的列表。 只能根据自己的偏好选择迁移所有或所选规则:

高级搜寻中的连续频率兼容查询的屏幕截图。

单击“ 保存”后,所选规则的频率将更新为连续 (NRT) 频率。

可以连续运行的查询

可以连续运行查询,前提是:

  • 查询仅引用一个表。
  • 该查询使用支持的 KQL 运算符列表中的运算符。 支持的 KQL 功能
  • 查询不使用联接、联合或 externaldata 运算符。
  • 查询不包含任何注释行/信息。
支持连续 (NRT) 频率的表

下表支持准实时检测:

  • AlertEvidence
  • CloudAppEvents
  • DeviceEvents
  • DeviceFileCertificateInfo
  • DeviceFileEvents
  • DeviceImageLoadEvents
  • DeviceLogonEvents
  • DeviceNetworkEvents
  • DeviceNetworkInfo
  • DeviceInfo
  • DeviceProcessEvents
  • DeviceRegistryEvents
  • EmailAttachmentInfo
  • EmailEvents (和 LatestDeliveryLocationLatestDeliveryAction 列)
  • EmailPostDeliveryEvents
  • EmailUrlInfo
  • IdentityDirectoryEvents
  • IdentityLogonEvents
  • IdentityQueryEvents
  • UrlClickEvents

注意

只有正式版列才能支持 连续 (NRT) 频率。

3. 选择受影响的实体

标识查询结果中希望在其中找到受影响的主要实体的列。 例如,查询可能会返回发件人 (SenderFromAddressSenderMailFromAddress) 和收件人 (RecipientEmailAddress) 地址。 识别这些列中哪些代表主要受影响的实体,有助于该服务汇总相关警报、关联事件,并有针对性地执行响应操作。

可以为每个实体类型 (邮箱、用户或设备) 选择仅一列。 无法选择查询未返回的列。

4. 指定操作

自定义检测规则可以自动对查询返回的设备、文件、用户或电子邮件执行操作。

显示Microsoft Defender门户中自定义检测操作的屏幕截图。

对设备执行的操作

这些操作应用于查询结果 DeviceId 列中的设备:

对文件执行的操作

  • 选中后,“ 允许/阻止 ”操作可应用于文件。 仅当具有文件的 修正 权限并且查询结果已标识文件 ID(如 SHA1)时,才允许阻止文件。 阻止文件后,也会阻止所有设备中同一文件的其他实例。 可以控制将阻止应用到哪个设备组,但不能控制特定设备。

  • 选中后,“隔离文件”操作可应用于查询结果、SHA1InitiatingProcessSHA1SHA256InitiatingProcessSHA256列中的文件。 此操作将从文件的当前位置删除,并将副本置于隔离区中。

对用户执行的操作

  • 选中后,将对查询结果中的 AccountObjectIdInitiatingProcessAccountObjectIdRecipientObjectId 列中的用户执行 将用户标记为已泄露 的操作。 此操作在Microsoft Entra ID中将用户风险级别设置为“高”,从而触发相应的标识保护策略

  • 选择 “禁用用户 ”,暂时阻止用户登录。

  • 选择“ 强制密码重置 ”以提示用户在下次登录会话中更改其密码。

  • Disable userForce password reset 选项都需要用户 SID,这些 ID 位于 、InitiatingProcessAccountSidRequestAccountSidOnPremSid列中AccountSid

有关用户操作的更多详细信息,请阅读 Microsoft Defender for Identity 中的修正操作

对电子邮件执行的操作

  • 如果自定义检测生成电子邮件,则可以选择“ 移动到邮箱文件夹 ”,将电子邮件移动到所选文件夹, (“ 垃圾邮件”、“ 收件箱”或“ 已删除邮件 ”文件夹) 。 具体而言,可以通过选择 “收件箱 ”选项来移动隔离项目 (电子邮件结果,例如,如果误报) 。

    Microsoft Defender门户中自定义检测下的“收件箱”选项的屏幕截图。 Microsoft Defender门户中自定义检测下的“收件箱”选项的屏幕截图。

  • 或者,可以选择“ 删除电子邮件 ”,然后选择将电子邮件移动到“已删除邮件” (软删除) 或永久删除所选电子邮件 (硬删除) 。

NetworkMessageIdRecipientEmailAddress 必须存在于查询的输出结果中,才能将操作应用于电子邮件。

5. 设置规则作用域

设置作用域以指定规则涵盖的设备。 作用域影响检查设备的规则,不会影响仅检查邮箱和用户帐户或标识的规则。

设置作用域时,可以选择:

  • 所有设备
  • 特定设备组

将仅查询来自范围内的设备的数据。 此外,仅在这些设备上执行操作。

注意

仅当用户对规则范围中包含的设备具有相应权限时,用户才能创建或编辑自定义检测规则。 例如,如果管理员具有所有设备组的权限,则只能创建或编辑作用域为所有设备组的规则。

6. 查看并启用规则

查看规则后,选择 创建 以保存规则。 自定义检测规则立即运行。 它根据配置的频率再次运行,以检查匹配项、生成警报并执行响应操作。

重要

应定期检查自定义检测的效率和有效性。 若要确保创建触发真实警报的检测,请花时间按照管理现有自定义检测规则中的步骤查看 现有自定义检测

你可以保持对自定义检测的广泛性或特定性的控制,因此自定义检测生成的任何错误警报都可能表明需要修改规则的某些参数。

管理现有的自定义检测规则

可以查看现有自定义检测规则的列表,检查其以前的运行,并查看触发的警报。 还可以按需运行规则并对其进行修改。

提示

自定义检测引发的警报通过警报和事件 API 提供。 有关详细信息,请参阅支持的Microsoft Defender XDR API

查看现有规则

若要查看所有现有的自定义检测规则,请导航到 “搜寻>自定义检测规则”。 该页列出了包含以下运行信息的所有规则:

  • 上次运行 - 上次运行规则以检查查询匹配并生成警报时
  • 上次运行状态 - 规则是否成功运行
  • 下一次运行 - 下一个计划运行
  • 状态 - 规则是否已打开或关闭

查看规则详细信息、修改规则和运行规则

若要查看有关自定义检测规则的综合信息,请转到 搜寻>自定义检测规则 ,然后选择规则的名称。 然后,可以查看有关规则的常规信息,包括信息、其运行状态和范围。 该页还提供触发的警报和操作的列表。

Microsoft Defender门户中“自定义检测规则详细信息”页的屏幕截图。

还可以从此页对规则执行以下操作:

  • 运行 - 立即运行规则。 这也为下一次运行重设了间隔时间。
  • 编辑 - 在不更改查询的情况下修改规则。
  • 修改查询 - 在高级搜寻中编辑查询。
  • / 关闭 - 启用规则或阻止它运行。
  • 删除 - 关闭规则并将其删除。

查看和管理触发的警报

在规则详细信息屏幕 (搜寻>自定义检测>[规则名称]) ,转到 “已触发的警报”,其中列出了与规则匹配项生成的警报。 选择警报以查看其详细信息并执行以下操作:

  • 通过设置其状态和分类 (TRUE 或 FALSE 警报) 来管理警报。
  • 将警报链接到事件
  • 运行在高级搜寻时触发警报的查询

查看操作

在规则详细信息屏幕 (搜寻>自定义检测>[规则名称]) ,转到 “触发的操作”,其中列出了根据规则匹配项执行的操作。

提示

若要快速查看信息并针对表格中的项目执行操作,请使用表格左侧的选择列 [✓]。

注意

本文中的某些列在 Microsoft Defender for Endpoint 中可能不可用。 启用Microsoft Defender XDR,以使用更多数据源搜寻威胁。 可以按照从 Microsoft Defender for Endpoint 迁移高级搜寻查询中的步骤,将高级搜寻工作流从 Microsoft Defender for Endpoint 移动到 Microsoft Defender XDR

另请参阅

提示

想要了解更多信息? 请在我们的技术社区中与 Microsoft 安全社区互动:Microsoft Defender XDR 技术社区