Cairn
弱点をつなげて届くか
公式READMEは、Cairnを「AI general-purpose state-space search engine(AIの汎用的な状態空間探索エンジン)」と説明しています。最初に自律的なペネトレーションテストで検証したものだとされています(oritera/Cairn(GitHub))。出発点と目的地は決まっていて、道筋だけが分からない問題を、AIが探索して解くための仕組みです。
守る側は、このツールが得意なのは「弱点を1つ見つけること」ではなく、複数の弱点を組み合わせて目的まで届くかを確かめることだと理解しておく必要があります。2026年9月には、実際にカード情報窃取の攻撃で使われたことも報告されました。
01.まず結論:Cairnの位置づけ
ペネトレーションテストは、攻撃者の視点で実際に入り込んでみる検査です。弱点が1つだけでは入れなくても、小さな弱点を何段かつなぐと目的に届くことがあります。Cairnは、この「組み合わせて届くか」を、人間の指示をほとんど要さずに数時間かけて試すところが特徴です。
| 観点 | Cairnの位置づけ | 読み方 |
|---|---|---|
| 分類 | 自律型のAIペネトレーションテストエンジン | 弱点を探すだけでなく、目的まで到達できるかを試す |
| 提供形態 | オープンソース(AGPL-3.0) | AGPLの義務を負わずに商用・独自の環境で使うには、別途ライセンスが必要 |
| 動かすAI | Claude Code・Codex・Piを作業役に使う | 各社のAIを差し替えられる |
| 特徴 | AI同士が共有の掲示板で協調する | 1つのAIに全部を任せない構成 |
| 注意点 | 攻撃者にも使える両用のツール | 悪用事例が実際に報告されている |
READMEの責任ある利用についての記載は、明確な許可のないシステムに対して使わないこと、許可のない検査は違法になりうることを求めています。自分が所有しているか、書面で許可を得ている対象に限って使うものです。
02.Cairnとは:開発元・ライセンス・立ち位置
AGPL-3.0で公開された汎用の探索エンジン
- ペネトレーション以外にも使える脆弱性調査・CTF・数学の証明にも向く
- 個人・教育用途はAGPLで使えるライセンスの節の冒頭に書かれた条件
- 義務なしの商用は別ライセンスAGPLの義務を負わずに使うなら、作者へ連絡する
AGPLのまま使う
- 個人・教育用途にGNU AGPLv3で提供されている
- AGPLのオープンソースの義務を守る
義務を負わずに商用・独自の環境で使う
- 作者に連絡して商用ライセンスを得る
- AGPLのオープンソースの義務は負わない
Cairnは、GitHubの組織oriteraが公開しているオープンソースのプロジェクトです。READMEのタイトルは「More Than Just AI Penetration Testing — Towards General State-Space Search」です。日本語にすると、AIペネトレーションテストにとどまらず、汎用的な状態空間探索へ、という意味です。ペネトレーションテストに限らず、脆弱性の調査、CTF(セキュリティの腕試しの競技)、数学の証明といった「出発点と目的地が決まっていて、道筋が不明な問題」全般を対象にすると説明されています。
READMEのライセンスの節によると、Cairnは個人・教育用途にGNU AGPLv3で提供されています。商用または独自の環境で、AGPLのオープンソースの義務を負わずに使いたい場合は、作者に連絡して商用ライセンスを得る必要があります。AGPLは、ネットワーク越しにサービスとして提供する場合にもソースの公開義務が及ぶ強いライセンスです。違いの整理はオープンソースライセンスの種類と違い|MIT・Apache・GPL・AGPLの義務と商用利用の可否で扱っています。
脆弱性を自律的に探すオープンソースのツールとしては、Strixもあります。READMEが説明する設計は、Strixが役割別のエージェントの連携、Cairnが共有の掲示板を介した協調と異なります。
03.仕組み:掲示板を介した協調
掲示板だけでつながるAIの分業
- AI同士は直接話さない共有の掲示板に書き、他のAIが読んで次を決める
- 書くのは事実・意図・ヒント確認済みの発見・試す方向・人の判断の3種類
- 人はヒントで舵を取れる途中から方向を修正できるので、完全な自動ではない
- 作業は3種類の繰り返し開始・判断・実行を、目的に届くまで回す
Cairnの設計の中心にあるのは「ブラックボード(共有の掲示板)」です。作業を担う複数のAIは、お互いに直接やり取りしません。代わりに、1枚の共有の掲示板に書き込み、他のAIがそれを読んで次の行動を決めます。READMEはこの協調の仕方を「stigmergy(スティグマジー)」と呼び、掲示板だけを介して協調する方式だと説明しています。蟻が残したフェロモンを手がかりに、他の蟻が動くのに近い考え方です。
掲示板に書き込まれるものは、次の3種類に整理されています。
| 種類 | 意味 | 具体的なイメージ |
|---|---|---|
| Fact(事実) | 確認できた客観的な発見 | 「この機能はこの条件で応答する」と分かったこと |
| Intent(意図) | これから試す方向の宣言(まだ未実行) | 「この発見を使って、次はここを試す」という計画 |
| Hint(ヒント) | 人間がいつでも差し込める判断 | 「そちらは範囲外」「こちらを優先して」といった指示 |
図:共有の掲示板を中心にした全体像
READMEの記載をもとに整理。AI同士は直接話さず、掲示板への書き込みと読み取りだけでつながる。
人
Hint(ヒント)を書き込む
いつでも判断を書き込める。AIは次に読むときに取り込む。
共有の掲示板
Fact(事実)・Intent(意図)・Hint(ヒント)が1か所に集まる
作業役のAIは、ここを読み、ここへ書き戻す。
作業の種類 1
Bootstrap
開始時に、問題を直接解こうと試す。
作業の種類 2
Reason
掲示板全体を読み、目的に届いたか、次に何を試すかを決める。
作業の種類 3
Explore
意図を1つ引き受けて実行し、事実を1つ書き戻す。
運営側の部品
DispatcherとServer
Dispatcherは掲示板を読んで作業を割り当て、作業役のコンテナを起動・破棄する。Serverは掲示板の整合性を保つだけ。
作業の進み方は、READMEが示す3種類の作業(開始時の試行・全体の判断・1つの意図の実行)の繰り返しです。
- 1開始時の試行
Bootstrapが、問題を直接解こうと試し、事実を書く。
- 2全体の判断
Reasonが掲示板全体を読み、目的に届いたか、次に試す意図は何かを決める。
- 31つの意図の実行
Exploreが意図を1つ引き受けて実行し、確認できた事実を1つ書き戻す。
- 4人の判断の差し込み
人がHintを書き込む。AIは次に読むときに取り込む。
Reasonが目的に届いたと判断するまで、2と3が繰り返される。
同じ自律型でも、協調のさせ方はStrixと異なります。
役割別のエージェントが連携する
- 偵察・攻撃・侵入後など、役割ごとにエージェントを分ける
- エージェントどうしが結果を受け渡して進む
共有の掲示板で協調する
- 役割も手順も、あらかじめ定義しない
- AI同士は直接話さず、掲示板への書き込みだけでつながる
各AIは、READMEによるとOODAループ(観察・状況判断・意思決定・行動の繰り返し)で動きます。掲示板を読み、次に試す方向を決め、実行し、結果を事実として書き戻す流れを繰り返します。人間はHintを差し込むことで、途中から方向を修正できる点も、完全な自動化ではなく人が舵を取れる設計になっていることを示しています。
04.コンテストでの成績
610チームで54問を全問解いた唯一のチーム
- 54問をすべて解いた参加は610チーム・1,345人。全問解答は唯一
- 総合順位は3位READMEに書かれた開発者自身の記録
- 大会前は一度も試していない全工程がそろって動いたのは、当日の午前4時
READMEによると、CairnはTencent Cloud Hackathon(第2回)のAIペネトレーションテスト部門に出場しました。結果は次のとおりです。
図:Tencent Cloud Hackathon(第2回)でのCairnの結果
READMEに書かれた開発者自身の記録。
参加規模
610チーム・1,345人
解いた問題
54問すべて
全問を解いたのは、Cairnのチームだけ。
総合順位
3位
READMEは、このシステムは大会前に一度も試されておらず、パイプライン全体が初めて動いたのは大会当日の午前4時だったとも書いています。
READMEに書かれた記録で、第三者が検証した数値ではありません。
05.動かすために必要なもの
macOSかLinuxで動く、3種類のAIの作業役
- 動作はmacOSかLinuxPython 3.12以上。Dockerはローカルモードなら任意
- 3種類のAIを作業役に使うClaude Code・Codex・Piを差し替えて使える
- 費目はソフト・AI利用料・実行環境AGPLの条件なら、無料なのはソフトウェアだけ
READMEによると、動作環境はmacOSまたはLinux、Python 3.12以上で、実行にはDockerを使います(ローカルモードではDockerは任意)。AIの作業役としては、Claude Code・Codex・Piの3つに対応しています。Cairn自体は無料でも、これらのAIを動かす利用料や、それらを動かす環境は別途かかります。
| 費目 | 内容 | 目安 |
|---|---|---|
| ソフトウェア | Cairn本体(AGPL-3.0) | AGPLの条件で使うなら無料。義務を負わずに使うには商用ライセンスが必要 |
| AIの利用料 | 作業役のAI(Claude Code・Codexなど)の利用料 | 使う量と検査の長さで変動 |
| 実行環境 | Docker、または手元のマシン | ローカルでもクラウドでも可 |
使うAIによって精度も費用も変わるため、検査の対象や時間をあらかじめ決めておくことが前提になります。
06.悪用された報告:連鎖する攻撃
弱点の連鎖を前提にした備え
- Cairnは侵入を進める役として使われたGambitの調査が報告した、攻撃キャンペーンでの役割
- 弱点は連鎖して深刻になる単独では軽くても、つなぐと目的まで届く
- 備えは鎖を断つ設計認証・権限・通信を区切り、戻せる状態を持つ
この攻撃では、Cairnのほかに、脆弱性を探す役のStrixと全体を指揮する役のエージェントが組み合わされていました。キャンペーン全体はStrix|脆弱性を自動で見つけるAIペネトレーションテストと防御の考え方にまとめています。指揮役のエージェントは、特徴が一致するHermes AgentとしてHermes Agentの使い方とできること|記憶とスキルで育つAIエージェントで扱っています。攻撃の経過の詳細は、再現に使えてしまうため、ここでは書きません。
この事例から読み取れるのは、攻撃の深さも自動化の対象になっているということです。個々の弱点は単独では致命的でなくても、連鎖すると深刻な結果になります。弱点の発見だけでなく、それを組み合わせて目的まで届かせる部分も、自動で試せるようになっています。
07.守る側の備え:連鎖を断つ設計
弱点の連鎖を途中で断つ設計
- 外から見える部分を減らす公開面を棚卸しし、足がかりの弱点を残さない
- 認証・権限・通信を区切る1つ突破されても、次へ進めない設計にする
- バックアップは本番と別の場所同じ場所に置くと、侵入時に一緒に削除されうる
弱点がつなげられる前提に立つと、守り方の発想が変わります。すべての弱点を事前に塞ぐのは難しくても、鎖のどこか1か所で断てば、目的には届きません。さらに、万一届かれても被害を広げず、戻せる状態にしておくことが重要です。
- 1外から見える部分を減らす
公開面の棚卸しと更新で、最初の足がかりになる弱点を残さない。
- 2鎖を断つ
認証の強化、権限の最小化、内部ネットワークの分離で、1つ突破されても次に進めなくする。
- 3守り切れなくても戻せる
ログによる検知と、本番から切り離したバックアップで、被害を限定して復旧できるようにする。
鎖を途中で断つ設計
連鎖する攻撃は、各段階で「次に進める材料」を手に入れて進みます。そこで、材料を渡さない設計が効果的です。
| 攻撃が頼る材料 | 断つための考え方 | 具体策の方向 |
|---|---|---|
| 弱い認証・回避の余地 | 認証を突破されても次に進ませない | 多要素認証の設定漏れ・例外の見直し、管理画面の公開範囲の制限 |
| 広すぎる権限 | 1つ奪われても被害を限定する | アプリ・サーバー・クラウドの権限を必要最小限にする |
| 内部に置かれた認証情報 | 見つけても使えないようにする | 認証情報をコードや設定に直書きせず、専用の保管庫で管理して定期的に更新する |
| 内部ネットワークの見通しのよさ | 横に広がれないようにする | 本番・開発・管理の領域を分け、不要な通信は遮る |
権限を必要最小限にする考え方は、AIエージェントに強い権限を持たせる場面でも同じです。触らせる範囲の決め方は別記事で詳しく整理しています。あわせてご覧ください。
AIセキュリティ・権限設計|エージェントに何を触らせ、何を触らせないか
AIエージェントに強い権限を持たせるときの、触らせる範囲の決め方を整理しています。
被害の限定と復旧
Gambitの報告は、復旧に数週間かかる体制では、短時間で進む侵入に追いつけないと指摘し、何を最低限動かし続けるかをあらかじめ決めておく必要があるとしています。
バックアップを本番と同じ場所に置いていると、侵入されたときに一緒に失われるおそれがあります。本番から切り離した場所に、書き換えられないバックアップを持つことと、実際に戻せるかを事前に試しておくことが、最後の砦になります。
守る側に必要なのは、攻撃が具体的にどう進むかを再現できることではありません。「どの段階で何を渡さないか」「失われたら何で戻すか」を決めておくことです。手口は変わっても、この考え方は変わりません。
08.利用上の注意
許可・隔離環境・時間と範囲・ライセンスの4条件
- 許可がある対象だけ自社所有か、書面の許可がある範囲に限る
- 本番から隔離して実行検査の影響が本番のデータや稼働に及ばない専用環境
- 時間と範囲を区切る数時間走る性質なので、止める条件を先に決める
- ライセンスの条件を決めるAGPLの義務を守るか、商用ライセンスを得るか
自社の検査にCairnのようなツールを使う場合は、事前に次の点を決めてから始めてください。
| 論点 | 決めること | 理由 |
|---|---|---|
| 対象と許可 | 自社所有か、書面の許可がある範囲に限る | 許可のない検査は違法になりうる |
| 実行環境 | 本番から隔離した専用の環境で動かす | 検査が本番のデータや稼働に影響しないようにする |
| 時間と範囲 | 実施する時間帯と、触ってよい範囲を区切る | 数時間走り続ける性質上、止める条件が要る |
| ライセンス | AGPLの義務を守って使うのか、義務なしで使うのかを決める | READMEは、義務を負わずに商用・独自の環境で使う場合に、作者への連絡と商用ライセンスを求めている |
自社のシステムであっても、クラウドやSaaSの上で動いているものは、提供元のテストの条件を先に確認してください。基盤は他社の管理下にあることが多いためです。
09.よくある質問(FAQ)
Cairnは誰が作っていますか?
GitHubの組織oriteraが公開しているオープンソースのプロジェクトです。ライセンスはGNU AGPLv3で、AGPLのオープンソースの義務を負わずに商用・独自の環境で使うには、作者に連絡して商用ライセンスを得る必要があるとREADMEに書かれています。
CairnとStrixはどう違いますか?
どちらも脆弱性を自律的に探すオープンソースのAIツールです。READMEが説明する設計は、Strixが役割別のエージェントの連携、Cairnが共有の掲示板を介した協調という違いがあります。
他人のサイトにCairnを使ってもいいですか?
いけません。自分が所有しているか、書面で明確な許可を得ている対象にだけ使えます。許可のない検査は、日本では不正アクセス禁止法に触れるおそれがあります。
弱点をつなげられる攻撃に、どう備えればいいですか?
鎖を途中で断つ設計と、戻せる状態の用意が基本です。認証の強化、権限の最小化、内部ネットワークの分離、認証情報の保管庫での管理に加えて、本番から切り離したバックアップを持ち、復旧を事前に試しておきます。代表的なWebアプリケーションの弱点はOWASP Top 10にまとまっており、個々の弱点を減らす観点に使えます。
10.まとめ
Cairnは、複数のAIが共有の掲示板で協調し、弱点をつなげて目的まで届くかを自律的に試すオープンソースのエージェントです。正規の検査に使える一方、同じ力が攻撃にも使われ、実際にカード情報窃取の攻撃で悪用されました。弱点がつなげられる前提で、鎖を途中で断ち、戻せる状態を持っておくことが、守る側の備えの軸になります。
自動化された攻撃に、自動化で備える体制を整えませんか
弊社ではAIフル活用の業務設計を提供しています。権限の見直しやバックアップ・検知の運用設計まで、無料相談で現状に合わせて整理します。
11.技術的な仕組み(詳しく知りたい方向け)
掲示板を読んで動く観察・判断・実行の繰り返し
- 観察・状況判断・意思決定・行動掲示板を読み、方向を決め、実行して書き戻す
- やり取りは掲示板だけAI同士の直接の会話はなく、書き込みと読み取りでつながる
- 発見は掲示板に残る書き込まれた事実は、他のAIが次の観察で使える
掲示板を読んで、現状をつかむ。
事実から、試す価値のある方向を絞る。
次に試す意図を決める。
実行して、結果を事実として書き戻す。
書き戻された事実は、次の観察で他のAIにも読まれる。
技術的な仕組みブラックボードとOODAループで協調する仕組みを見る
Cairnは、複数のAIが直接会話する代わりに、共有の掲示板(ブラックボード)に事実と意図を書き込んで協調します。READMEによると、作業は、掲示板を読んで次の方向を考えるタスクや、決めた方向を実行して結果を書き戻すタスクなど、役割の違うタスクに分かれています。
AI同士が直接やり取りしない設計で、書き込まれた事実は掲示板に残ります。人間のヒントも、同じ掲示板に書き込まれて次の読み取りで取り込まれます。Strixが役割別のエージェントを連携させる構成であるのに対し、Cairnは掲示板に情報を集約する構成という違いがあります。

