返回更新列表
新发布Aug 31, 2026

ship-safe v9.7.5

面向智能体时代打造的 CLI 安全扫描器。可检测 CI/CD 错误配置、智能体权限风险、MCP 工具注入、硬编码密钥以及被 DMCA 标记的 AI 依赖项。

分享

Ship Safe Logo

在代码发布前发现风险代码、AI 代理漏洞和供应链问题。

官网 · 文档 · 安全与数据流 · 基准测试 · 定价 · 博客 · 参与贡献

npm version npm downloads CI License: MIT GitHub stars Sponsor

Ship Safe CLI

Ship Safe 是一款面向现代软件团队的 AI 安全扫描器。它在你的仓库中本地运行,可发现应用程序代码、AI 代理、MCP 配置、提示词、依赖项、CI/CD、密钥以及云相关配置中的问题,然后帮助你审查并应用安全修复。

一条命令即可开始扫描:

npx ship-safe

无需注册。扫描无需 API 密钥。核心检查支持离线运行。AI 驱动的红队模式在可用时会使用你配置的提供商。

使用 --no-ai 可确保完全本地扫描。提供商支持的分类、深度分析和 GPT-Red 会在尽力进行凭据脱敏后,将受限上下文直接发送到你选择的提供商。有关确切边界和上下文限制,请参阅安全与数据流

Ship Safe REPL 演示


快速开始

# 交互式 REPL:在一次会话中扫描、修复和提问
npx ship-safe

# 完整审计:密钥 + 29 个代理 + 依赖项 + 修复方案
npx ship-safe audit .

# 针对代理可读内容的 AI 代理红队场景
npx ship-safe red-team . --gpt-red

# 交互式修复代理:计划、差异、批准、验证
npx ship-safe agent .
npx ship-safe agent . --severity critical   # 仅严重发现
npx ship-safe agent . --branch --pr         # 在分支上修复 + 创建 PR

# 撤销上一次修复
npx ship-safe undo

# CI/CD 模式 — 任何严重发现即失败
npx ship-safe ci . --sarif results.sarif
npx ship-safe ci . --fail-on high          # 更严格:严重或高危

Ship Safe 能发现什么

领域示例
AI 和 LLM 安全提示注入、代理劫持、过度授权、记忆投毒、RAG 投毒、不安全的工具调用
MCP 和代理配置过宽的工具权限、被投毒的注册表、不受信任的传输、危险的允许列表
应用程序安全SQL/NoSQL 注入、XSS、SSRF、认证绕过、路径遍历、不安全的 API 路由
密钥与合规API 密钥、令牌、凭据、PII、Git 历史中泄露的密钥
供应链仿冒域名抢注、依赖混淆、危险的安装脚本、未固定的 AI 操作
CI/CD流水线投毒、未固定的 GitHub Actions、密钥日志记录、不安全的工作流触发器

工作原理

  1. 本地扫描 - Ship Safe 使用针对性代理检查你的仓库,并跳过不适用的检查。
  2. 审查发现 - 发现结果包含严重级别、文件位置、证据和推荐的修复方案。
  3. 可控修复 - 代理提出计划和差异,写入前询问,验证结果,并保持更改可逆。
  4. CI 门禁 - 使用 ship-safe ci 使风险构建失败,并将 SARIF 上传到 GitHub 代码扫描。

Ship Safe 代理演示


开发者为何使用它

  • 为 AI 原生应用而生:可发现代理、MCP 服务器、提示词、RAG 流程、托管代理配置和 AI 驱动的 CI 中的风险。
  • 与 AI 客户端兼容:通过本地 stdio 服务器将 Ship Safe 暴露给 Codex、Claude Desktop、Cursor、Windsurf 及其他 MCP 客户端。
  • 快速本地反馈:在 PR 之前、审查期间或 CI 中运行,无需将代码发送到托管扫描器。
  • 修复可审查:每个建议的更改在触及你的文件之前都会以差异形式显示。
  • 兼容你的技术栈:JavaScript、TypeScript、Python、配置文件、基础设施文件、GitHub Actions 等。
  • 开源核心:MIT 许可的 CLI,附带文档、示例和不断发展的代理系统。

