asamassekou10/ship-safe
GitHub: asamassekou10/ship-safe
AI 驱动的应用安全扫描平台,通过 16 个智能体并行检测 80+ 种攻击类型,覆盖机密泄露、代码漏洞、供应链风险、配置错误和 AI 安全等领域。
Stars: 231 | Forks: 27
AI-powered application security platform for developers.
16 个安全智能体。80+ 种攻击类别。一条命令。
**Ship Safe v5.0** 是一个 AI 驱动的安全平台,可针对您的代码库并行运行 16 个专用智能体 —— 扫描机密信息、注入漏洞、身份验证绕过、SSRF、供应链攻击、Supabase RLS 配置错误、Docker/Terraform/Kubernetes 配置错误、CI/CD 流水线投毒、LLM/代理 AI 安全、MCP 服务器滥用、RAG 投毒、PII 合规性等。LLM 驱动的深度分析可验证关键发现的可利用性。机密验证功能通过探测提供商 API 来检查泄露的密钥是否仍然有效。专用的 CI 命令 (`ship-safe ci`) 可通过基于阈值的门控和 SARIF 输出集成到任何流水线中。
## 快速开始
```
# 全面安全审计 — secrets + 16 agents + deps + 修复计划
npx ship-safe audit .
# LLM 驱动的深度分析 (Anthropic, OpenAI, Google, Ollama)
npx ship-safe audit . --deep
# 仅 Red team 扫描 (16 agents, 80+ attack classes)
npx ship-safe red-team .
# 快速 secret 扫描
npx ship-safe scan .
# 安全健康评分 (0-100)
npx ship-safe score .
# CI/CD pipeline 模式 — 精简输出,退出代码,SARIF
npx ship-safe ci .
# 接受当前发现,仅报告回归
npx ship-safe baseline .
npx ship-safe audit . --baseline
# 检查泄露的 secrets 是否仍然有效
npx ship-safe audit . --verify
# 环境诊断
npx ship-safe doctor
```

