Zee は、高度AI時代に防御準備が追いついていない組織と個人が、最初の一歩を踏み出すためのオープンプロジェクトです。侵入を防ぐ道具ではなく、盗まれにくくし、時間を稼ぐことを設計目標にしています。
AIは素晴らしい技術です。しかし攻撃側もそれを使えます。問題はAIそのものではなく、社会の準備が追いついていないこと。Zeeが向き合うのは、攻撃能力の進化速度と、防御準備の普及速度の差です。
Zeeが有名になることが成功ではありません。社会が安定すれば成功です。誰かがより良い方法を作るなら、それでも良いと考えています。
脆弱性の「発見」と「武器化」が、安く・速く・大量になっています。以下はいずれも、AIを開発するAnthropic自身が公表した数字です。
現段階の Zee が提供するのは、以下です。
何から考え始めればよいかの最初の一歩。不安の整理・「絶対盗まれたくない情報」の棚卸し・検知体制の現在地確認・復旧手順の言語化など、6つの起点。
設計の意図と各構成要素の役割。実装の現在地(どの層が動き、どの層が研究段階か)も併せて公開。
研究方向としての CDS とアフィンコラッツ研究。暗号学的保証ではなく、罠多様化(trap diversification)のオープンクエスチョンとして扱う。
軽量な囮トリップワイヤ+自動封じ込め。クロスOS(Linux/macOS/Windows)対応・既定 dry_run。実遮断は資産プロファイルで明示昇格して初めて動く。
公開されている AI スキルや MCP サーバー、npm / PyPI パッケージには、エージェントを外部へ開かせるプロンプトインジェクションが仕込まれていることがあります。いま最も大きい攻撃面の一つです。Zee の入口ゲートは、導入する前にその成果物を隔離下で静的に検査し、不審な指示・過剰な権限要求・既知の脅威リスト該当を洗い出して、入れる/入れないの判断材料を返します。
静的検査であり、すべての悪意を検出できるわけではありません(正直に)。Semgrep / Snyk / Socket を置き換えるものではなく、それらと併用する一層です。GitHub Action として CI / pre-install に組み込めます。詳細は docs/gate.md / 脅威リストの形式は docs/threat-list.md を参照してください。
Zee は侵入を防ぐ層ではなく、侵入後に狭く高信頼な検知信号(囮への接触)を1本足す層です。「あなたの検知体制全般」を肩代わりするものではありません。
| OS | Backend | open | read | modify | canary fallback | status |
|---|---|---|---|---|---|---|
| Linux | inotify | yes | yes | yes | no | implemented |
| macOS | kqueue [+ canary if configured] | no | no | yes | yes (when configured) | implemented |
| Windows | ReadDirectoryChangesW [+ canary if configured] | no | no | yes | yes (when configured) | implemented (Windows 実機未検証) |
macOS・Windows は OS の制約で「読み取り検知」が直接できません。環境変数 ZEE_CANARY_BASE_URL に外部 webhook 受信器の URL を設定すると、seeder が囮ファイルに canary URL を埋め込み、攻撃者がその URL を辿った瞬間に外部受信器で発火します(Zee 本体には戻りません・out-of-band)。未設定では canary URL は埋め込まれず、macOS / Windows での「読むだけ」の攻撃は観測されません(既定で安全側)。Linux は inotify が読み取りも直接観察するので canary 不要です。
受信器の例:Canarytokens.org(無料・推奨)/自前 Cloudflare Worker・AWS Lambda・Vercel Edge Function 等。
それぞれが単独でも働く設計を意図しています。実装状況はそれぞれ正直に表示します。
選ばれた囮ファイルへの接触を観察。Linux は read 含む直接観察、macOS・Windows は変更観察+canary フォールバック。
誤作動の最小化は「配置ガイド」+「変更系操作のみ自動遮断」の 2 層で行う。プロセス allowlist 路線は v4 で撤回(現バックエンドはプロセス特定不可で false sense of safety を生むため)。
特定の構成において、選ばれたアクセス試行を目印つきの偽データへリダイレクトまたは置換できる。
本物そっくりの偽環境で探索のコストと時間を引き上げることを目指す。
数ヶ月スパンの潜伏型攻撃を時間をまたいで結びつけて検知する研究方向。
※「防御率○%」のような数字は出しません。実環境はそれほど単純でなく、誇張は信頼を損なうためです。
zee export・ローカルへの書き出しのみ、送信しない)侵入後で作動する層の最大のリスクは、正規のプロセスや社員を誤って罠に引き込んでしまうことです。Zeeはこのリスクを最小化することを目指します(「ゼロ」は約束しません)。
将来 IP 取得経路を追加する場合の方針(末尾オクテット切り捨てを第一候補とし、ハッシュ化は逆引き耐性が崩れるため採用しない)は ARCHITECTURE.md を参照してください。
response_mode: auto を明示し dry_run: false にしたときだけ動きます。zee cut <asset_id> で手動遮断します。プロセス特定ができない現バックエンドでは、正規ソフトが普通やらない操作だけを自動遮断の根拠にするのが構造的に安全だからです。ZEE_CANARY_BASE_URL 設定時のみ — kqueue / ReadDirectoryChangesW は read を通知しません。環境変数を設定すると seeder が canary URL を decoy に自動埋め込みし、外部受信器で発火します(Zee 本体には戻りません)。未設定では canary URL は埋め込まれず、macOS / Windows での「読むだけ」の攻撃は観測されません。Linux は inotify で read を直接観察するので canary 不要です。zee restore には restore_token が必要(v0.3 から) — zee init-restore-token で生成したトークンを --token または ZEE_RESTORE_TOKEN で渡します。同一ユーザーで動作する別シェルからの誤った巻き戻しは塞げますが、~/.zee/restore_token(0600)を読める root 相当の攻撃者にはバイパスされます。マルチユーザー本番では sudo で囲うか専用ユーザーで運用してください。decoy_ref(asset_id#index)で記録(v0.3 から) — 絶対パスは記録されないため、ログを読まれても囮位置は一括列挙できません。対応関係は assets.toml 経由でのみ復元できます。dry_run: false)の試験は未実施です。結果と条件は docs/verification/。本番運用の前に、ご自身の環境でも確認してください。これは床であって天井ではありません。安全だと言う前に、失敗条件を先に書きました。
全 Limitations は README の Limitations セクション を参照してください。
Zee はメンテナがリファレンス実装と設計を公開して終わりにする seed(種まき)型 OSS です。あなたの環境で動かす、OS の更新に追従させる、業種に合わせて改造するのは 各自。一人の管理者が永続的に全 OS を追従する OSS のメンテナ疲れ問題から最初から外れます。
代わりに、修正の知恵を皆で共有する場 が用意されています。次に同じ問題に当たった人の作業を 3 時間 → 30 秒 に縮めるのが目的です。
OS の更新で動かなくなった・自分の環境で動かない場合の事例とパッチを集約。Discussions で検索可能。
美容室・小規模 EC・士業・町工場など、自分の業種でこう使っている、こう改造したを書き残す場所。
環境別の修正指示書を Claude / Cursor / Copilot に渡せば、修正パッチが生成されます。フォークに適用して、結果を Discussions に書き残してください。
events.jsonl や assets.toml、ZEE_CANARY_BASE_URL などは公開対象外です。Zee は MIT ライセンスのもとで、すべての文書とコードを GitHub で公開しています。クラウド契約や外部サービス登録は不要です。