你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
针对容器的攻击路径分析和增强的风险搜寻
攻击路径分析是基于图的算法,用于扫描云安全图。 扫描会暴露可攻击路径,这些路径可能会被攻击者用来侵入你的环境,以访问具有重大影响的资产。 攻击路径分析会公开攻击路径,并提供关于如何才能以最佳方式解决问题的建议。这些建议可破坏攻击路径,防止攻击者成功破坏环境。
通过根据风险级别、名称、环境和风险因素、入口点、目标、受影响的资源和活动建议对攻击路径进行排序,来探索和调查攻击路径。 浏览资源上的云安全图见解。 见解类型的示例包括:
- 向 Internet 公开的 Pod
- 特权容器
- Pod 使用主机网络
- 容器映像易受到远程代码执行的攻击
Azure:使用模拟的易受攻击容器映像来测试攻击路径和安全资源管理器
如果攻击路径列表中没有条目,仍可使用模拟容器映像测试此功能。 使用以下步骤设置该测试:
要求:测试范围内的 Azure 容器注册表 (ACR) 实例。
将模拟的易受攻击映像导入到 Azure 容器注册表:
首先,通过运行以下操作将基础映像(例如 alpine)拉取到本地环境:
docker pull alpine
使用以下标签标记映像并将其推送到 ACR。 将
<MYACR>
替换为 Azure 容器注册表名称:docker tag alpine <MYACR>.azurecr.io/mdc-mock-0001 docker push <MYACR>.azurecr.io/mdc-mock-0001
如果没有 AKS(Azure Kubernetes 服务)群集,请使用以下命令创建新的 AKS 群集:
az aks create -n myAKSCluster -g myResourceGroup --generate-ssh-keys --attach-acr $MYACR
如果 AKS 未附加到 ACR,请使用以下 Cloud Shell 命令行将 AKS 实例指向从选定 ACR 拉取映像:
az aks update -n myAKSCluster -g myResourceGroup --attach-acr <acr-name>
对 Cloud Shell 会话进行身份验证以使用群集:
az aks get-credentials --subscription <cluster-suid> --resource-group <your-rg> --name <your-cluster-name>
安装 ngnix 入口控制器:
helm install ingress-controller oci://ghcr.io/nginxinc/charts/nginx-ingress --version 1.0.1
运行以下命令以部署模拟的易受攻击映像,从而向 Internet 公开易受攻击的容器:
helm install dcspmcharts oci://mcr.microsoft.com/mdc/stable/dcspmcharts --version 1.0.0 --namespace mdc-dcspm-demo --create-namespace --set image=<your-image-uri> --set distribution=AZURE
执行以下步骤验证是否成功:
- 查找mdc-dcspm-demo作为命名空间的条目
- 在“工作负载-> 部署”选项卡中,验证“pod1”和“pod2”是否已创建 3/3,以及“ingress-controller-nginx-ingress-controller”是否已创建 1/1。
- 在服务和入口中,查找>服务“service1”和“ingress-controller-nginx-ingress-controller”。 在“入口”选项卡中,验证是否使用 IP 地址和 nginx 类创建了入口。
注意
完成上述流程后,最多可能需要 24 小时才能在云安全资源管理器和攻击路径中查看结果。
完成攻击路径测试后,通过转到“攻击路径分析”来调查所创建的攻击路径,并搜索所创建的攻击路径。 有关详细信息,请参阅识别和修正攻击路径。
AWS:使用模拟的易受攻击容器映像来测试攻击路径和安全资源管理器
创建名为“mdc-mock-0001”的 ECR 存储库
转到 AWS 帐户并选择“命令行或编程访问”。
打开命令行并选择“选项 1: 设置 AWS 环境变量(短期凭据)”。 复制 AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY 和 AWS_SESSION_TOKEN 环境变量的凭据。
运行以下命令以获取 Amazon ECR 注册表的身份验证令牌。 将
<REGION>
替换为你的注册表所在的区域。 将<ACCOUNT>
替换为你的 AWS 帐户 ID。aws ecr get-login-password --region <REGION> | docker login --username AWS --password-stdin <ACCOUNT>.dkr.ecr.<REGION>.amazonaws.com
创建一个按名称标记为易受攻击的 Docker 映像。 该映像的名称中应包含字符串“mdc-mock-0001”。 创建映像后,请使用以下命令将其推送到 ECR 注册表(将
<ACCOUNT>
和<REGION>
替换为你的 AWS 帐户 ID 和区域):docker pull alpine docker tag alpine <ACCOUNT>.dkr.ecr.<REGION>.amazonaws.com/mdc-mock-0001 docker push <ACCOUNT>.dkr.ecr.<REGION>.amazonaws.com/mdc-mock-0001
连接到 EKS 群集并安装提供的 Helm 图表。 配置
kubectl
以使用 EKS 群集。 运行以下命令(将<your-region>
和<your-cluster-name>
替换为你的 EKS 群集区域和名称):aws eks --region <your-region> update-kubeconfig --name <your-cluster-name>
验证配置。 你可以通过运行以下命令来检查是否已正确配置
kubectl
:kubectl get nodes
安装 ngnix 入口控制器:
helm install ingress-controller oci://ghcr.io/nginxinc/charts/nginx-ingress --version 1.0.1
安装以下 Helm 图表:
helm install dcspmcharts oci://mcr.microsoft.com/mdc/stable/dcspmcharts --version 1.0.0 --namespace mdc-dcspm-demo --create-namespace --set image=<ACCOUNT>.dkr.ecr.<REGION>.amazonaws.com/mdc-mock-0001 --set distribution=AWS
该 Helm 图表会将资源部署到你的群集上,该群集可用于推断攻击路径。 它还包括易受攻击的映像。
注意
完成上述流程后,最多可能需要 24 小时才能在云安全资源管理器和攻击路径中查看结果。
完成攻击路径测试后,通过转到“攻击路径分析”来调查所创建的攻击路径,并搜索所创建的攻击路径。 有关详细信息,请参阅识别和修正攻击路径。
GCP:使用模拟的易受攻击容器映像来测试攻击路径和安全资源管理器
在 GCP 门户中,搜索“项目注册表”,然后创建名为“mdc-mock-0001”的 GCP 存储库
按照这些说明将映像推送到存储库。 运行以下 命令:
docker pull alpine docker tag alpine <LOCATION>-docker.pkg.dev/<PROJECT_ID>/<REGISTRY>/<REPOSITORY>/mdc-mock-0001 docker push <LOCATION>-docker.pkg.dev/<PROJECT_ID>/<REGISTRY>/<REPOSITORY>/mdc-mock-0001
转到 GCP 门户。 然后转到“Kubernetes 引擎”>“群集”。 选择连接按钮。
连接后,在 Cloud Shell 中运行该命令,或复制连接命令并在计算机上运行它:
gcloud container clusters get-credentials contra-bugbash-gcp --zone us-central1-c --project onboardingc-demo-gcp-1
验证配置。 你可以通过运行以下命令来检查是否已正确配置
kubectl
:kubectl get nodes
若要安装 Helm 图表,请执行以下步骤:
在门户中的“项目注册表”下转到存储库,并在“按摘要拉取”下查找映像 URI。
使用以下命令安装 Helm 图表:
helm install dcspmcharts oci:/mcr.microsoft.com/mdc/stable/dcspmcharts --version 1.0.0 --namespace mdc-dcspm-demo --create-namespace --set image=<IMAGE_URI> --set distribution=GCP
该 Helm 图表会将资源部署到你的群集上,该群集可用于推断攻击路径。 它还包括易受攻击的映像。
注意
完成上述流程后,最多可能需要 24 小时才能在云安全资源管理器和攻击路径中查看结果。
完成攻击路径测试后,通过转到“攻击路径分析”来调查所创建的攻击路径,并搜索所创建的攻击路径。 有关详细信息,请参阅识别和修正攻击路径。
使用云安全资源管理器查找容器状况问题
可以通过以下方法之一生成查询:
在以下部分中,我们提供了你可以选择或创建的查询示例。
使用云安全资源管理器模版浏览风险
在 Defender for Cloud 概述页中,打开云安全资源管理器。
会显示一些适用于 Kubernetes 的现成模板。 选择其中一个模板:
- 运行漏洞严重性为高的映像的 Azure Kubernetes Pod
- Kubernetes 命名空间包含易受攻击的 Pod
选择“打开查询”;模板会在屏幕的上半部分生成查询。 选择“搜索”以查看结果。
使用云安全资源管理器创建自定义查询
用户还可以创建自己的自定义查询。 以下示例演示了如何搜索 Pod(运行易受远程代码执行攻击的容器映像)。
结果列在查询下方。
后续步骤
- 详细了解 Defender for Cloud 的 Defender 计划。