容器镜像服务ACR支持所有基于Linux的容器镜像安全扫描,识别镜像中所有已知的漏洞信息,对漏洞信息进行评估和修复。本文介绍如何单个和批量扫描容器镜像,获取镜像漏洞信息。

背景信息

在云原生交付链,ACR能在推送完成后自动进行安全扫描。若您设置过安全阻断策略,其会识别镜像的安全风险并阻断高风险的容器镜像。通过安全策略的容器镜像才会进行交付链后续的分发和部署环节。交付链能保证容器应用的安全交付和高效部署。您也可以集成安全扫描的相关API,实现自定义周期的镜像安全扫描功能。如果未使用交付链,您可以在镜像扫描页面创建扫描规则实现镜像推送自动触发扫描。具体操作,请参见创建扫描规则

安全扫描的时长主要取决于镜像的大小。一般情况下扫描一个镜像可以在三分钟之内完成。

单镜像扫描

  1. 登录容器镜像服务控制台
  2. 在顶部菜单栏,选择所需地域。
  3. 在左侧导航栏,选择实例列表
  4. 实例列表页面单击目标企业版实例。
  5. 在企业版实例管理页面选择仓库管理 > 镜像仓库
  6. 镜像仓库页面单击目标仓库操作列的管理
  7. 在镜像仓库详情页面左侧导航栏中选择镜像版本,单击目标镜像版本操作列的安全扫描
  8. 安全扫描页面单击触发扫描
    待扫描完成后,您可以在安全扫描页面查看扫描结果,包括安全漏洞详细信息。关于扫描结果的详细介绍,请参见镜像扫描结果

批量镜像扫描

