如何用Trivy进行容器镜像全面安全漏洞扫描?
摘要:容器镜像安全:安全漏洞扫描神器Trivy,Trivy是一款由aquasecurity团队开发的容器镜像安全漏洞扫描工具,Trivy简介,Trivy漏洞扫描原理,CVE全称是Common Vulnerabilities and Exposur
目录一.系统环境二.前言三.Trivy简介四.Trivy漏洞扫描原理五.利用trivy检测容器镜像的安全性六.总结
一.系统环境
本文主要基于Docker version 20.10.14和Linux操作系统Ubuntu 18.04。
服务器版本
docker软件版本
CPU架构
Ubuntu 18.04.5 LTS
Docker version 20.10.14
x86_64
二.前言
随着容器技术的普及,容器镜像的安全性问题日益凸显。容器镜像中可能存在的漏洞会被攻击者利用,从而导致整个应用的安全风险。因此,对容器镜像进行安全漏洞扫描成为了必要的需求。Trivy是一款由aquasecurity团队开发的容器镜像安全漏洞扫描工具,支持Docker、Kubernetes等多种容器技术,具有易于使用、支持多种漏洞数据库等特点。
三.Trivy简介
Trivy是一款全面且多功能的安全扫描程序。Trivy 具有查找安全问题的扫描器。Trivy官网为:https://github.com/aquasecurity/trivy ,Trivy软件包下载地址为:https://github.com/aquasecurity/trivy/releases/ 。
Trivy 可以扫描的对象为:
容器镜像;
文件系统;
Git Repository (远程);
虚拟机映像;
Kubernetes;
AWS系统。
Trivy能够发现的问题有:
正在使用的操作系统包和软件依赖项 (SBOM);
已知漏洞 (CVE);
IaC 问题和错误配置;
敏感信息和机密;
软件许可证。
四.Trivy漏洞扫描原理
Trivy通过分析容器镜像的文件系统,识别出其中的软件包及其版本号,然后与漏洞数据库进行匹配,找出存在安全漏洞的软件包。Trivy采用了以下技术实现漏洞扫描:
Dockerfile解析:Trivy可以根据Dockerfile自动解析出容器镜像的构建过程,获取镜像中包含的软件包及其版本号。
漏洞数据库匹配:Trivy将容器镜像中的软件包及其版本号与漏洞数据库进行匹配,找出存在安全漏洞的软件包。
漏洞详情展示:Trivy提供了详细的漏洞信息,包括漏洞描述、影响版本、修复建议等,帮助用户了解漏洞风险。
CVE全称是Common Vulnerabilities and Exposures,即通用漏洞披露,它是MITRE公司维护和更新的安全漏洞列表,列表中的每个条目都会有一个唯一的CVE编号,即CVE ID,供安全研究员和受攻击的软件供应商使用,以便确定和回应安全漏洞。CVE条目包含了与CVE ID相关的漏洞的描述性数据(即简要描述和至少一个参考)。当前CVE累计收录了19万+个安全漏洞。
Trivy漏洞扫描原理简单来说就是:Trivy下载漏洞数据库CVE到本地,Trivy本地数据库记录了常见的漏洞信息,Trivy读取镜像里的程序和本地数据库进行比对,确定镜像是否存在漏洞。
五.利用trivy检测容器镜像的安全性
首先需要安装docker。
[root@etcd2 ~]# yum -y install docker-ce
查看docker版本。
[root@etcd2 ~]# docker -v
Docker version 20.10.12, build e91ed57
配置docker镜像加速器。
[root@etcd2 ~]# cat /etc/docker/daemon.json
{
"registry-mirrors": [
"https://frz7i079.mirror.aliyuncs.com"
]
}
提前下载好镜像做准备,我们下载了redis,busybox,nginx镜像。
