重要
注意: 2026 年 8 月 18 日,根据 世纪互联发布的公告,所有Microsoft Sentinel 功能将在中国 Azure 正式停用。
Microsoft Sentinel 中的监视列表可帮助安全分析师有效地关联和扩充事件数据。 他们为你提供了一种灵活的方法来管理引用数据,例如高价值资产列表或被终止的员工。 将监视列表集成到检测规则、威胁搜寻和响应工作流中,以减少警报疲劳并更快地响应威胁。 本文介绍如何在 Microsoft Sentinel 中使用监视列表,概述关键方案和限制,并提供有关创建和查询监视列表以增强安全作的指导。
在搜索、检测规则、威胁搜寻和响应 playbook 中使用监视列表。 监视列表以名称/值对的形式存储在 Microsoft Sentinel 工作区的 Watchlist
表中。 缓存它们以获得最佳查询性能和低延迟。
重要
监视列表模板的功能以及从 Azure 存储中的文件创建监视列表的功能目前为预览版。 Azure 预览版补充条款包含适用于 beta 版、预览版或其他尚未正式发布的 Azure 功能的其他法律条款。
何时使用监视列表
在这些情境中使用监视列表:
通过导入 CSV 文件中的 IP 地址、文件哈希和其他数据,快速调查威胁并响应事件。 导入数据后,在警报规则、威胁搜寻、工作簿、笔记本和查询中使用关注列表名称值对进行联接和筛选。
导入业务数据用作监视列表。 例如,导入具有特权系统访问权限的用户列表或离职员工列表。 然后,使用监视列表创建允许列表和阻止列表来检测或阻止这些用户登录到网络。
缓解警报疲劳。 创建允许列表以抑制来自一组用户的警报,例如来自授权 IP 地址的用户,他们执行的任务通常会触发警报。 防止良性事件成为警报。
扩充事件数据。 使用监控列表将外部数据源中的名称-值组合添加到事件数据中。
关注列表限制
建议在创建监视列表之前查看以下限制:
限度 | 详细信息 |
---|---|
监视列表名称和别名长度 | 监视列表名称和别名必须介于 3 到 64 个字符之间。 第一个字符和最后一个字符必须是字母数字;允许在两者之间使用空格、连字符和下划线。 |
预期用途 | 仅将关注列表用于参考数据。 关注列表不是为大数据量而设计的。 |
最大活动关注列表项数 | 在一个工作区的所有关注列表中,最多可以有 1000 万个活动关注列表项。 已删除的项目不计数。 对于较大数量的数据,请使用 自定义日志。 |
数据保留 | Log Analytics 监视列表表中的数据将保留 28 天。 |
刷新间隔 | 监视列表每 12 天刷新一次,更新 TimeGenerated 字段。 |
跨工作区管理 | 不支持使用 Azure Lighthouse 跨工作区管理监视列表。 |
本地文件上传大小 | 本地文件上传限制为最多 3.8 MB 的文件。 |
Azure 存储文件上传大小(预览版) | Azure 存储上传限制为最多 500 MB 的文件。 |
列和表限制 | 关注列表必须遵循列和名称的 KQL 实体命名限制。 |
Microsoft Sentinel 监视列表创建方法
使用以下方法之一在 Microsoft sentinel 中创建监视列表:
从本地文件夹或 Azure 存储帐户上传文件。
从 Microsoft Sentinel 下载监视列表模板,添加数据,然后在创建监视列表时上传文件。
若要从大型文件(最多 500 MB)创建监视列表,请将该文件上传到 Azure 存储帐户。 创建共享访问签名 (SAS) URL,以便Microsoft Sentinel 可以检索监视列表数据。 SAS URL 包含资源的资源 URI 和用于资源的 SAS 令牌,例如存储帐户中的 CSV 文件。 在 Microsoft Sentinel 中将监视列表添加到工作区。
有关详细信息,请参见:
搜索和检测规则的查询中的监视列表
若要将监视列表数据与其他 Microsoft Sentinel 数据相关联,请将 Kusto 表格运算符(如 join
和 lookup
)与 Watchlist
表配合使用。 Microsoft Sentinel 在工作区中创建以下函数,以帮助引用和查询监视列表:
-
_GetWatchlistAlias
- 返回所有关注列表的别名 -
_GetWatchlist
- 查询指定监视列表的名称/值对
创建监视列表时,定义 SearchKey。 搜索键是监视列表中你希望用作与其他数据的联接或用作常见搜索对象的列的名称。 例如,假设你有一个服务器监视列表,其中包含国家/地区名称及其各自的两字母国家/地区代码。 你预计会经常使用国家/地区代码来进行搜索或联接。 因此,使用国家/地区代码列作为搜索关键字。
Heartbeat
| lookup kind=leftouter _GetWatchlist('mywatchlist')
on $left.RemoteIPCountry == $right.SearchKey
让我们看看其他一些示例查询。
假设你想要在分析规则中使用监视列表。 你创建了一个名为ipwatchlist
的监视列表,其中包含IPAddress
和Location
列。 您将IPAddress
设置为SearchKey。
IPAddress,Location |
---|
10.0.100.11,Home |
172.16.107.23,Work |
10.0.150.39,Home |
172.20.32.117,Work |
若要仅包含监视列表中来自 IP 地址的事件,可以使用包含 watchlist
作为变量或内联的查询。
此示例查询使用监视列表作为变量:
//Watchlist as a variable
let watchlist = (_GetWatchlist('ipwatchlist') | project IPAddress);
Heartbeat
| where ComputerIP in (watchlist)
此示例查询将监视列表与查询直接结合使用,并使用为监视列表定义的搜索键。
//Watchlist inline with the query
//Use SearchKey for the best performance
Heartbeat
| where ComputerIP in (
(_GetWatchlist('ipwatchlist')
| project SearchKey)
)
有关详细信息,请参阅 Microsoft Sentinel 中的监视列表生成查询和检测规则 ,以及 Kusto 文档中的以下文章:
有关 KQL 的更多信息,请参阅 Kusto 查询语言 (KQL) 概述。
其他资源:
相关内容
有关详细信息,请参见: