简介

官方地址:https://github.com/aquasecurity/trivy

Trivy是aqua(专注云原生场景下的安全)公司的一款开源工具,之前历史文章也有对aqua的一些介绍。

Trivy是一个简单易用且全面的扫描器,支持容器镜像、文件系统、git仓库及配置文件的检测。

Trivy支持操作系统软件包的检测(例如:Alpine, RHEL, CentOS等)和特定语言软件包(例如:Bundler, Composer, npm, yarn等)的漏洞。此外,Trivy扫描基础架构即代码(IaC,基础设施即代码是通过机器可读的定义文件,而不是物理硬件配置或交互式配置工具来管理和配置计算数据中心的过程)文件,如Terraform(类似k8s的编排工具)、Dockerfile和Kubernetes,以检测潜在的配置问题,提前发现潜在安全问题。支持多种操作系统环境。

安装

提供了多种安装方式,Liunx、mac甚至是docker,此处采用的是mac环境下使用brew的安装:

brew install aquasecurity/trivy/trivy

扫描机制

基于文件的静态扫描,对于一些运行态的安全风险,例如逃逸、高危系统调用、异常进程检测、文件异常检测、容器环境检测等存在盲区。

功能

  • 扫描镜像
  • 扫描打包好的镜像
  • 扫描配置文件
  • 集成与扩展

镜像扫描

trivy image [YOUR_IMAGE_NAME]

保存扫描结果:trivy -f json -o output [YOUR_IMAGE_NAME]

文件扫描

trivy fs /path/to/project

git仓库扫描

$ trivy repo https://github.com/knqyf263/trivy-ci-test

server-client 模式

基于扫描效率的考虑,出现了server-client模式,在初次扫描时,server会下载所需的漏洞数据库,并在后台持续获取最新的数据库。

集成与扩展

根据互联网数据统计,超过 30%的 Docker Hub官方镜像存在高危漏洞,超过 18%的GitHub开源项目包含恶意代码,而日常开发人员编写的代码中,往往就引用/借鉴了一定的开源项目。这就直接可能导致恶意代码、镜像直接进入生产环境,随着开发人员的代码提交而成为在线业务,这种供应链对企业带来的风险可想而知。

trivy除了作为一个独立的镜像扫描工具外,还能和其他平台/工具做集成或扩展、嵌入CI流水线中:

同类产品比较

可以看到有镜像扫描工具的“前辈” clair 也在列,但从支持检测的语言包、易用性、准确性、和CI的集成度等方面,trivy略胜一筹。留个坑,后续有时间可以来深入学习下各个工具的异同。

Trivy 容器镜像扫描工具学习的更多相关文章

  1. 企业运维实践-丢弃手中的 docker build , 使用Kaniko直接在Kubernetes集群或Containerd环境中快速进行构建推送容器镜像

    关注「WeiyiGeek」公众号 设为「特别关注」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 本章目录 目录 首发地址: h ...

  2. 【K8S学习笔记】Part2:获取K8S集群中运行的所有容器镜像

    本文将介绍如何使用kubectl列举K8S集群中运行的Pod内的容器镜像. 注意:本文针对K8S的版本号为v1.9,其他版本可能会有少许不同. 0x00 准备工作 需要有一个K8S集群,并且配置好了k ...

  3. 阿里云开源 image-syncer 工具,容器镜像迁移同步的终极利器

    为什么要做这个工具? 由于阿里云上的容器服务 ACK 在使用成本.运维成本.方便性.长期稳定性上大大超过公司自建自维护 Kubernets 集群,有不少公司纷纷想把之前自己维护 Kubernetes ...

  4. 小白学习安全测试(四)——扫描工具-Vega

    WEB扫描工具-Vega 纯图形化界面,Java编写的开源web扫描器.两种工作模式:扫描模式和代理模式[主流扫描功能].用于爬站.处理表单,注入测试等.支持SSL:http://vega/ca.cr ...

  5. 小白学习安全测试(三)——扫描工具-Nikto使用

    扫描工具-Nikto #基于WEB的扫描工具,基本都支持两种扫描模式.代理截断模式,主动扫描模式 手动扫描:作为用户操作发现页面存在的问题,但可能会存在遗漏 自动扫描:基于字典,提高速度,但存在误报和 ...

  6. 容器镜像服务联手 IDE 插件,实现一键部署、持续集成与交付

    容器技术提供了一种标准化的交付方式,将应用的代码以及代码环境依赖都打包在一起,成为一个与环境无关的交付物,可以被用在软件生命周期的任何阶段,彻底改变了传统的软件交付方式. 甚至可以说,是在容器技术之后 ...

  7. Docker安全扫描工具之DockerScan

    前言 本篇简单介绍Docker扫描工具DockerScan的安装使用.下述过程是在CentOS 7.6的虚拟机上进行的. [root@localhost ~]# cat /etc/redhat-rel ...

  8. Docker安全扫描工具之Anchore

    本篇简单介绍一款Docker安全扫描工具Anchore的安装和使用. 前言 下述过程是在CentOS 7.6的虚拟机上进行的. [root@localhost ~]# cat /etc/redhat- ...

  9. 私有容器镜像仓库harbor

    私有镜像仓库Harbor 1.Harbor概述 Habor是由VMWare公司开源的容器镜像仓库.事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用 ...

