【お知らせ】
コードではなく「仕様書」からバグを見つけるAIセキュリティ監査ツールを、本日OSS公開しました。
名前はSPECA。Specification-to-Checklist Agentic Auditing Framework の略です。
SPECAは、「仕様駆動(Specification-driven)」で高信頼性ソフトウェアを監査するための、AIエージェント型セキュリティ監査フレームワークです。
従来のコード駆動型ツールとは、根本的に異なるアプローチを取っています。
自然言語で書かれた仕様、たとえば EIP やコンセンサス仕様書などから、まず 明示的な型付きセキュリティプロパティ(Invariant / Precondition / Postcondition / Assumption) を抽出します。
次に、それらを STRIDE CWE Top 25 に基づく脅威モデルで整理します。
そのうえで、各実装に対して proof-attempt reasoning、つまり「このプロパティが成立することを証明してみろ」と構造的に問いかけることで、仕様と実装のギャップを検出します。
これにより、次の3つの価値を提供します。
- 仕様レベルでしか表現できない脆弱性: コードパターンだけでは拾えない、仕様由来のバグを検出できる
- 複数実装間の横断比較: 同じプロパティ辞書で、複数の実装を一律に評価できる
- 偽陽性の原因分析: 根拠を完全にトレースし、偽陽性を根本原因ごとに分解できる
「これまでの実績」
SPECAは、これまで以下のような対象で実際に脆弱性を発見してきました。
・Intmax ZK実装
・SP1 zkVM実装
・Ethereumクライアント実装20件以上
・その他多数の DeFi プロトコル / OSSプロジェクト
直近の Sherlock Ethereum Fusaka 監査コンテストデータを用いた再実験では、既知の脆弱性15件すべてを検出し、さらに 追加バグ4件を独立に発見しました。
RepoAudit C/C ベンチマークでも、他のバグ発見AIと比較して最高水準の精度を維持しつつ、12件の新規候補バグを報告しています。
「なぜ今、全部OSS公開するのか?」
SPECAの核心である以下の要素を、すべて公開しています。
- プロンプト: AIエージェントのハルシネーションを徹底的に抑えるproof-attemptプロンプト設計
- 再帰的自己改善: 偽陽性を削減しながら H/M/L リコールを維持する 3-gate audit-reviewループ
(Dead Code / Trust Boundary / Scope)
- ハーネス: 並列化、リジューム、予算制御、circuit breakerまで完備した 再利用可能なPythonオーケストレータ
- 解釈可能性: 全ステップのログ・出力をJSONで構造化し、監査可能・解釈可能にした設計
バグバウンティのスコープやルールをそのまま BUG_BOUNTY_SCOPE.json として読み込み、実践的な脆弱性だけを抽出する設計です。
Claude Code CLI MCPサーバーで動作し、Go / Rust / Nim / TypeScript / C などマルチ言語に対応しています。GitHub Actionsで全フェーズを自動実行できます。
公開の決め手はシンプルです。
エンタープライズのセキュリティ部門でも、ClaudeやOpenAIを活用したセキュリティツールを導入する選択肢が現実的になってきました。
その今なら、SPECAをオープンに公開しても、ただ攻撃に悪用されるのを指をくわえて見ているだけではない。防御側・ホワイトハッカー側が先に活用できる環境を作れると判断しました。
攻撃者より先に、ホワイトハッカーが現実システムのバグを見つけ、報告し、修正につなげられる世界を作りたい。
「Call for white-hat hackers」
ホワイトハッカーの皆さん、どうかこのSPECAを使ってください。
悪意あるハッカーより先に、バグバウンティ対象の現実システムの脆弱性を発見しきって、報告し、修正に導いてください。
あるいは、これをベースに、より高度なバグ発見システムを構築する研究・開発の土台にしてください。
プロンプトも、ループも、ハーネスも、JSONログも、全部MITライセンスで公開しています。好きなだけ改造・拡張・フォークしてください。
「使い方」
repoをcloneして、次のコマンドを実行するだけです。
uv run python3 scripts/run_phase.py --target 04 --workers 4 --max-concurrent 64
コマンド一つで即座に動かせます。
BUG_BOUNTY_SCOPE.json と TARGET_INFO.json を用意するだけで、新しいターゲットの監査を開始できます。
GitHub:
github.com/NyxFoundation/spe…
READMEと全ソースコードを読めば、すぐに動かせます。
セキュリティ界隈の皆さんと一緒に、仕様から始まる本物の監査文化を次のステージに押し上げたいと思っています。
ご意見・改善案・バグ報告・コラボレーションも大歓迎です。RT・コメント・試用報告、どれでも構いません。ぜひ反応いただけると嬉しいです。