云安全中心的镜像安全扫描功能,可以帮助您检测您的镜像中是否存在镜像漏洞、基线风险、恶意样本和敏感文件,为您创造安全的镜像运行环境。本文介绍如何进行镜像安全扫描。
前提条件
- 已开通容器镜像安全扫描功能,并购买足够的容器镜像安全扫描次数(即授权数)。具体操作,请参见开通容器镜像安全扫描功能。 
- 已购买容器镜像服务企业版实例或已接入私有镜像仓库。相关内容,请参见创建企业版实例和接入镜像仓库。 - 如果您的企业版实例配置为专有网络,则所配置的专有网络必须满足特定的地域和可用区限制。即必须选择在指定地域内的指定可用区内的交换机,才可支持扫描。有关具体的支持列表,请参见支持的地域和可用区。 
背景信息
镜像上的基础系统软件、中间件、Web应用、数据库服务等,可能会存在挖矿木马、后门程序等安全漏洞,危害您的资产安全。
云安全中心支持扫描的镜像检查项包含镜像系统漏洞、镜像应用漏洞、镜像基线检查、镜像恶意样本、镜像敏感文件、镜像构建指令风险。详细说明,请参见支持扫描的安全镜像特性。
使用说明
- 安全扫描范围:默认覆盖所有镜像仓库和检查项,支持根据业务需求设置扫描范围,包括镜像仓库、基线检查项、漏洞白名单、敏感文件类型白名单和风险文件白名单等。具体操作,请参见步骤一:配置镜像安全扫描范围。 
- 扫描方式:立即执行镜像安全扫描(手动扫描)、配置镜像安全扫描周期(定期扫描)。 - 手动扫描和定期扫描都会按照上述安全扫描范围的设置进行镜像安全扫描。 
- 扫描任务的资源抵扣:云安全中心是以摘要(Digest)值标识一个镜像,镜像的摘要值不变时,只在第一次扫描时消耗一个镜像安全扫描次数。摘要值变化后,执行扫描操作会重新消耗镜像安全扫描次数。 - 执行镜像安全扫描前,请确保您有足够的容器镜像安全扫描次数。详细内容,请参见开通镜像安全扫描服务。 
- 扫描时长:云安全中心为保障镜像扫描任务的稳定性,设定每一次镜像扫描任务的超时时间为4个小时(不支持修改)。扫描任务执行4个小时后,即使该次扫描任务内还有镜像仓库未被扫描,也会停止执行。 说明- 建议您在执行镜像安全扫描任务前,先设置需要扫描的镜像仓库。如果是harbor镜像仓库,可以设置镜像扫描的限速,以提高镜像安全扫描的效率。具体内容,请参见本文的管理镜像仓。 
步骤一:配置镜像安全扫描范围
镜像安全扫描范围的配置在手动扫描和定期扫描中都生效。
- 登录云安全中心控制台。在控制台左上角,选择需防护资产所在的区域:中国或全球(不含中国)。在左侧导航栏,选择。 
- 在镜像安全扫描页面的右上角,单击扫描设置。 
- 单击对应的功能页签,设置镜像扫描任务的检查范围。 - 配置扫描参数- 在扫描设置面板的扫描配置页签,配置相关参数。 - 配置项 - 说明 - 已消耗授权数/总授权 - 显示您已使用和已购买的容器镜像安全扫描次数。如果您的镜像安全扫描次数即将耗尽,您可以单击扩容购买镜像安全扫描次数。 - 扫描周期 - 选择执行镜像安全扫描的周期。该参数仅针对定期扫描生效。 - 扫描范围 - 设置需要扫描的镜像仓库范围。具体操作如下: - 单击扫描范围右侧的管理。 
- 在镜像管理对话框中,选中需要扫描的镜像仓库名称前的复选框。 - 仓库列表右上方默认开启当有新增镜像仓时是否自动加入扫描,表示后续如果有新增接入的镜像仓库,在定期扫描时,会自动加入扫描范围,进行镜像安全扫描。您可以单击开关  图标,关闭该功能。 图标,关闭该功能。
- 单击确定。 
 - 扫描时间范围 - 选择镜像漏洞扫描的时间范围。 重要- 扫描时间范围以镜像的本地更新时间为准。若无更新时间,则以本地创建镜像的时间为准,时间范围决定镜像是否会被扫描。 - 例如,扫描时间范围选择为最近7天,那么云安全中心会扫描最近7天以内更新的镜像。 - 如果有更新时间,镜像本地更新时间已超过7天,则扫描任务状态为成功,但执行成功的扫描量为0。 
