在 Microsoft Sentinel 中使用监视列表生成查询或检测规则
通过将监视列表视为可供联接和查找的表,针对监视列表中的数据来查询任何表中的数据。 创建监视列表时,定义 SearchKey。 搜索键是监视列表中你希望用作与其他数据的联接或用作常见搜索对象的列的名称。
为了获得最佳查询性能,请在查询中使用 SearchKey 作为用于联接的键。
使用监视列表生成查询
要在搜索查询中使用监视列表,请编写一个 Kusto 查询,该查询使用 _GetWatchlist('watchlist-name') 函数并使用 SearchKey 作为联接的键。
转到 Azure 门户,在“配置”下选择“监视列表”。
选择要使用的监视列表。
选择“在日志中查看”。
查看“结果”选项卡。监视列表中的项将被自动提取,以用于查询。
下面的示例显示了“名称”和“IP 地址”字段的提取结果 。 SearchKey 显示为自己的列。
查询 UI 和计划警报中将忽略查询的时间戳。
编写一个查询,该查询使用 _GetWatchlist('watchlist-name') 函数并使用 SearchKey 作为联接的键。
例如,以下示例查询将
Heartbeat
表中的RemoteIPCountry
列与为名为mywatchlist
的监视列表定义的搜索关键字联接。Heartbeat | lookup kind=leftouter _GetWatchlist('mywatchlist') on $left.RemoteIPCountry == $right.SearchKey
下图显示了此示例查询在 Log Analytics 中的运行结果。
使用监视列表创建分析规则
要在分析规则中使用监视列表,请在查询中使用 _GetWatchlist('watchlist-name') 函数创建规则。
在“配置”下,选择“分析” 。
选择“创建”和要创建的规则类型。
在“常规”选项卡上输入相应的信息。
在“设置规则逻辑”选项卡上的“规则查询”下,使用查询中的
_GetWatchlist('<watchlist>')
函数 。例如,假设你有一个名为
ipwatchlist
的监视列表,它是通过 CSV 文件创建的,其中包含以下值:IPAddress,Location
10.0.100.11,Home
172.16.107.23,Work
10.0.150.39,Home
172.20.32.117,Work
该 CSV 文件如下图所示。
若要为此示例使用
_GetWatchlist
函数,你的查询将为_GetWatchlist('ipwatchlist')
。在此示例中,监视列表中只包括来自 IP 地址的事件:
//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) )
下图显示了在规则查询中使用的上一个查询。
完成分析规则向导中的其余选项卡。
工作区中的监视列表每 12 天刷新一次,更新 TimeGenerated
字段。 有关详细信息,请参阅创建自定义分析规则以检测威胁。
查看监视列表别名列表
你可能需要查看监视列表别名列表,以确定要在查询或分析规则中使用的监视列表。
转到 Azure 门户,在“常规”下选择“日志”。
在“新建查询”页上,运行以下查询:
_GetWatchlistAlias
。你可以在“结果”选项卡中查看别名列表。
相关内容
本文档介绍了如何使用 Microsoft Sentinel 中的监视列表来扩充数据并改进调查。 若要详细了解 Microsoft Sentinel,请参阅以下文章:
- 创建监视列表
- 开始使用 Microsoft Sentinel 检测威胁。
- 使用工作簿监视数据。