0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Trivy容器镜像安全漏洞扫描工具简介

马哥Linux运维 ? 来源:博客园 ? 2025-02-05 13:35 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一.系统环境

本文主要基于Docker version 20.10.14和Linux操作系统Ubuntu 18.04。

服务器版本 docker软件版本 CPU架构
Ubuntu 18.04.5 LTS Docker version 20.10.14 x86_64

二.前言

随着容器技术的普及,容器镜像的安全性问题日益凸显。容器镜像中可能存在的漏洞会被攻击者利用,从而导致整个应用的安全风险。因此,对容器镜像进行安全漏洞扫描成为了必要的需求。Trivy是一款由aquasecurity团队开发的容器镜像安全漏洞扫描工具,支持Docker、Kubernetes等多种容器技术,具有易于使用、支持多种漏洞数据库等特点。

三.Trivy简介

Trivy是一款全面且多功能的安全扫描程序。Trivy 具有查找安全问题的扫描器。Trivy官网为:https://github.com/aquasecurity/trivy ,Trivy软件包下载地址为:https://github.com/aquasecurity/trivy/releases/。
Trivy 可以扫描的对象为:

容器镜像;

文件系统;

Git Repository (远程);

虚拟机映像;

Kubernetes;

AWS系统。

Trivy能够发现的问题有:

正在使用的操作系统包和软件依赖项 (SBOM);

已知漏洞 (CVE);

IaC 问题和错误配置;

敏感信息和机密;

软件许可证。

四.Trivy漏洞扫描原理

Trivy通过分析容器镜像的文件系统,识别出其中的软件包及其版本号,然后与漏洞数据库进行匹配,找出存在安全漏洞的软件包。Trivy采用了以下技术实现漏洞扫描:

Dockerfile解析:Trivy可以根据Dockerfile自动解析出容器镜像的构建过程,获取镜像中包含的软件包及其版本号。

漏洞数据库匹配:Trivy将容器镜像中的软件包及其版本号与漏洞数据库进行匹配,找出存在安全漏洞的软件包。

漏洞详情展示:Trivy提供了详细的漏洞信息,包括漏洞描述、影响版本、修复建议等,帮助用户了解漏洞风险。

CVE全称是Common Vulnerabilities and Exposures,即通用漏洞披露,它是MITRE公司维护和更新的安全漏洞列表,列表中的每个条目都会有一个唯一的CVE编号,即CVE ID,供安全研究员和受攻击的软件供应商使用,以便确定和回应安全漏洞。CVE条目包含了与CVE ID相关的漏洞的描述性数据(即简要描述和至少一个参考)。当前CVE累计收录了19万+个安全漏洞。

Trivy漏洞扫描原理简单来说就是:Trivy下载漏洞数据库CVE到本地,Trivy本地数据库记录了常见的漏洞信息,Trivy读取镜像里的程序和本地数据库进行比对,确定镜像是否存在漏洞

五.利用trivy检测容器镜像的安全性

首先需要安装docker。


[root@etcd2~]#yum-yinstalldocker-ce
查看docker版本。

[root@etcd2 ~]# docker -v
Docker version 20.10.12, build e91ed57

配置docker镜像加速器。


[root@etcd2 ~]# cat /etc/docker/daemon.json
{
    "registry-mirrors": [
        "https://frz7i079.mirror.aliyuncs.com"
    ]
}

提前下载好镜像做准备,我们下载了redis,busybox,nginx镜像。


[root@etcd2 ~]# docker pull redis


[root@etcd2 ~]# docker pull busybox


[root@etcd2 ~]# docker pull nginx


[root@etcd2 ~]# docker images
REPOSITORY                    TAG       IMAGE ID       CREATED        SIZE
busybox                       latest    ec3f0931a6e6   4 months ago   1.24MB
nginx                         latest    605c77e624dd   5 months ago   141MB
redis                         latest    7614ae9453d1   5 months ago   113MB

下载好trivy安装包。


[root@etcd2 ~]# ls trivy_0.28.1_Linux-64bit.rpm 
trivy_0.28.1_Linux-64bit.rpm

安装trivy。


