Trivy 容器镜像扫描工具学习
简介
官方地址: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流水线中:
- Pluggable Image Vulnerability Scanners for Harbor
- DevSecOps with Trivy and GitHub Actions
- Find Image Vulnerabilities Using GitHub and Aqua Security Trivy Action
- Using Trivy to Discover Vulnerabilities in VS Code Projects
同类产品比较
可以看到有镜像扫描工具的“前辈” clair 也在列,但从支持检测的语言包、易用性、准确性、和CI的集成度等方面,trivy略胜一筹。留个坑,后续有时间可以来深入学习下各个工具的异同。

Trivy 容器镜像扫描工具学习的更多相关文章
- 企业运维实践-丢弃手中的 docker build , 使用Kaniko直接在Kubernetes集群或Containerd环境中快速进行构建推送容器镜像
关注「WeiyiGeek」公众号 设为「特别关注」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 本章目录 目录 首发地址: h ...
- 【K8S学习笔记】Part2:获取K8S集群中运行的所有容器镜像
本文将介绍如何使用kubectl列举K8S集群中运行的Pod内的容器镜像. 注意:本文针对K8S的版本号为v1.9,其他版本可能会有少许不同. 0x00 准备工作 需要有一个K8S集群,并且配置好了k ...
- 阿里云开源 image-syncer 工具,容器镜像迁移同步的终极利器
为什么要做这个工具? 由于阿里云上的容器服务 ACK 在使用成本.运维成本.方便性.长期稳定性上大大超过公司自建自维护 Kubernets 集群,有不少公司纷纷想把之前自己维护 Kubernetes ...
- 小白学习安全测试(四)——扫描工具-Vega
WEB扫描工具-Vega 纯图形化界面,Java编写的开源web扫描器.两种工作模式:扫描模式和代理模式[主流扫描功能].用于爬站.处理表单,注入测试等.支持SSL:http://vega/ca.cr ...
- 小白学习安全测试(三)——扫描工具-Nikto使用
扫描工具-Nikto #基于WEB的扫描工具,基本都支持两种扫描模式.代理截断模式,主动扫描模式 手动扫描:作为用户操作发现页面存在的问题,但可能会存在遗漏 自动扫描:基于字典,提高速度,但存在误报和 ...
- 容器镜像服务联手 IDE 插件,实现一键部署、持续集成与交付
容器技术提供了一种标准化的交付方式,将应用的代码以及代码环境依赖都打包在一起,成为一个与环境无关的交付物,可以被用在软件生命周期的任何阶段,彻底改变了传统的软件交付方式. 甚至可以说,是在容器技术之后 ...
- Docker安全扫描工具之DockerScan
前言 本篇简单介绍Docker扫描工具DockerScan的安装使用.下述过程是在CentOS 7.6的虚拟机上进行的. [root@localhost ~]# cat /etc/redhat-rel ...
- Docker安全扫描工具之Anchore
本篇简单介绍一款Docker安全扫描工具Anchore的安装和使用. 前言 下述过程是在CentOS 7.6的虚拟机上进行的. [root@localhost ~]# cat /etc/redhat- ...
- 私有容器镜像仓库harbor
私有镜像仓库Harbor 1.Harbor概述 Habor是由VMWare公司开源的容器镜像仓库.事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用 ...
随机推荐
- Go语言之循环与条件判断
一.for循环 Go 语言中没有 while 循环,只有一个 for 循环 for 变量初始化;条件;变量自增/自减 { 循环体内容 } 1.基本使用 for i := 0; i < 10; i ...
- == 和 equals区别
== equals是两种字符串的方式 区别 == 是比较两个对象的引用地址值 equals是比较两个对象的具体内容 示例 package com.oop.demo06; public class De ...
- WPF实现聚光灯效果
WPF开发者QQ群: 340500857 | 微信群 -> 进入公众号主页 加入组织 前言 效果仿照 CSS聚光灯效果 实现思路: 1. 设置底部Canvas背景色 #222222 . 2. ...
- Flutter随笔(二)——使用Flutter Web + Docker + Nginx打造一个简单的Web项目
前言 Flutter作为一个跨平台UI框架,功能十分强大,仅用一套代码便能编译出Android.iOS.Web.windows.macOS.Windows.Linux等平台上的应用,各平台应用体验高度 ...
- 来说说JPA、Hibernate、Spring Data JPA之间的什么关系?
目录 JPA Hibernate Spring Data JPA 实践 来说说JPA.Hibernate.Spring Data JPA之间的什么关系 Java 持久层框架访问数据库的方式大致分为两种 ...
- Beta-技术规格说明书
项目 内容 这个作业属于哪个课程 2021春季软件工程(罗杰 任健) 这个作业的要求在哪里 团队项目-计划-功能规格说明书 一.架构与技术栈 1.整体架构 本项目的整体架构如上图所示.下面我们将对涉及 ...
- [软工顶级理解组] 团队任务拆解(Alpha)
一.任务概述 在alpha阶段,我们需要完成功能规格说明书中所提到的所有功能,在一个阶段的开发周期内,交付最小可行的可用版本. 二.任务分配及时长 分组&成员 具体任务 预计时长(小时) 前端 ...
- UltraSoft - Beta - Scrum Meeting 4
Date: May 20th, 2020. Scrum 情况汇报 进度情况 组员 负责 今日进度 q2l PM.后端 完成了课程中心对课程提醒的爬虫 Liuzh 前端 修改DDL列表中起始时间为课程名 ...
- 2020BUAA软工个人博客作业-软件案例分析
2020BUAA软工个人博客作业-软件案例分析 17373010 杜博玮 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业-软件案例分 ...
- Spring Boot 2.5.0 重新设计的spring.sql.init 配置有何用?
前几天Spring Boot 2.5.0发布了,其中提到了关于Datasource初始化机制的调整,有读者私信想了解这方面做了什么调整.那么今天就要详细说说这个重新设计的配置内容,并结合实际情况说说我 ...