批量镜像扫描功能支持使用Trivy扫描引擎和云安全扫描引擎,区别如下:
  • Trivy扫描引擎:开源扫描引擎,支持检测系统漏洞和应用漏洞,不支持一键修复系统漏洞功能。
  • 云安全扫描引擎:阿里云自研的扫描引擎,支持检测系统漏洞、应用漏洞、基线检查和恶意样本,支持一键修复系统漏洞功能。
    • 系统漏洞:提供镜像系统漏洞扫描及一键修复能力,为您提供安全可信的镜像。
    • 应用漏洞:提供镜像应用漏洞扫描功能,为您扫描容器相关中间件上的漏洞,帮助您找到漏洞位置,便于您根据漏洞位置修复应用漏洞,创造安全的镜像运行环境。
    • 基线检查:提供镜像安全基线检查功能,为您扫描容器资产中存在的基线安全风险,帮助您找到存在的基线安全风险位置,便于您根据位置修复基线安全风险。
    • 恶意样本:提供容器恶意样本的检测能力,为您展示资产中存在的容器安全威胁,帮助您找到存在恶意样本的位置,便于您根据位置修复恶意样本,大幅降低您使用容器的安全风险。
  1. 为企业版实例配置VPC网络。具体操作,请参见配置专有网络的访问控制
    您需要为企业版实例配置VPC网络,批量扫描镜像功能需要使用该VPC网络扫描镜像。

    首次使用云安全扫描引擎需要访问云安全后台,首次访问会提示您创建AliyunServiceRoleForSas系统角色。

    说明 如果您已为企业版实例配置VPC网络,无需执行此步骤。
  2. 登录容器镜像服务控制台
  3. 在顶部菜单栏,选择所需地域。
  4. 实例列表页面单击目标企业版实例。
  5. 在企业版实例管理页面选择安全可信 > 镜像扫描
  6. 选择扫描引擎。
    • 设置扫描引擎为Trivy扫描引擎
      • 如果您之前未购买云安全扫描引擎,则镜像扫描页面右上角默认使用Trivy扫描引擎。
      • 如果您已购买云安全中心里的镜像扫描服务,Trivy扫描引擎就会切换成云安全扫描引擎,您需要在镜像扫描页面右上角单击云安全扫描引擎右侧的切换,单击Trivy扫描引擎,在提示对话框单击确定
    • 设置扫描引擎为云安全扫描引擎

      如果您已购买云安全扫描引擎,则镜像扫描页面默认使用云安全引擎,您无需进行其他操作。如果您未购买云安全扫描引擎,您需要进行以下操作:

      1. 授予云安全中心调用ACR的OpenAPI权限。
        1. 单击云资源访问授权
        2. 云资源访问授权页面单击同意授权
      2. 镜像扫描页面扫描信息区域单击立即升级云安全引擎
      3. 设置安全扫描云安全扫描引擎,选中容器镜像服务协议,其他参数根据实际情况设置,单击立即购买,然后完成支付。

        返回镜像扫描页面,可以看到页面右上角已默认切换为云安全引擎。

        说明 购买云安全扫描引擎后,您可以在镜像扫描页面扫描信息区域单击设置,在提示对话框选中同步,然后单击确定。启用同步功能后,容器镜像服务将自动同步实例删除、镜像推送、镜像删除、镜像仓库删除的消息至云安全中心。
  7. 创建扫描规则。
    1. 镜像扫描页面单击创建规则
    2. 扫描规则配置向导中输入规则名称,设置扫描范围,然后单击下一步
      支持按照命名空间和仓库对镜像进行安全扫描:
      • 按照命名空间扫描:选择命名空间,输入镜像版本过滤的正则规则。
      • 按照仓库扫描:选择命名空间仓库,输入镜像版本过滤的正则规则。
    3. 可选:事件通知配置向导中设置通知方式。
      支持钉钉、HTTP和HTTPS通知:
      • 钉钉:设置通知方式钉钉,然后输入Webhook地址和加签密钥。
      • HTTP:设置通知方式HTTP,然后输入HTTP地址。
      • HTTPS:设置通知方式HTTPS,然后输入HTTPS地址。
      镜像扫描成功后,会发送通知给钉钉、HTTP或HTTPS。
    4. 单击创建
  8. 手动触发镜像扫描。
    说明 扫描规则创建完成后,支持手动和自动触发镜像扫描。自动触发指只要镜像推送或构建成功,就会自动触发镜像扫描。
    1. 镜像扫描页面单击目标规则右侧操作列下的立即扫描
    2. 在弹出的对话框单击确定
      任务列表区域看到扫描任务的扫描状态显示扫描完成,说明镜像扫描成功。
  9. 查看扫描结果。
    1. 镜像扫描页面任务列表区域单击目标任务右侧操作列下的查看任务
    2. 任务详情页面单击任务右侧操作列下的查看详情
      您可以在安全扫描页面查看扫描结果,包括安全漏洞详细信息。
      说明 如果您设置的扫描规则中包含多个镜像,则任务详情页面会存在多条任务,您可以查看任意一个任务的镜像扫描结果。

镜像扫描结果

查看Trivy引擎的扫描结果

安全扫描页面可以查看检测到的系统漏洞、应用漏洞,扫描结果按照高危中危低危未评级四个漏洞等级汇总漏洞信息,默认按照漏洞等级排列展示。单个扫描
受到开源扫描引擎Trivy限制,仅部分系统漏洞或者应用漏洞能识别到漏洞文件所在的路径。漏洞路径

查看云安全引擎的扫描结果

安全扫描页面可以查看检测到的系统漏洞应用漏洞基线检查恶意样本,扫描结果按照高危中危低危未评级四个漏洞等级汇总漏洞信息,默认按照漏洞等级排列展示。

云安全扫描结果

修复系统漏洞

如果您使用的是云安全扫描引擎,您还可以使用一键修复系统漏洞功能。具体操作如下:

安全扫描页面选中漏洞,单击页面底部的一键修复,在修复对话框设置修复后的镜像是否覆盖原镜像,然后单击立即修复

等待十分钟后,在安全扫描页面单击左上角的返回图标,在镜像版本页面可以看到新增_fixd结尾的镜像,说明镜像修复成功。
说明 修复后的镜像以原镜像的名称加上_fixd结尾。