首页 > 其他分享 >基础网络安全-K8S之安全漏洞扫描

基础网络安全-K8S之安全漏洞扫描

时间:2024-09-21 18:27:03浏览次数:14  
标签:网络安全 trivy k8s -- 09 db aquasecurity 安全漏洞 K8S

一、前言

在之前的文章《Docker安全学习之——Docker 安全总结》中介绍了docker搭建后使用工具进行漏洞扫描,本篇则是介绍的在K8S搭建后需要开展的扫描工作,包括K8S自身的组件以及docker镜像等,这里介绍的是trivy这一款工具。

二、工具简要介绍

Trivy工具的GITHUB地址为:https://github.com/aquasecurity/trivy,讨论社区地址为:https://github.com/aquasecurity/trivy/discussions,可以在这里提一些问题讨论。Trivy工具可以扫描容器镜像、文件系统、K8S等,安装方式包括容器安装、二进制等方式。Trivy由trivy工具以及漏洞数据库组成,trivy数据库又包括db、javadb两个部分,在默认情况下,工具首次安装时并不会安装漏洞库,在首次运行工具时会自动进行下载,不过由于国内的限制可能下载不成功,可以用国内的下载地址。

三、安装Trivy工具

采用二进制的方式安装比较简单,直接下载release版本,然后解压得到trivy可执行文件即可。

基础网络安全-K8S之安全漏洞扫描_oras

[root@k8s-master1 trivy]# cp trivy /usr/local/bin/

运行trivy测试一下:

[root@k8s-worker1 trivy]# ./trivy image nginx:1.8

基础网络安全-K8S之安全漏洞扫描_trivydb_02

可以看到首次运行的时候在从ghcr.io/aquasecurity/下载db数据库,由于因为下载很慢,现在先解决漏洞库更新的问题。

 四、安装漏洞库

关于数据库的介绍可以看https://github.com/aquasecurity/trivy-db以及https://github.com/aquasecurity/trivy-java-db/ 这两个链接,这里介绍两种方式进行更新,一是离线更新,二是在线更新。使用国内的地址ghcr.nju.edu.cn/aquasecurity/trivy-db:2、ghcr.nju.edu.cn/aquasecurity/trivy-java-db:1

(一)  离线更新

使用oras工具进行离线更新,oras也是一个二进制文件,下载后拷贝到/usr/local/bin目录下,全局皆可以使用。

[root@k8s-worker1 trivy]# oras pull ghcr.nju.edu.cn/aquasecurity/trivy-db:2

Downloading 91177f748f90 db.tar.gz

Downloaded  91177f748f90 db.tar.gz

Pulled [registry] ghcr.nju.edu.cn/aquasecurity/trivy-db:2

Digest: sha256:e568fa3f29ff83f6d6a2564f862ce27b8b9010ab338e26421917ce5f9d6e2184

 [root@k8s-worker1 trivy]# oras pull ghcr.nju.edu.cn/aquasecurity/trivy-java-db:1

Downloading c92eadafdf3b javadb.tar.gz

Downloaded  c92eadafdf3b javadb.tar.gz

Pulled [registry] ghcr.nju.edu.cn/aquasecurity/trivy-java-db:1

Digest: sha256:e6ee14304a8d2651b7f37fecf4fe80be16edcad86dd419503e50431f6531d44b

基础网络安全-K8S之安全漏洞扫描_trivy_03

这样就将漏洞库下载下来了,我们将漏洞库放到/home/trivy/trivy-db/目录下,然后解压,目录结构如下:

基础网络安全-K8S之安全漏洞扫描_k8s_04

执行扫描命令:trivy --cache-dir /home/trivy/trivy-db image nginx:1.8,仍然会从默认的地址去下载漏洞库,通过--skip-db-update跳过db检查,报错:

trivy --cache-dir /home/trivy/trivy-db image nginx:1.8 --skip-db-update

基础网络安全-K8S之安全漏洞扫描_k8s_05

提示:--skip-update cannot be specified on the first run,那就只好在首次运行时进行一次更新。

(二)  在线更新

通过--db-repository、--java-db-repository指定更新地址,完成首次更新:

[root@k8s-worker1 trivy]# ./trivy  image nginx:1.8 --db-repository ghcr.nju.edu.cn/aquasecurity/trivy-db:2

 [root@k8s-worker1 trivy]# ./trivy  image nginx:1.8 --java-db-repository ghcr.nju.edu.cn/aquasecurity/trivy-java-db:1

五、使用trivy进行扫描

(一)  使用Trivy对image进行扫描

Trivy的命令比较多,扫描的结果可以以多种格式输出,默认是table,由于输出内容较多,我将结果存放到1.txt中,如下:

trivy image nginx:1.8  > output/1.txt,查看一下结果:

基础网络安全-K8S之安全漏洞扫描_k8s扫描_06

       Trivy还可以过滤漏洞的安全级别,指定json格式输出:

[root@k8s-worker1 ~]# trivy image nginx:1.8 -f json -s HIGH,CRITICAL -o trivy/output/2.txt

基础网络安全-K8S之安全漏洞扫描_k8s扫描_07

       查看文件:less trivy/output/2.txt

基础网络安全-K8S之安全漏洞扫描_trivydb_08

(二)使用Trivy对k8s进行扫描

使用report summary命令只输入简要信息,使用下面的命令发现报错:

[root@k8s-master1 trivy]# trivy k8s --report summary --disable-node-collector -d

2024-09-18T00:12:50-04:00       DEBUG   No plugins loaded

2024-09-18T00:12:50-04:00       DEBUG   Default config file "file_path=trivy.yaml" not found, using built in values

2024-09-18T00:12:50-04:00       DEBUG   Cache dir       dir="/root/.cache/trivy"

2024-09-18T00:12:50-04:00       DEBUG   Cache dir       dir="/root/.cache/trivy"

2024-09-18T00:12:50-04:00       DEBUG   Parsed severities       severities=[UNKNOWN LOW MEDIUM HIGH CRITICAL]

2024-09-18T00:12:50-04:00       DEBUG   Ignore statuses statuses=[]

2024-09-18T00:12:53-04:00       DEBUG   DB update was skipped because the local DB is the latest

2024-09-18T00:12:53-04:00       DEBUG   DB info schema=2 updated_at=2024-09-20T18:12:42.781188704Z next_update=2024-09-21T00:12:42.781188404Z downloaded_at=2024-09-18T03:42:23.697619193Z

6 / 143 [------>_____________________________________________________________________________________________________________________________________________________] 4.20% 0 p/s

2024-09-18T00:25:38-04:00       FATAL   Fatal error

  - k8s scan error:

    github.com/aquasecurity/trivy/pkg/k8s/commands.(*runner).run

        /home/runner/work/trivy/trivy/pkg/k8s/commands/run.go:91

  - context deadline exceeded

基础网络安全-K8S之安全漏洞扫描_k8s扫描_09

这一步非常耗时时间,可以增加timeout,默认是5分钟,我们设置为2小时:

[root@k8s-master1 trivy]# trivy k8s --report summary --disable-node-collector -d --timeout 2h

可以看到本次扫描成功了,但是因为我是在K8S的master上面扫描的,在Master上没有安装docker,因此对Image扫描失败,后面是简要信息的输出:

基础网络安全-K8S之安全漏洞扫描_k8s_10

基础网络安全-K8S之安全漏洞扫描_k8s扫描_11

基础网络安全-K8S之安全漏洞扫描_oras_12

--report 默认的参数是all,也即输出所有的详细信息,由于信息比较多,可以输出到特定的文件中:

[root@k8s-master1 trivy]# trivy k8s --report all --disable-node-collector -d --timeout 2h > output/k8s.txt

基础网络安全-K8S之安全漏洞扫描_trivydb_13

查看文本中输出的信息:

基础网络安全-K8S之安全漏洞扫描_k8s_14

六、总结

Trivy还有很多的功能,可以通过--help查看具体的内容,同时trivy还有一部分功能还在测试中,在使用的时候可以结合其他的工具进行总体安全评估。

标签:网络安全,trivy,k8s,--,09,db,aquasecurity,安全漏洞,K8S
From: https://blog.51cto.com/u_9652359/12074958

相关文章

  • kubeasz 部署k8s1.30.1集群
    实验环境系统:ubuntu24.04cat/etc/hosts192.168.0.71jichao71192.168.0.72jichao72192.168.0.73jichao73192.168.0.74jichao74192.168.0.75jichao75主节点安装ansible#主节点安装apt-get-yinstallansible下载kubeasz最新版本exportrelease=3.6.4wget......
  • 网络安全:腾讯云智、绿盟、美团、联想的面经
    《网安面试指南》http://mp.weixin.qq.com/s?__biz=MzkwNjY1Mzc0Nw==&mid=2247484339&idx=1&sn=356300f169de74e7a778b04bfbbbd0ab&chksm=c0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene=21#wechat_redirect《Java代码审计》htt......
  • 如何确保k8s中node高可用
    动一下小手点一下赞。谢谢!你的赞就是我更新的动力。Kubernetes(K8S)是一个开源的容器编排引擎,能够自动化管理容器化应用程序的部署、扩展和运维。为了保证K8S中node的高可用性,我们可以通过配置合适的调度策略和节点健康检查来确保集群中的节点不会单点故障。下面将介绍如何实现在K8S......
  • 2024年三个月自学 网络安全(黑客技术)手册
    ......
  • 自学黑客(网络安全),一般人我劝你还是算了吧_网络安全漏洞挖掘需要报课吗
    一、自学网络安全学习的误区和陷阱1.不要试图先成为一名程序员(以编程为基础的学习)再开始学习我在之前的回答中,我都一再强调不要以编程为基础再开始学习网络安全,一般来说,学习编程不但学习周期长,而且实际向安全过渡后可用到的关键知识并不多一般人如果想要把编程学好再开始......
  • 网络安全(黑客技术)—2024自学手册
    前言什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。如何成为一名黑客很多朋友在学习安全方面都会半路转行,因为不知如何去学,在这里,我将这个整份......
  • kubeadm搭建K8S容器集群管理系统(一)
    认识各k8s各组件的作用: 1.1Kubernetes概述Kubernetes是Google开源的容器集群管理系统,基于Docker构建一个容器的调度服务,提供资源调度、均衡容灾、服务注册、动态扩缩容等功能套件。Kubernetes基于docker容器的云平台,简写成:k8s官方网站:https://kubernetes.io/官方网站非常友好,为......
  • 【网络安全】基础知识详解(非常详细)零基础入门到精通,收藏这一篇就够了_网络安全的入门
    ......