- 如果没有更新时间,镜像本地创建时间已超过7天,则同上述场景一样,镜像也不会被扫描。 
 - 漏洞保留时长 - 设置镜像漏洞定期扫描结果保留的时长。云安全中心会自动删除超过保留时长的漏洞扫描结果。 - 管理镜像仓- 您可单击镜像仓页签,查看支持扫描的容器镜像服务企业版实例(镜像库类型为acr)和已接入的私有镜像仓库(镜像库类型为harbor、quay、gitlab等)列表。 说明- 云安全中心会自动同步当前阿里云账号下的容器镜像服务企业版实例至镜像仓库列表中,不支持在镜像仓库列表中移除容器镜像服务企业版实例。 
- 您可以在镜像安全扫描页面的右上角,单击任务管理,在容器资产同步和镜像资产同步页签查看资产同步进度和状态。 
 - 如需扫描不在镜像仓库列表中的私有镜像仓库,您可以单击接入镜像仓接入您的私有镜像仓库。具体操作,请参见接入镜像仓库。 
- 如果镜像仓库列表中的某个私有镜像仓库无需扫描,您可以单击私有镜像仓库操作列的移除,并在提示对话框单击确定,将其移除。 说明- 镜像仓库列表中的两个默认镜像仓(镜像仓类型为acr、defaultAcr)不支持删除。 
- 如果是harbor镜像仓,您可以单击操作列的编辑,设置镜像扫描的限速,以提高镜像安全扫描的效率。限速表示1个小时内可完成扫描的镜像个数,默认为10。 - 例如,该harbor镜像仓库中有200个镜像,使用默认限速,完成扫描需要20小时,而每一次扫描任务的全局超时时间为4小时,无法全局扫描所有镜像。如果将限速设置为200,则仅需1小时即可完成扫描。您可以根据实际业务情况和网络状况合理设置。 
 - 配置镜像基线扫描- 您可以在配置镜像漏洞扫描的同时,配置镜像基线检查相关项。 - 在扫描配置面板,单击基线配置管理页签。 
- 单击配置范围右侧的管理。 
- 在基线检查范围面板中,选择您要检查的基线,然后单击确认。 重要- 基线检查范围面板的Access Key明文存储、密码泄漏基线检查分别对应Access Key泄露检查、密码泄露检查。如果您在基线检查范围面板上已经选择了Access Key明文存储和密码泄漏两个基线,基线配置管理下方的Access Key泄露检查和密码泄露检查的配置状态开关会自动打开,您无需再重复设置。您也可以通过Access Key泄露检查、密码泄露检查后面的开关快捷开启或关闭这两个基线。 
 - 配置完成后,当您执行立即扫描操作或配置的周期性扫描时,系统将对您镜像的基线配置进行检查。 - 立即执行容器运行时镜像扫描- 容器运行时镜像扫描功能可以帮您检测容器运行时是否存在安全风险。 重要- 容器运行时镜像扫描仅支持手动扫描,不支持设置定期扫描。 - 登录云安全中心控制台。在控制台左上角,选择需防护资产所在的区域:中国或全球(不含中国)。在左侧导航栏,选择。 
