目前企业容器的使用越来越普遍,根据Gartner的统计,目前已经有一半的企业已经使用了容器部署。而且这个增长的趋势也会越来越快。其中容器的镜像仓库为存储和分发应用镜像提供了便捷、集中化的来源。当今我们的企业和组织可以很方便地将数以万计的镜像存储在镜像仓库中,比如说我们AWS的镜像仓库ECR (Elastic Container Registry)。
可以说他现在是容器化环境运行的核心,因此保护它的安全至关重要。镜像仓库中的镜像给我们的容器部署带来了很多的便利性,但是同时,但是一旦在镜像仓库中存在具有漏洞或者安全隐患的镜像,也会通过容器的自动部署给我们的容器环境带来很大的安全风险。因此,持续监控镜像仓库中镜像的漏洞状态,是一项核心安全要求,需要我们能够保证我们所部署运行的容器本身是安全的。
AWS的ECR本身就内置了镜像漏洞扫描功能,同时可以在镜像上传时自动进行扫描,然后列出镜像中的潜在漏洞。使用也非常的方便。ECR的扫描引擎利用的是开源的CoreOS Clair,并通过Clair提供的CVE数据库列出镜像中的安全漏洞。对镜像内的恶意代码,或者镜像内是否存有敏感信息(用户身份信息),镜像是否以root身份运行,镜像的环境变量里是否存有用户密码信息等这些用户配置层面的检查,还需要利用第三方工具。同时,如何能保证我们的构建的镜像符合Docker或Kubernetes的最佳实践,如何保证合规标准,比如NIST,GDPR,PCI等,同样需要第三方的安全工具来补全。
因此,对很多重度使用容器部署的企业来说,如何能把镜像漏洞扫描,镜像配置及合规检查紧密集成到一个平台,能够清晰的了解自己镜像仓库中镜像的安全状态及其合规情况就显得特别重要。例如:
Cuebiq 是一家总部在美国的市场推广公司。由于要迅速响应市场的变化,及快速发布产品,Cuebiq 启用了Kubernetes的架构,同时组织了DevOps的团队来支持应用的快速开发及迭代。但是如何管理容器平台的安全,成为了亟待解决的问题。通过 Prisma Cloud,Cuebiq 能够容易的监控容器间的网络访问,阻止恶意的流量,监控容器进程,并且持续的镜像仓库进行安全漏洞,镜像配置,镜像合规性扫描。以保证所运行的镜像本身都是安全的。
我们今天就来介绍一下如何通过 Palo Alto Networks 的 Prisma Cloud 计算版本与 AWS ECR 集成来扫描您镜像仓库中的镜像,查看镜像中存在的漏洞,配置及其镜像合规问题。
要扫描AWS的ECR镜像仓库,Prisma Cloud必须使用IAM用户(服务帐户)或IAM角色通过ECR进行身份验证。所需的最低权限策略是
AmazonEC2ContainerRegistryReadOnly
这是一个托管的预定义策略。AWS托管策略授予常见用例所需的最少权限集,因此您无需花费大量时间自己调查权限。
AmazonEC2ContainerRegistryReadOnly
权限策略当前定义如下:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecr:GetAuthorizationToken",
"ecr:BatchCheckLayerAvailability",
"ecr:GetDownloadUrlForLayer",
"ecr:GetRepositoryPolicy",
"ecr:DescribeRepositories",
"ecr:ListImages",
"ecr:DescribeImages",
"ecr:BatchGetImage"
],
"Resource": "*"
}
]
}
先决条件:
您已部署完容器环境
您已在环境中安装好了Prisma Cloud console及其defender组件。
第一步:打开控制台并转到 防御>漏洞>镜像仓库
第二步:请点击 添加镜像仓库。
第三步:在对话框中,输入以下信息:
- 选择Amazon EC2 container registry
- 输入镜像仓库的URL
- 输入要扫描的仓库名称
- 在标签字段中,输入标签名。将此字段留空表示扫描所有标签
- 配置AWS的认证信息
-
- 如要使用IAM Role进行身份认证,打开 使用IAM Role
- 如要使用IAM 凭据进行验证,请点击 添加 在里面添加AWS凭据信息
-
- 在OS Type中,选择镜像仓库中镜像类型(Linux或者Windows)
- 在Scanner中,选择 Automatic (自动)
- 在Number of Scanners中,输入您希望启用扫描功能的defender容器数量
- 设置Cap的数量。选择默认的5会只扫描最近的5个镜像,设为0将扫描所有镜像
- 单击添加
第四步:点击黄色存储按键
第五步: 检查是否正在扫描添加的镜像仓库中的镜像
- 导航去Monitor –> Vulnerabilities -> Registry
一个进度条会显示当前的扫描状态。当扫描完成时,扫描结果会加入扫描结果表格中
2)可以点击镜像中的漏洞,查看漏洞信息
3)可以点击合规检查,检查容器内是否有恶意软件,是否存有用户敏感信息等等。
4)可以点击Layer查看镜像build的每个Layer信息,清晰了解问题的根源及提供如何修复建议