免费 CLI,付费团队工作流

开源 CLI 是在本地扫描任何仓库的最快方式。当你需要围绕同一扫描器的托管工作流时,可升级:

需求使用
本地扫描、审计和代理辅助修复免费 CLI
扫描历史、云仪表板和 PDF 报告Pro
共享工作区、PR Guardian、团队报告和协作Team

shipsafe.sh/pricing 比较各方案。

Ship Safe Cloud 是用于扫描历史、PR Guardian、计费和团队工作流的托管仪表板,由于包含商业产品代码和托管基础设施工作流,因此在私有仓库中开发。公共 ship-safe 仓库仍专注于 MIT 许可的 CLI、安全代理、规则、测试夹具、CI 集成和文档。有关仓库边界,请参阅 Ship Safe Cloud


安全代理

所有代理并行运行。每个代理都会自动跳过不相关的项目。

代理类别检测内容
InjectionTester代码漏洞SQL/NoSQL 注入、命令注入、XSS、路径遍历、XXE、ReDoS、原型污染
AuthBypassAgent认证JWT 缺陷(alg:none、弱密钥)、CSRF、OAuth 配置错误、BOLA/IDOR、TLS 绕过
SSRFProberSSRFfetch/axios 中的用户输入、云元数据端点、内部 IP
SupplyChainAudit供应链仿冒域名抢注、通配符版本、可疑安装脚本、依赖混淆
ConfigAuditor配置Docker(root 用户、:latest)、Terraform、Kubernetes、CORS、CSP、Firebase、Nginx
SupabaseRLSAgent认证客户端代码中的 service_role 密钥、未启用 RLS 的表、匿名密钥插入
LLMRedTeamAI/LLMOWASP LLM Top 10:提示注入、过度授权、系统提示泄露
MCPSecurityAgentAI/LLMMCP 服务器滥用、工具投毒、仿冒域名抢注、未验证的输入
AgenticSecurityAgentAI/LLMOWASP Agentic AI Top 10:代理劫持、权限提升、Kimi K3/OpenAI 兼容工具调用滥用
RAGSecurityAgentAI/LLM上下文注入、文档投毒、向量数据库访问控制
MemoryPoisoningAgentAI/LLM代理记忆文件中的指令注入、隐藏的 Unicode 载荷(ASI-01、ASI-05)
PIIComplianceAgent合规源代码中的社会安全号码、信用卡、电子邮件、电话号码
VibeCodingAgent代码漏洞AI 生成代码的反模式:无验证、空 catch、TODO 认证
ExceptionHandlerAgent代码漏洞空 catch、未处理的拒绝、泄露的堆栈跟踪(OWASP A10:2025)
AgentConfigScannerAI/LLM.cursorrules、CLAUDE.md 中的提示注入、恶意 Claude Code 钩子
MobileScanner移动端OWASP Mobile Top 10 2024:不安全存储、WebView 注入、调试模式
GitHistoryScanner密钥Git 提交历史中泄露的密钥
CICDScannerCI/CD流水线投毒、未固定的操作、密钥日志记录(OWASP CI/CD Top 10)
APIFuzzerAPI无认证的路由、批量赋值、GraphQL introspection、调试端点
ManagedAgentScannerAI/LLMClaude 托管代理配置错误:always_allow 策略、无限制网络(ASI-03–ASI-07)
HermesSecurityAgentAI/LLM工具注册表投毒、函数调用注入、技能权限漂移(ASI-01–ASI-10)
AgentAttestationAgent供应链未固定的代理版本、缺少完整性哈希、未签名的清单(ASI-10、SLSA L0)
AgenticSupplyChainAgent供应链过度授权的 AI CI 操作、OAuth 范围蔓延、未签名的 AI Webhook 接收器(ASI-02、ASI-06)
RobloxSecurityAgent供应链恶意 Roblox/Luau Toolbox 资源(运行时资源注入、rbxassetid:// 加载器、HttpEnabled、隐藏在实例属性中的载荷)
ModelScanAgent供应链ML 模型权重中的代码执行载荷(.pt/.pkl/.ckpt 中的 pickle 操作码)、无 weights_onlytorch.load、规避扫描的归档(CWE-502、CWE-506)
TrustBoundaryAgent代理安全GhostApproval 符号链接攻击(指向 ~/.ssh/~/.aws/.env 的配置命名链接)、逃逸目录树的仓库符号链接,以及代理可读文档中的 Friendly Fire 运行即审查指令(CWE-59、CWE-61)
SlopSquatAgent供应链幻觉/幽灵包导入(slopsquatting)— 未声明、未安装或非内置的裸导入,以及已知的 AI 幻觉名称(CWE-1357)
ClickFixAgent供应链ClickFix/假 CAPTCHA 粘贴即运行诱饵(假错误 + Win+R/Ctrl+V/命令栏按键、PowerShell 加载器)和假安装程序的 npm 生命周期脚本(CWE-1357、CWE-506)
InstallGuardAgent供应链生命周期脚本中的 npm 蠕虫行为(凭据窃取、环境变量外泄、破坏性 rm -rf、混淆的 node -e)和武器化的 binding.gyp node-gyp 操作(CWE-506、CWE-829)

后处理器: ScoringEngine · VerifierAgent(密钥活性)· DeepAnalyzer(LLM 污点分析)


REPL

$ ship-safe

  ███████╗██╗  ██╗██╗██████╗     ███████╗ █████╗ ███████╗███████╗
  ...

  v9.4.1  ·  DeepSeek  ·  ~/my-project

  /scan 查找问题  ·  /agent 修复问题  ·  /help 获取更多帮助

shipsafe ›
命令功能
/scan重新扫描项目
/agent运行交互式修复循环
/findings列出上次扫描的发现
/show <n>查看发现 n 的完整详情
/plan <n>预览发现 n 的修复计划(不写入)
/undo [--all]撤销上次修复(或所有修复)
/share将扫描报告发布为公共 URL(7 天)
/diff显示 git 工作树差异
/provider <name>会话中切换 LLM 提供商
/quit退出(也可用 Ctrl-DCtrl-C

任何不以 / 开头的内容都会作为自由形式的问题发送给 LLM,并以你最近的扫描结果作为上下文。


CI/CD

# .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 . --sarif results.sarif
      - uses: github/codeql-action/upload-sarif@v3
        if: always()
        with:
          sarif_file: results.sarif

GitLab CI 版本位于 docs/examples/gitlab-security-workflow.yml

带内联 PR 发现的 GitHub Action

当你希望严重和高危发现附加到变更行时,可在 pull_request 工作流中使用该 Action。对于分叉贡献,请将 pull_request_target 排除在此路径之外:Ship Safe 拒绝这种特权组合,因为检出可能包含不受信任的代码。

name: Ship Safe
on:
  pull_request:

permissions:
  contents: read
  pull-requests: write
  security-events: write

jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: asamassekou10/[email protected]
        with:
          fail-on: high
          inline: true

内联评论为可选加入,仅发布严重/高危发现。重新运行作业会更新摘要,而不会创建重复的内联评论。


LLM 支持

适用于任何提供商 — 从环境变量自动检测。使用 --provider <name> 覆盖。

Anthropic · OpenAI · Google · DeepSeek · Kimi K3 / Moonshot · Groq · Together · Mistral · xAI · Perplexity · Ollama · LM Studio · 任何 OpenAI 兼容端点

Kimi 默认通过 MOONSHOT_API_KEYKIMI_API_KEY 使用 kimi-k3。使用 --provider kimi --model kimi-k3 进行长上下文 GPT-Red 和深度分析运行。

针对 Kimi K3 特定的长上下文红队:

npx ship-safe red-team . --gpt-red --provider kimi --model kimi-k3 --k3-long-context

Ship Safe 还会检查 Kimi K3 / OpenAI 兼容工具调用实现,包括从提示上下文动态加载工具、缺少工具允许列表、对不受信任输入强制工具调用,以及在缺少原始助手工具调用消息的情况下重放工具结果。

核心扫描无需 API 密钥。AI 分类和 red-team --gpt-red 在可用时使用你配置的提供商,GPT-Red 检查具有确定性的离线回退。


抑制误报

password = get_password()  # ship-safe-ignore

critical 发现始终会被报告。内联注释无法隐藏它们,尝试抑制会被记录在扫描中。该注释旨在供人工排除误报,而任何能写入你源代码一行内容的东西(包括 AI 代理)也能写入该注释,因此最高严重级别不遵循它。每次抑制都会被计数,因此静默了发现的扫描永远不会看起来像没有发现的扫描。

# .ship-safeignore
tests/fixtures/
docs/

噪音有多大?

召回率只是扫描器容易做到的一半。一个什么都标记的工具能捕获一切但毫无用处,因此我们衡量另一半:Ship Safe 对几乎可以确定没有问题的代码会说什么。

项目发现严重等级
express260C
requests151C
flask280D
chalk40B

与 v9.6.3 之前同一四个项目的 1031 个发现相比有所下降,并针对 NodeGoat 和 DVWA 进行了验证,以确保下降是减少噪音而非丢失检测。剩余的 1 个严重发现是误报,基准测试会说明是哪一个以及原因。

语料库按提交固定,一条命令即可复现,限制已记录: benchmarks/false-positives/

与 Semgrep、Gitleaks、Trivy、CodeQL 相比如何?

将 Ship Safe 与它们并行运行,而非替代它们。CodeQL 执行 Ship Safe 不尝试的跨过程污点分析,Gitleaks 是密钥检测的专家,Trivy 背后有真实的 CVE 数据库。

Ship Safe 覆盖一个更窄的问题:AI 编码代理刚刚对你的仓库、CI 和本地工具配置做了什么。MCP 客户端配置、代理记忆投毒、幻觉包导入和 AIBOM 是我们在其他四种工具中未找到等效公共规则的领域。

完整覆盖矩阵,已针对其公共注册表验证,包括它们超越我们的地方:docs/comparison.md


添加徽章

[![Ship Safe](https://img.shields.io/badge/Ship_Safe-A+-22c55e)](https://shipsafe.sh)

下一步计划

10.0 是 Hermes Agent 覆盖。 Ship Safe 已能扫描 Hermes 部署,但针对的是 v0.13.0,而 Hermes 已到 v0.20.0 — ACP 适配器、TUI 网关、无服务器终端后端、cron 蓝图和插件清单都在此期间发布,且没有覆盖。

请参阅路线图了解计划内容和有意不做的内容,以及 10.0 里程碑了解可认领的工作。其中的所有内容都对贡献者开放。

参与贡献

Ship Safe 是开源的,最好的贡献是让 AI 辅助开发更安全的小而专注的改进。

适合入门的方向:

  • 为 AI、MCP、CI、云或供应链风险添加一个专注的安全代理
  • 为现有代理添加一条精确的安全规则
  • 添加易受攻击的测试夹具和回归测试
  • 编写本地扫描、CI 门禁、红队工作流和 MCP/代理设置的示例

从这里开始:


赞助商

Ship Safe 采用 MIT 许可,永久免费。

Sponsor Ship Safe


Star 历史

Star History Chart


快速发布。安全发布。shipsafe.sh

分类