## `audit` 命令
一条命令即可运行所有检查并生成完整报告:
```
npx ship-safe audit .
```
```
════════════════════════════════════════════════════════════
Ship Safe v5.0 — Full Security Audit
════════════════════════════════════════════════════════════
[Phase 1/4] Scanning for secrets... ✔ 49 found
[Phase 2/4] Running 16 security agents... ✔ 103 findings
[Phase 3/4] Auditing dependencies... ✔ 44 CVEs
[Phase 4/4] Computing security score... ✔ 25/100 F
Remediation Plan
════════════════════════════════════════════════════════
🔴 CRITICAL — fix immediately
────────────────────────────────────────────────────────
1. [SECRETS] Rotate Stripe Live Secret Key
.env:67 → Move to environment variable or secrets manager
2. [INJECTION] Unsafe pickle.loads()
backend/ai_processor.py:64 → Use JSON for untrusted data
🟠 HIGH — fix before deploy
────────────────────────────────────────────────────────
3. [XSS] dangerouslySetInnerHTML without sanitization
frontend/src/utils/blogContentRenderer.jsx:50 → Add DOMPurify
... 149 more items in the full report
📊 Full report: ship-safe-report.html
```
**运行内容:**
1. **机密扫描** — 50+ 种模式结合熵评分(API 密钥、密码、令牌)
2. **16 个安全智能体** — 并行运行,具有每个智能体的超时设置和框架感知过滤(注入、身份验证、SSRF、供应链、配置、Supabase RLS、LLM、MCP、代理 AI、RAG、PII、移动端、git 历史、CI/CD、API)
3. **依赖审计** — npm/pip/bundler CVE 扫描
4. **机密验证** — 探测提供商 API(GitHub, Stripe, OpenAI 等)以检查泄露的密钥是否仍然有效
5. **深度分析** — LLM 驱动的污点分析验证关键/高危发现的可利用性(可选)
6. **分数计算** — 基于 8 个类别的置信度加权评分(0-100, A-F)
7. **上下文感知置信度调整** — 降低测试文件、文档和注释中的发现等级
8. **修复计划** — 按严重程度分组的优先修复列表
9. **HTML 报告** — 包含代码上下文的独立深色主题报告
**标志:**
- `--json` — 结构化 JSON 输出(便于管道传输)
- `--sarif` — 用于 GitHub Code Scanning 的 SARIF 格式
- `--csv` — 用于电子表格的 CSV 导出
- `--md` — Markdown 报告
- `--html [file]` — 自定义 HTML 报告路径(默认:`ship-safe-report.html`)
- `--compare` — 显示与上次扫描相比的各类别分数变化
- `--timeout
` — 每个智能体的超时时间(默认:30s)
- `--no-deps` — 跳过依赖审计
- `--no-ai` — 跳过 AI 分类
- `--no-cache` — 强制完全重新扫描(忽略缓存结果)
- `--baseline` — 仅显示不在基线中的发现
- `--pdf [file]` — 生成 PDF 报告(需要 Chrome/Chromium)
- `--deep` — 对关键/高危发现进行 LLM 驱动的污点分析
- `--local` — 使用本地 Ollama 模型进行深度分析
- `--model ` — 用于深度/AI 分析的 LLM 模型
- `--budget ` — 深度分析的最大花费(以美分为单位,默认:50)
- `--verify` — 检查泄露的机密是否仍然有效(探测提供商 API)
## 16 个安全智能体
| 智能体 | 类别 | 检测内容 |
|-------|----------|-----------------|
| **InjectionTester** | 代码漏洞 | SQL/NoSQL 注入、命令注入、代码注入 (eval)、XSS、路径遍历、XXE、ReDoS、原型污染、Python f-string SQL 注入、Python subprocess shell 注入 |
| **AuthBypassAgent** | 身份验证 | JWT 漏洞(alg:none、弱密钥)、Cookie 安全性、CSRF、OAuth 配置错误、BOLA/IDOR、弱加密、时序攻击、TLS 绕过、Django `DEBUG = True`、Flask 硬编码密钥 |
| **SSRFProber** | SSRF | fetch/axios 中的用户输入、云元数据端点、内部 IP、重定向跟随 |
| **SupplyChainAudit** | 供应链 | 抢注(Levenshtein 距离)、git/URL 依赖、通配符版本、可疑安装脚本、依赖混淆、未锁定 registry 的 scoped 包 |
| **ConfigAuditor** | 配置 | Dockerfile(以 root 运行、:latest 标签)、Terraform(公共 S3/RDS、开放 SG、CloudFront HTTP、Lambda admin、S3 无版本控制)、Kubernetes(特权容器、`:latest` 标签、缺失 NetworkPolicy)、CORS、CSP、Firebase、Nginx |
| **SupabaseRLSAgent** | 身份验证 | Supabase 行级安全 — 客户端代码中的 `service_role` 密钥、无 RLS 的 `CREATE TABLE`、anon 密钥插入、未受保护的存储操作 |
| **LLMRedTeam** | AI/LLM | OWASP LLM Top 10 — 提示注入、过度代理、系统提示泄露、无限消费、RAG 投毒 |
| **MCPSecurityAgent** | AI/LLM | MCP 服务器安全 — 未验证的工具输入、缺失身份验证、过度权限、工具投毒 |
| **AgenticSecurityAgent** | AI/LLM | OWASP Agentic AI Top 10 — 智能体劫持、权限提升、不安全代码执行、内存投毒 |
| **RAGSecurityAgent** | AI/LLM | RAG 流水线安全 — 未验证的嵌入、上下文注入、文档投毒、向量数据库访问控制 |
| **PIIComplianceAgent** | 合规性 | PII 检测 — 源代码、日志和配置中的 SSN、信用卡、电子邮件、电话号码 |
| **MobileScanner** | 移动端 | OWASP Mobile Top 10 2024 — 不安全存储、WebView JS 注入、HTTP 端点、过度权限、调试模式 |
| **GitHistoryScanner** | 机密信息 | git 提交历史中泄露的机密(检查在工作树中是否仍然有效) |
| **CICDScanner** | CI/CD | OWASP CI/CD Top 10 — 流水线投毒、未锁定的 actions、机密日志记录、自托管 runners、脚本注入 |
| **APIFuzzer** | API | 无身份验证的路由、缺失输入验证、批量赋值、无限制文件上传、GraphQL 内省、调试端点、缺失速率限制、OpenAPI 规范安全问题 |
| **ReconAgent** | 侦察 | 攻击面发现 — 框架、语言、身份验证模式、数据库、云提供商、IaC、CI/CD 流水线 |
**后处理器:** ScoringEngine(8 类别加权评分)、VerifierAgent(机密活性验证)、DeepAnalyzer(LLM 驱动的污点分析)
## 所有命令
### 核心审计命令
```
# 包含修复计划 + HTML 报告的全面审计
npx ship-safe audit .
# Red team: 16 agents, 80+ attack classes
npx ship-safe red-team .
npx ship-safe red-team . --agents injection,auth # Run specific agents
npx ship-safe red-team . --html report.html # HTML report
npx ship-safe red-team . --json # JSON output
# Secret scanner (模式匹配 + 熵)
npx ship-safe scan .
npx ship-safe scan . --json # JSON for CI
npx ship-safe scan . --sarif # SARIF for GitHub
# 安全健康评分 (0-100, A-F)
npx ship-safe score .
# Dependency CVE audit
npx ship-safe deps .
npx ship-safe deps . --fix # Auto-fix vulnerabilities
```
### AI 驱动命令
```
# AI audit: 使用 Claude 扫描 + 分类 + auto-fix secrets
npx ship-safe agent .
# Auto-fix 硬编码 secrets: 重写代码 + 写入 .env
npx ship-safe remediate .
npx ship-safe remediate . --all # Also fix agent findings (TLS, debug, XSS, etc.)
# 撤销暴露的密钥 — 打开提供商仪表板
npx ship-safe rotate .
```
### 基线管理
```
# 接受当前发现作为基线
npx ship-safe baseline .
# 仅显示基线以来新发现的审计
npx ship-safe audit . --baseline
# 显示自基线以来的变化
npx ship-safe baseline --diff
# 移除基线
npx ship-safe baseline --clear
```
### CI/CD 流水线
```
# CI 模式 — 精简输出,退出代码,阈值把关
npx ship-safe ci .
npx ship-safe ci . --threshold 80 # Custom passing score
npx ship-safe ci . --fail-on critical # Fail on severity
npx ship-safe ci . --sarif out.sarif # SARIF for GitHub
```
### 深度分析与验证
```
# LLM 驱动的深度分析 (Anthropic/OpenAI/Google/Ollama)
npx ship-safe audit . --deep
npx ship-safe audit . --deep --local # Use local Ollama
npx ship-safe audit . --deep --budget 50 # Cap spend at 50 cents
# 检查泄露的 secrets 是否仍然有效
npx ship-safe audit . --verify
```
### 诊断
```
# 环境检查 — Node.js, git, npm, API keys, 缓存, 版本
npx ship-safe doctor
```
### 基础设施命令
```
# 持续监控 (监视文件变更)
npx ship-safe watch .
# 生成 CycloneDX SBOM
npx ship-safe sbom .
# Policy-as-code (强制最低分数,严重时失败)
npx ship-safe policy init
# 如果发现 secrets 则阻止 git push
npx ship-safe guard
# 初始化安全配置 (.gitignore, headers)
npx ship-safe init
# 发布日安全检查清单
npx ship-safe checklist
# 用于 AI 编辑器的 MCP server (Claude Desktop, Cursor, 等)
npx ship-safe mcp
```
## Claude Code 插件
直接在 Claude Code 中使用 Ship Safe —— 无需 CLI:
```
claude plugin add github:asamassekou10/ship-safe
```
| 命令 | 描述 |
|---------|-------------|
| `/ship-safe` | 完整安全审计 — 16 个智能体、修复计划、自动修复 |
| `/ship-safe-scan` | 泄露机密快速扫描 |
| `/ship-safe-score` | 安全健康评分(0-100) |
| `/ship-safe-deep` | LLM 驱动的深度污点分析 |
| `/ship-safe-ci` | CI/CD 流水线设置指南 |
Claude 会解释结果,用通俗语言说明发现,并可直接在您的代码库中修复问题。
## 增量扫描
Ship Safe 在 `.ship-safe/context.json` 中缓存文件哈希和发现结果。在后续运行中,仅重新扫描更改的文件 —— 未更改的文件重用缓存结果。
```
✔ [Phase 1/4] Secrets: 41 found (0 changed, 313 cached)
```
- 重复扫描速度提升 **~40%**
- **自动失效** —— 缓存在 24 小时后或 ship-safe 更新时过期
- **`--no-cache`** —— 随时强制进行完全重新扫描
缓存存储在 `.ship-safe/` 中,该目录会自动从扫描中排除。
### LLM 响应缓存
使用 AI 分类时(使用 `--no-ai` 禁用),结果会缓存在 `.ship-safe/llm-cache.json` 中,TTL 为 7 天。重复扫描会重用缓存的分类结果 —— 显著降低 API 成本。
## 智能 `.gitignore` 处理
Ship Safe 遵循您的 `.gitignore` 以忽略构建输出、缓存和供应商目录 —— 但**始终扫描安全敏感文件**,即使它们被 gitignore:
| 跳过(遵循 gitignore) | 始终扫描(覆盖 gitignore) |
|-------------------------------|---------------------------------------|
| `node_modules/`, `dist/`, `build/` | `.env`, `.env.local`, `.env.production` |
| `*.log`, `*.pkl`, vendor dirs | `*.pem`, `*.key`, `*.p12` |
| Cache directories, IDE files | `credentials.json`, `*.secret` |
为什么?像 `.env` 这样的文件被 gitignore 是*因为*它们包含机密 —— 而这正是安全扫描器应该捕获的内容。
## 多 LLM 支持
Ship Safe 支持多个 AI 提供商进行分类:
| 提供商 | 环境变量 | 模型 |
|----------|-------------|-------|
| **Anthropic** | `ANTHROPIC_API_KEY` | claude-haiku-4-5 |
| **OpenAI** | `OPENAI_API_KEY` | gpt-4o-mini |
| **Google** | `GOOGLE_AI_API_KEY` | gemini-2.0-flash |
| **Ollama** | `OLLAMA_HOST` | 本地模型 |
从环境变量自动检测。扫描不需要 API 密钥 —— AI 是可选的。
## 评分系统
从 100 分开始。每个发现根据严重程度和类别扣分,并按置信度水平(高:100%、中:60%、低:30%)加权,以减少来自启发式模式的噪音。
**8 个类别**(带权重上限):
| 类别 | 权重 | Critical | High | Medium | 上限 |
|----------|--------|----------|------|--------|-----|
| 机密信息 | 15% | -25 | -15 | -5 | -15 |
| 代码漏洞 | 15% | -20 | -10 | -3 | -15 |
| 依赖项 | 15% | -20 | -10 | -5 | -15 |
| 身份验证与访问控制 | 15% | -20 | -10 | -3 | -15 |
| 配置 | 10% | -15 | -8 | -3 | -10 |
| 供应链 | 10% | -15 | -8 | -3 | -10 |
| API 安全 | 10% | -15 | -8 | -3 | -10 |
| AI/LLM 安全 | 10% | -15 | -8 | -3 | -10 |
**等级:** A (90-100), B (75-89), C (60-74), D (40-59), F (0-39)
**退出代码:** A/B (>= 75) 为 `0`,C/D/F 为 `1` —— 在 CI 中用于使构建失败。
## 策略即代码
创建 `.ship-safe.policy.json` 以强制执行团队范围的安全标准:
```
npx ship-safe policy init
```
```
{
"minimumScore": 70,
"failOn": "critical",
"requiredScans": ["secrets", "injection", "deps", "auth"],
"ignoreRules": [],
"customSeverityOverrides": {},
"maxAge": { "criticalCVE": "7d", "highCVE": "30d", "mediumCVE": "90d" }
}
```
## CI/CD 集成
专用的 `ci` 命令针对流水线进行了优化 —— 紧凑输出、退出代码、基于阈值的门控:
```
# 基础 CI — 分数 < 75 则失败
npx ship-safe ci .
# 严格 — 任何 critical 发现即失败
npx ship-safe ci . --fail-on critical
# 自定义阈值 + 用于 GitHub Security tab 的 SARIF
npx ship-safe ci . --threshold 80 --sarif results.sarif
# 仅检查新发现 (不在基线中)
npx ship-safe ci . --baseline
```
**GitHub Actions 示例:**
```
# .github/workflows/security.yml
name: Security Audit
on: [push, pull_request]
jobs:
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Security gate
run: npx ship-safe ci . --threshold 75 --sarif results.sarif
- uses: github/codeql-action/upload-sarif@v3
if: always()
with:
sarif_file: results.sarif
```
**导出格式:** `--json`, `--sarif`, `--csv`, `--md`, `--html`, `--pdf`
## 抑制误报
**行内:** 在行上添加 `# ship-safe-ignore` 注释:
```
password = get_password() # ship-safe-ignore
```
**文件级:** 创建 `.ship-safeignore`(gitignore 语法):
```
# 排除测试固件
tests/fixtures/
*.test.js
# 排除包含代码示例的文档
docs/
```
## OWASP 覆盖范围
| 标准 | 覆盖范围 |
|----------|----------|
| **OWASP Top 10 Web 2025** | A01-A10:失效的访问控制、加密、注入、不安全设计、安全配置错误、易受攻击的组件、身份验证失败、数据完整性、日志记录失败、SSRF |
| **OWASP Top 10 Mobile 2024** | M1-M10:不当凭据使用、供应链不足、不安全身份验证、验证不足、不安全通信、隐私不足、二进制保护、安全配置错误、不安全数据存储、加密不足 |
| **OWASP LLM Top 10 2025** | LLM01-LLM10:提示注入、敏感信息泄露、供应链、数据投毒、不当输出处理、过度代理、系统提示泄露、向量/嵌入弱点、虚假信息、无限消费 |
| **OWASP CI/CD Top 10** | CICD-SEC-1 至 10:流控制不足、身份管理、依赖链滥用、投毒流水线执行、PBAC 不足、凭据卫生、不安全系统配置、不受管的使用、不当工件完整性、日志记录不足 |
| **OWASP Agentic AI Top 10** | ASI01-ASI10:智能体劫持、工具滥用、权限提升、不安全代码执行、内存投毒、身份欺骗、过度自主、日志缺口、供应链攻击、级联幻觉 |
## 目录结构
### [`/configs`](./configs)
Next.js、Supabase 和 Firebase 的开箱即用安全配置。
### [`/snippets`](./snippets)
复制粘贴安全模式:速率限制、JWT、CORS、输入验证。
### [`/ai-defense`](./ai-defense)
LLM 安全:提示注入检测、成本保护、系统提示加固。
### [`/checklists`](./checklists)
手动安全审计:发布日检查清单、特定框架指南。
## 贡献
1. Fork 本仓库
2. 添加您的安全模式、智能体或配置
3. 包含解释*为什么*它很重要的注释
4. 提交 PR
查看 [CONTRIBUTING.md](./CONTRIBUTING.md) 了解指南。
## 安全标准参考
- [OWASP Top 10 Web 2025](https://owasp.org/Top10/)
- [OWASP Top 10 Mobile 2024](https://owasp.org/www-project-mobile-top-10/)
- [OWASP LLM Top 10 2025](https://genai.owasp.org/llm-top-10/)
- [OWASP API Security Top 10 2023](https://owasp.org/API-Security/)
- [OWASP CI/CD Top 10](https://owasp.org/www-project-top-10-ci-cd-security-risks/)
- [OWASP Agentic AI Top 10](https://owasp.org/www-project-agentic-ai-top-10/)
## 许可证
MIT - 随意使用,分享,保护您的东西。
## Star 历史
[](https://star-history.com/#asamassekou10/ship-safe&Date)
**快速交付。安全交付。**标签:AI安全, Chat Copilot, Chrome Headless, CI/CD安全, CISA项目, DevSecOps, DNS 反向解析, Docker安全, IP 地址批量处理, Kubernetes安全, Llama, MCP服务器, MITM代理, Node.js安全, PII检测, RAG安全, Red Canary, SARIF, SSRF防护, StruQ, Supabase安全, Terraform安全, 上游代理, 安全左移, 暗色界面, 注入攻击, 自定义脚本, 身份验证绕过, 错误基检测, 静态代码分析