更新时间:2025-09-08 GMT+08:00

仓库镜像安全扫描概述

什么是仓库镜像安全扫描?

仓库镜像是指存储在容器镜像仓库(如Harbor、容器镜像服务SWR等)中的镜像,这些镜像可以被企业组织内部或不同组织间共享使用。

仓库镜像安全扫描功能可以对仓库镜像实施自动化安全检查,帮助用户发现和修复潜在的安全漏洞、恶意软件以及其他可能危害系统安全性的风险,防止不安全的镜像进入生产环境。

仓库镜像安全扫描原理

企业主机安全支持SWR仓库镜像和三方仓库镜像扫描,这两类仓库镜像的扫描原理如下:

  • SWR仓库镜像安全扫描

    企业主机安全通过镜像扫描组件获取基础镜像信息和镜像配置文件(如manifest文件),确定镜像的分层结构;基于镜像分层信息,将镜像的每一层逐层下载到自有的业务集群上,下载完成后,逐层解包并进行安全检查。

  • 三方仓库镜像安全扫描

    用户在将三方镜像仓库接入到企业主机安全时,需要提供镜像仓库信息和登录凭证,同时上传镜像扫描组件到三方镜像仓库,在镜像仓承载集群中创建扫描任务。企业主机安全通过用户提供的相关信息和镜像扫描组件,获取镜像基础信息和配置文件(如manifest文件),确定镜像的分层结构;基于镜像分层信息,将镜像的每一层逐层下载到承载集群上,下载完成后,逐层解包并安全检查。

仓库镜像安全扫描项

仓库镜像安全扫描项如表1所示。

表1 镜像安全扫描项

扫描项

说明

漏洞风险

检测镜像中存在系统漏洞、应用漏洞。

  • 支持扫描的操作系统:
    • EulerOS 2.2、2.3、2.5、2.8、2.9、2.10、2.11、2.12(64位)
    • CentOS 7.4、7.5、7.6、7.7、7.8、7.9、8、8.1、8.2(64位)
    • Ubuntu 16.04、18.04、20.04、22.04、24.04(64位)
    • Debian 9、10、11、12(64位)
    • 银河麒麟V10、V10 SP1、V10 SP2、V10 SP3(64位)
    • HCE 1.1、2.0(64位)
    • SLES 12 SP5、15 SP1、15 SP2(64位)
    • 统信UOS V20服务器E版、V20服务器D版、1050u2e、1050e、1060e、1070e(64位)
    • Rocky Linux 8.4、8.5、8.6、8.10、9.0、9.1、9.2、9.4、9.5(64位)
    • openEuler 20.03 LTS、20.03 LTS SP1、20.03 LTS SP2、20.03 LTS SP3、20.03 LTS SP4
    • openEuler 22.03 LTS、22.03 LTS SP1、22.03 LTS SP2、22.03 LTS SP3、22.03 LTS SP4
    • openEuler 24.03 LTS
    • CTyunOS 3-23.01(64位)
    • AlmaLinux 8.4(64位)
  • 支持扫描的应用/中间件:log4j、slf4j、tomcat、apache、jetty、mysql、druid、commons、spring、shiro、struts、struts2、websocket、json、fastjson、xstream、maven、junit、activemq、libintl、ca-certificates-java、httpclient、httpcore、java、javac2、javaee、Apache2、adaptive_server_enterprise、DB2、http_server、Memcached、nginx、PostgreSQL、bootstrap、zookeeper、plexus-utils、core。

恶意文件

检测镜像中存在的恶意文件。

软件信息

统计镜像中的软件信息。

文件信息

统计镜像中的文件信息。

基线检查

  • 基线配置检查:
    • 检测CentOS 7、Debian 10、EulerOS和Ubuntu16镜像的系统配置项。
    • 检测SSH应用配置项。
  • 弱口令检查:检测Linux操作系统(SSH)账号的弱口令。
  • 口令复杂度检查:检测Linux操作系统中不安全的口令复杂度策略配置。