随机推荐

  1. 【原创】SystemVerilog中的typedef前置声明方式

    SystemVerilog中,为了是代码简洁.易记,允许用户根据个人需要使用typedef自定义数据类型名,常用的使用方法可参见"define和typedef区别".但是在Syst ...

  2. 基于python深度学习的apk风险预测脚本

    基于python深度学习的apk风险预测脚本 为了有效判断安卓apk有无恶意操作,利用python脚本,通过解包apk文件,对其中xml文件进行特征提取,通过机器学习构建模型,预测位置的apk包是否有 ...

  3. sarama的消费者组分析、使用

    以前老的sarama版本不支持消费者组的消费方式,所以大多数人都用sarama-cluster. 后来sarama支持了消费者组的消费方式,sarama-cluster也停止维护了,但网上关于sara ...

  4. 题解 Math teacher's homework

    题目传送门 题目大意 给出 \(n,k\) 以及 \(a_{1,2,...,n}\) ,求有多少个 \(m_{1,2,...,n}\) 满足 \(\forall i,m_i\le a_i\) 且 \( ...

  5. 一文了解MySQL性能测试及调优中的死锁处理方法,你还看不明白?

    一文了解MySQL性能测试及调优中的死锁处理方法,你还看不明白? 以下从死锁检测.死锁避免.死锁解决3个方面来探讨如何对MySQL死锁问题进行性能调优. 死锁检测 通过SQL语句查询锁表相关信息: ( ...

  6. .NET 分布式系统架构(有转载部分)

    一.设计目的 搭建一个大型平台需要综合考虑很多方面,不单纯是软件架构,还包括网络和硬件设备等.由于现代大部分应用建设都面临用户多.高并发.高可用的需求,传统软件架构已不能满足需求,需要支持分布式软件架 ...

  7. vue3.x非兼容的变更

    走马观花似的看看从vue2.x开始到vue3.x的一些非兼容性的变更,这样在将来升级过程中遇到那些奇奇怪怪的不能用的时候,就会很容易解决啦. 全局 API 全局 Vue API 已更改为使用应用程序实 ...

  8. CentOS 文件管理

    目录 目录管理 目录结构 切换目录 查看目录 创建目录 复制目录 剪切目录 删除目录 文件管理 查看文件 创建文件 复制文件 剪切文件 删除文件 创建链接 目录管理 目录也是一种文件. 蓝色目录,绿色 ...

  9. BUAA-软件工程第一次作业

    软件工程第一次作业 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 第1次个人作业 我在这个课程的目标 团队完成好的软件,并对自己作出规划 这个作 ...

  10. mysql分表之后怎么平滑上线?

    分表的目的 项目开发中,我们的数据库数据越来越大,随之而来的是单个表中数据太多.以至于查询数据变慢,而且由于表的锁机制导致应用操作也受到严重影响,出现了数据库性能瓶颈. 当出现这种情况时,我们可以考虑 ...