HYMichellelxdd/container-audit

GitHub: HYMichellelxdd/container-audit

Container Audit 是一款用于扫描 Docker 和 Kubernetes 配置错误并提供安全评分的轻量级审计工具。

Stars: 1 | Forks: 0

Container Audit

Container Audit

用于 Docker 和 Kubernetes 的轻量级容器安全审计工具

CI License: MIT PyPI Python

## ✨ 功能 **Container Audit** 是一款快速、轻量级的安全扫描器,可帮助开发者和 DevSecOps 团队识别 Docker 和 Kubernetes 环境中的配置错误。 - 🐳 **Docker 安全** — 包含 16 项检查,涵盖特权模式、capabilities、secrets、socket 权限等 - ☸️ **Kubernetes 合规性** — Pod 安全、RBAC、NetworkPolicy、security context 最佳实践 - 🎚️ **严重性过滤** — 根据严重级别过滤检测结果 - ⚡ **失败阈值** — 针对 CI/CD 可配置基于严重性的退出代码 - 📊 **多种报告** — 终端 (Rich)、JSON 和 HTML 输出 - ⚡ **安全评分** — 基于严重性加权检测的 0-100 分制评分 ## 🚀 快速开始 ### 安装 ``` pip install container-audit ``` ### 基本用法 ``` # 扫描 Docker 容器 container-audit docker my-container # 扫描 docker-compose 文件 container-audit compose docker-compose.yml # 扫描 Kubernetes manifests container-audit k8s ./k8s-manifests/ # 仅显示 high 和 critical 发现 container-audit docker my-container --severity high # 仅在发现 critical 问题时以错误退出(用于 CI) container-audit docker my-container --fail-on critical ``` ### 输出格式 ``` # JSON 输出(用于 CI/CD pipelines) container-audit docker my-container -f json -o report.json # HTML 报告(暗色主题) container-audit docker my-container -f html -o report.html # 详细的终端输出 container-audit docker my-container -v ``` ## 📋 安全检查 ### Docker(16 项检查) | 检查项 | 严重性 | 描述 | |-------|----------|-------------| | `DOCKER-001` | 🔴 严重 | 特权容器检测 | | `DOCKER-002` | 🔴 严重 | Docker socket 挂载检测 | | `DOCKER-003` | 🟡 中等 | 以 root 用户运行 | | `DOCKER-004` | 🔴 高危 | 危险的 capabilities (SYS_ADMIN, NET_ADMIN) | | `DOCKER-005` | 🟡 中等 | 端口暴露在 0.0.0.0 | | `DOCKER-006` | 🔴 高危 | 环境变量中的 secrets | | `DOCKER-007` | 🔵 低危 | 可写的根文件系统 | | `DOCKER-008` | 🟡 中等 | 缺少资源限制 | | `DOCKER-009` | 🔵 低危 | 未配置 healthcheck | | `DOCKER-010` | 🔵 低危 | AppArmor profile 状态 | | `DOCKER-011` | 🔵 低危 | Seccomp profile 状态 | | `DOCKER-012` | 🔴 高危 | Host PID namespace | | `DOCKER-013` | 🟡 中等 | Host IPC namespace | | `DOCKER-014` | 🔴 高危 | Host network 模式 | | `DOCKER-015` | 🔴 高危 | Docker socket 权限 | ### Kubernetes | 检查项 | 严重性 | 描述 | |-------|----------|-------------| | `K8S-PRIV-*` | 🔴 严重 | 特权容器 | | `K8S-ROOT-*` | 🟡 中等 | 以 root 运行 | | `K8S-CAPS-*` | 🔴 高危 | 危险的 capabilities | | `K8S-PE-*` | 🟡 中等 | 未禁用权限提升 | | `K8S-SECCOMP-*` | 🔵 低危 | 无 seccomp profile | | `K8S-CAPDROP-*` | 🟡 中等 | 未丢弃 capabilities | | `K8S-SA-TOKEN` | 🟡 中等 | 自动挂载 ServiceAccount token | | `K8S-HNET` | 🔴 高危 | 启用 Host network | | `K8S-HOSTPATH` | 🔴 高危 | HostPath volumes | | `K8S-RBAC-*` | 🔴 高危 | 过度授权的 RBAC | ### Docker Compose | 检查项 | 严重性 | 描述 | |-------|----------|-------------| | `COMPOSE-*-001` | 🔴 严重 | 特权模式 | | `COMPOSE-*-002` | 🔴 严重 | 挂载 Docker socket | | `COMPOSE-*-003` | 🟡 中等 | 以 root 运行 | | `COMPOSE-*-004` | 🔴 高危 | 危险的 capabilities | | `COMPOSE-*-HEALTH` | 🔵 低危 | Healthcheck 检查 | | `COMPOSE-*-RESTART` | 🔵 低危 | 重启策略 | | `COMPOSE-*-ROFS` | 🔵 低危 | 只读文件系统 | ## 📊 报告示例 ``` ╭──────────── Security Report ────────────╮ │ Container Audit Report │ │ Target: my-container │ │ Scan Type: docker │ │ Score: 35/100 │ ╰─────────────────────────────────────────╯ Findings: ✗ CRITICAL Privileged container → Remove --privileged flag. ✗ CRITICAL Docker socket mounted → Avoid mounting Docker socket. ✗ HIGH Dangerous capabilities added → Remove unnecessary capabilities. ✓ HIGH Host PID namespace ✗ MEDIUM Running as root → Set USER directive in Dockerfile. ``` ## 🔧 CI/CD 集成 ### GitHub Actions ``` - name: Container Security Scan run: | pip install container-audit container-audit docker ${{ env.IMAGE }} --fail-on critical ``` ### 退出代码 | 代码 | 含义 | |------|---------| | `0` | 没有超过阈值的检测结果 | | `1` | 检测结果达到或超过 `--fail-on` 阈值 | ## 📁 项目结构 ``` container-audit/ ├── container_audit/ │ ├── __init__.py │ ├── cli.py # CLI entry point │ ├── scanner.py # Core scanning engine │ ├── models.py # Data models │ ├── checks/ │ │ ├── docker.py # Docker security checks │ │ ├── kubernetes.py # K8s manifest checks │ │ └── network.py # Network exposure checks │ └── reporters/ │ ├── console.py # Rich terminal output │ ├── json_out.py # JSON report │ └── html_out.py # HTML report ├── tests/ ├── .github/workflows/ci.yml ├── pyproject.toml ├── LICENSE └── README.md ``` ## 📄 许可证 MIT 许可证 - 详见 [LICENSE](LICENSE) ## 🔗 链接 - [GitHub 仓库](https://github.com/HYMichellelxdd/container-audit) - [PyPI 包](https://pypi.org/project/container-audit/) - [问题追踪器](https://github.com/HYMichellelxdd/container-audit/issues)

HYMichellexdd 用 ❤️ 制作

标签:DevSecOps, Docker, Web截图, 上游代理, 子域名突变, 安全防御评估, 容器安全, 版权保护, 请求拦截, 逆向工具