优秀的编程知识分享平台

网站首页 > 技术文章 正文

容器安全-Trivy(容器安全解决方案)

nanyue 2024-10-09 13:07:35 技术文章 6 ℃

Trivy是一款全面而多功能的安全扫描工具,旨在支持广泛的编程语言、操作系统(包括Linux/FreeBSD、 MacOS和Windows)及平台。

https://github.com/aquasecurity/trivy

https://aquasecurity.github.io/trivy


扫描对象:

Trivy的多样性体现在多个扫描目标上,如容器镜像、文件系统、远程Git仓库、虚拟机镜像、Kubernetes和AwS环境。

Trivy的扫描能力产生详尽的结果,包括使用中的操作系统包和软件依赖项(以软件物料清单或SBOM形式体现)、识别的已知漏洞(CVEs)、基础设施即代码(lac) 中的问题和错误配置、敏感信息和秘密以及软件许可证。

  1. 容器镜像
  2. 文件系统
  3. Git存储库(远程)
  4. 虚拟机镜像
  5. Kubernetes
  6. AWS


扫描结果:

  1. 使用中的操作系统软件包和软件依赖项(SBOM - Software Bill of Materials,软件物料清单,是一系列专门应用于软件的元数据。关键信息包括组件名称、许可证信息、版本号和供应商。就像瓶装饮料外包装上的配料清单,SBOM可以简单地理解为软件的配料清单。)
  2. 已知漏洞(CVE)
  3. IaC问题和错误配置 ##IaC - Infrastructure as Code,基础设施即代码
  4. 敏感信息和秘密
  5. 软件许可证


安装:

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

最近发表
标签列表