
kubescape v4.0.11
开源Kubernetes安全平台,扫描集群、清单和镜像,查找错误配置、漏洞,并依据NSA、MITRE和CIS基准进行合规性检查,覆盖整个开发生命周期。
Kubescape
从开发到运行时的全面Kubernetes安全
Kubescape 是一个开源的 Kubernetes 安全平台,提供全面的安全覆盖,覆盖整个开发和部署生命周期的左到右。它提供加固、安全态势管理和运行时安全能力,确保 Kubernetes 环境得到强有力的保护。
Kubescape 由 ARMO 创建,是 云原生计算基金会(CNCF)孵化项目。
如果您希望我们继续开发和改进 Kubescape,请 为仓库加星 ⭐!
📑 目录
✨ 功能
| 功能 | 描述 |
|---|---|
| 🔍 配置扫描 | 针对 NSA-CISA、MITRE ATT&CK® 和 CIS 基准扫描集群、YAML 文件和 Helm Chart |
| 🐳 镜像漏洞扫描 | 使用 Grype 检测容器镜像中的 CVE |
| 🩹 镜像补丁 | 使用 Copacetic 自动修补存在漏洞的镜像 |
| 🔧 自动修复 | 自动修复 Kubernetes 清单中的配置错误 |
| 🛡️ 准入控制 | 使用 Validating Admission Policies (VAP) 强制执行安全策略 |
| 📊 运行时安全 | 通过 Inspektor Gadget 实现基于 eBPF 的运行时监控 |
| 🤖 AI 集成 | 用于 AI 助手集成的 MCP 服务器 |
🎬 演示
🚀 快速开始
1. 安装 Kubescape
curl -s https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash
💡 查看 安装 了解更多选项(Homebrew、Krew、Windows 等)
2. 运行第一次扫描
# 扫描当前集群
kubescape scan
# 扫描特定 YAML 文件或目录
kubescape scan /path/to/manifests/
# 扫描容器镜像以查找漏洞
kubescape scan image nginx:latest
3. 探索结果
Kubescape 提供详细的安全态势概览,包括:
- 控制平面安全状态
- 访问控制风险
- 工作负载配置错误
- 网络策略缺口
- 合规评分(MITRE、NSA)
📦 安装
一行安装(Linux/macOS)
curl -s https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash
包管理器
| 平台 | 命令 |
|---|---|
| Homebrew | brew install kubescape |
| Krew | kubectl krew install kubescape |
| Arch Linux | yay -S kubescape |
| Ubuntu | sudo add-apt-repository ppa:kubescape/kubescape && sudo apt install kubescape |
| NixOS | nix-shell -p kubescape |
| Chocolatey | choco install kubescape |
| Scoop | scoop install kubescape |
Windows (PowerShell)
iwr -useb https://raw.githubusercontent.com/kubescape/kubescape/master/install.ps1 | iex
📖 完整安装指南 →
🛠️ CLI 命令
Kubescape 提供全面的 CLI,包含以下命令:
| 命令 | 描述 |
|---|---|
kubescape scan | 扫描集群、文件或镜像的安全问题 |
kubescape scan image | 扫描容器镜像的漏洞 |
kubescape fix | 自动修复清单文件中的配置错误 |
kubescape patch | 修补容器镜像以修复漏洞 |
kubescape list | 列出可用的框架和控制 |
kubescape download | 下载离线/气隙环境使用的制品 |
kubescape config | 管理缓存的配置 |
kubescape operator | 与集群内 Kubescape operator 交互 |
kubescape vap | 管理 Validating Admission Policies |
kubescape mcpserver | 启动 MCP 服务器以集成 AI 助手 |
kubescape completion | 生成 shell 补全脚本 |
kubescape version | 显示版本信息 |
📖 使用示例
扫描
扫描运行中的集群
# 默认扫描(所有框架)
kubescape scan
# 使用特定框架扫描
kubescape scan framework nsa
kubescape scan framework mitre
kubescape scan framework cis-v1.23-t1.0.1
# 扫描特定控制
kubescape scan control C-0005 -v
扫描文件和仓库
# 扫描本地 YAML 文件
kubescape scan /path/to/manifests/
# 扫描 Helm Chart
kubescape scan /path/to/helm/chart/
# 扫描 Git 仓库
kubescape scan https://github.com/kubescape/kubescape
# 使用 Kustomize 扫描
kubescape scan /path/to/kustomize/directory/
扫描选项
# 包含/排除命名空间
kubescape scan --include-namespaces production,staging
kubescape scan --exclude-namespaces kube-system,kube-public
# 使用其他 kubeconfig
kubescape scan --kubeconfig /path/to/kubeconfig
# 设置合规阈值(低于阈值时退出码为 1)。
# 分数阈值适用于框架/控制子命令以及
# --view resource|control。
kubescape scan framework nsa --compliance-threshold 80
kubescape scan --view resource --compliance-threshold 80
# 设置严重性阈值
kubescape scan --severity-threshold high
输出格式
# JSON 输出
kubescape scan --format json --output results.json
# JUnit XML(用于 CI/CD)
kubescape scan --format junit --output results.xml
# SARIF(用于 GitHub 代码扫描)
kubescape scan --format sarif --output results.sarif
# HTML 报告
kubescape scan --format html --output report.html
# PDF 报告
kubescape scan --format pdf --output report.pdf
镜像扫描
# 扫描公开镜像
kubescape scan image nginx:1.21
# 扫描并输出详细信息
kubescape scan image nginx:1.21 -v
# 扫描私有仓库镜像
kubescape scan image myregistry/myimage:tag --username user --password pass
使用离线 Grype 数据库
# 启动离线 Grype-DB 服务器(使用 docker)
docker run --rm -p8080:8080 quay.io/kubescape/grype-offline-db:v6-latest
# 使用离线数据库扫描镜像:
kubescape scan image --grype-db-url http://localhost:8080/databases/ nginx:latest
自动修复
自动修复清单文件中的配置错误:
# 首先,扫描并将结果保存为 JSON
kubescape scan /path/to/manifests --format json --output results.json
# 然后应用修复
kubescape fix results.json
# 试运行(预览更改但不应用)
kubescape fix results.json --dry-run
# 无需确认提示直接应用修复
kubescape fix results.json --no-confirm
镜像补丁
修补容器镜像以修复 OS 级别漏洞:
# 启动 buildkitd(必需)
sudo buildkitd &
# 修补镜像
sudo kubescape patch --image docker.io/library/nginx:1.22
# 指定自定义输出标签
sudo kubescape patch --image nginx:1.22 --tag nginx:1.22-patched
# 查看详细漏洞报告
sudo kubescape patch --image nginx:1.22 -v
列出框架和控制
# 列出可用框架
kubescape list frameworks
# 列出所有控制
kubescape list controls
# 以 JSON 格式输出
kubescape list controls --format json
离线支持
为气隙环境下载制品:
# 下载所有制品
kubescape download artifacts --output /path/to/offline/dir
# 下载特定框架
kubescape download framework nsa --output /path/to/nsa.json
# 使用下载的制品进行扫描
kubescape scan --use-artifacts-from /path/to/offline/dir
配置
# 查看当前配置
kubescape config view
# 设置账户 ID
kubescape config set accountID <your-account-id>
# 删除缓存的配置
kubescape config delete
Operator 命令
与集群内 Kubescape operator 交互:
# 触发配置扫描
kubescape operator scan configurations
# 触发漏洞扫描
kubescape operator scan vulnerabilities
验证性准入策略
管理 Kubernetes Validating Admission Policies:
# 部署 Kubescape CEL 准入策略库
kubescape vap deploy-library | kubectl apply -f -
# 创建策略绑定
kubescape vap create-policy-binding \
--name my-policy-binding \
--policy c-0016 \
--namespace my-namespace | kubectl apply -f -
MCP 服务器
启动 MCP (Model Context Protocol) 服务器以集成 AI 助手:
kubescape mcpserver
MCP 服务器将 Kubescape 的漏洞和配置扫描数据暴露给 AI 助手,使其能够以自然语言查询集群的安全态势。
可用的 MCP 工具:
list_vulnerability_manifests- 发现漏洞清单list_vulnerabilities_in_manifest- 列出清单中的 CVElist_vulnerability_matches_for_cve- 获取特定 CVE 的详细信息list_configuration_security_scan_manifests- 列出配置扫描结果get_configuration_security_scan_manifest- 获取配置扫描详情
🏗️ 架构
Kubescape 可以以两种模式运行:
CLI 模式
CLI 是一个独立的工具,按需扫描集群、文件和镜像。
关键组件:
- Open Policy Agent (OPA) - 策略评估引擎
- Regolibrary - 安全控制库
- Grype - 镜像漏洞扫描
- Copacetic - 镜像补丁
Operator 模式(集群内)
对于持续监控,通过 Helm 部署 Kubescape operator。
额外能力:
- 持续配置扫描
- 镜像漏洞扫描
- 基于 eBPF 的运行时分析
- 网络策略生成
📖 完整架构文档 →
☸️ 集群内 Operator
Kubescape operator 在集群中提供持续安全监控:
# 添加 Kubescape Helm 仓库
helm repo add kubescape https://kubescape.github.io/helm-charts/
# 安装 operator
helm upgrade --install kubescape kubescape/kubescape-operator \
--namespace kubescape \
--create-namespace
Operator 功能:
- 🔄 持续配置扫描
- 🐳 所有工作负载的镜像漏洞扫描
- 🔍 运行时威胁检测(基于 eBPF)
- 🌐 网络策略生成
- 📈 Prometheus 指标集成
🔌 集成
CI/CD
| 平台 | 集成方式 |
|---|---|
| GitHub Actions | kubescape/github-action |
| GitLab CI | 文档 |
| Jenkins | 文档 |
IDE 扩展
| IDE | 扩展 |
|---|---|
| VS Code | Kubescape 扩展 |
| Lens | Kubescape Lens 扩展 |
可以在哪里使用 Kubescape
👥 社区
Kubescape 是一个 CNCF 孵化项目,拥有活跃的社区。
参与方式
- 💬 Slack - 用户频道 - 提问、寻求帮助
- 💬 Slack - 开发者频道 - 参与开发
- 🐛 GitHub Issues - 报告 bug 和请求功能
- 📋 项目面板 - 查看我们在做什么
- 🗺️ 路线图 - 未来计划
贡献
我们欢迎贡献!请参阅:
社区资源
贡献者
变更日志
Kubescape 的变更记录在 发布页面 中。
许可证
Copyright 2021-2025, Kubescape 作者。保留所有权利。
Kubescape 根据 Apache 2.0 许可证 发布。
Kubescape 是一个 云原生计算基金会(CNCF)孵化项目,由 ARMO 贡献。