
shannon v2.1.0
Shannon は、WebアプリケーションおよびAPI向けの自律型ホワイトボックスAIペネトレーションテスターです。ソースコードを分析し、攻撃ベクトルを特定し、本番環境に到達する前に脆弱性を証明するために実際のエクスプロイトを実行します。
[!NOTE] Shannon 2.0 が正式に登場しました
Shannon - Keygraph による AI ペンテスター
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 プロバイダーの資格情報: Anthropic、OpenAI、xAI、AWS Bedrock、またはその他のプロバイダー。Claude モデルが推奨されます。プロバイダーごとの推奨モデル ID、ゲートウェイ、カスタムベース URL については、AI プロバイダー を参照してください。
- プロバイダーとのサイバーセーフガードの確認: Anthropic と OpenAI はサイバーセキュリティ関連のワークロードにリアルタイムのセーフガードを適用するため、スキャンの実行中に中断される可能性があります。初回実行前に、正規のセキュリティテスター向けのガイダンスを完了してください - AI プロバイダー を参照してください。
Shannon を実行する
[!WARNING] Shannon はエクスプロイトを能動的に実行します。所有しているアプリケーションと環境、またはテストに関する明示的な書面による許可を得た環境に対してのみ実行してください。本番システムに対して Shannon を実行しないでください。
# 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 からワーカーイメージを取得し、必要なローカルインフラストラクチャを起動して、ターゲットリポジトリを読み取り専用で一時的なワーカーコンテナ内にマウントし、結果をローカルワークスペースに書き込みます。
ソースからのビルド、認証付きスキャン、プロバイダー固有のセットアップ、プラットフォームに関する注意事項については、ドキュメント を参照してください。
[!TIP] API クレジットではなく Claude Code のサブスクリプションで実行したいですか?
shannon-v1ブランチは Claude Agent SDK で構築された最後のリリースであり、Claude Code の OAuth トークンを受け入れます。claude setup-tokenでトークンを生成し、npx @keygraph/[email protected] setupを実行して OAuth Token を選択してください。ペンテストは既存のサブスクリプションに加えて追加費用なしで実行できます。
主な機能
- エクスプロイトによる証明レポート: Shannon は、推測に基づく警告ではなく、再現可能な概念実証 (PoC) 手順を含む検証済みの脆弱性を報告します。
- ホワイトボックス攻撃計画: Shannon はソースコード分析を使用して動的テストを導き、現実的な攻撃経路に焦点を当てます。
- 自律実行: Shannon は単一のコマンドで、偵察、脆弱性分析、エクスプロイト、レポート生成を開始します。
- 認証付きテスト: 設定ファイルで、ログインフロー、テスト用資格情報、TOTP、メールベースのログインフロー、重点分野、交戦規則を記述できます。
- OWASP 重視のカバレッジ: Shannon は、悪用可能な Injection、XSS、SSRF、認証の欠陥 (Broken Authentication)、認可の欠陥 (Broken Authorization) を対象とします。
- 再開可能なワークスペース: Shannon は、完了済みのエージェントを再実行することなく、中断された実行を再開できます。
エディション
Shannon には 2 つの提供形態があります: 自分で実行するペンテスターである Shannon Open Source と、Shannon を継続的に実行し、その周囲で AppSec ライフサイクル全体を完結させる商用ペンテスティング製品である Keygraph プラットフォーム です。
Shannon Open Source(このリポジトリ)はスタンドアロンのペンテスターです。所有している、またはテストを許可されている Web アプリケーションと API に対して、ホワイトボックス方式でエクスプロイトによる証明を行う CLI エージェントです。ソースコードを読み取り、攻撃を計画し、実際のエクスプロイトを実行し、証明できたものだけを報告します。オンデマンドで実行でき、その領域では完成された製品です。ターゲットを指定すれば、ペンテストを実行してレポートを出力します。
Keygraph プラットフォーム は、Shannon を搭載したエンタープライズ対応の継続的ペンテスティング製品です。Keygraph プラットフォームでは、Shannon の拡張ビルドが、Keygraph の完全なコード分析スタックから供給される、堅牢化されたオーケストレーション環境で継続的に実行されます。プラットフォームはそのエンジンを中心に、分析から検証済みの修正まで、脆弱性ライフサイクル全体を完結させます:
- 分析 (Analyze): Code Property Graph SAST、到達可能性を考慮した SCA、シークレット、IaC、コンテナスキャン。それ自体が第一級の検出機能であり、Shannon の攻撃を研ぎ澄ますコンテキストでもあります。
- 証明 (Prove): 自律型のブラックボックスおよびソースコード参照型ホワイトボックスのペンテストにより、候補となる検出結果は、推測に基づくアラートではなく、証明され悪用された脆弱性へと変わります。
- 管理 (Manage): リポジトリごと、脆弱性ごとに正規のレコードを 1 つ保持し、すべてのソース間で重複排除し、所有者、ステータス、SLA 追跡、ダッシュボード、双方向 Jira 同期を備えています。
- 修正と検証 (Remediate and verify): パッチは自動的に作成され、納品前にパッチ適用済みのコードに対して再テストされます。自動適用されるのではなく、既存のレビューワークフローに組み込まれます。
- デプロイ (Deploy): セルフホスト環境とエアギャップ環境、厳格な Bring Your Own Key (BYOK) 方式のモデルアクセス、顧客管理の 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 ウェブサイト をご覧になるか、Keygraph プラットフォームの技術概要 をお読みいただくか、無料トライアルを開始するか デモ を予約するか、[email protected] までお問い合わせください。
アーキテクチャ
Shannon は、ソースコード分析とライブでのエクスプロイト実行を組み合わせたマルチエージェントワークフローを使用します:
┌──────────────────────┐
│ Pre-Reconnaissance │
│ (source code scan) │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ Reconnaissance │
│ (attack surface │
│ mapping) │
└──────────┬───────────┘
│
▼
┌──────────┴───────────┐
│ │ │
▼ ▼ ▼
┌───────────┐ ┌───────────┐ ┌───────────┐
│ Vuln │ │ Vuln │ │ ... │
│(Injection)│ │ (XSS) │ │ │
└─────┬─────┘ └─────┬─────┘ └─────┬─────┘
│ │ │
▼ ▼ ▼
┌───────────┐ ┌───────────┐ ┌───────────┐
│ Exploit │ │ Exploit │ │ ... │
│(Injection)│ │ (XSS) │ │ │
└─────┬─────┘ └─────┬─────┘ └─────┬─────┘
│ │ │
└──────┬───────┴─────────────┘
│
▼
┌──────────────────────┐
│ Reporting │
└──────────────────────┘
概要:
- 事前偵察 (Pre-reconnaissance): リポジトリからフレームワーク、エントリーポイント、データフロー、攻撃対象領域の候補を特定します。
- 偵察 (Reconnaissance): 稼働中のアプリケーションを調査し、ランタイムの動作をコードレベルのコンテキストと関連付けます。
- 脆弱性分析 (Vulnerability analysis): Injection、XSS、SSRF、認証、認可に特化したエージェントを実行します。
- エクスプロイト (Exploitation): 実際の概念実証 (PoC) 攻撃を試み、証明できない仮説は破棄します。
- レポート作成 (Reporting): 検証済みの検出結果、証拠、修正ガイダンスを最終的な Markdown レポートにまとめます。
各スキャンは、分離されたワークスペースと呼び出しごとのオーケストレーションを備えた一時的な Docker コンテナ内で実行されます。
ドキュメント
運用上の詳細については、以下のガイドを参照してください:
| ガイド | 用途 |
|---|---|
| ソースからのビルドと CLI コマンド | クローン、ビルド、一般的なコマンド、出力パス、ローカル開発。 |
| 設定 | 認証付きテスト、ログインフロー、交戦規則、レポートフィルター。 |
| AI プロバイダー | モデルの選択、サポートされているプロバイダー (Anthropic、OpenAI、xAI、AWS Bedrock、その他 Pi がサポートするプロバイダー)、カスタムゲートウェイ。 |
| プラットフォームとネットワーク | Windows/WSL2、Linux、macOS、Docker ネットワーク、ローカルアプリ、カスタムホスト名。 |
| ワークスペースと再開 | ワークスペースの命名、中断されたスキャンの再開、ワークスペースストレージ。 |
| 安全性と制限 | 許可された使用の要件、本番環境以外での使用に関するガイダンス、状態を変更する影響、コスト、モデルに関する注意事項。 |
| カバレッジとロードマップ | 現在の脆弱性カバレッジと今後の計画。 |
| Keygraph プラットフォーム | 継続的なエージェント型ペンテスティングプラットフォーム: コード分析、ブラックボックスおよびホワイトボックステスト、検出結果の管理、修正、検証、エンタープライズデプロイ。 |
安全性、適用範囲、制限
Shannon は受動的なスキャナーではありません。そのエクスプロイトエージェントは、ユーザーの作成、フォームの送信、アプリケーション状態の変更、外部へのリクエストのトリガーなど、ターゲットシステムに影響を与える可能性があります。使い捨てデータを使用したサンドボックス環境、ステージング環境、またはローカル開発環境を使用してください。
Shannon を合法的かつ倫理的に使用する責任はあなたにあります。所有していない、または明示的なテスト許可を得ていないシステム、リポジトリ、アプリケーションに Shannon を向けないでください。
重要な制限:
- Shannon Open Source は、Injection、XSS、SSRF、認証の欠陥、認可の欠陥など、実際に悪用可能な問題に焦点を当てています。脆弱な依存関係や安全でない設定を含む、より広範な静的解析カバレッジは、Keygraph プラットフォームを通じて提供されます。
- 検出結果は依然として人間によるレビューが必要です。LLM が生成したレポートには、裏付けが弱い、または誤った詳細が含まれる可能性があります。
- Shannon は Claude モデルでの公式サポートが提供されています。小型モデル、代替モデル、またはプロキシ経由の非 Claude モデルでは、動作が不完全または不安定になる可能性があります。
- フル実行には約 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 プラットフォーム も開発しています。
コミュニティとサポート
コミュニティオフィスアワー を利用して、バグ、デプロイ、設定に関する質問について実践的な支援を受けることができます。
- US/EU: 木曜日 10:00 AM PT
- アジア: 木曜日 2:00 PM IST
- スロットを予約する
質問、フィードバックの共有、他の Shannon ユーザーとの交流には、Discord に参加 してください。
現時点では、Keygraph は外部からのコード貢献を受け付けていません。バグ報告と機能リクエストの Issue は歓迎します:
最新情報を入手する:
Keygraph によって構築