
shannon v2.1.0
Shannon は、WebアプリケーションおよびAPI向けの自律型ホワイトボックスAIペネトレーションテスターです。ソースコードを分析し、攻撃ベクトルを特定し、本番環境に到達する前に脆弱性を証明するために実際のエクスプロイトを実行します。
[!NOTE] Shannon 2.0 が正式にリリースされました
Shannon は、Web アプリケーションと API のための自律型 AI ペネトレーションテスターです。
ソースコードを分析し、攻撃経路を特定し、実際のエクスプロイトを実行して、脆弱性が本番環境に到達する前に証明します。
このリポジトリは Shannon Open Source です。完全なエージェントを、コマンドラインからローカルで実行できます。
[!TIP] AI エージェントと LLM 向け: このリポジトリの簡潔なマップは llms.txt から始めるか、README とドキュメントを1つのファイルにまとめた llms-full.txt を使用してください。
目次
- Shannon とは?
- Shannon の動作
- クイックスタート
- 主な機能
- エディション
- アーキテクチャ
- ドキュメント
- 安全性、適用範囲、および制限
- ライセンス
- Keygraph について
- コミュニティとサポート
- よくある質問
Shannon とは?
Shannon は、Keygraph が開発した自律型 AI ペネトレーションテスターです。ソースコード分析とライブエクスプロイトを組み合わせて、Web アプリケーションとその基盤となる API のセキュリティテストを実行します。
Shannon は Web アプリケーションのソースコードを分析して潜在的な攻撃ベクトルを特定し、ブラウザ自動化とコマンドラインツールを使用して、実行中のアプリケーションとその API に対して実際のエクスプロイトを実行します。最終レポートには、実証済みの概念実証(PoC)がある脆弱性のみが含まれます。
Shannon はエージェントです。このリポジトリは Shannon Open Source、つまり自分で実行するスタンドアロンのペネトレーションテスターです。同じ Shannon が、Keygraph の商用ペネトレーションテスト製品である Keygraph プラットフォーム も支えています。両者の比較は エディション を参照してください。
Shannon が存在する理由
Claude Code や Cursor などのツールのおかげで、あなたのチームはコードを絶え間なくリリースしています。しかし、ペネトレーションテストはどうでしょうか?それは年に1回だけです。これにより、巨大なセキュリティギャップが生じます。残りの364日間、あなたは知らないうちに脆弱性を本番環境にリリースしている可能性があります。
Shannon は、すべてのビルドまたはリリースに対して実行できる、オンデマンドの自動ペネトレーションテストを提供することで、そのギャップを埋めます。
Shannon の動作
Shannon Open Source によって生成された、意図的に脆弱なアプリケーションからのサンプルペネトレーションテストレポート:
| ターゲット | 概要 | レポート |
|---|---|---|
| OWASP Juice Shop | 認証バイパス、SQL インジェクション、IDOR、SSRF を含む20以上の脆弱性。 | レポートを表示 |
| c{api}tal API | コマンドインジェクション、認証バイパス、マスアサインメントを含む、約15件の重大および高重要度の API 発見事項。 | レポートを表示 |
| OWASP crAPI | JWT、インジェクション、SSRF、API 認可経路にわたる15以上の重大および高重要度の発見事項。 | レポートを表示 |
クイックスタート
前提条件
- Docker: ワーカーコンテナに必要です。
- Node.js 18+: 推奨される
npxワークフローに必要です。 - AI プロバイダーの認証情報: Shannon は Anthropic、OpenAI、xAI、AWS Bedrock、ハーネスカタログ内のその他のプロバイダー、およびカスタムベース URL を通じて Anthropic Messages API または OpenAI Chat Completions / Responses API を話す任意のエンドポイントで動作します。ご自身のキーを持ち込み、Keygraph がモデルトラフィックをプロキシすることはありません。Shannon はプロバイダーに依存しません。推奨モデル ID については AI プロバイダー を参照してください。
- プロバイダーでサイバーセーフガードをクリア: Anthropic と OpenAI はサイバーセキュリティワークロードにリアルタイムのセーフガードを適用し、スキャンの実行中に中断する可能性があります。最初の実行前に、正規のセキュリティテスター向けのガイダンスを完了してください - AI プロバイダー を参照してください。
Shannon を実行する
[!WARNING] Shannon はエクスプロイトを積極的に実行します。所有している、または明示的な書面によるテスト許可があるアプリケーションと環境に対してのみ実行してください。本番システムに対して Shannon を実行しないでください。```bash
Configure credentials with the interactive wizard.
npx @keygraph/shannon setup
Run a pentest against a source-available target.
npx @keygraph/shannon start -u https://your-app.com -r /path/to/your-repo
ShannonはDocker Hubからワーカーイメージを取得し、必要なローカルインフラを起動し、対象リポジトリを読み取り専用で一時的なワーカーコンテナ内にマウントし、結果をローカルワークスペースに書き込みます。
ソースビルド、認証付きスキャン、プロバイダー固有のセットアップ、およびプラットフォームに関する注意事項については、[ドキュメント](#documentation)を参照してください。
> [!TIP]
> **APIクレジットの代わりにサブスクリプションを利用したいですか?**
>
> - **OpenAI Codex:** 最新バージョンのShannonはChatGPT PlusおよびProサブスクリプションをサポートしています。[OpenAI Codexサブスクリプション設定ガイド](https://github.com/keygraphhq/shannon/blob/main/docs/ai-providers.md#openai-codex-chatgpt-pluspro-subscription)に従って開始してください。
> - **Claude Code:** 最新バージョンのShannonはClaude Codeサブスクリプションをサポートしていません。[Claude Codeサブスクリプション設定ガイド](https://github.com/keygraphhq/shannon/blob/main/docs/ai-providers.md#claude-code-subscription)に従って、Claude Agent SDK上に構築された最終リリースであるバージョン`1.9.0`を使用してください。
## 主な機能
- **実証による証明レポート**: Shannonは、推測的な警告ではなく、再現可能な概念実証手順を伴う検証済みの調査結果を報告します。
- **ホワイトボックス攻撃計画**: Shannonはソースコード分析を使用して動的テストをガイドし、現実的な攻撃経路に焦点を当てます。
- **自律実行**: Shannonは単一のコマンドから偵察、脆弱性分析、悪用、レポート生成を開始します。
- **認証付きテスト**: 設定ファイルでログインフロー、テスト認証情報、TOTP、メールベースのログインフロー、重点領域、および攻撃ルールを記述できます。
- **OWASP重視のカバレッジ**: Shannonは悪用可能なInjection、XSS、SSRF、Broken Authentication、およびBroken Authorizationの問題を対象とします。
- **再開可能なワークスペース**: Shannonは完了したエージェントを再実行せずに中断された実行を再開できます。
- **機械可読な出力**: Shannonは調査結果を構造化JSONとして出力し、エクスプロイトモードのスキャンではデフォルトでSARIF 2.1.0としても出力します(`report.sarif: "false"`でオプトアウト)。SARIFは静的解析結果のOASIS標準であり、調査結果はそれを読み取るあらゆるコードスキャンサービス、脆弱性管理プラットフォーム、セキュリティダッシュボード、またはCI/CDパイプラインに流れ込みます。
- **独自キー持ち込み、プロバイダー非依存**: ShannonはAnthropic、OpenAI、xAI、AWS Bedrock、およびAnthropic Messages APIまたはOpenAI Chat Completions / Responses APIを話す任意のエンドポイントで動作します。これには、Ollama、vLLM、LM Studioを通じて提供されるセルフホストモデルや、OpenRouterやLiteLLMなどのゲートウェイも含まれます。認証情報はお客様が提供するため、ソースコードとモデルトラフィックはお客様のインフラ内に留まります。ローカルおよびセルフホストモデルは技術的にはサポートされていますが推奨されません。フロンティアモデルほどShannonの指示やツール使用制約に確実に従わない可能性があるため、選択したモデルの動作を理解している場合にのみその経路を選択してください。
## エディション
Shannonは2つの方法で提供されます。**Shannon Open Source**(自分で実行するペンテスター)と、**Keygraphプラットフォーム**(Shannonを継続的に実行し、その周囲で完全なAppSecライフサイクルを閉じる商用ペンテスティング製品)です。
**Shannon Open Source**(このリポジトリ)はスタンドアロンのペンテスターです。所有またはテストを許可されたWebアプリケーションとAPIのホワイトボックス、実証による証明テストのためのCLIエージェントです。ソースを読み取り、攻撃を計画し、実際のエクスプロイトを実行し、証明できるものだけを報告します。オンデマンドで実行され、その領域では完全です。ターゲットを指定すると、ペンテストを実行し、レポートを出力します。
**Keygraphプラットフォーム**は、Shannonを搭載したエンタープライズ対応の継続的ペンテスティング製品です。Keygraphプラットフォームでは、強化されたShannonビルドが、Keygraphの完全なコード解析スタックによって供給される堅牢化されたオーケストレーション環境で継続的に実行されます。そのエンジンの周囲で、プラットフォームは分析から検証済みの修正まで、脆弱性ライフサイクル全体を閉じます。
- **分析**: Code Property Graph SAST、到達可能性を備えたSCA、シークレット、IaC、コンテナスキャン。それ自体が第一級の検出機能であり、Shannonの攻撃を研ぎ澄ますコンテキストでもあります。
- **証明**: 自律型ブラックボックスおよびソース認識型ホワイトボックスペンテストにより、候補となる調査結果を推測的なアラートではなく、証明された悪用された脆弱性に変えます。
- **管理**: リポジトリごとの脆弱性ごとに正規のレコードを1つ保持し、すべてのソースにわたって重複排除し、所有権、ステータス、SLA追跡、ダッシュボード、双方向Jira同期を備えます。
- **修正と検証**: パッチは自動的に作成され、配信前にパッチ適用済みコードに対して再テストされ、自動適用ではなく既存のレビューワークフローに取り込まれます。
- **デプロイ**: セルフホストおよびエアギャップ環境、厳格な独自キー持ち込みモデルアクセス、顧客管理のLLMゲートウェイパターンにより、ソース、結果、モデルトラフィックがお客様の境界内に留まります。
ShannonはKeygraphプラットフォームの中心にある証明エンジンです。Shannon Open Sourceは、そのエンジンを自分で実行できるように提供します。Keygraphプラットフォームは、継続的な分析、調査結果管理、修正、検証、エンタープライズデプロイでShannonを囲みます。
| AppSecライフサイクル段階 | Shannon Open Source | Keygraphプラットフォーム |
| --- | --- | --- |
| 分析 | 攻撃計画のためのソースの基本的なLLMパススルー | 実際のコードベース解析に加え、Code Property Graph、SAST、到達可能性を備えたSCA、シークレット、IaC、コンテナ |
| ペンテストと証明 | ホワイトボックスのみ、実証による証明 | 強化されたホワイトボックスに加え、ブラックボックスおよびグレーボックスモードを継続的に実行 |
| 調査結果の管理 | ローカルMarkdownレポート | 正規の調査結果システム: ソース間の重複排除、所有権、SLA、ダッシュボード、Jira同期、プロフェッショナルなペンテストグレードのPDFレポート |
| 修正と検証 | レポートから手動で修正し、完全なスキャンを再実行して検証 | 自動修正: 修正を含むPRを開き、完全なスキャンを再実行せずにポイント再テストで検証 |
| デプロイと運用 | ローカルCLIおよびDockerワーカー | セルフホスト、エアギャップ、BYOK、継続的、エンタープライズ統合 |
| ライセンスとサポート | AGPL-3.0、コミュニティ | 商用、サポート付き |
詳細は[Keygraphウェブサイト](https://keygraph.io)で確認するか、[Keygraphプラットフォーム技術概要](https://github.com/keygraphhq/shannon/blob/main/docs/keygraph-platform.md)を読むか、無料トライアルを開始するか[デモ](https://cal.com/team/keygraph/shannon-pro)を予約するか、[[email protected]](mailto:[email protected])までお問い合わせください。
## アーキテクチャ
Shannonは、ソースコード分析とライブエクスプロイトを組み合わせたマルチエージェントワークフローを使用します。```text
┌──────────────────────┐
│ Pre-Reconnaissance │
│ (source code scan) │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ Reconnaissance │
│ (attack surface │
│ mapping) │
└──────────┬───────────┘
│
▼
┌──────────┴───────────┐
│ │ │
▼ ▼ ▼
┌───────────┐ ┌───────────┐ ┌───────────┐
│ Vuln │ │ Vuln │ │ ... │
│(Injection)│ │ (XSS) │ │ │
└─────┬─────┘ └─────┬─────┘ └─────┬─────┘
│ │ │
▼ ▼ ▼
┌───────────┐ ┌───────────┐ ┌───────────┐
│ Exploit │ │ Exploit │ │ ... │
│(Injection)│ │ (XSS) │ │ │
└─────┬─────┘ └─────┬─────┘ └─────┬─────┘
│ │ │
└──────┬───────┴─────────────┘
│
▼
┌──────────────────────┐
│ Reporting │
└──────────────────────┘
高レベルでは:
- 事前偵察は、リポジトリからフレームワーク、エントリポイント、データフロー、および可能性のある攻撃対象領域を特定します。
- 偵察は、実行中のアプリケーションを調査し、ランタイムの動作をコードレベルのコンテキストと関連付けます。
- 脆弱性分析は、インジェクション、XSS、SSRF、認証、および認可のための専用エージェントを実行します。
- 悪用は、実際の概念実証攻撃を試み、証明できない仮説を破棄します。
- レポートは、検証済みの調査結果、証拠、および修復ガイダンスを最終的なMarkdownレポートにまとめます。
各スキャンは、分離されたワークスペースと呼び出しごとのオーケストレーションを備えた一時的なDockerコンテナで実行されます。
ドキュメント
運用上の詳細については、次のガイドを参照してください:
| ガイド | 用途 |
|---|---|
| ソースビルドとCLIコマンド | クローン、ビルド、一般的なコマンド、出力パス、およびローカル開発。 |
| 設定 | 認証済みテスト、ログインフロー、実施規則、およびレポートフィルター。 |
| AIプロバイダー | モデルの選択、サポートされているプロバイダー(Anthropic、OpenAI、xAI、AWS Bedrock、およびPiがサポートするその他のプロバイダー)、およびカスタムゲートウェイ。 |
| プラットフォームとネットワーキング | Windows/WSL2、Linux、macOS、Dockerネットワーキング、ローカルアプリ、およびカスタムホスト名。 |
| ワークスペースと再開 | ワークスペースの命名、中断されたスキャンの再開、およびワークスペースストレージ。 |
| 安全性と制限事項 | 許可された使用要件、本番環境以外のガイダンス、変更を伴う影響、コスト、およびモデルの注意事項。 |
| カバレッジとロードマップ | 現在の脆弱性カバレッジと計画中の作業。 |
| Keygraphプラットフォーム | 継続的でエージェントベースのペンテストプラットフォーム:コード分析、ブラックボックスおよびホワイトボックステスト、調査結果の管理、修復、検証、およびエンタープライズ展開。 |
安全性、範囲、および制限事項
Shannonはパッシブスキャナーではありません。その悪用エージェントは、ユーザーの作成、フォームの送信、アプリケーション状態の変更、外部リクエストのトリガーなど、ターゲットシステムに影響を与える可能性があります。使い捨てデータを使用して、サンドボックス化された、ステージング、またはローカル開発環境を使用してください。
Shannonを合法的かつ倫理的に使用する責任はあなたにあります。所有していない、または明示的なテスト許可がないシステム、リポジトリ、またはアプリケーションにShannonを向けないでください。
重要な制限事項:
- Shannon Open Sourceは、インジェクション、XSS、SSRF、認証の破損、認可の破損など、積極的に悪用可能な問題に焦点を当てています。脆弱な依存関係や安全でない設定を含む、より広範な静的解析カバレッジは、Keygraphプラットフォームを通じて提供されます。
- 調査結果には依然として人間によるレビューが必要です。LLMが生成したレポートには、裏付けが弱い、または不正確な詳細が含まれる可能性があります。
- Anthropic、OpenAI、xAI、およびAWS Bedrockは組み込みプロバイダーであり、カスタムベースURLを介して、Anthropic Messages APIまたはOpenAI Chat CompletionsまたはResponses APIエンドポイントが機能します。モデルの機能は異なり、Shannonの指示やツール使用の制約を確実に遵守しないモデルは、より弱い結果を生成します。
- 完全な実行には約1〜1.5時間かかる場合があり、モデルの価格設定とアプリケーションの複雑さに応じてLLM APIコストが発生する可能性があります。
- 信頼できない、または敵対的なコードベースをスキャンしないでください。ソースコードを読み取るAI搭載ツールは、プロンプトインジェクションにさらされる可能性があります。
新しい環境でShannonを実行する前に、完全な安全性と制限事項ガイドをお読みください。
ライセンス
Shannon Open Sourceは、GNU Affero General Public License v3.0の下でライセンスされています。
異なるライセンス条件、商用サポート、非公開での再配布、マネージドサービス利用、またはKeygraphプラットフォームを含むより広範な展開オプションを必要とする組織向けに、商用およびエンタープライズライセンスが利用可能です。
商用ライセンスについては、[email protected]までお問い合わせください。
Keygraphについて
Keygraphは、Shannonの背後にある会社です。また、AppSecライフサイクル全体を閉じ、Shannonの拡張ビルドをペンテストエンジンとして実行する商用エージェントベースのペンテスト製品であるKeygraphプラットフォームも構築しています。
コミュニティとサポート
コミュニティオフィスアワーは、バグ、展開、および設定に関する質問についての実践的なサポートに利用できます。
- 米国/EU:木曜日、午前10:00(PT)
- アジア:木曜日、午後2:00(IST)
- スロットを予約
Discordに参加して、質問したり、フィードバックを共有したり、他のShannonユーザーとつながったりしてください。
現時点では、Keygraphは外部からのコード貢献を受け付けていません。バグレポートと機能リクエストについては、Issueを歓迎します:
つながりを保つ:
よくある質問
Shannonをセルフホストできますか?
はい。Shannon Open Sourceは、一時的なDockerコンテナ内の独自のインフラストラクチャ上で完全に実行されます。ソースコードは読み取り専用でマウントされ、環境から離れることはありません。
ShannonはBYOK(Bring Your Own Key)をサポートしていますか?
はい、常にサポートしています。オープンソースと商用のすべての展開で、Shannonがペンテストの実行に使用するLLM認証情報を提供します。Keygraphがモデルトラフィックをプロキシすることはありません。
ShannonはSARIFを出力しますか?
はい。Shannonは、静的解析結果のOASIS標準形式であるSARIF 2.1.0を、構造化JSONとともに出力します。SARIFコンシューマーは、コードスキャンサービス、脆弱性管理プラットフォーム、セキュリティダッシュボード、CI/CDパイプラインなど、誰でもそれを読み取ります。これは、悪用モードのスキャンでデフォルトで書き込まれます。オプトアウトするには、設定ファイルでreport.sarifを"false"に設定します。
ShannonはどのAIプロバイダーをサポートしていますか?
Anthropic、OpenAI、xAI、およびAWS Bedrockが組み込まれており、プロバイダーIDによって直接設定されます。それ以外にも、Shannonは、カスタムベースURLを介して到達する、Anthropic Messages APIまたはOpenAI Chat CompletionsまたはResponses APIを実装する任意のエンドポイントで実行されます。ルールはAPI形式であり、ベンダーではありません。Shannonは、ペンテスト全体を通じて単一の統一モデル設定を使用します。
Shannonをローカルまたはセルフホストモデルで実行できますか?
技術的には可能ですが、推奨されません。Shannonは、OpenAI互換エンドポイントを公開するOllama、vLLM、またはLM Studioを通じて提供されるローカルモデルと、OpenRouterなどのルーターやLiteLLMなどのゲートウェイで動作します。カスタムベースURLを使用してShannonをエンドポイントに向けます。機能は異なり、Shannonの指示やツール使用の制約を確実に遵守しないモデルは、フロンティアモデルよりも弱いペンテストを生成するため、選択したモデルの動作を理解している場合にのみこのパスを選択してください。AIプロバイダーを参照してください。
Shannonは実際に脆弱性を悪用しますか、それとも単にスキャンするだけですか?
Shannonは実際のエクスプロイトを実行します。機能する概念実証を生成した場合にのみ調査結果を報告し、証明できない仮説は破棄します。これはスキャナーではなく、ペンテスターです。
Keygraphによって構築されました

