你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

审核 Microsoft Sentinel 查询和活动

本文介绍了如何按照特定要求(例如,安全运营中心 (SOC) 工作区中的内部和外部合规性要求)来查看在 Microsoft Sentinel 工作区中运行的查询和执行的活动的审核数据。

Microsoft Sentinel 提供对下列项的访问:

  • AzureActivity 表,提供在 Microsoft Sentinel 中执行的所有操作(例如编辑警报规则)的相关详细信息。 AzureActivity 表不记录特定的查询数据。 有关详细信息,请参阅通过 Azure 活动日志进行审核

  • LAQueryLogs 表,提供在 Log Analytics 中运行的查询(包括从 Microsoft Sentinel 运行的查询)的相关详细信息。 有关详细信息,请参阅通过 LAQueryLogs 进行审核

提示

除了本文所述的手动查询之外,Microsoft Sentinel 还提供了一个内置的工作簿,用于帮助你审核 SOC 环境中的活动。

在 Microsoft Sentinel“工作簿”区域中,搜索“工作区审核”工作簿 。

先决条件

  • 要成功运行本文中的示例查询,需要先拥有 Microsoft Sentinel 工作区中的相关数据,以便查询和访问 Microsoft Sentinel。

    有关详细信息,请参阅“配置 Microsoft Sentinel 内容”和“Microsoft Sentinel 角色和权限”

通过 Azure 活动日志进行审核

Microsoft Sentinel 的审核日志是在 Azure 活动日志中维护的,其中,AzureActivity 表包含在 Microsoft Sentinel 工作区中执行的所有操作。

使用 Microsoft Sentinel 审核 SOC 环境中的活动时,可以使用 AzureActivity 表。

若要查询 AzureActivity 表,请执行以下操作:

  1. 连接 Azure 活动数据源,开始将审核事件流式传输到名为 AzureActivity 的新表。 在 Azure 门户中,在“日志”页中查询此表。 在 Defender 门户中,在“调查和响应 > 搜寻 > 高级搜寻”页中查询此表。 有关详细信息,请参阅

  2. 使用 KQL 查询数据,就像对任何其他表进行查询一样。

    AzureActivity 表包含来自许多服务(包括 Microsoft Sentinel)的数据。 若只筛选来自 Microsoft Sentinel 的数据,请通过以下代码启动查询:

     AzureActivity
    | where OperationNameValue startswith "MICROSOFT.SECURITYINSIGHTS"
    

    例如,若要查明谁是最后编辑特定分析规则的用户,请使用以下查询(将 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 替换为你要检查的规则的规则 ID):

    AzureActivity
    | where OperationNameValue startswith "MICROSOFT.SECURITYINSIGHTS/ALERTRULES/WRITE"
    | where Properties contains "alertRules/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    | project Caller , TimeGenerated , Properties
    

向查询添加更多参数,以便进一步探索 AzureActivities 表,具体取决于你需要报告的内容。 以下各部分提供了使用 AzureActivity 表数据进行审核时要使用的其他示例查询。

有关详细信息,请参阅 Azure 活动日志中包含的 Microsoft Sentinel 数据

查找特定用户在过去 24 小时内执行的所有操作

以下 AzureActivity 表查询列出在过去 24 小时内由特定 Microsoft Entra 用户执行的所有操作。

AzureActivity
| where OperationNameValue contains "SecurityInsights"
| where Caller == "[AzureAD username]"
| where TimeGenerated > ago(1d)

查找所有删除操作

以下 AzureActivity 表查询列出在 Microsoft Sentinel 工作区中执行的所有删除操作。

AzureActivity
| where OperationNameValue contains "SecurityInsights"
| where OperationName contains "Delete"
| where ActivityStatusValue contains "Succeeded"
| project TimeGenerated, Caller, OperationName

Azure 活动日志中包含的 Microsoft Sentinel 数据

Microsoft Sentinel 的审核日志在 Azure 活动日志中维护,包括以下类型的信息:

操作 信息类型
已创建 警报规则
案例注释
事件注释
保存的搜索
播放列表
工作簿
已删除 警报规则
书签
数据连接器
事故
保存的搜索
设置
威胁情报报告
播放列表
工作簿
工作流
已更新 警报规则
书签
案例
数据连接器
事故
事件注释
威胁情报报告
工作簿
工作流

你还可以使用 Azure 活动日志来检查用户授权和许可证。

例如,下表列出了在 Azure 活动日志中找到的选定操作以及从中拉取日志数据的特定资源。

操作名称 资源类型
创建或更新工作簿 Microsoft.Insights/workbooks
删除工作簿 Microsoft.Insights/workbooks
设置工作流 Microsoft.Logic/workflows
删除工作流 Microsoft.Logic/workflows
创建保存的搜索 Microsoft.OperationalInsights/workspaces/savedSearches
删除已保存的搜索 Microsoft.OperationalInsights/workspaces/savedSearches
更新警报规则 Microsoft.SecurityInsights/alertRules
删除警报规则 Microsoft.SecurityInsights/alertRules
更新警报规则响应操作 Microsoft.SecurityInsights/alertRules/actions
删除警报规则响应操作 Microsoft.SecurityInsights/alertRules/actions
更新书签 Microsoft.SecurityInsights/bookmarks
删除书签 Microsoft.SecurityInsights/bookmarks
更新案例 Microsoft.SecurityInsights/Cases
更新案例调查 Microsoft.SecurityInsights/Cases/investigations
创建案例注释 Microsoft.SecurityInsights/Cases/comments
更新数据连接器 Microsoft.SecurityInsights/dataConnectors
删除数据连接器 Microsoft.SecurityInsights/dataConnectors
更新设置 Microsoft.SecurityInsights/settings

