huskyCI 内置 12 款安全扫描工具全解析:Bandit、Gosec、GitLeaks 如何覆盖主流语言
【免费下载链接】huskyCIPerforming security tests inside your CI项目地址: https://gitcode.com/gh_mirrors/hu/huskyCI
huskyCI 是一款开源的 CI 安全扫描工具,内置 12 款安全扫描工具,通过 Docker/Kubernetes 容器对代码仓库执行自动化安全测试,并集中存储扫描结果用于统计。本文带你快速看懂 huskyCI 内置的 Bandit、Gosec、GitLeaks 等扫描工具分别覆盖哪些语言,以及它们如何嵌入你的 CI 流水线。
12 款工具全景:8 款漏洞扫描 + 4 款辅助分析
huskyCI 在 API 层用一个映射表统一管理全部 12 款工具(见 securitytest.go),分为两类:
| 类别 | 工具 | 作用 |
|---|---|---|
| 🔍 漏洞扫描 | Bandit / Safety | Python 代码与依赖漏洞 |
| 🔍 漏洞扫描 | Brakeman | Ruby 代码漏洞 |
| 🔍 漏洞扫描 | NpmAudit / YarnAudit | JavaScript 依赖漏洞 |
| 🔍 漏洞扫描 | Gosec | Golang 代码漏洞 |
| 🔍 漏洞扫描 | SpotBugs | Java 代码漏洞(配合 Find Sec Bugs) |
| 🔍 漏洞扫描 | GitLeaks | 密钥/凭证泄露扫描(全语言) |
| 🔍 漏洞扫描 | TFSec | HCL/Terraform 基础设施配置漏洞 |
| 🧭 辅助分析 | Enry | 识别仓库语言构成 |
| 🧭 辅助分析 | GitAuthors | 提取分支提交作者 |
| 🧭 辅助分析 | SecurityCodeScan | 通用 SARIF 格式结果解析 |
| 🧭 辅助分析 | Docker/Kube 容器调度 | 统一容器化执行环境 |
语言覆盖一览:你的项目用哪个工具?
huskyCI 按语言自动匹配扫描工具,主流语言的覆盖关系如下 📌:
- Python→ Bandit(静态分析,检测
exec等危险调用、硬编码密码)+ Safety(依赖库已知漏洞) - Ruby→ Brakeman(Rails 应用安全审计)
- JavaScript / Node.js→ NpmAudit 或 YarnAudit(依赖包漏洞审计,分别读取
package-lock.json和yarn.lock) - Golang→ Gosec(Go 代码静态安全分析)
- Java→ SpotBugs + Find Sec Bugs(通过 Maven 容器执行)
- HCL / Terraform→ TFSec(基础设施即代码配置检查)
- 密钥泄露→ GitLeaks(扫描 AWS Secret Key、SSH 私钥等,不限语言)
每个工具都有独立的 Docker 镜像定义,例如 bandit/Dockerfile 和 gitleaks/Dockerfile,全部镜像构建脚本见 build-containers.sh。
为什么选 GitLeaks:密钥泄露是 CI 扫描的盲区
GitLeaks 是 huskyCI 中最"通用"的一款工具——其他工具只关心源码,而 GitLeaks 检查的是整个 Git 历史中的敏感信息:AWS Access Key、私钥、数据库连接串等。
其结果解析逻辑位于 gitleaks.go,每条告警会记录commit、author、email、file、severity等字段,帮助你快速定位"是谁在哪次提交里泄露了密钥"。对团队而言,它相当于给代码仓库加了一道"门禁"。
扫描结果如何判定通过或失败?
huskyCI 对严重级别有一套清晰的判定规则(见 securitytest.go):
- 发现High / Medium级别漏洞 → 结果标记为
failed,CI 阶段失败,阻断部署 - 仅发现Low级别漏洞 → 结果为
passed,附带警告提示 - 缺少
requirements.txt、package-lock.json等配置文件 → 结果为warning
这样既保证高危漏洞"零放行",又不会让低风险告警卡住整个流水线 ⚖️。
工作原理:一个 CI 阶段,全部容器化执行
huskyCI 的使用方式非常简单:在你的 CI 流水线中新增一个安全测试阶段。huskyCI API 收到扫描请求后:
- 根据仓库地址和分支,为每款工具启动独立的容器(Docker 或 Kubernetes 模式,见 securitytest.go)
- 容器内克隆代码并执行对应扫描命令
- 解析工具输出(JSON/XML/SARIF),统一入库
- 通过 API 提供查询接口,结果可对接 DefectDojo 等漏洞管理平台
本地快速体验可以使用 Docker Compose 一键拉起,部署文件见 docker-compose.yml;API 服务入口为 server.go。
总结:一张表选对工具
| 你的技术栈 | 优先启用的 huskyCI 工具 |
|---|---|
| Python 后端 | Bandit + Safety + GitLeaks |
| Node.js 前端/服务 | NpmAudit / YarnAudit + GitLeaks |
| Go 微服务 | Gosec + GitLeaks |
| Ruby on Rails | Brakeman + GitLeaks |
| Java 企业应用 | SpotBugs |
| Terraform 云资源 | TFSec |
huskyCI 的价值在于"一个平台、多种语言、容器隔离"——你不需要为每款扫描工具单独搭环境,只需一个 CI 阶段,就能让 12 款工具轮流为仓库做安全体检 🛡️。
【免费下载链接】huskyCIPerforming security tests inside your CI项目地址: https://gitcode.com/gh_mirrors/hu/huskyCI
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考