镜像是容器的最基础的载体,docker作为最流行的容器runtime,其最大的贡献就是把镜像作为容器应用的标准交付方式,镜像包含了容器运行的所有基础文件,可以说镜像的安全就决定了容器安全。
但现实不乐观,在docker官方镜像中有超过30%的镜像有高危漏洞,平均每一个镜像有127个中危漏洞,几乎没有镜像没有漏洞。镜像在构建过程中会安装依赖组件,这些组件存在大量漏洞,而这仅仅是基础运行环境的软件漏洞。
安全前移是目前最主流的安全治理思路,希望镜像在进入生产环境前尽量解决安全问题,对于镜像的安全控制可以在三个地方:
一、构建时,在使用持续集成平台自动构建后,拿jenkins来举例说明,当镜像构建完成后,对构建的镜像进行漏洞扫描,如果出现策略不允许出现的安全漏洞,中断流程,达到安全控制。
二、存储时,在镜像仓库中对上传的镜像进行漏洞扫描,发现安全问题,禁止拉取。
三、运行时,在镜像拉取到主机节点,启动时扫描镜像漏洞,禁止镜像运行。
所以,镜像安全问题最好在持续集成过程中和镜像仓库中解决。
开源免费的镜像漏洞扫描器使用得最多的就是Clair,Clair是最早由Quay推出的开源镜像漏洞扫描器,也是目前应用最广的扫描器;另外使用较多是Anchore,Anchore以最早支持应用框架漏洞扫描闻名。Clair扫描器的社区活跃度是最高的,经历了几个大的版本迭代,扫描效率有所提升,但是准确度还存在一些问题,而Anchore由python开发,扫描效率比Clair要低,社区活跃度一般。
小佑科技免费扫描器harbor-scanner介绍
小佑科技作为国内领先的云原生安全产品提供商,将其商业版的镜像扫描部分功能免费出来,提供给用户使用。本次我们推出的免费镜像扫描工具得到Harbor开源社区的大力支持,Harbor是Vmware中国团队推出的优秀开源项目,世界上最流行的镜像私有仓库,在Github上超过1万的starts,也是云原生基金会(CNCF)项目,Harbor镜像仓库在最新的1.10版本后加入了镜像漏洞扫描器的管理,用户可根据自身需求选择镜像漏洞扫描器,取代之前内置的Cliar扫描器。
https://github.com/goharbor/harbor/releases/tag/v1.10.0
小佑科技推出的免费镜像扫描工具harbor-scanner作为Harbor第一批官方推荐的扫描器,通过Harbor的兼容性测试,用户可放心使用。
https://github.com/goharbor/harbor/blob/master/docs/harbor_compatibility_list.md#Scanner-Adapters
目前全球有4款免费的镜像扫描器通过兼容性测试,除上文介绍到的Clair和Anchore,还有著名以色列容器安全公司的Aqua的Trivy扫描器,而小佑科技的Harbor-scanner是唯一支持中文漏洞库扫描器。
可以从以下地址获取:https://github.com/dosec-cn/harbor-scanner
小佑科技的Harbor-Scanner镜像漏洞扫描器开箱即用,考虑到很多用户在无联网环境中使用,我们的安装包包含了在版本发布时的全部最新漏洞库,其中包括最新的CNNVD中文漏洞库,用户无需联网也可以获取到比较新的漏洞库,同时产品支持实时在线更新漏洞库。
与当下流行的开源镜像漏洞扫描器相比, Harbor-Scanner 扫描器主要有以下几个特点:
1. 扫描更准确,可识别各个系统发行版中非统一的小版本;
2. 可显示中文漏洞描述信息;
3. 支持 CVE 和 CNNVD 双漏洞编号;
4. 离线版本中已包含发布日期时最新的全量漏洞库,首次安装无需更新漏洞库即可立即对镜像进行安全扫描;
5. 联网情况下可以自动更新漏洞库(需要在配置中开启自动更新参数)。
Debian >= 7,unstable
Ubuntu LTS releases >= 12.04
Red Hat Enterprise Linux >=5
CentOS >= 5
Alpine >= 3.3
Oracle Linux >= 5
安装及使用方法
用户可根据下面的步骤进行安装配置后就可以在 Harbor 的管理界面直接对镜像进行安全扫描
提醒: Harbor 的 1.10 版本新增了自定义扫描器的功能,Harbor-Scanner 扫描器需要 Harbor >= 1.10 才可以使用
推荐将 Harbor-Scanner 和 Harbor 镜像仓库部署在同一台服务器。
1、下载 Harbor-Scanner 的离线安装包并解压
wget https://github.com/dosec-cn/harbor-scanner/releases/download/v1.0/dosec-scanner.tgz
# 解压
tar xf dosec-scanner.tgz
# 进入项目
cd dosec-scanner
2、运行 Install 脚本
需要提前安装 docker-compose
./Install.sh
3、配置 Harbor 仓库
登录 Harbor 管理界面 -> 配置管理 -> Scanners -> NEW SCANNER
填写扫描器配置 ->点击 ADD 确认添加
① 填写扫描工具的名称
② 填写扫描工具的 IP 和端口
③ 测试 Harbor 和扫描工具是否能正常连接
④ 只有测试连接成功后才能添加
可根据需要更改docker-compose.yaml文件
version: '2.2'
services:
dosec-db-hb:
image: hub.dosec.cn/library/dosec-db-hb:2019-10-24T18.39.33
restart: always
dosec-scannerapp:
depends_on:
- dosec-db-hb
image: hub.dosec.cn/library/dosec-scannerapp:2019-10-24T19.17.35V1.0.0_prod
# 默认映射了主机的 8899 端口
ports:
- "8899:8899"
restart: always
# 默认将程序日志映射到了主机的 /var/log/dosec-scanner 目录
volumes:
- /var/log/dosec-scanner:/dosec/log
dosec-scanner-hb:
depends_on:
- dosec-db-hb
- dosec-scannerapp
image: hub.dosec.cn/library/dosec-scanner-hb:2019-10-25T11.58.04V1.0_release
# command: ["-update_cve"]
# 默认注释了在线更新 CVE 功能,会消耗大量 CPU 和内存
restart: always
# 默认将程序日志映射到了主机的 /var/log/dosec-scanner 目录
volumes:
- /var/log/dosec-scanner:/dosec/log
三、卸载
进入 Harbor-Scanner 项目目录,执行以下命令即可完全卸载
docker-compose down
与商业版对比
小佑科技同时提供商业版本的镜像扫描工具,商业版本的镜像安全除免费版的功能外,还包含开源框架漏洞扫描、镜像内病毒木马检测、镜像中敏感数据扫描、镜像操作历史追踪、镜像修复建议及加固等。同时提供容器资产管理,容器入侵检测与防护、容器云原生防火墙、微服务与API安全、kubernetes安全、合规审计等其他云原生安全功能。
功能 |
Harbor-Scanner |
镜界容器安全防护平台 |
许可 |
免费 |
企业版 |
Harbor 集成 |
√ |
√ |
显示中文描述 |
√ |
√ |
显示 CVE 和 CNNVD 双漏洞编号 |
√ |
√ |
离线漏洞库 |
√ |
√ |
系统软件包漏洞扫描 |
√ |
√ |
开源组件漏洞扫描 |
√ |
|
恶意软件扫描 |
√ |
|
敏感数据扫描 |
√ |
|
镜像配置检查 |
√ |
|
镜像历史行为分析 |
√ |
|
阻止非信任镜像运行 |
√ |
后续更新计划
容器安全或云原生安全属于比较新的安全领域,小佑科技旨在为推动国内的容器及云原生安全出一份力。对已上线的容器环境中,快速且免费的为用户提供一个基本的安全防护能力,该项目会永久免费且维护,计划在后续的版本中:
进一步优化性能及准确性;
推出可独立运行的镜像漏洞扫描器;
并提供独立的API便于集成;
提供可视化镜像漏洞扫描结果报告。
欢迎使用者积极与我们反馈相关问题,监督我们做得更好。
可以通过加以下微信号,拉入社区讨论群: