
shannon v3.1.0
Shannonは、WebアプリケーションとAPI向けの自律型ホワイトボックスAIペンテスターです。ソースコードを分析し、攻撃ベクトルを特定し、実際のエクスプロイトを実行して、本番環境に到達する前に脆弱性を証明します。
[!NOTE] Shannon 3.0 がリリースされました: より深いセキュリティコード分析、より徹底的に検証された検出結果、再構築された CLI、ネイティブな CI/CD、プロフェッショナルな PDF レポート、そして SARIF。
Shannon は、Web アプリケーションと API 向けの自律型 AI ペネトレーションテスターです。
ソースコードを分析し、攻撃経路を特定し、実際のエクスプロイトを実行して、脆弱性が本番環境に到達する前に証明します。エクスプロイトなしでは、レポートもなし。
このリポジトリは Shannon Open Source です: 完全なエージェントを、コマンドラインからローカルで実行できます。
Shannon を起動
```bash npx @keygraph/shannon@latest ``` 対話型ランチャーがセットアップと最初のペネトレーションテストをガイドします。[!TIP] AIエージェントとLLM: このリポジトリの簡潔なマップについてはllms.txtから始めるか、READMEとドキュメントを1つのファイルにまとめたllms-full.txtを使用してください。
目次
- 目次
- Shannonとは?
- Shannonの実際の動作
- クイックスタート
- 主な機能
- CI/CD統合
- エディション
- アーキテクチャ
- ドキュメント
- 安全性、スコープ、制限事項
- ライセンス
- 謝辞
- Keygraphについて
- コミュニティとサポート
- よくある質問
Shannonとは?
ShannonはKeygraphによって開発された自律型AIペネトレーションテスターです。ソースコード分析とライブエクスプロイトを組み合わせることで、Webアプリケーションとその基盤となるAPIのセキュリティテストを実行します。
ShannonはWebアプリケーションのソースコードを分析して潜在的な攻撃ベクトルを特定し、ブラウザ自動化とコマンドラインツールを使用して、実行中のアプリケーションとそのAPIに対して実際のエクスプロイトを実行します。動作するPoC(概念実証)がある脆弱性のみが最終レポートに含まれます。
Shannonはエージェントです。このリポジトリはShannon Open Sourceであり、自分で実行するスタンドアロンのペネトレーションテスターです。同じShannonは、Keygraphの商用ペネトレーションテスト製品であるKeygraphプラットフォームも支えています。両者の比較についてはエディションを参照してください。
Shannonが存在する理由
Claude CodeやCursorのようなツールのおかげで、あなたのチームはコードをノンストップで出荷しています。しかしペネトレーションテストは?それは年に一度しか行われません。これにより巨大なセキュリティギャップが生じます。残りの364日間、あなたは気づかないうちに脆弱性を本番環境に出荷している可能性があります。
Shannonは、すべてのビルドやリリースに対して実行できるオンデマンドの自動ペネトレーションテストを提供することで、このギャップを埋めます。
なぜ「Shannon」なのか?
情報理論の父であるClaude Shannonにちなんで名付けられました。本質的に、ペネトレーションテストは情報の問題です。すべてのプローブはシステムの状態に関する不確実性を減らします。優れたツールは、すべてのリクエストから得られるシグナルを最大化し、それらの知識のビットをエクスプロイトパスに変換します。
また、あなたが「Hey Claude, run Shannon」と言って、バイブコーディングしたアプリのすべてのセキュリティ欠陥を見つけられるようにしたかったのです。
人間のペネトレーションテスターの代替ではない
Shannonは、専門のペネトレーションテスターやレッドチーマーと協力して機能するように作られており、彼らを置き換えるものではありません。優れたペネトレーションテスターはビジネスを理解し、誰も予想しなかった方法で攻撃を連鎖させ、現在のモデルには匹敵しない長年の判断力をもたらします。
Shannonは別の問題を解決します。セキュリティチームがカバーする時間よりもはるかに多くのソフトウェアがテストを必要としています。重要なシステムは定期的な専門家による評価を受けますが、内部アプリ、API、動きの速いサービスのロングテールはほとんどテストされません。
Shannonはペネトレーションテストをソフトウェア開発ライフサイクル(SDLC)の左側にシフトします。実際に出荷されるケイデンスでステージング環境とリリースに対してエクスプロイトに裏付けられたテストを実行し、組織を知る人を必要とするリスクのために専門家の人間の時間を節約するために使用してください。
Shannonの実際の動作

