AIが自動でハッキングテストを実行!ソースコード解析×実攻撃で脆弱性を証明する完全自律型ペンテスター — shannon

KeygraphHQ/shannonTypeScript37.0k

Shannonは、Webアプリケーションやその裏側で動くAPI(ソフト同士をつなぐ仕組み)のセキュリティを自動でテストしてくれるAIツールです。ソースコード(プログラムの設計図)を読み込んで攻撃の糸口を見つけ出し、実際にハッキングを試みて「本当に危険かどうか」を証明してくれます。いわば、セキュリティ専門家が手動でやっていた侵入テスト(ペネトレーションテスト)を、AIが自動で一気にやってくれる仕組みです。年に1回しかできなかったセキュリティ診断を、コードを更新するたびに何度でも実行できるため、リリース前の安全確認が格段に楽になります。開発チームや企業のセキュリティ担当者にとって、見逃していた脆弱性を実際の攻撃で証明してくれる心強い味方となるツールです。

🔥 なぜ話題?

AIコーディングツール(Claude CodeやCursorなど)の普及でコードの量産スピードが劇的に上がった一方、セキュリティ診断が追いつかないという新たな課題が生まれており、Shannonはそのギャップを埋めるツールとして注目されています。特に、脆弱性を「報告するだけ」ではなく「実際に攻撃して証明する」というアプローチが、誤検知に悩む開発者から高い評価を受けています。

💡 こう使える!

例えば、自社で開発しているECサイトのステージング環境(テスト用の環境)に対してShannonを実行すると、ログイン画面にSQL注入攻撃(データベースを不正に操作する手法)を試み、ユーザーの個人情報が漏洩できてしまうことを実際のコマンド付きで報告してくれます。開発者はそのレポートを見て、どのコードのどの行を修正すればいいかがすぐにわかります。

ユースケース: 開発中のWebアプリケーションやAPIに対して、リリース前に自動でハッキングテストを実行し、実際に悪用できる脆弱性だけをレポートとして受け取るために使います。

  • AIが完全自動でペネトレーションテストを実行し、実際に攻撃が成功した脆弱性だけをレポートするため誤検知がほぼゼロ
  • OWASP Juice Shopで20以上の脆弱性を発見、ベンチマークで96.15%(104中100件)の攻撃成功率を達成
  • npxコマンド1つで起動でき、ワークスペース機能で中断した診断の再開も可能
GitHubで見る →

Shannon Lite is an autonomous, white-box AI pentester for web applications and APIs. It analyzes your source code, identifies attack vectors, and executes real exploits to prove vulnerabilities before they reach production.

技術情報

言語

TypeScript

ライセンス

AGPL-3.0

最終更新

2026-04-06

スター数

36,991

フォーク数

3,914

Issue数

27

トピック

penetration-testingpentestingsecurity-auditsecurity-automationsecurity-tools

技術詳細

アーキテクチャ・仕組み

ShannonはAnthropicのClaude Agent SDKを推論エンジンとして使用するマルチエージェントアーキテクチャで構成されています。各スキャンはエフェメラル(使い捨て)のDockerコンテナ内で実行され、並行スキャンが可能です。

5段階のパイプライン

  1. Pre-Reconnaissance(事前偵察): nmap、subfinder、whatwebで対象のインフラを調査し、同時にソースコードからフレームワークやエントリーポイントを特定
  2. Reconnaissance(偵察): ブラウザ自動操作で実際のアプリケーションを探索し、攻撃対象マップを作成
  3. Vulnerability Analysis(脆弱性分析): 5つのカテゴリ(Injection、XSS、Auth、Authz、SSRF)の専門エージェントが並列で脆弱性を探索
  4. Exploitation(攻撃実行): 発見した脆弱性に対して実際の攻撃を実行。「攻撃成功しなければ報告しない」 ポリシーを厳守
  5. Reporting(レポート生成): 再現可能なPoC(概念実証)付きの最終レポートを生成

対応環境・プラットフォーム

  • macOS: Docker Desktopがあればそのまま動作
  • Linux: ネイティブDocker対応(sudoが必要な場合あり)
  • Windows: Git Bash(ネイティブ)またはWSL2(推奨)で動作
  • Node.js: 18以上が必要
  • Docker: 必須(npxモードでも約1GBのワーカーイメージを使用)

AIプロバイダー対応

プロバイダー状態
Anthropic API(推奨)正式サポート
Claude Code OAuthトークン正式サポート
AWS Bedrock正式サポート
Google Vertex AI正式サポート
カスタムBase URL(プロキシ等)正式サポート
OpenAI / Gemini(Routerモード)実験的・非サポート

3つのモデル階層を使用:small(claude-haiku-4-5)=要約、medium(claude-sonnet-4-6)=セキュリティ分析、large(claude-opus-4-6)=深い推論

