首页 文章 精选 留言 我的

精选列表

搜索[安全相关],共10000篇文章
优秀的个人博客,低调大师

容器镜像安全扫描之Trivy

# 一 概述 ## 1.1 Trivy简介 Trivy是一种适用于CI的简单而全面的容器漏洞扫描程序。软件漏洞是指软件或操作系统中存在的故障、缺陷或弱点。Trivy检测操作系统包(Alpine、RHEL、CentOS等)和应用程序依赖(Bundler、Composer、npm、yarn等)的漏洞。Trivy很容易使用,只要安装二进制文件,就可以扫描了。扫描只需指定容器的镜像名称。与其他镜像扫描工具相比,例如Clair,Anchore Engine,Quay相比,Trivy在准确性、方便性和对CI的支持等方面都有着明显的优势。 ## 1.2 特性 1. 检测面很全,能检测全面的漏洞,操作系统软件包(Alpine、Red Hat Universal Base Image、Red Hat Enterprise Linux、CentOS、Oracle Linux、Debian、Ubuntu、Amazon Linux、openSUSE Leap、SUSE Enterprise Linux、Photon OS 和Distrioless)、应用程序依赖项(Bundler、Composer、Pipenv、Poetry、npm、yarn和Cargo); 1. 使用简单,仅仅只需要指定镜像名称; 1. 扫描快且无状态,第一次扫描将在10秒内完成(取决于您的网络)。随后的扫描将在一秒钟内完成。与其他扫描器在第一次运行时需要很长时间(大约10分钟)来获取漏洞信息,并鼓励您维护持久的漏洞数据库不同,Trivy是无状态的,不需要维护或准备; 1. 易于安装,安装方式: ``` 1. apt-get install 2. yum install 3. brew install ``` 无需安装数据库、库等先决条件(例外情况是需要安装rpm以扫描基于RHEL/CentOS的图像)。 # 二 安装部署 ## 2.1 Linux安装 ``` $ 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 ``` ## 2.2 Mac OS安装 ``` $ brew install knqyf263/trivy/trivy ``` ## 2.3 使用方式 ``` 当然,trivy也支持docker快速启动 docker run --rm -v [YOUR_CACHE_DIR]:/root/.cache/ knqyf263/trivy [YOUR_IMAGE_NAME] 需要将YOUR_CACHE_DIR替换成你的缓存目录,将之前缓存的漏洞库映射到容器中,不然启动会很慢 如果想通过这种方式扫描本机的容器镜像,需要将docker.sock文件映射到容器内,比如 docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \ -v $HOME/.cache/:/root/.cache/ knqyf263/trivy python:3.4-alpine trivy使用简单示例如下: 扫描镜像: trivy [image_name] 扫描通过save方式打包的镜像: trivy --input [image_name.tar] 将扫描结果存为json文件: trivy -f json -o results.json [image_name] 通过设置漏洞级别过滤漏洞: trivy --severity HIGH,CRITICAL [image_name] 通过设置漏洞类型过滤漏洞: trivy --vuln-type os [image_name] 漏洞类型分为os和library 只更新某个系统类型的漏洞库: trivy --only-update alpine,debia [image_name] 指定退出代码: trivy --exit-code 1 [image_name] 指定退出代码,主要是为后续判断提供可操作性,主要是在CI中 由于trivy有缓存,所以在扫描镜像的latest版本的时候,会出现异常,需要清楚缓存操作: trivy --clear-cache [image_name] 如果需要重建本地漏洞数据库,或清除所有缓存,可以通过trivy --reset ``` # 三 集成到CI Trivy有对CI友好的特点,并且官方也以这种方式使用它,想要集成CI只需要一段简单的Yml配置文件即可,如果发现漏洞,测试将失败。如果不希望测试失败,请指定--exit code 0。由于在自动化场景(如CI/CD)中,您只对最终结果感兴趣,而不是对完整的报告感兴趣,因此请使用--light标志对此场景进行优化,以获得快速的结果。 集成GitLab CI的Yml配置可以参考: # 四 注意事项 - 国内拉取漏洞数据库慢。 - 同一台服务器,多个镜像扫描的时候不可并行执行。 - 可以使用--light使用轻量级数据库来优化执行扫描的效率。 # 五 反思 trivy不仅可以集成在CI过程中,及时发现镜像漏洞,而且可以于自建harbor进行集成,定时对已经上传的镜像进行扫描。 # 参考链接 - [github.com/aquasecurit…](https://link.juejin.cn?target=https%2525253A%2525252F%2525252Fgithub.com%2525252Faquasecurity%2525252Ftrivy)

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册