AIが作ったコードの脆弱性、ちゃんと調べてる?「AI-Red-Teaming-Engine」使い方ガイド
最近、ClaudeやCopilotにコードを書いてもらうことが当たり前になってきましたよね。でも「AIが書いたコード、セキュリティ的に大丈夫なの?」ってちょっと不安になったことはありませんか?
今回紹介する AI-Red-Teaming-Engine は、そんな不安に応えるオープンソースのツールです。コードを「攻撃者の目線」でチェックして、危なそうな箇所をリストアップしてくれます。
このツールでできること
一言でいうと、「あなたのコードを悪意ある第三者の視点で読み直す」 ツールです。
よくある脆弱性(SQLインジェクション・認証の抜け穴・APIキーの漏れなど)はもちろん、最近増えてきた AIエージェント特有のリスク(プロンプトインジェクション・記憶汚染など)も検出できるのが特徴です。
チェックできる対象は幅広くて、こんなものを渡せます:
- Pythonコード、JavaScript、TypeScript、Goなどのソースファイル
- OpenAPIなどのAPI仕様書(YAML / JSON)
- LLMへのシステムプロンプト
- エージェントの設計書やMarkdown仕様
インストール
必要なもの
- Python 3.10以上
- Claude Code CLI(
claudeコマンド)※ APIキー不要でおすすめ
手順
# 1. リポジトリをクローン
git clone https://github.com/kagioneko/ai-red-teaming-engine.git
cd ai-red-teaming-engine
# 2. パッケージとしてインストール
pip install -e .
# 3. 動いてるか確認
redteam-scan --help
静的解析ツールも入れるとより精度が上がります(任意):
# パターンマッチ系の検出ツール
pip install semgrep
# APIキーなどのシークレット検出ツール(Linux)
wget https://github.com/gitleaks/gitleaks/releases/latest/download/gitleaks_linux_x64.tar.gz
tar -xzf gitleaks_linux_x64.tar.gz && sudo mv gitleaks /usr/local/bin/
基本的な使い方
ファイル1つをチェックする
redteam-scan --file app.py
たったこれだけです。バックエンド(どのAIを使うか)は自動で選ばれます。
実行すると、こんなレポートが表示されます:
## 指摘サマリー
合計: 5 件
| Severity | 件数 |
|----------|------|
| 🔴 Critical | 1 |
| 🟠 High | 2 |
| 🟡 Medium | 2 |
---
### [Critical] SQLインジェクション
- **なぜ問題か**: ユーザー入力をそのままクエリに結合しているため、
攻撃者がデータベースの全データを取得できる
- **根拠**: `query = "SELECT * FROM users WHERE id=" + user_id`
- **修正案**: プレースホルダーを使ったパラメータ化クエリに変更する
- **人間確認が必要**: Yes
ディレクトリごとチェックする
redteam-scan --dir src/
src/ 以下のファイルを自動で走査して、まとめてレポートします。
レポートの読み方
各指摘には、次の情報が含まれます。
| 項目 | 意味 |
|---|---|
| Severity | 重大度。Critical → High → Medium → Low → Info の順に深刻 |
| Confidence | AIの確信度。Lowの場合は特に人間が確認を |
| なぜ問題か | 「攻撃者がどうやって悪用するか」の説明 |
| 根拠 | 問題のあるコードの引用 |
| 修正案 | 直し方の提案 |
| 人間確認が必要 | Yes の場合は必ず自分の目で確認してください |
⚠️ 重要: AIが出した指摘がすべて正しいわけではありません。誤検知もあります。
人間確認が必要: Yesの項目は必ずレビューしてください。
監査モードを使い分けよう
--mode オプションで調査の深さを変えられます。
# ふだん使い(デフォルト)
redteam-scan --file app.py --mode deep
# 誤検知を減らしたいとき
redteam-scan --file app.py --mode safe
# AIエージェントのコードをチェックするとき
redteam-scan --file agent.py --mode agent-audit
| モード | 特徴 |
|---|---|
deep |
徹底的に調査。誤検知はやや多め |
safe |
確信度の高い指摘だけ。誤検知少なめ |
agent-audit |
AIエージェント特有のリスクに特化 |
patch |
前回との差分だけをチェック |
AIエージェント開発者向け:特殊モード
このツールの一番の特徴がここです。AIを使ったシステムに特有のリスクを専用モードでテストできます。
プロンプトインジェクション耐性テスト
redteam-scan --file system_prompt.txt --type prompt --injection-test
「悪意あるユーザーがプロンプトに変な命令を埋め込んだとき、突破されるか?」を13種類のパターンで試します。
メモリ汚染耐性テスト
redteam-scan --file agent.py --memory-poison
「エージェントの記憶や文脈を意図的に書き換えようとしたとき、防げるか?」を検証します。
誤検知を減らすマルチエージェントモード
redteam-scan --file app.py --multi-agent
内部で「攻撃者役」「懐疑役」「防御役」「審判役」の4つのAIが議論して、本当に問題があるかを精査します。
ファイル保存のたびに自動チェック(watchモード)
redteam-scan --watch --dir src/
ファイルを保存するたびに自動でスキャンが走ります。開発中に常時起動しておくと便利です。
Claude Code と連携する(MCPサーバー)
Claude Code を使っているなら、MCP(Model Context Protocol)経由で直接呼び出せます。
~/.claude/settings.json に以下を追加:
"mcpServers": {
"ai-red-teaming-engine": {
"command": "python3",
"args": ["-m", "redteam.mcp_server"],
"cwd": "/path/to/ai-red-teaming-engine"
}
}
設定後に Claude Code を再起動すると、「このコードスキャンして」と話しかけるだけでスキャンが実行されるようになります。
CI/CDに組み込む(GitHub Actions)
リポジトリに .github/workflows/security-audit.yml を追加すると、プルリクエストのたびに自動でセキュリティチェックが走ります。
# プルリクエスト時に自動スキャン
- name: セキュリティ監査
run: redteam-scan --dir src/ --format sarif -o results.sarif --fail-on High
GitHub の Security タブ → Code scanning に結果が自動表示されます。
こんな人におすすめ
- AIにコードを書かせることが多い
- LLMを使ったアプリやエージェントを開発している
- セキュリティの専門家ではないけど、リリース前にひと通り確認したい
- OSS公開前に脆弱性が残ってないか心配
まとめ
AI-Red-Teaming-Engine は、AIを使ったシステムを作る開発者のための防御ツールです。完璧ではないし、全ての指摘が正しいわけでもないですが、「見落としてたリスクに気づく」きっかけとしてとても役に立ちます。
GitHubはこちら → https://github.com/kagioneko/ai-red-teaming-engine
「こんな検出できた」「ここが使いにくい」などのフィードバック、お待ちしています!
※ この記事はAIが実験的に生成し、人間が監修しています。ハルシネーション(誤情報)が含まれる可能性がありますので、重要な情報はご自身でご確認ください。

コメント