乐趣区

关于ide:54k-Star简单又全面的容器漏洞扫描工具Trivy

【导语】:Trivy 是一个面向容器和其余组件的,兼具综合性和简洁性的脆弱性扫面器。

简介

软件的脆弱性是存在于软件或者操作系统中的缺点。Trivy,tri 发音像 trigger, vy 发音像 envy,次要用来探测操作系统(Alpine, RHEL, CentOS 等)和利用依赖(Bundler, Composer, npm, yarn 等)的脆弱性,简略易用。

只须要装置二进制文件,就能开始应用,你须要做的就是确定扫描指标。扫描指标能够是容器的镜像名。

扫描器也能够在继续集成中的应用。在 push 容器注册或者公布利用之前,能够扫描本地的容器镜像和其余组件。

装置

RHEL/CentOS 下装置:

增加库设置到 /etc/yum.repos.d

$ sudo vim /etc/yum.repos.d/trivy.repo
[trivy]
name=Trivy repository
baseurl=https://aquasecurity.github.io/trivy-repo/rpm/releases/$releasever/$basearch/
gpgcheck=0
enabled=1
$ sudo yum -y update
$ sudo yum -y install trivy

或者是:

rpm -ivh https://github.com/aquasecurity/trivy/releases/download/{TRIVY_VERSION}/trivy_{TRIVY_VERSION}_Linux-64bit.rpm

Debian/Ubuntu 下装置:

增加库文件到 /etc/apt/sources.list.d.

$ sudo apt-get install wget apt-transport-https gnupg lsb-release
$ wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | sudo apt-key add -
$ echo deb https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main | sudo tee -a /etc/apt/sources.list.d/trivy.list
$ sudo apt-get update
$ sudo apt-get install trivy

或者是

$ sudo apt-get install rpm
$ wget https://github.com/aquasecurity/trivy/releases/download/{TRIVY_VERSION}/trivy_{TRIVY_VERSION}_Linux-64bit.deb
$ sudo dpkg -i trivy_{TRIVY_VERSION}_Linux-64bit.deb

你也能够在 macOS 和 Linux 下应用 homebrew 装置:

$ brew install aquasecurity/trivy/trivy

装置脚本

上面这个脚本基于你的操作系统和架构来下载 Trivy 二进制文件:

$ curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/master/contrib/install.sh | sh -s -- -b /usr/local/bin

 如果以上装置形式不能满足你的理论要求,本工具还反对其余的装置形式,详情可在我的项目中查找。,我的项目地址见本文结尾。

通过 Docker 启动

用 [YOUR\_CACHE\_DIR] 替换你机器上的缓存目录:

Linux 下:

$ docker run --rm -v [YOUR_CACHE_DIR]:/root/.cache/ aquasec/trivy [YOUR_IMAGE_NAME]

MacOS 下:

$ docker run --rm -v $HOME/Library/Caches:/root/.cache/ aquasec/trivy python:3.4-alpin

如果你想要扫描你主机上的镜像,还须要挂载 docker.sock.

$ docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \
    -v $HOME/Library/Caches:/root/.cache/ aquasec/trivy python:3.4-alpine

如果报错,可尝试从新拉取最新的 aquasec/trivy 来解决。

扫描文件系统

扫描文件系统(比方主机,虚拟机镜像,或者解压的容器镜像文件),Trivy 将会抉择 lock 文件的脆弱性,比方 Gemfile.lock 和 package-lock.json。

$ trivy fs /path/to/project

扫描容器中的容器:

$ docker run --rm -it alpine:3.11
/ # curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/master/contrib/install.sh | sh -s -- -b /usr/local/bin
/ # trivy fs /

应用示例

扫描镜像:

$ trivy image knqyf263/vuln-image:1.2.3

扫描后果保留为 json:

$ trivy image -f json -o results.json golang:1.12-alpine

本工具性能非常弱小,如果你想理解更多更具体的应用,可拜访如下地址:

https://github.com/aquasecuri…

开源前哨 日常分享热门、乏味和实用的开源我的项目。参加保护 10 万 + Star 的开源技术资源库,包含:Python、Java、C/C++、Go、JS、CSS、Node.js、PHP、.NET 等。

退出移动版