パフォーマンス・ベンチマーク

  • XBOWベンチマーク: 96.15%(104件中100件の攻撃成功)
  • OWASP Juice Shop: 20以上の脆弱性を発見(SQLインジェクション、認証バイパス、SSRF等)
  • 実行時間: 1回のフルテストで約1〜1.5時間
  • コスト: Claude 4.5 Sonnet使用時で約50ドル(アプリの複雑さにより変動)

対象とする脆弱性カテゴリ

  • Broken Authentication & Authorization(認証・認可の不備)
  • Injection(SQLインジェクション等)
  • Cross-Site Scripting(XSS)
  • Server-Side Request Forgery(SSRF)

主要な機能

  • 2FA/TOTP自動処理: 二要素認証(SSO含む)のログインを自動で処理
  • ワークスペース機能: 中断した診断をgitコミットベースのチェックポイントから再開可能
  • 設定ファイル(YAML): 認証情報、テスト対象パスの指定、除外パスの設定が可能
  • 並列処理: 脆弱性分析と攻撃実行を5カテゴリ同時並行で処理
  • Temporal Web UI: http://localhost:8233 でリアルタイム進捗監視が可能

制約・注意点

  • ホワイトボックス専用: ソースコードへのアクセスが必須
  • 本番環境での使用は厳禁: データ作成・変更・削除など破壊的な操作を伴う
  • LLMの限界: レポートにハルシネーション(AI の誤った出力)が含まれる可能性があるため、人間の検証が必要
  • プロンプトインジェクションリスク: 信頼できないコードベースのスキャンは非推奨

Lite版 vs Pro版の違い

機能Lite(AGPL-3.0)Pro(商用)
静的解析コードレビュープロンプトCPGベースのデータフロー分析 + LLM推論
SCA(ソフトウェア構成分析)なし到達可能性分析付き
ビジネスロジックテストなし自動不変条件発見・ファザー生成
CI/CD統合CLI手動ネイティブ対応

ライセンス

AGPL-3.0。内部セキュリティテストは自由に利用可能。SaaSとして提供する場合は変更のオープンソース化が必要。

インストール・クイックスタート

クイックスタート(npxを使う方法・推奨)

Docker と Node.js 18以上が必要です。

# 1. 初期設定(対話形式のウィザード・初回のみ)
npx @keygraph/shannon setup

# または環境変数を直接設定
export ANTHROPIC_API_KEY=your-api-key

# 2. ペネトレーションテストを実行
npx @keygraph/shannon start -u https://your-app.com -r /path/to/your-repo

ローカルビルドで使う方法

# 1. リポジトリをクローン
git clone https://github.com/KeygraphHQ/shannon.git
cd shannon

# 2. APIキーを設定(.envファイルを作成)
cat > .env << 'EOF'
ANTHROPIC_API_KEY=your-api-key
CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000
EOF

# 3. 依存関係のインストールとビルド
pnpm install
pnpm build

# 4. ペネトレーションテストを実行
./shannon start -u https://your-app.com -r /path/to/your-repo

ローカルアプリをテストする場合は localhost の代わりに host.docker.internal を使用してください。

参考になる外部の関連記事

過去のトレンド履歴

関連リポジトリ

AIが自動でハッキングテストを実行!完全自律型ペネトレーションテストシステム — pentagi

vxcontrol/pentagiGo13.3k

PentAGIは、AI(人工知能)がセキュリティの専門家に代わって「ペネトレーションテスト」(システムの弱点を見つけるための疑似ハッキング)を自動で行ってくれるツールです。20種類以上のプロ向けセキュ

企業のサイバー脅威情報を一元管理!セキュリティチームの強い味方 — opencti

OpenCTI-Platform/openctiTypeScript8.8k

OpenCTIは、企業のセキュリティ担当者がサイバー攻撃の情報を整理・管理するためのプラットフォームです。ハッカーの手口、攻撃の痕跡、被害状況などの情報をまとめて保存し、グラフで視覚化できます。他のセ

ユーザー名ひとつで400以上のSNSアカウントを一括検索!ネット上の足跡を追跡 — sherlock

sherlock-project/sherlockPython79.7k

sherlockは、ユーザー名を入力するだけで400以上のSNS(ソーシャルメディア)やWebサービス上にそのユーザー名のアカウントが存在するかどうかを一括で調べられるツールです。たとえば「tanak

コンテナもKubernetesもコードも丸ごとセキュリティチェック!万能脆弱性スキャナー — trivy

aquasecurity/trivyGo34.1k

Trivyは、ソフトウェアやインフラのセキュリティ上の問題を自動的に見つけ出す万能スキャナーです。コンテナイメージ(アプリを箱詰めしたもの)、ソースコード、Kubernetes(コンテナの管理基盤)、

AIハッカーがあなたのアプリの脆弱性を自動で発見・修正! — strix

usestrix/strixPython22.0k

Strixは、AI(人工知能)を使ってアプリやウェブサイトのセキュリティの弱点(脆弱性)を自動的に見つけ出し、修正まで行ってくれるオープンソースのツールです。本物のハッカーのように実際にコードを動かし