
AI駆動の脆弱性発見とライブ検証
AI駆動の脆弱性発見とライブバリデーションのためのターミナルワークベンチ。

ほとんどの「AIセキュリティ」ツールは、脆弱に見えるコードにフラグを立てるだけで終わります。RedAIはさらに一歩進んでいます。スキャナーエージェントが候補となる発見を生成した後、バリデーターエージェントがライブ環境内で動作し — ターゲットの実行中のインスタンスと、それとやり取りするために必要なツール — レポートに表示される前に、各発見を証明または反証しようと試みます。彼らはUIをクリックし、エンドポイントにアクセスし、PoCスクリプトを作成し、ヘルパーサーバーをホストし、証拠を保存します。
環境はプラグインです。RedAIには2つ(実際のChromeブラウザとiOSシミュレーター)が同梱されており、小さなインターフェースを実装することで独自の環境(Linux VM、Androidエミュレーター、Kubernetesクラスター、組み込みデバイスシム)を作成できます。
実行の最後には、重要度順にランク付けされた発見、発見ごとの再現手順、バリデーターの判定(確認済み、反証、テスト不能)、およびエージェントが収集した実際の証拠(PoCスクリプト、HTTPトランザクション、ログ、スクリーンショット)を含む詳細なレポート(Markdown、HTML、JSON)が得られます。これにより、確認されたすべての発見には主張だけでなく証拠が付随します。実際のものはexamples/webapp/example-report.mdまたはexamples/iosapp/example-report.mdを参照してください。
許可された使用のみ。 RedAIは、自分が所有しているか、評価を許可されているソフトウェアおよび環境でのみ使用してください。エージェントの出力は不完全または間違っている可能性があります — 発見と証拠を確認してから行動してください。
このリポジトリには、2つの意図的に脆弱なデモアプリが同梱されており、自分のコードを指定しなくてもRedAIをエンドツーエンドで試すことができます。ブラウザ環境用のexamples/webappと、iOSシミュレーター環境用のexamples/iosappです。
# 1. RedAIをインストール
bun install -g @kpolley/redai
# 2. 1つのターミナルでデモターゲットを起動
cd examples/webapp && bun run dev # http://localhost:3000
# 3. 別のターミナルでRedAIを起動
redai
RedAIで、http://localhost:3000を指すブラウザ環境を作成し、exampleuser / examplepasswordで一度ログインしてreadyとマークし、examples/webappに対してスキャンを開始します。バリデーターがChromeを操作して実際の発見を確認する様子を見守ってください。
このアプリの実際のスキャンからの完全なレポートはexamples/webapp/example-report.mdにあります — GitHubがインラインでレンダリングするので、RedAIを実行しなくてもその出力を確認できます。
npmから:
bun install -g @kpolley/redai
redai
またはローカルチェックアウトから:
git clone https://github.com/kpolley/redai.git
cd redai
bun install
bun run redai
RedAIは、認証情報が必要なときに作業ディレクトリから.envを読み取ります。既存のシェル環境変数が優先されます。
必要なスキャナーキーは1つだけです — 使用予定のスキャナーに合わせて設定してください。
# Claude(いずれかを選択)
ANTHROPIC_API_KEY=...
# または Codex
OPENAI_API_KEY=...
スキャンには2つのものが必要です:ソースディレクトリと準備完了のバリデーション環境 — バリデーターエージェントが対話するライブターゲット(同梱の環境の1つ、または自分で追加したもの)。
readyとマークします。スキャナーエージェントはソースをトリアージして調査し、バリデーターエージェントは確認されたように見える発見を取得してライブ環境に対して実行します。レポートはスキャン終了時に~/.redai/runs/<runId>/report.md(および.html)に書き込まれます。
キーボードショートカットについてはsrc/tui/README.mdを参照してください。
各スキャンは3つのフェーズを経て進みます:
confirmed(確認済み)、unable-to-test(テスト不能)、またはdisproved(反証)のいずれかになります。~/.redai/runs/<runId>/に書き込まれます。9段階の完全なパイプライン(事前チェック、脅威モデル、ファイル優先順位付け、分析単位、単位スキャン、発見集約、検証計画、検証実行、報告)については、src/pipeline/README.mdを参照してください。
バリデーション環境とは、バリデーターエージェントがターゲットの実行中のインスタンスと対話するために必要なものです。RedAIは環境をプラグインとして扱います。各環境はsrc/validators/validator-plugin.tsで定義された小さなインターフェースを実装し、独自のセットアップ/ティアダウンを処理し、エージェントが内部で持つべきツールを公開します。
新しいスキャンはreadyとマークされた環境のみ使用できます。スキャンが開始されると、バリデーターは計画に従って、UIの操作、シェルコマンドの実行、PoCスクリプトの作成、ヘルパーサーバーのホスト、ログの収集、スクリーンショットの保存などを行います。これらのすべては~/.redai/runs/<runId>/artifacts/に保存されます。

リファレンス実装として2つの環境が付属しています:
agent-browserを介して操作される実際のChromeインスタンス。詳細はsrc/validators/web-agent-browser/README.mdを参照。xcrun simctlを介して操作される、スキャンごとのテンプレートシミュレーター。詳細はsrc/validators/ios-simulator/README.mdを参照。Linux VM、Androidエミュレーター、リモートステージングクラスター、またはより特殊なものに対して検証したい場合は、同梱の2つと同じインターフェースでプラグインを追加してください。
RedAIはローカル状態を~/.redai/に書き込みます(REDAI_HOMEで上書き可能)。これらのファイルには、ソースから派生したプロンプト、エージェントのトランスクリプト、レポート、証拠、認証情報、ブラウザプロファイル、シミュレーターメタデータが含まれる場合があります。
ディレクトリ構成については、src/pipeline/README.mdを参照してください。
コマンド、コード構成、プロジェクトの規約はAGENTS.mdに記載されています。パイプラインの内部についてはsrc/pipeline/README.mdを、新しいバリデーター環境の追加についてはsrc/validators/validator-plugin.tsを参照してください。
MIT — LICENSEを参照。
| 範囲 | 要件 |
|---|
| コア | Bun ≥ 1.2、読み取り可能なソースディレクトリ |
| スキャナー(いずれかを選択) | Claude: ANTHROPIC_API_KEY、CLAUDE_CODE_USE_BEDROCK、またはCLAUDE_CODE_USE_VERTEX — または — Codex: OPENAI_API_KEYまたはCODEX_API_KEY |
| ブラウザバリデーター | Chrome、agent-browser、ターゲットワークスペース内の.agents/skills/agent-browser |
| iOSバリデーター | macOS、Xcodeコマンドラインツール、xcrun simctl、シミュレーター互換アプリ(またはインストール済みバンドルID)、ターゲットワークスペース内の.agents/skills/ios-simulator-skill |