ローカルAIツールに対するセキュリティとしてのセルフサービスランサムウェア
ローカルAIソフトウェアはデバイス上の機密ファイルを読み取ることができます。Brendan Keatonは、AIエージェントセッション中に選択したファイルを暗号化してデータ漏洩を防ぐ実験的なセルフサービスランサムウェアツール「Annex」を紹介しています。AES-256-GCM暗号化、決定論的鍵生成、ファイル破棄、PIN検証を採用しています。
Brendan Keatonは自身のブログで、ローカルAIツールがもたらすセキュリティ脅威に対処する実験的プロジェクト「Annex」を紹介しました。ローカルAIエージェント(コーディングアシスタントなど)は、APIキーや個人データを含むデバイス上の機密ファイルにアクセスできます。.llmignoreファイルなどの緩和策が試みられていますが、基本的にはツールとユーザー間の信頼に依存しており、悪意のあるエージェントやプロンプトインジェクション攻撃を完全に防ぐことはできません。仮想マシンや異なるユーザースペースでの開発など、より安全なソリューションも提案されていますが、Anthropicのレッドチームによる調査では、強力なモデルがこれらの隔離を突破できることが示されています。
Annexのコンセプトは「セルフサービスランサムウェア」です。ユーザーはAIエージェントを起動する前に、保護したいファイルを選択し、「セッション」を開始します。これにより、選択されたファイルはAES-256-GCMで暗号化され、ファイル名もランダム化されます(例:「CLIENT_TAXES_2026.csv」→「aj18xl.annex」)。AIツールは暗号化されたファイルを読み取れません。エージェントの作業終了後、ユーザーはPINコードを入力してセッションを終了し、ファイルを復号します。
鍵生成は決定論的で、現在のUTC日付、増分セッションカウント、サインアップ時に提供される6つのリカバリーコードのいずれか、およびFastAPIサーバーにのみ保存される秘密からSHA256ハッシュを用いて生成されます。この方法は、データベースやロジックに障害が発生した場合でもファイルを復旧できるという利点があります。攻撃者がファイルにアクセスするには、サーバーシークレット、ユーザーのリカバリーコード、PIN、およびデバイス自体を入手する必要があります。
暗号化プロセスは、ファイルの一覧とチェックサムの収集から始まります。その後、AES-256-GCM暗号化(4MB以下のファイルは12バイトのナンス、4MB超のファイルは7バイトのナンスで4MBチャンクごと)を実行し、元のファイルをランダムバイトで上書き、パンチブロック、ランダムリネーム、fsync、そしてunlinkすることで安全に破棄します。この処理はOSに応じてTRIMを考慮し、Rustのzeroizeクレートを使用してメモリから鍵を消去します。また、一時ファイル(.bak、.swpなど)やVSCodeのバックアップ、シェル履歴も対象とします。
復号時にはPINの入力が必要であり、AIツールが直接APIリクエストで鍵を取得することを防ぎます。レート制限も低く設定されており、ブルートフォース攻撃を防止します。プロジェクトはGitHubでMITライセンスの下で公開されていますが、未監査であり、作者はフィードバックや改善提案を歓迎しています。