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

Microsoft Defender for Cloud 故障排除指南

本指南适用于其组织需要排查 Microsoft Defender for Cloud 相关问题的 IT 专业人员、信息安全分析人员和云管理员。

提示

当你遇到问题,或者需要我们的支持团队提供建议时,可以在 Azure 门户的“诊断并解决问题”部分寻找解决方案。

Azure 门户的屏幕截图,其中显示了用于在 Defender for Cloud 中诊断和解决问题的页面。

使用审核日志调查问题

查找故障排除信息的第一个位置是失败组件的审核日志。 在审核日志中,可以看到如下所示的详细信息:

  • 执行了哪些操作。
  • 谁启动了该操作。
  • 操作何时发生。
  • 操作的状态。

审核日志包含对你的资源执行的所有写入操作(PUTPOSTDELETE),但不包含读取操作 (GET)。

连接器疑难解答

Defender for Cloud 使用连接器从 Amazon Web Services (AWS) 帐户和 Google Cloud Platform (GCP) 项目收集监视数据。 如果连接器出现问题,或者你看不到 AWS 或 GCP 的数据,请查看以下故障排除提示。

常见连接器问题的提示

  • 请确保在“订阅筛选器”中选择与连接器关联的订阅,该订阅位于Azure 门户的“目录 + 订阅”部分。
  • 应在安全连接器上分配标准。 若要检查,请转到 Defender for Cloud 左侧菜单中的“环境设置”,选择连接器,然后选择“设置”。 如果未分配任何标准,请选择三点以检查你是否有权分配标准。
  • 连接器资源应在 Azure Resource Graph 中。 使用以下 Resource Graph 查询检查:resources | where ['type'] =~ "microsoft.security/securityconnectors"
  • 请确保在 AWS 或 GCP 连接器上启用了发送 Kubernetes 审核日志,以便你可以获取控制平面的威胁检测警报
  • 确保 Microsoft Defender 传感器和适用于已启用 Azure Arc 的 Kubernetes 的 Azure Policy 扩展已成功安装到你的 Amazon Elastic Kubernetes Service (EKS) 和 Google Kubernetes Engine (GKE) 群集。 可以使用以下 Defender for Cloud 建议来验证并安装代理:
    • EKS 群集应已安装 Microsoft Defender 的 Azure Arc 扩展
    • GKE 群集应已安装 Microsoft Defender 的 Azure Arc 扩展
    • 已启用 Azure Arc 的 Kubernetes 群集应已安装 Azure Policy 扩展
    • GKE 群集应已安装 Azure Policy 扩展
  • 如果在删除 AWS 或 GCP 连接器时遇到问题,请检查是否有锁。 Azure 活动日志中的错误可能会提示存在锁。
  • 检查 AWS 帐户或 GCP 项目中是否存在工作负荷。

AWS 连接器问题的提示

  • 确保 CloudFormation 模板部署成功完成。
  • 创建 AWS 根帐户后,请等待至少 12 小时。
  • 确保 EKS 群集已成功连接到已启用 Azure Arc 的 Kubernetes。
  • 如果在 Defender for Cloud 中看不到 AWS 数据,请确保 AWS 帐户中存在将数据发送到 Defender for Cloud 所需的 AWS 资源。

向 AWS 进行 API 调用的成本影响

当你加入 AWS 单一或管理帐户时,Defender for Cloud 中的发现服务会立即开始对环境进行扫描。 发现服务会执行对各种服务终结点的 API 调用,以便检索 Azure 帮助保护的所有资源。

完成此初始扫描后,服务会按照加入期间配置的间隔定期扫描你的环境。 在 AWS 中,对帐户的每个 API 调用都会生成在 CloudTrail 资源中记录的查找事件。 CloudTrail 资源会产生成本。 有关定价详细信息,请参阅 Amazon AWS 网站上的 AWS CloudTrail 定价页。

如果将 CloudTrail 连接到 GuardDuty,则你还需负责相关成本。 可以在 Amazon AWS 网站上的 GuardDuty 文档中找到这些成本。

获取本机 API 调用数

可通过两种方法获取 Defender for Cloud 发出的调用数:

这两种方法都依赖于查询 AWS CloudTrail 日志。

