1. 课程导论:云原生安全挑战、Trivy 简介与定位、课程目标与学习路径
1.1 云原生安全面临的核心挑战
云原生架构(容器、Kubernetes、微服务、不可变基础设施)在提升交付效率的同时,也引入了全新的攻击面。传统边界安全模型失效,安全左移与持续合规成为刚需。以下是当前企业落地云原生时最突出的四大安全挑战:
| 挑战维度 | 典型风险场景 | 影响范围 |
|---|---|---|
| 镜像供应链 | 基础镜像含已知 CVE、恶意软件、敏感信息硬编码 | 从构建到运行时的全链路污染 |
| 基础设施配置 | K8s RBAC 过度授权、Pod 特权模式、HostPath 挂载 | 集群逃逸与横向移动 |
| 运行时水位 | 异常进程、文件篡改、非预期网络连接 | 容器逃逸与数据泄露 |
| 合规与准入 | 未通过安全基线的镜像上线、不合规的 Helm Chart | 违规部署与审计失败 |
关键洞察: 超过 70% 的云原生安全事件源于镜像层和配置层,且多数漏洞在部署前即可被检测。Trivy 正是针对这一“左移”场景设计的统一扫描器。
1.2 Trivy 简介与定位
Trivy 是 Aqua Security 开源的综合安全扫描工具,采用“单一二进制 + 多引擎”架构。它不依赖外部数据库,内置漏洞库、策略库和 IaC 模板库,支持离线环境。其核心定位可概括为:一个命令,覆盖全生命周期。
- 漏洞扫描:支持 OS 包(Alpine、Debian、Ubuntu、CentOS 等)和语言依赖(Java、Python、Node.js、Go 等)。
- IaC 与配置扫描:检测 Kubernetes YAML、Dockerfile、Terraform、Helm Chart 中的错误配置。
- 密钥与敏感信息:扫描镜像和文件系统中的硬编码密码、、私钥。
- SBOM 生成:支持 CycloneDX 和 SPDX 格式的软件物料清单导出。
- 准入控制集成:通过 Trivy Operator 或自定义 Webhook 实现集群级准入检查。
为什么选择 Trivy? 相比 Clair、Anchore、Snyk,Trivy 在扫描速度(秒级)、离线能力、多格式支持(容器、文件系统、Git 仓库、K8s 集群)上具有显著优势,且社区活跃度最高。
1.3 课程目标与学习路径
本课程旨在帮助学员从零到一掌握 Trivy,并构建企业级的云原生安全基线、容量管理、水位监控、巡检与灰度发布准入检查体系。课程采用“理论 + 实战 + 策略”三合一模式,覆盖以下五大能力域:
- 基线建立:定义镜像、集群、配置的安全基线,使用 Trivy 进行持续合规扫描。
- 容量与水位:结合 Trivy 的 SBOM 和漏洞数据,评估镜像安全容量与集群风险水位。
- 巡检自动化:设计定时巡检任务,生成安全报告,并集成到告警体系。
- 灰度发布准入:在 K8s 准入控制器中集成 Trivy,实现基于安全策略的灰度阻断。
- DevSecOps 集成:将 Trivy 嵌入 Jenkins、GitLab CI、ArgoCD 等工具链。
前置要求: 学员需具备基本的 Docker 和 Kubernetes 操作经验,了解 CI/CD 流水线概念。无需 Trivy 使用经验,课程将从安装命令开始逐步深入。
1.4 快速上手:第一个 Trivy 命令
在进入后续章节前,建议先通过以下命令验证 Trivy 环境。本课程所有操作均基于 Trivy v0.50+ 版本。
# 安装 Trivy(macOS/Linux)
curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh
# 扫描一个镜像(示例:nginx:1.25)
trivy image nginx:1.25
# 扫描一个 Kubernetes 集群(需配置 kubeconfig)
trivy k8s --report summary cluster
# 生成 SBOM
trivy image --format cyclonedx --output nginx.sbom nginx:1.25
学习建议: 本课程每章末尾均提供“自检清单”和“扩展阅读”。建议按顺序学习,阶段 1-3 是基础,阶段 4-7 是进阶与实战。如果时间有限,可先掌握阶段 1、2、5,覆盖最核心的镜像扫描与准入控制场景。