Cloakroom、AIコーディングエージェントが秘密情報を見る前にマスキング
新しいオープンソースツールは、ファイル読み取りやコマンド実行をインターセプトし、Claude CodeやCodexなどのAIエージェントからAPIキーや個人データを隠蔽し、プレースホルダーに置き換えます。
英語の原文から自動翻訳されました。
Shanjeev Rajendran氏は、AIコーディングエージェントが処理する前に、ローカルマシン上のAPIキー、パスワード、および個人識別情報(PII)をマスキングするオープンソースユーティリティ「Cloakroom」をリリースしました。2026年11月にGitHubで公開されたこのツールは、開発ワークフロー中の誤った秘密情報の漏洩を防ぐため、Claude Code、Codex CLI、Gemini CLI、Cursorなどの人気エージェントと直接統合されます。
何が起きたか
開発者は、ファイルの読み取り、コマンドの実行、コード生成のためにAIコーディングエージェントへの依存度を高めており、リポジトリに埋め込まれた機密認証情報やプライベートデータが外部モデルに露出する重大なリスクが生じています。Cloakroomは、これらのエージェントとの間でやり取りされるデータをスキャンする中間層として機能することで、この問題に対処します。パターンルールとローカル検出モデルを使用して秘密情報とPIIを識別し、エージェントがそれらを見る前に、PII_SECRET_1のようなセッション固有のプレースホルダーに実際の値を置き換えます。
このツールはユーザーのマシン上で完全に動作するため、検出モデルの初回ダウンロードを除き、生の秘密情報がローカル環境外に出ることはありません。AIエージェントがこれらのプレースホルダーを含むファイルを書き込んだり、コマンドを実行したりする場合、Cloakroomは出力をインターセプトし、ディスクへの書き込み前またはシェルでの実行直前に元の実際の値を復元します。この双方向のマスキングにより、開発者はコードベースを手動でスクラブすることなく、またプロンプトインジェクションや誤ったコンテキスト包含による認証情報の露出リスクを負うことなく、AIアシスタントを使用できます。
インストール方法はエージェントによって異なります。Mac、Windows、Linux上のClaude Codeでは、Cloakroomプログラムをブートストラップするプラグインをインストールします。MacとLinux上のCodex、Gemini CLI、Cursorでは、Pythonのuvパッケージマネージャーを通じてツールをインストールします。システムには安全機構が含まれており、エージェントは自身の保留中の呼び出しを承認したり、フックを無効化したりすることはできません。ブロックされたアクションに対しては、ターミナルコマンドを通じた明示的なユーザー確認が必要になります。
仕組み
Cloakroomは、エージェントのツール呼び出しパイプラインにフックを注入することで機能します。エージェントがファイルを読み取ろうとした場合、コマンド出力を表示しようとした場合、またはMCP結果を処理しようとした場合、Cloakroomはデータストリームをインターセプトします。正規表現に基づくパターンマッチングと、PII-Tracerと呼ばれる小さなローカル機械学習モデルの組み合わせを適用して、機密文字列を識別します。検出されると、各秘密情報はセッション全体で一貫した一意のプレースホルダーに置き換えられます。これらのマッピングはローカルマシンの暗号化されたボルトに保存され、macOS KeychainやWindows Credential Managerなど、オペレーティングシステムのネイティブキーストアで暗号化キーが保護されます。
戻りパスでは、エージェントがこれらのプレースホルダーを含むコードやコマンドを生成した場合、Cloakroomはそれらを元の値に戻します。これは、データがファイルシステムに書き込まれる直前、または実行のためにシェルに渡される直前に発生します。ツールが検証または安全にマスキングできないデータに遭遇した場合、チェックなしで通過させるのではなく操作を保留し、開発者がレビューして明示的に許可することを強制します。このフェイルセーフアプローチは利便性よりもセキュリティを優先しており、マスキングされていない秘密情報が誤ってAIモデルに到達することを防ぎます。
主要な詳細
- テストにおけるゼロリーク: ホールドアウトテストセットにおいて、Cloakroomは1,005件の個人詳細のうち0件、ベンダー形式のキー77件のうち0件を通過させました。一方、他のテスト済みツールでは119件から992件の詳細が漏れました。
- ローカルのみでの処理: 初回のモデルダウンロードを除き、データはマシン外に出ません。検出モデルはローカルで実行され、コンテンツを外部APIに送信せずに秘密情報を識別します。
- 暗号化ボルトストレージ: 秘密情報からプレースホルダーへのマッピングは、暗号化されたローカルボルトに保存され、キーはOSキーストアで保護されているため、AIエージェントは復号キーにアクセスできません。
- 幅広いエージェントサポート: Claude Code(Mac、Windows、Linux)、Codex CLI、Gemini CLI、Cursor(Mac、Linux)で動作し、ファイル読み取り、コマンド出力、画像OCRに対応しています。
- プロンプトインジェクション防御: このツールは、エージェントが自身の保留中の呼び出しを承認したり、Cloakroomをオフにしたり、明示的なユーザー認可(
cr: allow経由)なしで設定ファイルにフックを注入したりすることを防ぎます。 - 偽陽性のトレードオフ: ゼロリークを達成するために、このツールは秘密情報のみをスキャンするツールよりも多くの無害なテキストをマスキングしますが、ユーザーはダッシュボードを通じてルールを調整し、将来の誤報を減らすことができます。
なぜ重要なのか
ソフトウェアエンジニアやテクニカルリードにとって、AIエージェントを日常のワークフローに統合することは、ローカル開発と外部処理の境界線を曖昧にしました。従来の秘密管理ツールは、バージョンコントロールへのコミット防止や静的ファイルのスキャンに焦点を当てることが多いですが、エージェントがライブファイルを読み取り、コマンドを実行する動的なランタイムコンテキストには対応していません。Cloakroomは、インタラクションの時点でデータパイプラインを保護することでこのギャップを埋め、開発者がファイルを編集し忘れた場合でも、エージェントが生認証情報を受け取らないようにします。これにより、AIアシスタントを呼び出す前にすべてのコンテキストウィンドウを入念にサニタイズする必要がなくなり、開発者の認知的負荷が軽減されます。
このツールのアーキテクチャは、AIインタラクションに対するクライアントサイドのセキュリティ制御への移行も浮き彫りにしています。検出モデルと秘密ボルトをローカルに保持することで、クラウドベースのスキャンサービスに関連するリスク(それ自体が標的になる可能性やコンプライアンス上の負債となる可能性)を軽減します。過去に露出した個人データについて古いチャット履歴を遡及的にスキャンできる機能は、リアルタイム保護を超えてその有用性を拡張し、チームが過去のインタラクションにおける潜在的な侵害を監査するのに役立ちます。ただし、開発者はこれがサンドボックスではないことを認識しておく必要があります。誤った漏洩を防ぎますが、エージェントが侵害された場合の悪意あるプロンプトインジェクションを止めるものではなく、他のセキュリティベストプラクティスと併用すべきです。
できること
- 公式ドキュメントに記載されているClaude Code、Codex、Gemini、またはCursor用の特定のコマンドを使用して、メインのAIエージェント向けにCloakroomをインストールしてください。
- インストール後に
cloakroom doctorを実行し、すべてのフックがアクティブであり、すべてのコンポーネントのヘルスチェックがokを返すことを確認してください。 cloakroom exposure --personalを使用して、対応するエージェントの古いチャット履歴をスキャンし、以前に漏洩した個人データや認証情報がないか確認してください。cloakroom dashboardを設定し、偽陽性をレビューして、無害なマスキング項目をマークすることで、ルールエンジンが将来のセッションでそれらを無視するようにしてください。- プロンプトに秘密情報を直接貼り付けることは避けてください。代わりに、
cloakroom give NAMEコマンドを使用して、エージェントにプレースホルダーを提供する隠しプロンプト経由で認証情報を注入してください。 - 特に基盤となるAIエージェントソフトウェアを更新した後、検出モデルとフック統合が最新であることを確認するために、定期的に
cloakroom updateを実行してください。