敏感信息

检测镜像中含有敏感信息的文件。

  • 默认不检测的路径如下:
    • /usr/*
    • /lib/*
    • /lib32/*
    • /bin/*
    • /sbin/*
    • /var/lib/*
    • /var/log/*
    • 任意路径/node_modules/任意路径/任意名称.md
    • 任意路径/node_modules/任意路径/test/任意路径
    • */service/iam/examples_test.go
    • 任意路径/grafana/public/build/任意名称.js
    说明:
    • 任意路径:指当前路径为自定义值,可以是系统中任意名称的路径。
    • 任意名称:指当前路径的文件名称为自定义值,可以是系统中以.md或.js后缀结束的任意名称。
    • 可在安全报告 > 敏感信息页面,单击“敏感文件过滤路径管理”,设置不需要检测的Linux路径,最多可添加20个路径。
  • 不检测的场景如下:
    • 文件大于20MB。
    • 文件类型为二进制、常用进程和自动生成类型。

软件合规

检测软件包或补丁包中是否存在可能会引起安全、合规性或隐私方面问题的组件。

问题组件示例:

  • 第三方的网络嗅探、调试工具:tcpdump、gdb、strace、readelf、Nmap
  • 开发或编译工具:Dev-cpp、gcc、mirror

基础镜像信息

检测业务镜像所使用的基础镜像信息,包括基础镜像名称、版本、镜像层路径。

基础镜像是构建其他镜像的起点,是一个包含了操作系统核心文件、运行时环境或基础工具的最小化镜像;所有业务镜像都是在基础镜像之上添加新的层(Layer)来构建的。常见的基础镜像包括Ubuntu、Alpine Linux、CentOS、Debian、Fedora。

应用场景

  • 多云镜像统一扫描

    在多云场景下,由于云平台不同,相应的安全工具或解决方案可能存在差异,难以实施统一的安全防护措施。仓库镜像安全扫描功能支持华为云内、云外仓库镜像安全扫描,可实现多云环境的统一扫描,帮助用户实施统一的安全防护策略,有效降低运维管理成本。

  • 防止风险镜像部署到生产环境

    对仓库镜像执行安全扫描,可及时发现存在漏洞、恶意文件等安全风险的镜像,防止不安全的镜像进入生产环境,保障镜像部署即安全。

约束限制

  • 仓库镜像如需使用镜像安全扫描功能,无需购买HSS任何版本,开通容器镜像扫描按次收费增值服务即可,具体操作请参见开通容器镜像按次收费扫描
  • 仅支持对Linux镜像执行安全扫描。
  • 三方镜像仓库扫描需满足以下前提:
    1. 已将镜像仓关联的集群(承载集群)接入HSS,且该集群状态为“运行中”。详细操作请参见集群安装Agent概述

      目前支持接入的三方云集群服务商包括阿里云、腾讯云、AWS、微软云、自建、IDC自建。

    2. 已将三方镜像仓接入HSS。详细操作请参见接入三方镜像仓

      目前支持接入的三方镜像仓类型包括Harbor和JFrog。

仓库镜像安全扫描使用流程

图1 使用流程
表2 使用流程说明

操作项

说明

接入三方镜像仓

企业主机安全支持接入Harbor、Jfrog类型的三方镜像仓库,如果您想要通过企业主机安全扫描和管理三方镜像的安全风险,可以将三方镜像仓库接入企业主机安全。

开通容器镜像按次收费扫描

使用仓库镜像安全扫描功能,需单独开通容器镜像按次收费增值服务。

(可选)同步仓库镜像列表

如果您的仓库镜像列表存在更新,您可以将最新的镜像列表信息同步到企业主机安全。

扫描仓库镜像安全

执行手动扫描或设置定时扫描,扫描仓库镜像安全风险。

查看并处理仓库镜像扫描结果

查看仓库镜像安全扫描结果,针对安全风险项及时进行排查清理,避免不安全的镜像部署到生产环境。