ICXCNIKAanon/shipsafe
GitHub: ICXCNIKAanon/shipsafe
ShipSafe 是一款零云端依赖的本地安全扫描工具,通过 1200+ 检测规则、Git hooks 和 MCP 协议集成,帮助开发者在 AI 辅助编码环境中实时拦截漏洞、硬编码机密和恶意依赖。
Stars: 0 | Forks: 0
# ShipSafe
面向追求快速交付的开发者的安全扫描工具。
[](https://www.npmjs.com/package/@shipsafe/cli)
[](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, 上游代理, 依赖安全, 原型污染, 命令注入, 安全左移, 安全扫描, 安全插件, 密钥泄露检测, 开发安全, 时序注入, 暗色界面, 漏洞情报, 盲注攻击, 硬编码密钥, 自动化攻击, 路径遍历, 钓鱼包检测, 错误基检测, 零配置, 静态代码分析