专栏首页伪架构师全面易用的镜像漏洞检测工具:Trivy

全面易用的镜像漏洞检测工具:Trivy

道路千万条,安全第一条; 镜像不规范,同事两行泪。

Trivy 是一个面向镜像的漏洞检测工具,具备如下特点:

  1. 开源
  2. 免费
  3. 易用
  4. 准确度高
  5. CI 友好

相对于老前辈 Clair,Trivy 的使用非常直观方便,适用于更多的场景。

下面是官方出具的对比表格:

扫描器

操作系统

依赖检测

适用性

准确度

CI 友好

Trivy

Clair

×

Anchore Engine

Quay

×

×

MicroScanner

×

Docker Hub

×

×

×

GCR

×

×

另外还提供了精确度的对比表格,但是追究下来,无非是采用的参考数据的差异。至少这并不是我看重的东西,顺手是第一要务。

安装

MacOS

$ brew tap knqyf263/trivy
$ brew install knqyf263/trivy/trivy

RHEL/CentOS

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

使用

这个工具的最大闪光点就是提供了很多适合用在自动化场景的用法。

扫描镜像:

$ trivy centos

扫描镜像文件

$ docker save ruby:2.3.0-alpine3.9 -o ruby-2.3.0.tar
$ trivy --input ruby-2.3.0.tar

根据严重程度进行过滤

$ trivy --severity HIGH,CRITICAL ruby:2.3.0

忽略未修复问题

$ trivy --ignore-unfixed ruby:2.3.0

忽略特定问题

使用 .trivyignore

$ cat .trivyignore
# Accept the risk
CVE-2018-14618

# No impact in our settings
CVE-2019-1543

$ trivy python:3.4-alpine3.9

使用 JSON 输出结果

$ trivy -f json dustise/translat-chatbot:20190428-5

定义返回值

$ trivy --exit-code 0 --severity MEDIUM,HIGH ruby:2.3.0
$ trivy --exit-code 1 --severity CRITICAL ruby:2.3.0

总结

相对于其它同类工具,Trivy 非常适合自动化操作,从 CircleCI 之类的公有服务,到企业内部使用的 Jenkins、Gitlab 等私有工具,或者作为开发运维人员的自测环节,都有 Trivy 的用武之地。

参考链接

https://github.com/knqyf263/trivy

本文分享自微信公众号 - 伪架构师(fake-architect),作者:崔秀龙

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-05-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • (译)为什么持续改进是持续交付的基础

    DevOps 的最大难题就是,DevOps 是永无止境的。并不存在一个(确切的)DevOps指南,也没有什么最终标志能够证明一个组织完成了 DevOps 的漫长...

    崔秀龙
  • 可能是最适合自定义的 Pipeline:Tekton

    持续集成是云原生应用的支柱技术之一,因此在交付基于云原生的一些支撑产品的时候,CICD 是一个无法拒绝的需求。为了满足这种需要,自然而然会想到对 Jenkins...

    崔秀龙
  • Krew 插件:view-secret

    崔秀龙
  • 面试官灵魂发问:你真的懂 Context 吗?

    ?:Context 是一个关于应用环境的抽象类,它的实现由安卓系统提供。用来访问一些应用内资源、类,也可以调用系统服务开启 Activity 、Service ...

    Android技术干货分享
  • Go 语言系统调用简析

    一、系统调用概述 系统调用是受控的内核入口,借助于这一机制,进程可以请求内核以自己的名义去执行某些动作。Linux 内核以 C 语言语法 API 接口形式(头文...

    李海彬
  • vue全家桶之vuex

    状态管理可以简单理解为vue中的某些全局的data属性。 当组件状态增多时,整个应用和状态分散在每个组件和实例中。部分还会出现状态共享。这时最好的方案就是vue...

    一粒小麦
  • win10 uwp 拖动控件 Margin 移动Canvas 拖动控件Manipulation 拖动控件

    我们会使用控件拖动,可以让我们做出好看的动画,那么我们如何移动控件,我将会告诉大家多个方法。其中第一个是最差的,最后的才是我希望大神你去用。

    林德熙
  • 《计算机网络:自顶向下方法》笔记(6):无线网络和移动网络

    CDMA,码分多址,对每一个数据比特都进行编码,如 1 编码为(1,1,-1,1,1,1,-1,-1)(实际要长得多),0编码相反。编码后发送到无线链路,每个比...

    sickworm
  • Swoole 4.4 正式版已发布

    猿哥
  • IPv6到来还有多久?

    当前ipv4地址非常紧缺,各大运营商、云服务商都在不断向ipv6进行转移。IPv4技术确实非常成熟,在家用路由器、电脑中一般我们都是配置v4地址。

    希望的田野

扫码关注云+社区

领取腾讯云代金券