ICXCNIKAanon/shipsafe

GitHub: ICXCNIKAanon/shipsafe

ShipSafe 是一款零云端依赖的本地安全扫描工具,通过 1200+ 检测规则、Git hooks 和 MCP 协议集成,帮助开发者在 AI 辅助编码环境中实时拦截漏洞、硬编码机密和恶意依赖。

Stars: 0 | Forks: 0

# ShipSafe 面向追求快速交付的开发者的安全扫描工具。 [![npm version](https://img.shields.io/npm/v/@shipsafe/cli.svg)](https://www.npmjs.com/package/@shipsafe/cli) [![license](https://img.shields.io/badge/license-proprietary-blue.svg)](https://shipsafe.org) ## 功能介绍 ShipSafe 能在漏洞、硬编码机密和危险依赖项进入生产环境之前将其捕获。它内置了 1,266 条检测规则(1,062 条漏洞 + 174 条机密 + 30 条环境威胁模式),零配置即可使用,并兼容 Claude Code、Cursor、Windsurf、Copilot、Cline 及任何 AI 编码工具。每次扫描均在纯 TypeScript 环境下运行,无需外部二进制依赖。 ## 快速开始 ``` npm install -g @shipsafe/cli ``` 就是这样。一条命令即可安装 CLI、用于 AI 助手的 MCP server,并自动注册到 Claude Code。在任何项目中运行 `shipsafe init` 即可安装 git hooks 并将 AI 指令写入编辑器配置文件。 ## 检测内容 - **1,062 条漏洞模式** —— SQL 注入、Prompt 注入、XSS、命令注入、路径遍历、SSRF、CSRF、原型污染、不安全的加密算法、不安全的反序列化、身份验证问题等 - **174 条机密模式** —— AWS 密钥、GCP 服务账号、Azure token、GitHub PAT、Stripe 密钥、数据库 URL、JWT、私钥、OAuth 机密等数十种 —— 配合 Shannon 熵验证以减少误报 - **30 条环境威胁模式** —— CLAUDE.md 中的 Prompt 注入、恶意 MCP server 配置、危险的 hooks、技能文件篡改、混淆指令、凭证窃取、反向 Shell - **依赖项漏洞** —— 已弃用的包、已知 CVE、Typosquatting(拼写仿冒)检测、维护状态检查 ## 工作原理 ShipSafe 通过三层机制保护您的代码: 1. **Git hooks** (pre-commit 和 pre-push) —— 在首次扫描时自动安装,它们会阻止包含严重或高危发现的提交和推送。兼容任何编辑器、任何工作流。 2. **MCP server** —— 通过 stdio 传输暴露 7 个工具,以便 AI 编码助手能够实时扫描、修复和查询项目的安全态势。 3. **CLI** —— 用于扫描、基线化已知发现、安装前检查包以及管理配置的直接命令。 ## CLI 命令 | 命令 | 描述 | |---------|-------------| | `shipsafe scan` | 扫描项目漏洞。选项:`--scope staged\|all\|file:`,`--fix`,`--json` | | `shipsafe init` | 在项目中初始化 ShipSafe。安装 hooks,写入 AI 配置文件(CLAUDE.md, .cursorrules 等),注册 MCP server | | `shipsafe setup` | 向 Claude Code、Cursor 及其他编辑器注册 MCP server | | `shipsafe baseline` | 快照当前发现,以便仅报告新问题。选项:`--show`,`--clear` | | `shipsafe activate ` | 激活 Pro 或 Team 许可证密钥 | | `shipsafe config list` | 查看当前配置 | | `shipsafe config set ` | 设置配置值。添加 `--global` 进行用户全局设置 | | `shipsafe audit ` | 在安装前审核远程 GitHub/GitLab 仓库。检查漏洞、机密、恶意模式、混淆代码、postinstall 威胁和环境风险。选项:`--json` | | `shipsafe scan-environment` | 扫描 Claude Code 环境中的恶意 MCP server、hooks、skills 以及 CLAUDE.md 中的 Prompt 注入。选项:`--json` | | `shipsafe status` | 显示项目安全状态、hook 状态和可用引擎 | | `shipsafe connect` | 将项目连接到 ShipSafe 云端进行监控 | | `shipsafe upload-sourcemaps` | 上传 Source Map 用于生产环境错误解析 | | `shipsafe mcp-server` | 启动 MCP server(stdio 传输,供 AI 助手使用) | ## .shipsafeignore 在项目根目录下创建 `.shipsafeignore` 文件,以排除文件和目录的扫描。使用类似 gitignore 的语法: ``` # Exclude test fixtures tests/fixtures/ # Exclude generated files src/generated/ # Exclude specific file config/legacy-secrets.ts ``` ShipSafe 也会遵循您的 `.gitignore`,并且默认总是跳过 `node_modules`、`dist`、`.git` 和 `coverage`。 ## 配置 ShipSafe 使用两个配置文件(项目配置覆盖全局配置): - **全局**: `~/.shipsafe/config.json` - **项目**: `shipsafe.config.json` ``` # View current config shipsafe config list # Set project-level config shipsafe config set scan.severity_threshold medium # Set global config shipsafe config set licenseKey SS-PRO-abc123 --global ``` ### 环境变量 | 变量 | 描述 | 默认值 | |----------|-------------|---------| | `SHIPSAFE_API_URL` | API 端点覆盖 | `https://shipsafe-m9nc6.ondigitalocean.app` | | `SHIPSAFE_DB_PATH` | SQLite 数据库路径 (API) | `~/.shipsafe/shipsafe.db` | ## MCP 工具 ShipSafe 通过 [Model Context Protocol](https://modelcontextprotocol.io) 为 AI 编码助手暴露了 7 个工具: | 工具 | 描述 | |------|-------------| | `shipsafe_scan` | 对项目目录运行安全扫描 | | `shipsafe_status` | 获取项目安全状态、hook 状态和扫描器可用性 | | `shipsafe_check_package` | 在安装前审查 npm 包(Typosquatting、CVE、维护情况) | | `shipsafe_fix` | 应用自动修复(将机密移至 .env,建议代码修复) | | `shipsafe_graph_query` | 查询知识图谱以获取调用者、被调用者、攻击路径、影响范围 | | `shipsafe_production_errors` | 获取带有堆栈跟踪和建议修复方案的生产错误 | | `shipsafe_verify_resolution` | 检查生产错误是否已解决 | MCP server 会在 `shipsafe init` 或 `shipsafe setup` 期间自动注册。手动配置方法如下: ``` { "mcpServers": { "shipsafe": { "command": "npx", "args": ["-y", "shipsafe", "mcp-server"] } } } ``` ## 定价 | | Free | Pro ($19/月) | Team ($49/月) | |--|------|-------------|---------------| | 漏洞 + 机密扫描 | Yes | Yes | Yes | | Git hooks (pre-commit, pre-push) | Yes | Yes | Yes | | 项目数 | 1 | 5 | 20 | | 知识图谱引擎 | -- | Yes | Yes | | 自动修复 (机密移至 .env) | -- | Yes | Yes | | 生产错误监控 | -- | Yes | Yes | | MCP server 工具 | -- | Yes | Yes | | GitHub App (PR 检查) | -- | -- | Yes | | Source Map 解析 | -- | -- | Yes | ``` shipsafe activate SS-PRO-yourkeyhere ``` ## 开发 需要 Node.js >= 20。 ``` # Install dependencies npm install # Build npm run build # Run CLI locally (without building) npm run dev -- scan npm run dev -- init npm run dev -- setup # Run tests npm test # Run tests in watch mode npm run test:watch # Type-check without emitting npm run lint # Run cloud API locally cd packages/api && npm run dev ``` ### 架构 ``` bin/shipsafe.ts CLI entry point (Commander.js) src/ engines/ builtin/ Pure TS pattern + secret + dependency scanners pattern/ Scanner orchestration (Semgrep, Gitleaks, Trivy wrappers) graph/ Tree-sitter + KuzuDB knowledge graph cli/ CLI commands (scan, init, activate, config, baseline, etc.) mcp/ MCP server + 7 tools (stdio transport) autofix/ Auto-fix engine (secret fixer, scaffolding, PR generation) github/ GitHub App (webhooks, PR scanner, checks API) hooks/ Git hook installer (pre-commit, pre-push) config/ Global + project config manager claude-md/ CLAUDE.md / .cursorrules injection manager packages/ api/ Hono cloud API with SQLite persistence monitor/ @shipsafe/monitor client error capture snippet ``` ### 约定 - TypeScript 严格模式,ESM 模块 - 使用 Vitest 进行测试 - 不使用类 —— 仅使用纯函数和类型 - 错误作为类型化错误抛出,绝不静默吞没 ## 许可证 UNLICENSED —— ShipSafe 的专有软件。 `@shipsafe/monitor` 采用 MIT 许可证。 [shipsafe.org](https://shipsafe.org)
标签:AI编程助手, CISA项目, Claude, Claude Code, CSRF, Cursor, CVE检测, DevSecOps, Git Hooks, GitHub Copilot, GNU通用公共许可证, IP 地址批量处理, MCP Server, MITM代理, Node.js, Pre-commit, SAST, Secrets Detection, SSRF, StruQ, TypeScript, Windsurf, XSS, 上游代理, 依赖安全, 原型污染, 命令注入, 安全左移, 安全扫描, 安全插件, 密钥泄露检测, 开发安全, 时序注入, 暗色界面, 漏洞情报, 盲注攻击, 硬编码密钥, 自动化攻击, 路径遍历, 钓鱼包检测, 错误基检测, 零配置, 静态代码分析