首页天道酬勤mysql优化后的镜像,如何进行漏洞扫描

mysql优化后的镜像,如何进行漏洞扫描

张世龙 05-12 07:32 63次浏览

Trivy的特征

Trivy是一个针对CI的简单、全面的容器漏洞扫描程序。 软件漏洞是指软件或操作系统中存在的故障、缺陷或弱点。 Trivy检测操作系统软件包(Alpine、RHEL、CentOS等)和依赖于APP应用程序(Bundler、Composer、npm、yarn等)的漏洞。 Trivy使用方便,安装二进制文件即可扫描。 扫描只需指定容器的镜像名称。 与其他镜像扫描工具(如Clair、Anchore Engine和Quay )相比,Trivy在准确性、便利性和CI支持等方面具有明显优势。

建议在CI中使用。 在推送到容器注册表之前,可以轻松扫描本地容器的镜像。 Trivy具有检测面完整、可检测全面漏洞的特点。 操作系统软件包(Alpine、Red Hat Universal Base Image、Red Hat Enterprise Linux、CentOS、Oracle Linux、Debian、Ubuntu、Amazon Linux、on Photon OS、Distrioless )、APP应用程序依赖关系(Bundler、Composer、Pipenv、Poetry、npm、yarn、Cargo );

简单,只需指定镜像名称;

扫描快速、无状态,第一次扫描将在10秒内完成(取决于网络)。 后续扫描将在1秒内完成。 要鼓励其他扫描仪在第一次运行时获取漏洞信息并维护永久漏洞数据库,需要时间(约10分钟),但Trivy是无状态的,不需要维护或准备。

安装简单、安装方法: apt-get install

yum安装

brew安装

不需要安装数据库、库等先决条件。 但是,必须安装rpm才能扫描基于RHEL/CentOS的映像。

Trivy的安装

其中,Trivy的安装环境为Centos7,安装的版本为0.4.4,安装的命令如下:

安装结果如下图所示。

Trivy的简单使用方法

下面是Trivy的简单使用命令和一些测试的结果。 主要从几个方面测试Trivy的性能指标。 镜像大小对Trivy扫描速度的影响;

扫描镜像大小与网络通信使用情况的关系

扫描结果是否容易分析;

镜像大小对Trivy扫描速度的影响本地镜像,大小为90MB左右时的扫描:

结果:

时间:第一次扫描为下载数据库。 大致在10分钟内(14M,查看网速),海外主机在10s内,第二次扫描在10秒内完成。 镜像位于本地且大小为408MB左右时的扫描:

结果:

时间: 10秒左右。 扫描的镜像在线且大小为316M左右时的扫描:

结果:

时间: 20s左右

结论:局部扫描镜的大小对扫描速度影响不大,而在线扫描和局部扫描方式对扫描速度影响不大。

在线扫描前的网络流量使用情况,扫描的镜像大小与网络流量使用情况之间的关系:

扫描镜像大小:扫描后服务器的磁盘和网络通信使用情况(316米左右) :

结论:收到的网络通信量等于在线镜像的大小,镜像将被下载并放置在服务器磁盘的某个位置。 当前,本服务器上未安装docker。

注意:再次全扫描同一镜像将不会增加传入的通信量和磁盘利用率。

扫描结果是否可以方便地分析使用json扫描的结果?

扫描镜像,openjdk:15-ea-jdk-buster

大小: 316M左右

时间: 10s左右

结果:标准josn格式文件的许多其他使用命令如下,结果可以自行测试。 按重要性过滤漏洞。

$ tr ivy--按severity high,CRITICAL ruby:2.3.0类型过滤漏洞:

$ tr ivy-- vuln-typeosruby :2.3.0跳过漏洞数据库的更新和更新。 trivy在运行开始时总是更新漏洞数据库。 这通常很快。 因为这是差分更新。 但是,如果要跳过此步骤,请使用--skip update选项。

$ tr ivy-- skip-update python :3.4-alpine 3.9仅下载漏洞数据库。 也可以方便地请求trivy搜索漏洞数据库。 这有助于初始化持续综合系统的工作人员。 第一次运行将忽略--only update选项。

$ trivy --download-db-only

$ tr ivy-- download-d B- only-- only -更新设备将忽略未修复的漏洞。 默认情况下,trivy还检测未修复/未修复的漏洞。 这意味着更新所有软件包无法修复这些漏洞。 要无视

们,请使用--ignore unfixed选项。

$ trivy --ignore-unfixed ruby:2.3.0指定退出代码:默认情况下,即使检测到漏洞,Trivy也会以代码0退出。如果要使用非零退出代码退出,请使用--exit code选项。此选项对CI/CD很有用。在下面的示例中,仅当发现关键漏洞时,测试才会失败。

$ trivy --exit-code 1 python:3.4-alpine3.9

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

$ trivy --exit-code 1 --severity CRITICAL ruby:2.3.0忽略指定的漏洞:

$ cat .trivyignore

CVE-2018-14618

CVE-2019-1543

$ trivy python:3.4-alpine3.9指定缓存目录:

$ trivy --cache-dir /tmp/trivy/ python:3.4-alpine3.9清除镜像缓存:--clear cache选项删除镜像缓存。如果更新具有相同tag的图像(例如使用最新tag时),此选项非常有用。

$ trivy --clear-cachez--reset选项删除所有缓存和数据库。在此之后,需要很长时间才能在本地重建漏洞数据库。

$ trivy --reset使用轻量级数据库:

$ trivy --light alpine:3.10

轻量级数据库不包含诸如描述和引用之类的漏洞详细信息。因此,数据库的大小更小,下载速度更快。

当您不需要漏洞详细信息时,此选项非常有用,并且适用于CI/CD。

不推荐使用的选项:

--only-update,--refresh并且--auto-refresh被废弃了,因为他们现在是不必要的。这些选项将在下一版本中删除。

将Trivy集成进CI

Trivy有对CI友好的特点,并且官方也以这种方式使用它,想要集成CI只需要一段简单的Yml配置文件即可,如果发现漏洞,测试将失败。如果不希望测试失败,请指定--exit code 0。由于在自动化场景(如CI/CD)中,您只对最终结果感兴趣,而不是对完整的报告感兴趣,因此请使用--light标志对此场景进行优化,以获得快速的结果。

集成GitLab CI的Yml配置可以参考:

使用注意点国内拉取漏洞数据库慢。

同一台服务器,多个镜像扫描的时候不可并行执行。

可以使用--light使用轻量级数据库来优化执行扫描的效率。

mysql数据库备份,mysql导出sql文件