网站首页 > 技术文章 正文
Trivy是一款全面而多功能的安全扫描工具,旨在支持广泛的编程语言、操作系统(包括Linux/FreeBSD、 MacOS和Windows)及平台。
https://github.com/aquasecurity/trivy
https://aquasecurity.github.io/trivy
扫描对象:
Trivy的多样性体现在多个扫描目标上,如容器镜像、文件系统、远程Git仓库、虚拟机镜像、Kubernetes和AwS环境。
Trivy的扫描能力产生详尽的结果,包括使用中的操作系统包和软件依赖项(以软件物料清单或SBOM形式体现)、识别的已知漏洞(CVEs)、基础设施即代码(lac) 中的问题和错误配置、敏感信息和秘密以及软件许可证。
- 容器镜像
- 文件系统
- Git存储库(远程)
- 虚拟机镜像
- Kubernetes
- AWS
扫描结果:
- 使用中的操作系统软件包和软件依赖项(SBOM - Software Bill of Materials,软件物料清单,是一系列专门应用于软件的元数据。关键信息包括组件名称、许可证信息、版本号和供应商。就像瓶装饮料外包装上的配料清单,SBOM可以简单地理解为软件的配料清单。)
- 已知漏洞(CVE)
- IaC问题和错误配置 ##IaC - Infrastructure as Code,基础设施即代码
- 敏感信息和秘密
- 软件许可证
安装:
Trivy的安装方法多样,具体取决于使用的操作系统。对于MacOS用户,可以通过Homebrew安装Trivy,或下载并安装特定的发布版本。
CentOs用户可以通过安装RPM包、克隆GitHub仓库并从源代码构建,或下载特定的发布版本来安装Trivy。此外,Trivy还可以通过Docker部署或在Kubernetes(K8s)环境中使用,后者通过自动更新安全报告来增强Kubernetes集群工作负载的安全性。
在Macos上安装:
brew install trivy
或
wget https://github.com/aquasecurity/trivy/releases/download/v0.45.1/trivy_0.45.1_macOS-ARM64.tar.gz
chmod +x trivy && cp trivy /usr/local/bin
在Centos上安装:
rpm -ivh https://github.com/aquasecurity/trivy/releases/download/v0.45.1/trivy_0.45.1_Linux-64bit.rpm
或
git clone https://github.com/aquasecurity/trivy.git
cd trivy
go install ./cmd/trivy
或
wget https://github.com/aquasecurity/trivy/releases/download/v0.45.1/trivy_0.45.1_Linux-ARM64.tar.gz
chmod +x trivy && cp trivy /usr/local/bin
docker安装:
docker run registry.cn-beijing.aliyuncs.com/challenchen_arm64/trivy:0.45.1 image python:3.4-alpine
在Kubernetes环境中,Trivy Operator通过生成覆盖工作负载漏洞扫描、使用预定义或自定义Open Policy Agent (OPA)策略进行自动配置审计的ConfigAudit扫描、扫描集群中暴露的秘密、基于角色的访问控制(RBAC)扫描以及Kubernetes核心组件基础设施评估,来提升安全态势。此外,它还验证了是否使用了己废弃或即将删除的Kubernetes APl资源,并根据NSA/CISA Kubernetes加固指南、CIS Kubernetes基准和Kubernetes Pod安全标准等标准编制合规报告。
使用Trivy进行安全扫描涉及执行命令来扫描目标,例如容器镜像,其中工具首先更新其漏洞数据库,然后继续检测并报告在扫描目标中检测到的漏洞和其他安全问题。输出包括关于检测到的操作系统、按严重性分类的漏洞以及解决这些漏洞的建议的详细信息。这种彻底且适应性强的方法使Trivy成为维护软件开发和部署环境安全完整性的重要工具。
在K8s上部署: ##https://github.com/aquasecurity/trivy-operator https://aquasecurity.github.io/trivy-operator/v0.16.1/getting-started/installation/helm/
Trivy Operator根据Kubernetes集群上的工作负载和其他变化自动更新安全报告,生成以下报告:
1、漏洞扫描:Kubernetes工作负载的自动漏洞扫描。
2、ConfigAudit扫描:使用预定义规则或自定义开放策略代理(OPA)策略对Kubernetes资源进行自动配置审计。
3、暴露的秘密扫描:自动秘密扫描,用于查找和详细说明集群中暴露的秘密的位置。
4、RBAC扫描:基于角色的访问控制扫描提供有关所安装的不同资源访问权限的详细信息。
5、K8s核心组件基础设施评估扫描Kubernetes基础设施核心组件(etcd、apiserver、调度器、控制器-管理器等)的设置和配置。
6、k8s过时的api验证-配置审计检查将验证资源api是否已被弃用并计划删除
7、合规报告:
① NSA、CISA Kubernetes Hardening Guidance v1.1网络安全技术报告已生成。
② 制作了CIS Kubernetes Benchmark v1.23网络安全技术报告。
③ Kubernetes pss-baseline,Pod安全标准
④ Kubernetes pss受限,Pod安全标准
8、用于Kubernetes工作负载的SBOM。
git clone --depth 1 --branch v0.16.1 https://github.com/aquasecurity/trivy-operator.git
cd trivy-operator
helm repo add aqua https://aquasecurity.github.io/helm-charts/
helm repo update
helm install trivy-operator ./deploy/helm \ ##Install the chart from a local directory
--namespace trivy-system \
--create-namespace \
或
helm install trivy-operator aqua/trivy-operator \ ##install the chart from the Aqua chart repository
--namespace trivy-system \
--create-namespace \
--version 0.18.1
使用:
[root@k8s-node-03 ~]# trivy image 7e7d69ag3nq1
2023-10-08T14:01:39.276+0800 INFO Need to update DB
2023-10-08T14:01:39.276+0800 INFO DB Repository: ghcr.io/aquasecurity/trivy-db
2023-10-08T14:01:39.276+0800 INFO Downloading DB...
42.03 MiB / 42.03 MiB [------------------------------------------------------------------------------------------------------------------------------] 100.00% 842.73 KiB p/s 1m09s
猜你喜欢
- 2024-10-09 零成本搭建hexo个人博客(二)--修改主题
- 2024-10-09 Windows端ZLMediaKit编译与webrtc推拉流测试
- 2024-10-09 一招帮你搞定所有广告,树莓派全能广告屏蔽助手——Pi-hole
- 2024-10-09 Casdoor 开始(cas怎么打开)
- 2024-10-09 基于 Nginx + ModSecurity V3 实现对 web 流量的安全访问控制
- 2024-10-09 Sqlmap安装保姆级教程SQL注入使用指南
- 2024-10-09 完美解决Linux环境编译ffmpeg库(linux ifort 编译)
- 2024-10-09 音视频开发2. FFMPEG+Nginx实现推流服务
- 2024-10-09 WebAssembly该怎么学第二篇(webassembly c)
- 2024-10-09 FFMPEG定制化编译指南(ffmpeg documentation)
- 10-02基于深度学习的铸件缺陷检测_如何控制和检测铸件缺陷?有缺陷铸件如何处置?
- 10-02Linux Mint 22.1 Cinnamon Edition 搭建深度学习环境
- 10-02AWD-LSTM语言模型是如何实现的_lstm语言模型
- 10-02NVIDIA Jetson Nano 2GB 系列文章(53):TAO模型训练工具简介
- 10-02使用ONNX和Torchscript加快推理速度的测试
- 10-02tensorflow GPU环境安装踩坑日记_tensorflow配置gpu环境
- 10-02Keye-VL-1.5-8B 快手 Keye-VL— 腾讯云两卡 32GB GPU保姆级部署指南
- 10-02Gateway_gateways
- 最近发表
-
- 基于深度学习的铸件缺陷检测_如何控制和检测铸件缺陷?有缺陷铸件如何处置?
- Linux Mint 22.1 Cinnamon Edition 搭建深度学习环境
- AWD-LSTM语言模型是如何实现的_lstm语言模型
- NVIDIA Jetson Nano 2GB 系列文章(53):TAO模型训练工具简介
- 使用ONNX和Torchscript加快推理速度的测试
- tensorflow GPU环境安装踩坑日记_tensorflow配置gpu环境
- Keye-VL-1.5-8B 快手 Keye-VL— 腾讯云两卡 32GB GPU保姆级部署指南
- Gateway_gateways
- Coze开源本地部署教程_开源canopen
- 扣子开源本地部署教程 丨Coze智能体小白喂饭级指南
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (87)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)