- 在镜像安全扫描页面的右上角,单击扫描设置。 
- 在扫描配置面板,单击容器运行时镜像扫描页签。 
- 单击配置扫描范围,在弹出的对话框中,单击需要扫描的集群,然后选择集群下需要扫描的应用名称,单击确定。 
- 单击立即扫描。 
 - 执行立即扫描后,您可以在镜像安全扫描页面的右上角,单击任务管理,前往任务管理面板的容器运行时镜像扫描页签查看扫描进度。扫描完成后,在镜像安全扫描页面镜像漏洞风险页签下,可查看检测出的漏洞。 - 配置镜像敏感文件扫描- 镜像敏感文件扫描功能支持检测常见的敏感文件和您自定义的镜像文件中是否存在敏感数据,支持检测的常见敏感文件类型包括:包含敏感信息的应用配置、通用的证书密钥、应用认证或登录凭证、云服务器厂商的相关凭证等。该功能可以发现镜像环境中的敏感信息,您及时处理检测出的敏感数据可以提高镜像运行环境的安全性。 重要- 仅支持静态镜像扫描,不支持运行时敏感文件检测。 - 在扫描设置面板,单击敏感文件扫描配置页签。 
- 单击配置范围右侧的管理。 
- 在敏感文件扫描配置面板中,选择需要扫描的检查项。  
- 打开或关闭敏感文件检测开关。 - 启用敏感文件检测开关后,当您执行立即扫描或配置的周期性扫描时,将同时进行敏感文件检测。 
 - 配置风险文件白名单- 如果不需要扫描某镜像敏感文件、镜像构建指令、镜像恶意样本的告警风险,您可以将该镜像敏感文件、镜像构建指令风险或镜像恶意样本风险的告警类型添加到白名单中,系统不会检测白名单中的风险。 说明- 风险文件白名单列表展示在镜像恶意样本、镜像敏感文件和镜像构建指令风险列表中已经加入白名单的告警类型和镜像仓库。具体操作,请参见修复镜像扫描风险。 
- 首次使用镜像安全扫描功能时,无法配置风险文件白名单。 
 - 在扫描设置面板,单击风险文件白名单配置页签。 
- 配置风险文件白名单。 - 编辑白名单规则:在敏感文件、容器构建或恶意样本页签,找到目标告警类型,单击操作列的编辑,选择规则范围:全部镜像仓库或仅当前镜像仓库(选择需要加白的镜像仓库)。 
- 删除白名单规则:在敏感文件、容器构建或恶意样本页签,找到目标告警类型,单击操作列的删除,删除该白名单。从白名单移除告警规则后,云安全中心将重新启用对该镜像恶意样本、镜像敏感文件或镜像构建指令风险的检测和告警。 
 
 - 配置镜像修复- 云安全中心支持自动修复企业版ACR的镜像仓库的系统漏洞,您可以开启自动修复,并设置修复周期、修复范围等。 - 在扫描设置面板,单击镜像修复配置页签。 
- 单击修复配置开关,可开启或关闭自动修复功能。 
- 如果开启修复配置,可以选择修复周期、修复范围(企业版ACR的镜像仓库)和时间范围(在此时间范围内更新过的镜像,会被修复)。 重要- 修复时间范围以镜像的更新时间为准,若无更新时间,则以创建时间为准。时间范围决定镜像是否会被修复。例如,时间范围选择为7天,那么云安全中心会修复最近7天以内更新的镜像。镜像更新时间超过7天,则不会被修复。 - 在您执行立即扫描操作或配置的周期性扫描后,根据您设置的修复周期,会定期排查和修复目标镜像的系统漏洞。 - 您可以在镜像安全扫描页面的右上角,单击任务管理,前往任务管理面板的镜像修复页签查看镜像系统漏洞的修复状态。 
 - 配置漏洞白名单- 如果无需扫描某个镜像漏洞,您可以将该漏洞添加到漏洞白名单中,系统不会检测漏洞白名单中的漏洞。 - 在扫描设置面板,单击漏洞白名单配置页签。 