若要获取调用数,请转到 Athena 表或事件数据存储,并根据需求使用以下预定义查询之一。 将 <TABLE-NAME> 替换为 Athena 表或事件数据存储的 ID。

  • 列出 Defender for Cloud 的总体 API 调用数:

    SELECT COUNT(*) AS overallApiCallsCount FROM <TABLE-NAME> 
    WHERE userIdentity.arn LIKE 'arn:aws:sts::<YOUR-ACCOUNT-ID>:assumed-role/CspmMonitorAws/MicrosoftDefenderForClouds_<YOUR-AZURE-TENANT-ID>' 
    AND eventTime > TIMESTAMP '<DATETIME>' 
    
  • 列出 Defender for Cloud 按天聚合的总体 API 调用数:

    SELECT DATE(eventTime) AS apiCallsDate, COUNT(*) AS apiCallsCountByRegion FROM <TABLE-NAME> 
    WHERE userIdentity.arn LIKE 'arn:aws:sts:: <YOUR-ACCOUNT-ID>:assumed-role/CspmMonitorAws/MicrosoftDefenderForClouds_<YOUR-AZURE-TENANT-ID>' 
    AND eventTime > TIMESTAMP '<DATETIME>' GROUP BY DATE(eventTime)
    
  • 列出 Defender for Cloud 按事件名称聚合的总体 API 调用数:

    SELECT eventName, COUNT(*) AS apiCallsCountByEventName FROM <TABLE-NAME> 
    WHERE userIdentity.arn LIKE 'arn:aws:sts::<YOUR-ACCOUNT-ID>:assumed-role/CspmMonitorAws/MicrosoftDefenderForClouds_<YOUR-AZURE-TENANT-ID>' 
    AND eventTime > TIMESTAMP '<DATETIME>' GROUP BY eventName     
    
  • 列出 Defender for Cloud 按区域聚合的总体 API 调用数:

    SELECT awsRegion, COUNT(*) AS apiCallsCountByRegion FROM <TABLE-NAME> 
    WHERE userIdentity.arn LIKE 'arn:aws:sts::120589537074:assumed-role/CspmMonitorAws/MicrosoftDefenderForClouds_<YOUR-AZURE-TENANT-ID>' 
    AND eventTime > TIMESTAMP '<DATETIME>' GROUP BY awsRegion
    

GCP 连接器问题的提示

  • 确保 GCP Cloud Shell 脚本成功完成。
  • 确保 GKE 群集已成功连接到已启用 Azure Arc 的 Kubernetes。
  • 确保 Azure Arc 终结点位于防火墙允许列表中。 GCP 连接器对这些终结点进行 API 调用,以提取必要的载入文件。
  • 如果 GCP 项目的加入失败,请确保你具有为加入过程创建服务主体的 compute.regions.list 权限和 Microsoft Entra 权限。 确保在 GCP 项目中创建了 GCP 资源 WorkloadIdentityPoolIdWorkloadIdentityProviderIdServiceAccountEmail

对 GCP 的 Defender API 调用

加入 GCP 单一项目或组织时,Defender for Cloud 中的发现服务会立即开始对你的环境进行扫描。 发现服务会执行对各种服务终结点的 API 调用,以便检索 Azure 帮助保护的所有资源。

完成此初始扫描后,服务会按照加入期间配置的间隔定期扫描你的环境。

若要获取 Defender for Cloud 执行的本机 API 调用数:

  1. 转到“日志记录”>“日志资源管理器”。

  2. 根据需要筛选日期(例如 1d)。

  3. 若要显示 Defender for Cloud 执行的 API 调用,请运行以下查询:

    protoPayload.authenticationInfo.principalEmail : "microsoft-defender"
    

请参阅直方图以查看一段时间内的调用数。

排查 Log Analytics 代理的问题

Defender for Cloud 使用 Log Analytics 代理来收集和存储数据。 本文中的信息涉及的是迁移到 Log Analytics 代理后的 Defender for Cloud 功能。

警报类型为:

  • 虚拟机行为分析 (VMBA)
  • 网络分析
  • Azure SQL 数据库和 Azure Synapse Analytics 分析
  • 上下文信息

你可以根据警报类型收集所需的信息,以便通过以下资源来调查警报:

  • Windows 的虚拟机 (VM) 事件查看器中的安全日志
  • Linux 中的审核守护程序 (auditd)
  • 攻击资源上的 Azure 活动日志和已启用的诊断日志

你可以共享有关警报说明和相关性的反馈。 转到警报,选择“这是否有用”按钮,选择原因,然后输入评论,对反馈进行说明。 我们会持续监视此反馈渠道,以便改进我们的警报。

检查 Log Analytics 代理进程和版本

与 Azure Monitor 一样,Defender for Cloud 使用 Log Analytics 代理从 Azure 虚拟机收集安全数据。 启用数据收集并在目标计算机上安装代理后,HealthService.exe 进程应正在运行中。

打开服务管理控制台 (services.msc),确保 Log Analytics 代理服务正在运行。

任务管理器中 Log Analytics 代理服务的屏幕截图。

若要查看你拥有的代理版本,请打开任务管理器。 在“进程”选项卡上,找到 Log Analytics 代理服务,右键单击它,然后选择“属性”。 在“详细信息”选项卡上,查找文件版本。

Log Analytics 代理服务的详细信息的屏幕截图。

检查 Log Analytics 代理的安装方案

