在 Microsoft Defender 门户中调查和响应容器威胁

重要

本文中的一些信息与预发布产品有关,在商业发布之前,该产品可能会进行重大修改。 Microsoft对此处提供的信息不作任何明示或暗示的保证

安全运营现在可以近乎实时地调查和响应与容器相关的警报,并在Microsoft Defender门户中通过集成云原生响应操作和调查日志来搜寻相关活动。 攻击路径的可用性还有助于分析师立即调查和解决关键安全问题,以防止潜在的违规行为。

当组织在 Azure Kubernetes 服务 (AKS) 、Google Kubernetes 引擎 (GKE) 、ad Amazon Elastic Kubernetes Service (EKS) 等平台上使用容器和 Kubernetes 时,攻击面不断扩大,增加了安全挑战。 容器也可能成为威胁参与者的目标,并用于恶意目的。

安全运营中心 (SOC) 分析师现在可以使用准实时警报轻松跟踪容器威胁,并通过隔离或终止容器 Pod 来立即响应这些威胁。 此集成使分析师只需单击一下即可立即缓解来自其环境的容器攻击。

然后,分析人员可以调查攻击的全部范围,并能够在事件图中搜寻相关活动。 他们还可以进一步应用预防措施,并在事件图中提供潜在的攻击路径。 使用来自攻击路径的信息,安全团队可以检查路径并防止可能的违规行为。 此外,特定于容器威胁和攻击的威胁分析报告可供分析师获取更多信息并应用容器攻击响应和预防建议。

先决条件

AKS、EKS 和 GKE 平台的用户可以使用以下许可证在 Microsoft Defender 门户中利用云响应操作、与云相关的调查日志和攻击路径:

所需许可证 操作
用于容器的Microsoft Defender 查看与容器相关的警报
查看高级搜寻
隔离 Pod
终止 Pod 中用于调查的容器相关数据
云安全态势管理Microsoft Defender 在事件图中查看攻击路径
Microsoft Security Copilot 查看并应用引导式响应来调查和修正容器威胁

Microsoft Defender门户中的云响应操作需要以下容器Microsoft Defender:

  • Defender 传感器
  • Kubernetes API 访问

有关这些组件的详细信息,请参阅为容器组件配置Microsoft Defender

网络策略要求

隔离 Pod 响应操作支持 Kubernetes 群集版本 1.27 及更高版本。 还需要以下网络插件:

网络插件 所需的最低版本
Azure-NPM 1.5.34
白布 3.24.1
纤毛 1.13.1
AWS-node 1.15.1

隔离 Pod 响应操作需要 Kubernetes 群集的网络策略强制程序。 以下文档提供了有关如何根据平台安装和检查网络策略的具体步骤:

若要验证网络插件是否受支持,请按照排查问题部分中的步骤访问平台Cloud Shell并检查网络插件。

无论是否存在网络策略, 终止 Pod 响应操作都会起作用。

权限

若要执行任何响应操作,用户必须在Microsoft Defender XDR统一的基于角色的访问控制中对 Microsoft Defender for Cloud 具有以下权限:

权限名称 级别
警报 管理
响应 管理

有关这些权限的详细信息,请参阅 Microsoft Defender XDR统一基于角色的访问控制 (RBAC) 中的权限

调查容器威胁

若要在 Microsoft Defender 门户中调查容器威胁,请执行以下操作:

  1. 在左侧导航菜单中选择“ 调查 & 响应 > 事件和警报 ”以打开事件或警报队列。
  2. 在队列中,选择“筛选”,然后在“服务源”下选择“Microsoft Defender”“用于容器的云>Microsoft Defender”。 事件队列经过筛选以显示与容器相关的事件。
  3. 在事件图中,选择需要调查的 Pod/服务/群集实体。 选择“Kubernetes 服务详细信息”、“Kubernetes Pod 详细信息”、“Kubernetes 群集详细信息”“容器注册表详细信息”以查看有关服务、Pod 或注册表的相关信息。

使用 威胁分析 报告,分析师可以利用专家Microsoft安全研究人员提供的威胁情报来了解利用容器的积极威胁参与者和活动、可能影响容器的新攻击技术以及影响容器的常见威胁。

从威胁情报>威胁分析访问威胁分析报告。 还可以在事件侧窗格的“相关威胁”下选择“查看威胁分析报告”,从事件页面打开特定报告。

突出显示如何从事件页查看威胁分析报告。

威胁分析报告还包含相关的缓解、恢复和预防方法,分析师可以评估这些方法并将其应用于其环境。 使用威胁分析报告中的信息可帮助 SOC 团队保护其环境免受容器攻击。 下面是有关容器攻击的分析报告的示例。