- 配置漏洞白名单。 - 新增漏洞白名单规则:单击新增规则,在新增规则面板上为不同类型的漏洞自定义白名单规则。 
- 编辑漏洞白名单规则:单击目标白名单规则操作列的编辑,修改该白名单的规则范围、镜像选择和备注。 
- 删除漏洞白名单规则:单击目标白名单规则操作列的删除,删除该白名单规则。漏洞从白名单移除后,云安全中心将重新启用对该漏洞的检测和告警。 
 
 
- 单击面板右上角的关闭  图标,关闭扫描设置面板。 图标,关闭扫描设置面板。
步骤二:执行镜像安全扫描
配置镜像安全扫描范围后,手动扫描和定期扫描都会按照扫描配置面板的配置项设置进行。
首次执行镜像安全扫描时,云安全中心会自动在镜像所配置的专有网络中创建反向终端节点。该反向终端节点用于允许阿里云云安全中心服务访问您VPC中的容器镜像服务企业版实例,请勿删除。更多信息,请参见自动创建的反向终端节点说明。
立即执行镜像安全扫描(手动扫描)
如果您需要立即执行镜像安全扫描,可以手动开始镜像扫描。
立即扫描默认覆盖当前已接入云安全中心的所有镜像仓库,您可以先在扫描设置面板配置扫描范围(需要扫描的镜像仓库、容器运行时扫描配置、漏洞白名单配置等),然后再手动执行扫描任务。具体内容,请参见本文的步骤一:配置镜像安全扫描范围。
- 登录云安全中心控制台。在控制台左上角,选择需防护资产所在的区域:中国或全球(不含中国)。 
- 在左侧导航栏,选择。 
- 在镜像安全扫描页面,单击立即扫描。 
- 在一键扫描对话框中默认已选中所有镜像类型,取消选中不需要扫描的镜像类型,然后单击确定。 - 目前支持选择以下类型: - acr:云安全中心将检测您在容器镜像服务控制台创建的企业版实例是否存在安全风险。 
- harbor、quay、gitlab:云安全中心将检测您已接入的私有镜像仓库是否存在安全风险。 
- 容器运行时:云安全中心按照容器运行时扫描配置,立即执行容器运行时镜像扫描。 
 - 以上可选类型,必须已在云安全中心完成配置,否则不显示。  - 您也可以单击配置扫描范围,在扫描设置面板,完成扫描范围相关配置项的配置,然后重复上一步骤,重新进入一键扫描对话框。详细配置,请参见本文的步骤一:配置镜像安全扫描范围。 