これらのレポートは、DoyensecによるAikidoとXBOWの比較に含まれるアプリケーションの1つであるPhotoview 2.4.0に対するShannon Open Sourceスキャンのものです。私たちは同じアプリケーションバージョンに対してShannonを実行し、その結果を個別に評価しました。方法論、制限事項、コスト、結果については、Doyensecの調査と私たちのShannonフォローアップ比較をお読みください。
クイックスタート
前提条件
- Docker: ワーカーコンテナに必要です。
- Node.js 18+: 推奨される
npxワークフローに必要です。 - AIプロバイダーの認証情報: ShannonはAnthropic、OpenAI、xAI、AWS Bedrock、およびハーネスカタログ内のその他のプロバイダーで動作します。それぞれカスタムベースURLを通じてプロキシまたはLLMゲートウェイを指定できます。あなた自身のキーを持ち込み、Keygraphがモデルトラフィックをプロキシすることはありません。Shannonはプロバイダーに依存しません。推奨モデルIDについてはAIプロバイダーを参照してください。
- プロバイダーとのサイバーセーフガードのクリア: AnthropicとOpenAIはサイバーセキュリティワークロードにリアルタイムのセーフガードを適用しており、スキャン実行中に中断される可能性があります。最初の実行前に、正当なセキュリティテスター向けのガイダンスを完了してください - AIプロバイダーを参照してください。
Shannonの実行
[!WARNING] Shannonは積極的にエクスプロイトを実行します。所有しているか、テストする明示的な書面による許可があるアプリケーションと環境に対してのみ実行してください。本番システムに対してShannonを実行しないでください。```bash
Configure credentials with the interactive wizard.
npx @keygraph/shannon@latest setup
Run a pentest against a source-available target.
npx @keygraph/shannon@latest 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)に従ってください。
> - **xAI (Grok):** Shannonの最新バージョンはxAIサブスクリプションをサポートしています。開始するには[xAIサブスクリプションセットアップガイド](https://github.com/keygraphhq/shannon/blob/main/docs/ai-providers.md#xai-grok-subscription)に従ってください。
> - **Claude Code:** Shannonの最新バージョンはClaude Codeサブスクリプションをサポートしていません。Claude Agent SDKでビルドされた最終リリースであるバージョン`1.9.0`を使用するには、[Claude Codeサブスクリプションセットアップガイド](https://github.com/keygraphhq/shannon/blob/main/docs/ai-providers.md#claude-code-subscription)に従ってください。
## 主な機能
- **エクスプロイトなし、レポートなし**: 再現可能な概念実証で確認された脆弱性のみを報告し、推測的なスキャナーノイズを削減します。
- **高度なコード分析**: 信頼できる攻撃パスをライブペネトレーションテストエージェントに送信する前に、アーキテクチャ、信頼境界、インターフェース、データフロー、および重要な資産をマッピングします。
- **自律的な実行**: 偵察、分析、エクスプロイト、およびレポート作成を単一のコマンドから実行します。
- **ライブターミナル体験**: スキャンのセットアップを簡素化し、オーケストレーションログを公開せずにエージェントの進捗と結果を表示します。
- **認証済みテスト**: 設定を通じて認証情報、ログインフロー、TOTP、メール認証、フォーカスエリア、およびエンゲージメントルールをサポートします。
- **OWASPに焦点を当てたカバレッジ**: 悪用可能なインジェクション、XSS、SSRF、認証の破綻、および認可の破綻をテストします。
- **再開可能なワークスペース**: 完了した作業を繰り返すことなく、中断されたスキャンを再開します。
- **ネイティブCI/CD統合**: 公式のGitHub ActionまたはGitLab CI/CDコンポーネントを通じて実行し、アーティファクトを保持し、検出結果を公開し、実証された脆弱性に基づいてリリースをゲートします。
- **マルチフォーマットレポート**: エビデンスに富むPDFおよびMarkdownレポートに加えて、JSONおよびSARIF 2.1.0を生成します。SARIFはエクスプロイトモードスキャンでデフォルトで有効になっています。
- **プロバイダー非依存およびBYOK**: Anthropic、OpenAI、xAI、AWS Bedrock、互換APIおよびLLMゲートウェイ、ならびにOllama、vLLM、またはLM Studioを通じて提供されるローカルモデルをサポートします。
- **設計によるプライバシー**: お客様のインフラストラクチャで実行され、結果をローカルに保存し、モデルリクエストを選択したエンドポイントに直接送信します。ローカルエンドポイントはデータをお客様の環境内に保持します。
## CI/CD統合
Shannonは、[GitHub Actions](https://github.com/KeygraphHQ/shannon-action)および[GitLab CI/CD](https://gitlab.com/KeygraphHQ/shannon-ci)の公式統合を通じて、デプロイされたステージング環境および開発環境に対して継続的に実行できます。
両方の統合は:
- 実行中のターゲットを攻撃しながら、チェックアウトされたソースリポジトリを分析します;
- PDF、Markdown、およびSARIFレポートをパイプラインアーティファクトとして保持します;
- 不完全な実行を含め、デバッグ用にスキャンおよびエージェントログを保持します;
- プルリクエスト、リリース、およびスケジュールされたペネトレーションテストをサポートします;
- 不完全な評価と、検出結果のない完了したスキャンを区別します;そして
- オプションで、Shannonが設定された重大度しきい値以上の脆弱性をエクスプロイトした場合にパイプラインを失敗させます。
コード分析の仮説はパイプラインを失敗させません。重大度ゲートは`status: exploited`の検出結果のみをカウントします。
### GitHub Actions```yaml
name: Shannon Pentest
on:
workflow_dispatch:
permissions:
security-events: write
jobs:
pentest:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Shannon
uses: KeygraphHQ/shannon-action@v1
with:
url: https://staging.example.com
api-key: ${{ secrets.SHANNON_AI_API_KEY }}
fail-on-severity: high
upload-sarif: true
Action は repo をデフォルトでチェックアウトされた GitHub ワークスペースに設定します。セキュリティ評価レポートと SARIF を含む 1 つのアーティファクトをアップロードし、さらにスキャンログとエージェントログを含む別の実行アーティファクトをアップロードします。upload-sarif を有効にすると、サポートされている検出事項が GitHub コードスキャンに公開されます。
要件:
- プライベートリポジトリ;
- Docker および Docker Compose v2 を備えたランナー;
- 実行中のステージングまたは開発ターゲットへのアクセス; および
- GitHub Actions シークレットとして保存されたモデルプロバイダーの認証情報。
Shannon GitHub Action ドキュメント および GitHub Marketplace リスティング を参照してください。
エディション
Shannon Open Source は完全な自律型ペンテスターであり、ローカルまたは CI/CD で集中的なセキュリティテストを実行する個人開発者や小規模チームに特に適しています。
Keygraph Enterprise Platform は、多くのチーム、リポジトリ、環境にわたって継続的なエージェント型ペンテスティング/AppSec のための共有プラットフォームを必要とする組織向けです。より深い分析、脆弱性管理、修復、検証、ガバナンス、レポート作成を一元化し、チームがそれらのワークフローを自ら組み立てて維持する必要がないようにします。
Keygraph Enterprise Platform について学び、エディションを比較する →
アーキテクチャ
Shannon は多段階のセキュリティコード分析とライブ偵察およびエクスプロイトを組み合わせています:```mermaid flowchart TD S["Source code"] --> EXISTING["Recon + vulnerability analysis"] S --> SAST["Agentic security code analysis"]
EXISTING -- "Pentest candidates" --> REC["Finding reconciliation<br/>(merge + deduplicate)"]
SAST -- "SAST candidates" --> REC
REC -- "Reconciled exploitation queue" --> EXP["Exploitation agents"]
APP["Running application"] --> EXP
EXP -- "Exploit demonstrated" --> REPORT["Reporting<br/>PDF · Markdown · SARIF"]
EXP -- "No exploit demonstrated" --> DROP["Discard"]
REPORT --> CICD["CI/CD gate"]
段階ごとの流れ:
1. **偵察と脆弱性分析**は、実行中のアプリケーションを調査し、実行時の挙動をソースコードに結び付け、Injection、XSS、SSRF、認証、認可にまたがる専門エージェントを実行します。
2. **エージェント型セキュリティコード分析**は、アプリケーションのアーキテクチャ、信頼境界、公開インターフェース、依存関係、データフロー、高リスク資産をマッピングし、それらに対して的を絞った調査を開始します。
3. **検出結果の突き合わせ**は、両方の候補ストリームを統合し、重複を排除し、残ったものを悪用キューにグループ化します。
4. **悪用エージェント**は、実行中のアプリケーションに対して実際の概念実証攻撃を試みます。
5. **検証**は、Shannonが実証できないすべての候補を除外します。
6. **レポート**は、証拠を添付したPDFおよびMarkdownレポートを生成し、さらに下流システム向けの構造化JSONとSARIFも出力します。
ライブで検証された脆弱性のみがShannonのペネトレーションテストの検出結果となるか、CI/CDの重大度ゲートにカウントされます。
各スキャンは、分離されたワークスペースと呼び出しごとのオーケストレーションを備えた一時的なDockerコンテナ内で実行されます。
## ドキュメント
運用の詳細については、以下のガイドを参照してください:
| ガイド | 用途 |
| --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [ソースビルドとCLIコマンド](https://github.com/keygraphhq/shannon/blob/main/docs/development.md) | クローン、ビルド、一般的なコマンド、出力パス、ローカル開発。 |
| [設定](https://github.com/keygraphhq/shannon/blob/main/docs/configuration.md) | 認証済みテスト、ログインフロー、エンゲージメントルール、レポートフィルター。 |
| [AIプロバイダー](https://github.com/keygraphhq/shannon/blob/main/docs/ai-providers.md) | モデルの選択、サポートされるプロバイダー(Anthropic、OpenAI、xAI、AWS Bedrock、およびその他のPi対応プロバイダー)、カスタムLLMゲートウェイ。 |
| [プラットフォームとネットワーキング](https://github.com/keygraphhq/shannon/blob/main/docs/platforms.md) | Windows/WSL2、Linux、macOS、Dockerネットワーキング、ローカルアプリ、カスタムホスト名。 |
| [ワークスペースと再開](https://github.com/keygraphhq/shannon/blob/main/docs/workspaces.md) | ワークスペースの命名、中断されたスキャンの再開、ワークスペースストレージ。 |
| [安全性と制限事項](https://github.com/keygraphhq/shannon/blob/main/docs/safety.md) | 認可された使用の要件、非本番環境でのガイダンス、変更を伴う影響、コスト、モデルの注意事項。 |
| [カバレッジとロードマップ](https://github.com/keygraphhq/shannon/blob/main/docs/coverage-roadmap.md) | 現在の脆弱性カバレッジと計画中の作業。 |
| [Keygraph Enterprise Platform](https://github.com/keygraphhq/shannon/blob/main/docs/keygraph-platform.md) | 網羅的なエージェント型SAST、継続的ペネトレーションテスト、全ライフサイクルの検出結果管理、修復、標的型検証、エンタープライズガバナンス、オンプレミス展開。 |
## 安全性、スコープ、制限事項
Shannonはパッシブスキャナーではありません。その悪用エージェントは、ユーザーの作成、フォームの送信、アプリケーション状態の変更、アウトバウンドリクエストのトリガーなど、ターゲットシステムに影響を与える可能性があります。使い捨てデータを使用したサンドボックス化されたステージング環境またはローカル開発環境を使用してください。
Shannonを合法的かつ倫理的に使用する責任はあなたにあります。所有していない、または明示的なテストの許可を持っていないシステム、リポジトリ、アプリケーションにShannonを向けないでください。
重要な制限事項:
- Shannon Open Sourceは、日常的な開発とCI/CDにおける高速でコードに基づいたペネトレーションテストに最適化されています。網羅的なエージェント型SAST、より広範なスキャナーカバレッジ、集中型ガバナンス、全ライフサイクルの脆弱性管理は、Keygraph Enterprise Platformを通じて提供されます。
- 検出結果には依然として人間によるレビューが必要です。LLMが生成したレポートには、根拠が弱い、または不正確な詳細が含まれる可能性があります。
- Anthropic、OpenAI、xAI、AWS Bedrockは組み込みプロバイダーであり、ハーネスカタログ内のその他のプロバイダーも同様に機能します — それぞれがプロキシまたはLLMゲートウェイを指すカスタムベースURLを通じて到達可能です。モデルの能力はさまざまであり、Shannonの指示やツール使用の制約に確実に従わないモデルは、より弱い結果を生み出します。
- 完全な実行には約1〜1.5時間かかり、モデルの価格設定とアプリケーションの複雑さに応じてLLM APIコストが発生する可能性があります。
- 信頼できない、または敵対的なコードベースをスキャンしないでください。ソースコードを読み取るAI搭載ツールは、プロンプトインジェクションにさらされる可能性があります。
新しい環境でShannonを実行する前に、完全な[安全性と制限事項](https://github.com/keygraphhq/shannon/blob/main/docs/safety.md)ガイドをお読みください。
## ライセンス
Shannon Open Sourceは、[GNU Affero General Public License v3.0](https://github.com/keygraphhq/shannon/blob/main/LICENSE)の下でライセンスされています。
異なるライセンス条件、商用サポート、プライベートな再配布、マネージドサービスでの使用、またはKeygraphプラットフォームを含むより広範な展開オプションを必要とする組織向けに、商用およびエンタープライズライセンスを利用できます。
商用ライセンスについては、[[email protected]](mailto:[email protected])までお問い合わせください。
## 謝辞
[Pi](https://github.com/earendil-works/pi)、
[Playwright CLI](https://github.com/microsoft/playwright-cli)、
および[Mantis](https://github.com/google/mantis)に感謝します。
ライセンスと帰属の詳細については、[THIRD_PARTY_NOTICES.md](https://github.com/keygraphhq/shannon/blob/main/THIRD_PARTY_NOTICES.md)を参照してください。
## Keygraphについて
**Keygraph**はShannonを開発した企業です。また、AppSecライフサイクル全体を完結させ、ペネトレーションテストエンジンとしてShannonの拡張ビルドを実行する商用エージェント型ペネトレーションテスト製品である**Keygraph platform**も構築しています。
## コミュニティとサポート
**コミュニティオフィスアワー**は、バグ、デプロイ、設定に関する質問について実践的なサポートを提供しています。
- 米国/欧州:木曜日、午前10:00 PT
- アジア:木曜日、午後2:00 IST
- [枠を予約する](https://cal.com/george-flores-keygraph/shannon-community-office-hours)
[Discordに参加](https://discord.gg/cmctpMBXwE)して、質問したり、フィードバックを共有したり、他のShannonユーザーとつながりましょう。
現時点では、Keygraphは外部からのコード貢献を受け付けていません。バグ報告や機能リクエストのためのIssueは歓迎します:
- [バグを報告する](https://github.com/KeygraphHQ/shannon/issues)
- [機能を提案する](https://github.com/KeygraphHQ/shannon/discussions)
つながりを保ちましょう:
- [Keygraphウェブサイト](https://keygraph.io)
- [Twitter/X: @KeygraphHQ](https://twitter.com/KeygraphHQ)
- [LinkedIn: Keygraph](https://linkedin.com/company/keygraph)
## よくある質問
### Shannonをセルフホストできますか?
はい。Shannon Open Sourceは、一時的なワーカーコンテナ内でお客様のインフラストラクチャ内で実行されます。リポジトリを読み取り専用でマウントし、結果をローカルワークスペースに書き込みます。
Keygraphがお客様のソースコードを受け取ることはなく、モデルトラフィックをプロキシすることもありません。モデルリクエストは、お客様が設定したプロバイダーまたはエンドポイントに直接送信され、ソースとアプリケーションのコンテキストを伴います。Shannonをローカルでホストされたエンドポイントに向ければ、そのトラフィックもお客様の環境内にとどまります。
### ShannonはBYOK(Bring Your Own Key)をサポートしていますか?
はい、常に。Shannonがペネトレーションテストの実行に使用するLLM認証情報は、オープンソースと商用のすべての展開において、お客様が提供します。Keygraphがお客様のモデルトラフィックをプロキシすることはありません。
### ShannonはSARIFを出力しますか?
はい。Shannonは、構造化JSONとともに、静的解析結果のOASIS標準フォーマットであるSARIF 2.1.0を出力します。あらゆるSARIFコンシューマーがそれを読み取ります:コードスキャンサービス、脆弱性管理プラットフォーム、セキュリティダッシュボード、CI/CDパイプライン。エクスプロイトモードのスキャンではデフォルトで書き込まれます。オプトアウトするには、設定ファイルで`report.sarif`を`"false"`に設定してください。
### ShannonはどのAIプロバイダーをサポートしていますか?
Anthropic、OpenAI、xAI、AWS Bedrockは組み込みで、プロバイダーIDによって直接設定されます。それ以外にも、ShannonはPiハーネスカタログ内の任意のプロバイダーで動作し、同じ`<provider>:<model-id>`の形式で指定します。任意のプロバイダーは、カスタムベースURLを通じてプロキシまたはLLMゲートウェイを指すことができ、これはエンドポイントのみを上書きし、そのプロバイダーのAPI方言を維持します。Shannonはペネトレーションテスト全体を通じて単一の統合モデル設定を使用します。
### ローカルまたはセルフホストのモデルでShannonを実行できますか?
Shannonは、OpenAI互換エンドポイントを公開するOllama、vLLM、またはLM Studioを通じて提供されるローカルモデル、およびOpenRouterなどのルーターやLiteLLMなどのLLMゲートウェイで動作します。カスタムベースURLでエンドポイントを指定してShannonを向けてください。能力はさまざまであり、Shannonの指示やツール使用の制約に確実に従わないモデルは、フロンティアモデルよりも弱いペネトレーションテストを生み出すため、選択したモデルの挙動を理解している場合にのみこの方法を取ってください。[AIプロバイダー](https://github.com/keygraphhq/shannon/blob/main/docs/ai-providers.md#custom-base-url)を参照してください。
### Shannonは実際に脆弱性を悪用しますか、それともスキャンするだけですか?
Shannonは実際のエクスプロイトを実行します。動作する概念実証を生成した場合にのみ検出結果を報告し、証明できない仮説は破棄します。これはペネトレーターであり、パッシブスキャナーではありません。
**[Keygraph](https://keygraph.io)によって構築**