[root@etcd2~]#yum-yinstalltrivy_0.28.1_Linux-64bit.rpm
现在trivy就安装好了。

[root@etcd2 ~]# which trivy
/usr/local/bin/trivy

查看帮助:trivy --help。


[root@etcd2 ~]# trivy --help

查看trivy扫描镜像的语法:


[root@etcd2 ~]# trivy image --help

trivy image nginx 表示检测nginx镜像的漏洞,第一次检测漏洞会下载漏洞数据库,漏洞数据库目录默认是~/.cache/trivy 。


[root@etcd2 ~]# trivy image nginx
2022-06-16T1701.035+0800  INFO  Need to update DB
2022-06-16T17:06:01.036+0800  INFO  DB Repository: ghcr.io/aquasecurity/trivy-db
2022-06-16T17:06:01.036+0800  INFO  Downloading DB...
32.56 MiB / 32.56 MiB [------------------------------------------------------------------------------------------------------------------------------------------------------------] 100.00% 42.01 KiB p/s 13m14ss
2022-06-16T17:19:28.400+0800  WARN  Increase --timeout value
2022-06-16T17:19:28.400+0800  FATAL  image scan error: scan error: image scan failed: failed analysis: analyze error: timeout: context deadline exceeded

漏洞数据库下载好之后,就可以检测镜像漏洞了,显示了5个级别的漏洞:

UNKNOWN: 1, LOW: 93, MEDIUM: 43, HIGH: 41, CRITICAL: 24。
[root@etcd2 ~]# trivy image nginx
2022-06-16T1711.533+0800  INFO  Detected OS: debian
2022-06-16T1711.533+0800  INFO  Detecting Debian vulnerabilities...
2022-06-16T1711.585+0800  INFO  Number of language-specific files: 0


nginx (debian 11.2)


Total: 202 (UNKNOWN: 1, LOW: 93, MEDIUM: 43, HIGH: 41, CRITICAL: 24)


┌─────────────────────┬──────────────────┬──────────┬────────────────────┬─────────────────────────┬──────────────────────────────────────────────────────────────┐
│       Library       │  Vulnerability   │ Severity │ Installed Version  │      Fixed Version      │                            Title                             │
├─────────────────────┼──────────────────┼──────────┼────────────────────┼─────────────────────────┼──────────────────────────────────────────────────────────────┤
│ apt                 │ CVE-2011-3374    │ LOW      │ 2.2.4              │                         │ It was found that apt-key in apt, all versions, do not       │
│                     │                  │          │                    │                         │ correctly...                                                 │
│                     │                  │          │                    │                         │ https://avd.aquasec.com/nvd/cve-2011-3374                    │
├─────────────────────┼──────────────────┼──────────┼────────────────────┼─────────────────────────┼──────────────────────────────────────────────────────────────┤
│ bsdutils            │ CVE-2021-3995    │ MEDIUM   │ 2.36.1-8           │ 2.36.1-8+deb11u1        │ util-linux: Unauthorized unmount of FUSE filesystems         │
│                     │                  │          │                    │                         │ belonging to users with similar uid...                       │
│                     │                  │          │                    │                         │ https://avd.aquasec.com/nvd/cve-2021-3995                    │
├─────────────────────┼──────────────────┼──────────┼────────────────────┼─────────────────────────┼──────────────────────────────────────────────────────────────┤
......
├─────────────────────┼──────────────────┼──────────┼────────────────────┼─────────────────────────┼──────────────────────────────────────────────────────────────┤
│ zlib1g              │ CVE-2018-25032   │ HIGH     │ 1:1.2.11.dfsg-2    │ 1:1.2.11.dfsg-2+deb11u1 │ zlib: A flaw found in zlib when compressing (not             │
│                     │                  │          │                    │                         │ decompressing) certain inputs...                             │
│                     │                  │          │                    │                         │ https://avd.aquasec.com/nvd/cve-2018-25032                   │
└─────────────────────┴──────────────────┴──────────┴────────────────────┴─────────────────────────┴──────────────────────────────────────────────────────────────┘

trivy缓存漏洞数据库目录如下:


[root@etcd2 ~]# ls .cache/trivy/ -lh
总用量 0
drwxr-xr-x 2 root root 43 6月  16 17:19 db
drwx------ 2 root root 22 6月  16 17:06 fanal

trivy会下载漏洞数据库到本地,有时候下载会很慢,可以直接把已经安装好的~/.cache/trivy文件夹直接打包,放到新安装的机器上,就可以直接使用trivy了。

Trivy开始运行时每 12 小时下载一次漏洞数据库。这通常很快,因为数据库的大小只有 10~30MB。但是,如果您甚至想跳过它,请使用该--skip-db-update选项:trivy image --skip-db-update nginx:1.16。

trivy只下载漏洞数据库语法为:

[root@etcd2 ~]# trivy image --download-db-only

检测redis镜像漏洞。


[root@etcd2 ~]# trivy image redis | head
2022-06-16T1718.504+0800  INFO  Detected OS: debian
2022-06-16T1718.505+0800  INFO  Detecting Debian vulnerabilities...
2022-06-16T1718.520+0800  INFO  Number of language-specific files: 0


redis (debian 11.2)
===================
Total: 108 (UNKNOWN: 0, LOW: 63, MEDIUM: 18, HIGH: 16, CRITICAL: 11)


┌──────────────────┬──────────────────┬──────────┬───────────────────┬─────────────────────────┬──────────────────────────────────────────────────────────────┐
│     Library      │  Vulnerability   │ Severity │ Installed Version │      Fixed Version      │                            Title                             │

检测nginx镜像漏洞。


[root@etcd2 ~]# trivy image nginx | head
2022-06-16T1735.172+0800  INFO  Detected OS: debian
2022-06-16T1735.172+0800  INFO  Detecting Debian vulnerabilities...
2022-06-16T1735.189+0800  INFO  Number of language-specific files: 0


nginx (debian 11.2)
===================
Total: 202 (UNKNOWN: 1, LOW: 93, MEDIUM: 43, HIGH: 41, CRITICAL: 24)


┌─────────────────────┬──────────────────┬──────────┬────────────────────┬─────────────────────────┬──────────────────────────────────────────────────────────────┐
│       Library       │  Vulnerability   │ Severity │ Installed Version  │      Fixed Version      │                            Title                             │

注意Trivy 漏洞报告格式默认是表格。


[root@etcd2~]#trivyimage-ftablenginx:1.16
Trivy 漏洞报告格式也可以设置为JSON格式(-f), -o指定输出打印到文件里。

[root@etcd2~]#trivyimage-fjson-oresults.jsonnginx:1.16
六.总结

Trivy是一款功能强大、易于使用的容器镜像安全漏洞扫描工具。通过在docker环境下的实践,我们了解到Trivy可以有效地检测容器镜像中的安全漏洞,帮助我们保障应用的安全性。

致力于一条龙式的为您解决问题

链接:https://www.cnblogs.com/renshengdezheli/p/18261192

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    88

    文章

    11535

    浏览量

    214880
  • 服务器
    +关注

    关注

    13

    文章

    9859

    浏览量

    88423
  • 操作系统
    +关注

    关注

    37

    文章

    7190

    浏览量

    126227