有关详细信息,请参阅 Azure 活动日志事件架构

通过 LAQueryLogs 进行审核

LAQueryLogs 表提供了在 Log Analytics 中运行的日志查询的详细信息。 由于 Log Analytics 用作 Microsoft Sentinel 的基础数据存储,因此你可以对系统进行配置以在 Microsoft Sentinel 工作区中收集 LAQueryLogs 数据。

LAQueryLogs 数据包含如下信息:

  • 查询运行时间
  • 谁在 Log Analytics 中运行了查询
  • 在 Log Analytics 中运行查询时所使用的工具,例如 Microsoft Sentinel
  • 查询文本本身
  • 每个查询运行的性能数据

注意

  • LAQueryLogs 表仅包含已在 Microsoft Sentinel 的“日志”边栏选项卡中运行的查询。 它不包含使用“调查图”(在 Microsoft Sentinel“搜寻”页或 Defender 门户的“高级搜寻”页)按照计划的分析规则运行的查询。

  • 从运行查询到在 LAQueryLogs 表中填充数据之间可能会有一个短暂的延迟。 建议等待大约 5 分钟,然后再在 LAQueryLogs 表中查询审核数据。

若要查询 LAQueryLogs 表,请执行以下操作:

  1. 默认情况下,Log Analytics 工作区中未启用 LAQueryLogs 表。 在 Microsoft Sentinel 中进行审核时,若要使用 LAQueryLogs 数据,请先在 Log Analytics 工作区的“诊断设置”区域中启用 LAQueryLogs 。

    有关详细信息,请参阅在 Azure Monitor 日志中审核查询

  2. 然后,使用 KQL 查询数据,就像对任何其他表进行查询一样。

    例如,下面的查询显示过去一周内每天运行的查询数:

    LAQueryLogs
    | where TimeGenerated > ago(7d)
    | summarize events_count=count() by bin(TimeGenerated, 1d)
    

以下各部分介绍了使用 Microsoft Sentinel 审核 SOC 环境中的活动时,要对 LAQueryLogs 表运行的更多示例查询。

响应不是“正常”的已运行查询数

以下 LAQueryLogs 表查询显示收到的 HTTP 响应不是“200 正常”的已运行查询的数目。 例如,此数目将包括无法运行的查询。

LAQueryLogs
| where ResponseCode != 200 
| count 

显示 CPU 密集型查询的用户

以下 LAQueryLogs 表查询根据使用的 CPU 和查询时间长度列出运行的 CPU 密集型查询最多的用户。

LAQueryLogs
|summarize arg_max(StatsCPUTimeMs, *) by AADClientId
| extend User = AADEmail, QueryRunTime = StatsCPUTimeMs
| project User, QueryRunTime, QueryText
| order by QueryRunTime desc

显示过去一周内运行查询最多的用户

以下 LAQueryLogs 表查询列出最近一周内运行查询最多的用户。

LAQueryLogs
| where TimeGenerated > ago(7d)
| summarize events_count=count() by AADEmail
| extend UserPrincipalName = AADEmail, Queries = events_count
| join kind= leftouter (
    SigninLogs)
    on UserPrincipalName
| project UserDisplayName, UserPrincipalName, Queries
| summarize arg_max(Queries, *) by UserPrincipalName
| sort by Queries desc

配置 Microsoft Sentinel 活动的警报

你可能需要使用 Microsoft Sentinel 审核资源来创建主动警报。

例如,如果你的 Microsoft Sentinel 工作区中有敏感的表,请使用以下查询在这些表每次被查询时通知你:

LAQueryLogs
| where QueryText contains "[Name of sensitive table]"
| where TimeGenerated > ago(1d)
| extend User = AADEmail, Query = QueryText
| project User, Query

使用工作簿、规则和 playbook 监视 Microsoft Sentinel

使用 Microsoft Sentinel 自己的功能来监视 Microsoft Sentinel 中发生的事件和操作。

  • 使用工作簿进行监视。 多个内置 Microsoft Sentinel 工作簿可以帮助你监视工作区活动,包括有关在工作区中工作的用户、正在使用的分析规则、覆盖范围最广的 MITRE 策略、已停滞或已停止的引入,以及 SOC 团队性能的信息。

    有关详细信息,请参阅“使用 Microsoft Sentinel 中的工作簿可视化和监视数据”和“常用的 Microsoft Sentinel 工作簿”

  • 监视引入延迟。 如果担心引入延迟,请在分析规则中设置一个变量来表示延迟。

    例如,以下分析规则有助于确保结果不包含重复项,并且在运行规则时日志不会缺失:

    let ingestion_delay= 2min;let rule_look_back = 5min;CommonSecurityLog| where TimeGenerated >= ago(ingestion_delay + rule_look_back)| where ingestion_time() > (rule_look_back)
    - Calculating ingestion delay
      CommonSecurityLog| extend delay = ingestion_time() - TimeGenerated| summarize percentiles(delay,95,99) by DeviceVendor, DeviceProduct
    

    有关详细信息,请参阅在 Microsoft Sentinel 中使用自动化规则自动处理事件

  • 使用连接器运行状况推送通知解决方案 playbook 监视数据连接器运行状况,看是否有已停滞的或已停止的引入,并在连接器停止收集数据或计算机停止报告时发送通知。

后续步骤

在 Microsoft Sentinel 中,使用“工作区审核”工作簿审核 SOC 环境中的活动。

有关详细信息,请参阅可视化和监视数据