
ship-safe v9.7.5
CLIセキュリティスキャナー。エージェント時代に向けて構築されました。CI/CDの設定ミス、エージェント権限リスク、MCPツールインジェクション、ハードコードされたシークレット、DMCAフラグ付きAI依存関係を検出します。
リスクのあるコード、AIエージェントの脆弱性、サプライチェーン問題を、リリース前に検出します。
Webサイト · ドキュメント · セキュリティとデータフロー · ベンチマーク · 料金 · ブログ · コントリビュート
Ship Safe CLI
Ship Safeは、現代のソフトウェアチーム向けのAIセキュリティスキャナーです。リポジトリ内でローカルに実行され、アプリケーションコード、AIエージェント、MCP設定、プロンプト、依存関係、CI/CD、シークレット、クラウド関連設定にわたる問題を検出し、安全な修正のレビューと適用を支援します。
1つのコマンドでスキャンを開始:
npx ship-safe
サインアップ不要。スキャンにAPIキーは不要です。コアチェックはオフラインで動作します。AIを利用したレッドチームモードは、利用可能な場合に設定済みプロバイダーを使用します。
--no-ai を使用すると、完全にローカルなスキャンを保証します。プロバイダーを利用した分類、詳細分析、GPT-Redは、ベストエフォートの認証情報マスキング後、制限されたコンテキストを選択したプロバイダーに直接送信します。正確な境界とコンテキスト制限については、セキュリティとデータフローを参照してください。
クイックスタート
# 対話型REPL: 1つのセッションでスキャン、修正、質問
npx ship-safe
# 完全監査: シークレット + 29エージェント + 依存関係 + 修復計画
npx ship-safe audit .
# AIエージェントが読み取るコンテンツに対する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、シークレットのログ記録、安全でないワークフロートリガー |
仕組み
- ローカルでスキャン - Ship Safeは対象のエージェントでリポジトリを検査し、該当しないチェックはスキップします。
- 検出結果をレビュー - 検出結果には、重大度、ファイルの場所、証拠、推奨される修復方法が含まれます。
- 制御して修正 - エージェントが計画と差分を提案し、書き込み前に確認を求め、結果を検証し、変更を元に戻せる状態に保ちます。
- CIでゲート -
ship-safe ciを使用してリスクのあるビルドを失敗させ、SARIFをGitHubコードスキャニングにアップロードします。
開発者が使う理由
- AIネイティブアプリ向けに設計: エージェント、MCPサーバー、プロンプト、RAGフロー、マネージドエージェント設定、AI駆動CIのリスクを検出します。
- AIクライアントと連携: ローカルstdioサーバーを通じて、Codex、Claude Desktop、Cursor、Windsurf、その他のMCPクライアントにShip Safeを公開します。
- 高速なローカルフィードバック: ホスト型スキャナーにコードを送信せずに、PR前、レビュー中、CI内で実行できます。
- 修正はレビュー可能: 提案されたすべての変更は、ファイルに触れる前に差分として表示されます。
- お使いのスタックと連携: JavaScript、TypeScript、Python、設定ファイル、インフラストラクチャファイル、GitHub Actionsなど。
- オープンソースコア: MITライセンスのCLIで、ドキュメント、例、成長するエージェントシステムを備えています。
無料CLI、有料チームワークフロー
オープンソースのCLIは、任意のリポジトリをローカルでスキャンする最速の方法です。同じスキャナーを中心としたホスト型ワークフローが必要な場合はアップグレードしてください:
| ニーズ | 使用 |
|---|---|
| ローカルスキャン、監査、エージェント支援による修正 | 無料CLI |
| スキャン履歴、クラウドダッシュボード、PDFレポート | Pro |
| 共有ワークスペース、PR Guardian、チームレポート、コラボレーション | Team |
プランの比較はshipsafe.sh/pricingで。
スキャン履歴、PR Guardian、請求、チームワークフロー向けのホスト型ダッシュボードであるShip Safe Cloudは、商用製品コードとホスト型インフラストラクチャワークフローが含まれているため、プライベートリポジトリで開発されています。公開のship-safeリポジトリは、MITライセンスのCLI、セキュリティエージェント、ルール、フィクスチャ、CI統合、ドキュメントに焦点を当てたままです。リポジトリの境界についてはShip Safe Cloudを参照してください。
セキュリティエージェント
すべてのエージェントは並行して実行されます。各エージェントは無関係なプロジェクトを自動的にスキップします。
| エージェント | カテゴリ | 検出内容 |
|---|---|---|
| InjectionTester | コード脆弱性 | SQL/NoSQLインジェクション、コマンドインジェクション、XSS、パストラバーサル、XXE、ReDoS、プロトタイプ汚染 |
| AuthBypassAgent | 認証 | JWTの欠陥(alg:none、弱いシークレット)、CSRF、OAuth設定ミス、BOLA/IDOR、TLSバイパス |
| SSRFProber | SSRF | fetch/axiosでのユーザー入力、クラウドメタデータエンドポイント、内部IP |
| SupplyChainAudit | サプライチェーン | タイポスクワッティング、ワイルドカードバージョン、不審なインストールスクリプト、依存関係混乱 |
| ConfigAuditor | 設定 | Docker(rootユーザー、:latest)、Terraform、Kubernetes、CORS、CSP、Firebase、Nginx |
| SupabaseRLSAgent | 認証 | クライアントコード内のservice_roleキー、RLSのないテーブル、anonキーインサート |
| LLMRedTeam | AI/LLM | OWASP LLM Top 10: プロンプトインジェクション、過剰な権限、システムプロンプト漏洩 |
| MCPSecurityAgent | AI/LLM | MCPサーバーの悪用、ツールポイズニング、タイポスクワッティング、未検証の入力 |
| AgenticSecurityAgent | AI/LLM | OWASP Agentic AI Top 10: エージェント乗っ取り、権限昇格、Kimi K3/OpenAI互換ツール呼び出しの悪用 |
| RAGSecurityAgent | AI/LLM | コンテキストインジェクション、ドキュメントポイズニング、ベクターDBのアクセス制御 |
| MemoryPoisoningAgent | AI/LLM | エージェントメモリファイルへの命令インジェクション、隠されたUnicodeペイロード(ASI-01、ASI-05) |
| PIIComplianceAgent | コンプライアンス | ソースコード内のSSN、クレジットカード、メール、電話番号 |
| VibeCodingAgent | コード脆弱性 | AI生成コードのアンチパターン: 検証なし、空のcatch、TODO認証 |
| ExceptionHandlerAgent | コード脆弱性 | 空のcatch、未処理のrejection、漏洩したスタックトレース(OWASP A10:2025) |
| AgentConfigScanner | AI/LLM | .cursorrules、CLAUDE.mdへのプロンプトインジェクション、悪意のあるClaude Codeフック |
| MobileScanner | モバイル | OWASP Mobile Top 10 2024: 安全でないストレージ、WebViewインジェクション、デバッグモード |
| GitHistoryScanner | シークレット | gitコミット履歴に漏洩したシークレット |
| CICDScanner | CI/CD | パイプライン汚染、固定されていないアクション、シークレットのログ記録(OWASP CI/CD Top 10) |
| APIFuzzer | API | 認証のないルート、マスアサインメント、GraphQLイントロスペクション、デバッグエンドポイント |
| ManagedAgentScanner | AI/LLM | Claude Managed Agentの設定ミス: always_allowポリシー、無制限のネットワーキング(ASI-03–ASI-07) |
| HermesSecurityAgent | AI/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_onlyなしのtorch.load、スキャナー回避アーカイブ(CWE-502、CWE-506) |
| TrustBoundaryAgent | Agentic | GhostApprovalシンボリックリンク攻撃(~/.ssh/~/.aws/.envへの設定名リンク)、ツリーを脱出するリポジトリシンボリックリンク、エージェントが読むドキュメント内のFriendly Fire実行時レビュー指示(CWE-59、CWE-61) |
| SlopSquatAgent | サプライチェーン | 幻覚/ファントムパッケージインポート(スロップスクワッティング)— 宣言されていない、インストールされていない、組み込みでもないベアインポート、および既知の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-DまたはCtrl-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_KEYまたはKIMI_API_KEYを通じてデフォルトでkimi-k3になります。長いコンテキストのGPT-Redおよび詳細分析実行には--provider kimi --model kimi-k3を使用します。
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の検出結果は常に報告されます。インラインコメントで隠すことはできず、抑制しようとするとスキャンに記録されます。このコメントは人間が誤検知を除外するためのものであり、ソースの1行を書き込めるもの(AIエージェントを含む)はコメントも書き込めるため、最高の重大度はこれを尊重しません。すべての抑制はカウントされるため、検出結果を沈黙させたスキャンが、検出結果がなかったスキャンのように読まれることはありません。
# .ship-safeignore
tests/fixtures/
docs/
ノイズはどのくらいですか?
再現率はスキャナーの簡単な半分です。すべてをフラグするツールはすべてを検出しますが役に立ちません。そこで、もう半分を測定します: Ship Safeがほぼ間違いなく問題ないコードについて何を言うか。
v9.6.3以前の同じ4つのプロジェクトにわたる1031件の検出結果から減少し、NodeGoatとDVWAに対して検証されているため、減少は検出の喪失ではなくノイズの低減です。残りの1件のcriticalは誤検知であり、ベンチマークはどれと理由を示しています。
コーパスはコミットで固定され、1つのコマンドで再現可能、制限は文書化されています: benchmarks/false-positives/
Semgrep、Gitleaks、Trivy、CodeQLとの比較は?
Ship Safeをそれらの代わりではなく、それらと並行して実行してください。CodeQLはShip Safeが試みないプロシージャ間汚染解析を行い、Gitleaksはシークレットの専門家であり、Trivyは実際のCVEデータベースを背後に持っています。
Ship Safeはより狭い質問をカバーします: AIコーディングエージェントがリポジトリ、CI、ローカルツール設定に何をしたか。MCPクライアント設定、エージェントメモリポイズニング、幻覚パッケージインポート、AIBOMは、他の4つに同等の公開ルールが見つからなかった領域です。
完全なカバレッジマトリックスは、公開レジストリに対して検証され、それらが私たちを上回る場所も含めて: docs/comparison.md
バッジを追加
[](https://shipsafe.sh)
次の予定
10.0はHermes Agentのカバレッジです。 Ship SafeはすでにHermesデプロイメントをスキャンしますが、Hermesがv0.20.0にある間にv0.13.0に対してです — ACPアダプター、TUIゲートウェイ、サーバーレスターミナルバックエンド、cronブループリント、プラグインマニフェストはすべてその間にカバレッジなしでリリースされました。
計画されているものと意図的に計画されていないものについてはロードマップを、引き受け可能な作業については10.0マイルストーンを参照してください。その中のすべてはコントリビューターに開かれています。
コントリビューション
Ship Safeはオープンソースであり、最良のコントリビューションは、AI支援開発をより安全にする小さく焦点を絞った改善です。
良い最初の領域:
- AI、MCP、CI、クラウド、またはサプライチェーンリスクのための焦点を絞ったセキュリティエージェントを追加
- 既存のエージェントに正確なセキュリティルールを追加
- 脆弱なフィクスチャと回帰テストを追加
- ローカルスキャン、CIゲート、レッドチームワークフロー、MCP/エージェント設定の例を書く
ここから始めてください:
- Good first issues
- コントリビューターガイド
- エージェントを追加
- セキュリティルールを追加
- MCP環境変数を安全に処理
- CodexでShip Safeを使用
- Claude CodeでShip Safeを使用
- リリースプロセス
スポンサー
Ship SafeはMITライセンスで、永久に無料です。
スター履歴
速く出荷。安全に出荷。 — shipsafe.sh