容器攻击威胁分析报告的示例页。

响应容器威胁

确定 Pod 遭到入侵或恶意后,可以 隔离终止 Pod。 在事件图中,选择 Pod,然后转到 “操作” 以查看可用的响应操作。 还可以在实体端窗格中找到这些响应操作。

突出显示事件中的云响应操作。

调查完成后,可以使用“从隔离释放”操作 来释放 Pod。 此选项显示在独立 Pod 的侧窗格中。

可以在 操作中心查看所有响应操作的详细信息。 在“操作中心”页中,选择要检查的响应操作,以查看有关操作的详细信息,例如操作所针对的实体、操作完成时间,并查看对操作的注释。 对于隔离的 Pod,“操作中心详细信息”窗格中还提供了 “从隔离释放 ”操作。

操作中心中列出的云响应操作示例。

若要确定容器攻击的全部范围,可以使用事件图中提供的 Go 搜寻 操作来深化调查。 可以从事件图中立即查看所有与容器相关事件相关的进程事件和活动。

突出显示事件图中的 go 搜寻操作。

“高级搜寻 ”页中,可以使用 CloudProcessEventsCloudAuditEvents 表扩展对容器相关活动的搜索。

CloudProcessEvents 表包含有关多云托管环境(如 Azure Kubernetes 服务、Amazon Elastic Kubernetes 服务和 Google Kubernetes 引擎)中的进程事件的信息。

CloudAuditEvents 表包含来自受 Microsoft Defender for Cloud 保护的云平台的云审核事件。 它还包含 Kubeaudit 日志,这些日志保存有关 Kubernetes 相关事件的信息。

解决问题

以下部分介绍了在调查和响应容器威胁时可能遇到的问题。

隔离 Pod 操作不可用

如果隔离 Pod 操作灰显,则需要验证是否具有执行此操作所需的权限。 请参阅权限部分,检查并验证是否具有正确的权限。

有关详细信息,请参阅 Microsoft Defender XDR统一基于角色的访问控制 (RBAC) 中的权限。

隔离 Pod 操作失败

  1. 检查 Kubernetes 群集版本。 隔离 Pod 操作支持版本 1.27 及更高版本的 Kubernetes 群集。
  2. 检查是否正在使用所需的网络插件,以及它是否与支持的最低版本匹配。 若要检查插件,请访问平台中的 Cloud Shell,并运行 命令来检查网络插件。
  3. 确保目标 Pod 处于有效或活动状态。

了解如何根据平台执行以下步骤来访问Cloud Shell和检查网络插件:

在 Azure Microsoft

  1. 登录到Azure 门户然后导航到群集。

  2. “基本 信息”上方,选择“ 连接 ”按钮,然后按照说明进行操作。

  3. Cloud Shell将在浏览器底部打开。 在命令行界面中,运行以下命令以检查网络插件:

    kubectl get pods --all-namespaces -o json |jq -r '.items[].metadata.labels[“k8s-app”]' |uniq |grep -E 'azure-npm|calico-node|cilium|aws-node' |head -n 1

结果应提及网络策略要求中的任何指定插件。 空行表示未安装支持的插件。

在 Google Cloud Platform 上

  1. 在 Google Cloud 门户中导航群集。

  2. 选择群集名称上方的“ 连接 ”。 在出现的小窗口中,复制以下命令,并在本地终端中运行它。

    kubectl get pods --all-namespaces -o json |jq -r '.items[].metadata.labels[“k8s-app”]' |uniq |grep -E 'azure-npm|calico-node|cilium|aws-node' |head -n 1

  3. 还可以选择“在Cloud Shell中运行”,以运行在浏览器底部打开的 shell 会话。 可以在 接口中复制 命令,以检查网络插件。

结果应提及网络策略要求中的任何指定插件。 空行表示未安装支持的插件。

在 Amazon Web Services 上

  1. 在 AWS 云门户中导航到群集。

  2. 选择右上角的“ CloudShell ”。 浏览器底部将打开一个Cloud Shell会话,该会话提供用于管理 AWS 资源的命令行界面。

  3. 通过运行以下命令连接到群集:

    aws eks --region <cluster region> update-kubeconfig --name <cluster name>**

    注意

    确保为 Calico 和 Cilium 插件删除或禁用 aws 节点。

终止 Pod 操作失败

需要确认目标 Pod 的状态是否处于活动状态或有效。 若要检查 Pod 是否处于活动状态,请在 Cloud Shell中运行以下命令:

kubectl get pod-name <>

另请参阅