在计算机上安装 Log Analytics 代理时,有两种可产生不同结果的安装方案。 支持的方案有:

  • Defender for Cloud 自动安装的代理:可以在 Defender for Cloud 中查看警报和日志搜索。 你会收到电子邮件通知,此类通知发送到的电子邮件地址是在资源所属的订阅的安全策略中配置的。

  • 在位于 Azure 中的 VM 上手动安装代理:在此方案中,如果是在 2017 年 2 月前手动下载并安装的代理,则只有在筛选工作区所属的订阅时,才能在 Defender for Cloud 门户中查看警报。 如果对资源所属订阅进行筛选,则不会看到任何警报。 您会通过工作区所属订阅的安全策略中配置的电子邮件地址收到电子邮件通知。

    若要避免筛选问题,请务必下载最新版本的代理。

监视代理的网络连接问题

若要使代理连接到 Defender for Cloud 并注册,他们必须有权访问 Azure 网络资源的 DNS 地址和网络端口。 若要启用此访问,请执行以下操作:

  • 使用代理服务器时,请确保在代理设置中正确配置适当的代理服务器资源。
  • 将网络防火墙配置为允许访问 Log Analytics。

Azure 网络资源包括:

代理资源 端口 绕过 HTTPS 检查
*.ods.opinsights.azure.com 443
*.oms.opinsights.azure.com 443
*.blob.core.windows.net 443
*.azure-automation.net 443

如果在载入 Log Analytics 代理时遇到问题,请阅读对运营管理套件的载入问题进行故障排除

对运行不当的反恶意软件保护进行故障排除

来宾代理是 Microsoft Antimalware 扩展进行的所有操作的父进程。 当来宾代理进程故障时,作为来宾代理子进程运行的 Microsoft 反恶意软件保护也可能发生故障。

下面提供了一些故障排除提示:

  • 如果目标 VM 是从自定义映像创建的,请确保 VM 的创建者安装了来宾代理。
  • 如果目标是 Linux VM,安装 Windows 版本的反恶意软件扩展将失败。 Linux 来宾代理具有特定的操作系统和软件包要求。
  • 如果 VM 是使用旧版本的来宾代理创建的,则旧代理可能无法自动更新到较新版本。 创建自己的映像时,请始终使用最新版本的来宾代理。
  • 某些第三方管理软件可能会禁用来宾代理,或阻止对某些文件位置的访问。 如果 VM 上安装有第三方管理软件,请确保反恶意软件代理在排除列表中。
  • 确保防火墙设置和网络安全组不会阻止传入和传出来宾代理的网络流量。
  • 确保没有访问控制列表阻止磁盘访问。
  • 来宾代理需要足够的磁盘空间才能正常运行。

默认情况下,Microsoft Antimalware 用户界面处于禁用状态。 但是,可以在 Azure 资源管理器 VM 上启用 Microsoft Antimalware 用户界面

对加载仪表板时出现的问题进行故障排除

如果在加载工作负载保护仪表板时遇到问题,请确保首次在订阅上启用 Defender for Cloud 的用户以及想要启用数据收集的用户具有订阅上的“所有者”或“参与者”角色。 如果是这样,则订阅中具有“读者”角色的用户可以看到仪表板、警报、建议和策略。

排查 Azure DevOps 组织的连接器问题

如果无法加入 Azure DevOps 组织,请尝试以下故障排除提示:

  • 请确保你使用的是 Azure 门户的非预览版本,授权步骤在 Azure 预览门户中不起作用。

  • 请务必知晓你授权访问时登录的帐户,因为这是系统用于加入的帐户。 帐户可与相同的电子邮件地址相关联,但也可与不同的租户相关联。 请确保选择正确的帐户/租户组合。 如果需要更改组合:

    1. 在你的 Azure DevOps 配置文件页上,使用下拉菜单选择另一个帐户。

      用于选择帐户的 Azure DevOps 配置文件页面的屏幕截图。

    2. 选择正确的帐户/租户组合后,转到 Defender for Cloud 中的“环境设置”,编辑你的 Azure DevOps 连接器。 重新授权连接器以更新为正确的帐户/租户组合。 然后,你应在下拉菜单中看到组织的正确列表。

  • 确保你在要加入的 Azure DevOps 组织中具有项目集合管理员角色。

  • 确保 Azure DevOps 组织的“通过 OAuth 的第三方应用程序访问”开关为“开”。 详细了解如何启用 OAuth 访问

请与 Microsoft 支持部门联系

还可以在 Defender for Cloud Q&A 页中找到 Defender for Cloud 的故障排除信息。

如果需要更多帮助,可以在 Azure 门户中提出新的支持请求。 在“帮助 + 支持”页上,选择“创建支持请求”。

用于在 Azure 门户中创建支持请求的选择的屏幕截图。

另请参阅