原文标题:五.利用trivy检测容器镜像的安全性

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    开发人员和嵌入式系统设计人员如何使用JWT关闭物联网设备的安全漏洞

    本文将介绍物联网设备安全威胁,并介绍目前用于应对该威胁的设备。它将确定安全漏洞以及开发人员和嵌入式系统设计人员如何使用JWT关闭它们。
    发表于 06-16 06:17

    软件安全漏洞的静态检测技术

    软件安全漏洞问题日益严重,静态漏洞检测提供从软件结构和代码中寻找漏洞的方法。该文研究软件漏洞静态检测的两个主要方面:静态分析和程序验证,重点分析词法分析、规则
    发表于 04-20 09:38 ?17次下载

    Linux发现更多安全漏洞LHA 与imlib受到波及

    Linux 发现更多安全漏洞 LHA 与imlib 受到波及 日前,开放源开发商已经发出警告,称两种Linux 部件内出现严重的安全漏洞。利用这些漏洞
    发表于 06-12 10:07 ?553次阅读

    Intel发布补丁 修复vPro安全漏洞

    Intel发布补丁 修复vPro安全漏洞 近日来自波兰的研究人员指出Intel基于芯片的安全保护措施存在安全漏洞,其TXT(可信赖执行技术)中的执行错误
    发表于 12-24 09:06 ?743次阅读
    Intel发布补丁 修复vPro<b class='flag-5'>安全漏洞</b>

    基于区块链的网络安全漏洞检测系统

    基于区块链的网络安全漏洞检测系统
    发表于 06-19 15:44 ?13次下载

    基于循环神经网络的Modbus/TCP安全漏洞测试

    基于循环神经网络的Modbus/TCP安全漏洞测试
    发表于 06-27 16:39 ?30次下载

    分解漏洞扫描,什么是漏洞扫描

    任务组RFC4949[1]: 系统设计、部署、运营和管理中,可被利用于违反系统安全策略的缺陷或弱点。 中国国家标准 信息安全技术-网络安全漏洞标识与描述规范 GB/T 28458-2020[2]:?网络
    的头像 发表于 10-12 16:38 ?1627次阅读
    分解<b class='flag-5'>漏洞</b><b class='flag-5'>扫描</b>,什么是<b class='flag-5'>漏洞</b><b class='flag-5'>扫描</b>?

    Acunetix Web Vulnerability Scanner(AWVS)工具简介

    Acunetix Web Vulnerability Scanner(简称 AWVS) 是一款知名的自动化网络漏洞扫描工具,它通过网络爬虫测试你的网站安全,检测流行
    的头像 发表于 02-08 16:54 ?5477次阅读

    Trivy:面向镜像漏洞检测工具

    项目地址 https://github.com/knqyf263/trivy ? Trivy 是一个面向镜像漏洞检测工具,具备如下特点:
    的头像 发表于 06-19 09:48 ?1036次阅读
    <b class='flag-5'>Trivy</b>:面向<b class='flag-5'>镜像</b>的<b class='flag-5'>漏洞</b>检测<b class='flag-5'>工具</b>

    常见的漏洞扫描工具

    漏洞扫描工具是现代企业开展渗透测试服务中必不可少的工具之一,可以帮助渗透测试工程师快速发现被测应用程序、操作系统、计算设备和网络系统中存在的安全
    的头像 发表于 06-28 09:42 ?2474次阅读
    常见的<b class='flag-5'>漏洞</b><b class='flag-5'>扫描</b><b class='flag-5'>工具</b>

    ?这10款容器安全工具特点分析

    借助先进的Docker安全管理工具,企业组织可以自动扫描Docker镜像并查找安全漏洞,发现其中已过时的软件包或已知的
    的头像 发表于 11-27 16:12 ?972次阅读
    ?这10款<b class='flag-5'>容器</b><b class='flag-5'>安全</b><b class='flag-5'>工具</b>特点分析

    如何消除内存安全漏洞

    “MSL 可以消除内存安全漏洞。因此,过渡到 MSL 可能会大大降低投资于旨在减少这些漏洞或将其影响降至最低的活动的必要性。
    发表于 12-12 10:29 ?1108次阅读
    如何消除内存<b class='flag-5'>安全漏洞</b>

    多功能安全扫描工具介绍

    Trivy(发音)是一款全面且多功能的安全扫描仪。Trivy 拥有用于查找安全问题的扫描仪,以及
    的头像 发表于 12-13 10:20 ?1225次阅读
    多功能<b class='flag-5'>安全</b><b class='flag-5'>扫描</b>仪<b class='flag-5'>工具</b>介绍

    漏洞扫描的主要功能是什么

    漏洞扫描是一种网络安全技术,用于识别计算机系统、网络或应用程序中的安全漏洞。这些漏洞可能被恶意用户利用来获取未授权访问、数据泄露或其他形式的
    的头像 发表于 09-25 10:25 ?1017次阅读

    漏洞扫描一般采用的技术是什么

    漏洞扫描是一种安全实践,用于识别计算机系统、网络或应用程序中的安全漏洞。以下是一些常见的漏洞扫描
    的头像 发表于 09-25 10:27 ?945次阅读