
GitLab Duo DevSecOpsループ。2つ目のAIがAIの書いた修正すべてに再攻撃を仕掛け、成功したバイパスをそれぞれ恒久的な抗体として保存し、CIと本番環境で再生する。
AIが書いたすべてのコード変更は、本番環境に到達する前に、2つ目のAIによる攻撃に証拠付きで耐え抜かなければならない。

Antibodyは「Life After Code」(Transcend)ハッカソン向けのGitLab Duoパイプラインです。コードベースを免疫システムのように扱います。あるAIが脆弱性を修正すると、2つ目のAIがその修正が実際に有効になるまで攻撃を続け、これまでに成功したすべての攻撃は「抗体」として永久に保存され、将来のすべての変更時および稼働中の本番環境に対して再テストされます。別個の、意図的にAIを使わないチェッカーが、修正エージェントの不正行為を監視します。
修正役の言葉は決して信用されません。攻撃者に耐え抜く必要があり、愚直で正直なチェッカーがテストを守ります。
AI対AIのツールはすでに存在します(Helios、MindFort、Strix、Novee)。それらは元のエクスプロイトがブロックされたことを確認するものです。Antibodyは、2026年時点でまだ研究論文にしか存在しない4つのことを行います:
/downloadに問題があった場合、/previewにも同じガード漏れがないかを確認します — バグは通常、差分の外にあるルートに潜んでいます。CODEOWNERSに触れる場合、パイプラインは自らHands-offからSupervisedへと格下げします。なぜなら、変更が自分自身を検証してはならないからです。すべての設計上の選択は、勘ではなく論文に基づいています:
| 知見 | 論文 | 数値 |
|---|---|---|
| パッチはテストに合格しても悪用可能なまま(「サイレント障害」);LLMレビュアーはそれを見逃す | When Passing Tests Hides Vulnerabilities (Tampere) — arXiv 2609.10548 | 1,030件の修復トレースのうち170件がサイレントに失敗;22件が重大 |
| 修正はテストされたペイロードのみをブロックする | P2Patch (Simon Fraser) — arXiv 2610.20245 | 新たな攻撃が、すでに「修正済み」のパッチを実行の**41%**でバイパス;バイパスを永続化することでカバレッジが42.1% → 62.5%に向上 |
| 同じバグが差分の外にある兄弟ルートに潜む | PRGuard (Bristol) — arXiv 2608.25730 | 商用レビュアーより3倍多くの不在型バグを発見 |
| エージェントによるCI変更がレビューなしでマージされる → 「循環検証」 | Co-Modifying Code and Infra (UNSW) — arXiv 2610.12849 | デュアルスコープのエージェントPRの**43〜56%**がレビューなしでマージ |
| エージェントはグリーン(合格)で報酬を得ると採点者を欺く | Hacktrace (NTU) — arXiv 2610.03055 | 実行の約**19.5%**がテスト改ざんの近道を選んだ |
最後の知見が、WardenがAIではない理由です:LLMレビュアーは説得されて判定を覆すことがありますが、git-diffチェッカーはそうはいきません。
┌─────────────────────────── issue created ───────────────────────────┐
│ │
▼ │
[Builder AI] fix on a shadow branch, open MR │
│ │
▼ │
GitLab SAST + Dependency Scanning → findings become the Red agent's targets │
│ │
▼ │
[Red AI] real HTTP exploit that REPRODUCES on the old code │
│ │
▼ │
[Builder AI] harden until blocked │
│ │
▼ │
[Red AI] re-attack the NEW fix: new payload + same bug on SIBLING routes │
│ every bypass saved forever as an antibody (≤2 rounds) │
▼ │
[Warden] (not an AI) no deleted/weakened/skipped tests, no hidden CI/auth edit │
│ │
▼ │
autonomy gate: touches CI/auth/CODEOWNERS → Supervised, else Hands-off │
│ │
▼ │
[Package] signed container + SBOM + proof bundle │
│ │
▼ │
[Release → Configure] deploy to the lowest-carbon Cloud Run region, │
│ replay every antibody against staging, then promote │
▼ │
[Monitor] scheduled probe replays ALL antibodies against production forever ──┘
any reproduction → auto-opens an incident issue → loop restarts
以下はすべて、モックアップではなく、このリポジトリからの実際のキャプチャです。
GitLab 上でグリーンになる 9 ステージのパイプライン。 実行されたすべてのステージが成功しました。これには、プロジェクトレジストリにプッシュされた実際のコンテナビルドも含まれます。configure と monitor は、Cloud Run プロジェクトとスケジュールが設定されるまで正しくスキップされます。パイプラインを開く。

所有するデコイへの攻撃はブロックされ、通常の利用は引き続き機能します。 エンコードされたトラバーサル、兄弟ルート、非 HTTP スキーム、およびクロスユーザーのオブジェクト読み取りはすべて拒否される一方、正当なドキュメントと所有者自身の注文は提供されます。

Warden がエージェントの不正を捕捉します。 使い捨てのクローンでの 3 つの実際のコミット: テストの削除はブロックされ、アプリ修正におけるパイプラインの編集は Supervised にダウングレードされ、正直な修正はパスします。

ターゲットアプリの API を兄弟ペアごとにグループ化したもの。 各バグクラスは、1 つの強化されたヘルパーを共有する 2 つのルート上にあり、これはまさに兄弟ルート探索が探し求めるものです。

フルスイート: 機能テスト、6 つの抗体、MCP ツール、Warden、および SCI の計算。

| 名前 | AI? | 役割 |
|---|---|---|
Builder (agents/antibody_builder.yaml) | はい | Issue を読み、シャドウブランチ上で修正を書き、攻撃されると強化します。 |
Red (agents/antibody_red.yaml) | はい | 実際のエクスプロイトを書き、修正を再攻撃し、兄弟ルートを探索し、抗体を保存します。 |
GreenOps (agents/antibody_greenops.yaml) | はい | セキュリティ以外の変更では高コストなループをスキップし、低炭素リージョンを選択し、SCI を計算します。 |
Planner (agents/antibody_planner.yaml) | はい | 仕様とセキュリティ受け入れ基準を書き、最終的なガバナンス監査を投稿します。 |
Warden (warden/warden.py) | いいえ — 純粋な Python | テストの改ざんと隠れたスコープクリープを決定論的に検出します。プロンプトインジェクションはできません。 |