镜像风险扫描结果的展示预计需要一分钟的时间,您可以在一分钟后手动刷新页面,在下方的风险列表中查看扫描结果。
配置镜像安全扫描周期(定期扫描)
云安全中心默认按照扫描设置面板的扫描周期自动扫描您的容器资产中是否存在镜像漏洞或恶意样本,您可以参照以下步骤修改镜像漏洞扫描周期。
- 登录云安全中心控制台。在控制台左上角,选择需防护资产所在的区域:中国或全球(不含中国)。在左侧导航栏,选择。 
- 在镜像安全扫描页面的右上角,单击扫描设置。 
- 在扫描设置面板的扫描配置页签,设置扫描周期,然后关闭扫描设置面板。 
完成扫描周期配置后,云安全中心将按照您的漏洞扫描配置(请参见本文的步骤一:配置镜像安全扫描范围),对您的镜像进行安全扫描。
步骤三:查看镜像扫描任务进度和状态
- 在镜像安全扫描页面的右上角,单击任务管理。 
- 在任务管理面板,单击镜像扫描页签。 
- 查看任务进度和状态后,单击操作列的详情,可以查看当前任务的执行日志。 - 例如,执行失败的镜像信息和失败原因。  
后续步骤
执行完镜像安全扫描后,您可以查看镜像安全扫描结果。更多信息,请参见查看扫描出的镜像风险及修复说明。
附录
自动创建的反向终端节点说明
首次执行镜像安全扫描时,云安全中心会自动在镜像所配置的专有网络中创建反向终端节点。该节点用于允许阿里云云安全中心服务访问您VPC中的容器镜像服务企业版实例,请勿删除该节点。关于反向终端节点的更多信息,请参见工作原理。
该反向终端节点不会产生任何费用,或对阿里云产品产生任何影响。如果云安全中心在一个月内在VPC内未执行过镜像安全扫描,则该VPC下的反向终端节点会被自动删除。在下一次执行扫描时,会自动创建新的反向终端节点,无需您进行任何操作。
支持的地域和可用区
下文将介绍使用镜像安全扫描的容器镜像服务企业版实例配置所需的专有网络 VPC 和交换机的地域及可用区列表。如果配置的专有网络 VPC 和交换机不在以下列表中,则该企业版实例将不支持扫描。
- 公共云 - 地域名称 - 地域ID - 支持的可用区数量 - 可用区名称 - 可用区ID - 华北1(青岛) - cn-qingdao - 2 - 青岛 可用区B - cn-qingdao-b - 青岛 可用区C - cn-qingdao-c - 华北2(北京) - cn-beijing - 10 - 北京 可用区C - cn-beijing-c - 北京 可用区D - cn-beijing-d - 北京 可用区E - cn-beijing-e - 北京 可用区F - cn-beijing-f - 北京 可用区G - cn-beijing-g - 北京 可用区H - cn-beijing-h - 北京 可用区I - cn-beijing-i - 北京 可用区J - cn-beijing-j - 北京 可用区K - cn-beijing-k - 北京 可用区L - cn-beijing-l - 华北3(张家口) - cn-zhangjiakou - 3 - 张家口 可用区A - cn-zhangjiakou-a - 张家口 可用区B - cn-zhangjiakou-b - 张家口 可用区C - cn-zhangjiakou-c - 华北5(呼和浩特) - cn-huhehaote - 2 - 呼和浩特 可用区A - cn-huhehaote-a - 呼和浩特 可用区B - cn-huhehaote-b - 华北6(乌兰察布) - cn-wulanchabu - 3 - 乌兰察布 可用区A - cn-wulanchabu-a - 乌兰察布 可用区B - cn-wulanchabu-b - 乌兰察布 可用区C - cn-wulanchabu-c - 华东1(杭州) - cn-hangzhou - 7 - 杭州 可用区B - cn-hangzhou-b - 杭州 可用区F - cn-hangzhou-f - 杭州 可用区G - cn-hangzhou-g - 杭州 可用区H - cn-hangzhou-h - 杭州 可用区I - cn-hangzhou-i - 杭州 可用区J - cn-hangzhou-j - 杭州 可用区K - cn-hangzhou-k - 华东2(上海) - cn-shanghai - 8 - 上海 可用区A - cn-shanghai-a - 上海 可用区B - cn-shanghai-b - 上海 可用区E - cn-shanghai-e - 上海 可用区F - cn-shanghai-f - 上海 可用区G - cn-shanghai-g - 上海 可用区L - cn-shanghai-l - 上海 可用区M - cn-shanghai-m - 上海 可用区N - cn-shanghai-n - 华南1(深圳) - cn-shenzhen - 4 - 深圳 可用区C - cn-shenzhen-c - 深圳 可用区D - cn-shenzhen-d - 深圳 可用区E - cn-shenzhen-e - 深圳 可用区F - cn-shenzhen-f - 华南2(河源) - cn-heyuan - 2 - 河源 可用区A - cn-heyuan-a - 河源 可用区B - cn-heyuan-b - 华南3(广州) - cn-guangzhou - 2 - 广州 可用区A - cn-guangzhou-a - 广州 可用区B - cn-guangzhou-b - 西南1(成都) - cn-chengdu - 2 - 成都 可用区A - cn-chengdu-a - 成都 可用区B - cn-chengdu-b - 中国香港 - cn-hongkong - 3 - 香港 可用区B - cn-hongkong-b - 香港 可用区C - cn-hongkong-c - 香港 可用区D - cn-hongkong-d - 新加坡 - ap-southeast-1 - 3 - 新加坡 可用区A - ap-southeast-1a - 新加坡 可用区B - ap-southeast-1b - 新加坡 可用区C - ap-southeast-1c - 马来西亚(吉隆坡) - ap-southeast-3 - 3 - 吉隆坡 可用区A - ap-southeast-3a - 吉隆坡 可用区B - ap-southeast-3b - 吉隆坡 可用区C - ap-southeast-3c - 印度尼西亚(雅加达) - ap-southeast-5 - 3 - 雅加达 可用区A - ap-southeast-5a - 雅加达 可用区B - ap-southeast-5b - 雅加达 可用区C - ap-southeast-5c - 菲律宾(马尼拉) - ap-southeast-6 - 1 - 马尼拉 可用区A - ap-southeast-6a - 泰国(曼谷) - ap-southeast-7 - 2 - 曼谷 可用区A - ap-southeast-7a - 曼谷 可用区B - ap-southeast-7b - 日本(东京) - ap-northeast-1 - 3 - 东京 可用区A - ap-northeast-1a - 东京 可用区B - ap-northeast-1b - 东京 可用区C - ap-northeast-1c - 韩国(首尔) - ap-northeast-2 - 2 - 首尔 可用区A - ap-northeast-2a - 首尔 可用区B - ap-northeast-2b - 美国(硅谷) - us-west-1 - 2 - 硅谷 可用区A - us-west-1a - 硅谷 可用区B - us-west-1b - 美国(弗吉尼亚) - us-east-1 - 2 - 弗吉尼亚 可用区A - us-east-1a - 弗吉尼亚 可用区B - us-east-1b - 德国(法兰克福) - eu-central-1 - 3 - 法兰克福 可用区A - eu-central-1a - 法兰克福 可用区B - eu-central-1b - 法兰克福 可用区C - eu-central-1c - 英国(伦敦) - eu-west-1 - 2 - 伦敦 可用区A - eu-west-1a - 伦敦 可用区B - eu-west-1b 
- 金融云 - 地域名称 - 地域ID - 所在城市 - 可用区数量 - 可用区名称 - 可用区ID - 华东2 金融云 - shanghai-finance-1 - 上海 - 4 - 华东2 金融云 可用区F - cn-shanghai-finance-1f - 华东2 金融云 可用区G - cn-shanghai-finance-1g - 华东2 金融云 可用区K - cn-shanghai-finance-1k - 华东2 金融云 可用区Z - cn-shanghai-finance-1z - 华南1 金融云 - cn-shenzhen-finance-1 - 深圳 - 2 - 华南1 金融云 可用区D - cn-shenzhen-finance-1d - 华南1 金融云 可用区E - cn-shenzhen-finance-1e - 华北2 金融云(邀测) - cn-beijing-finance-1 - 北京 - 2 - 华北2 金融云(邀测)可用区K - cn-beijing-finance-1k - 华北2 金融云(邀测)可用区L - cn-beijing-finance-1l 
- 政务云 - 地域名称 - 地域ID - 所在城市 - 可用区数量 - 可用区名称 - 可用区ID - 华北2 阿里政务云1 - cn-north-2-gov-1 - 北京 - 3 - 华北2 阿里政务云1 可用区B - cn-north-2-gov-1b - 华北2 阿里政务云1 可用区C - cn-north-2-gov-1c - 华北2 阿里政务云1 可用区D - cn-north-2-gov-1d