AIが書いたコードの脆弱性チェック ── AI-Red-Teaming-Engine 使い方ガイド

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が実験的に生成し、人間が監修しています。ハルシネーション(誤情報)が含まれる可能性がありますので、重要な情報はご自身でご確認ください。

コメント

タイトルとURLをコピーしました