Trellixの分析によると、AIエージェントは日常的な開発作業の中で、パスワードやAPIキー、アクセストークンを露出させる可能性があります。
このリスクは、マルウェアや悪意がなくても生じます。エージェントがシークレットを保護されたストレージから取り出し、コマンドやログ、ファイル、言語モデルへの入力に移す過程で発生します。
Trellixはこの問題を「不可視の認証情報サーフェス(unseen credential surface)」と呼んでいます。エージェントは依頼を完了するために使い慣れたツールを利用しますが、そのワークフローが機密データを守る防御を弱める場合があります。
APIへの問い合わせやデータベースのトラブルシューティングといった単純な指示でも、認証情報のコピーが複数作られる可能性があります。
分析では「分離のグラデーション(isolation gradient)」という考え方が示されています。シークレットは、暗号化されたストアからプロセスメモリ、コマンドライン、ローカルファイル、外部システムへと移っていきます。
各段階の移行により、アクセス権限やログ設定、エージェントの設計次第で露出リスクが高まる可能性があります。
たとえば、Microsoft Graphのプロファイルを取得するエージェントは、認証情報ヘルパー経由でOAuthトークンを入手し、それをcurlの認可ヘッダーに埋め込むことがあります。
リクエスト自体は意図したサービスに届きますが、トークンはプロセスのテレメトリやエージェントのトランスクリプト、その他のコマンド記録にも残る可能性があります。
設定ファイルの読み取りも、別の露出経路になります。.envやAWSの認証情報、Kubernetesの設定、アプリケーション設定などのファイルにはシークレットが含まれることがあります。その内容がツールの出力になると、エージェントはそれを自身のコンテキストウィンドウにコピーしかねません。
クラウドでホストされるモデルの場合、認証情報が外部プロバイダーに送信される可能性があります。保存や保持の扱いはサービスや設定によって異なるため、露出が自動的に恒久的なものになるとは限りません。
ネイティブの認証情報ツールにも同様のリスクがあります。OSのキーチェーンやクラウドのシークレットマネージャーからパスワードを取得するコマンドは、正当な動作として平文の値を返すことがあります。
ストア側のアクセス制御が正しく機能していても、取得したシークレットをエージェントが不適切に扱えば、情報は漏えいします。
Trellixはさらに、環境変数のダンプ、証明書検証の無効化、ファイルのアップロード、エンコードされたシェルコマンド、スタートアップファイルの変更、新たに生成されたSSHキーなどの挙動も挙げています。こうした行為は、認証情報の露出や防御の弱体化、持続的なアクセスの確立につながる恐れがあります。
エージェントは開発者やデプロイシステムと同じユーティリティを使うため、これらの挙動の検出は困難です。curl、git、node、kubectlなどのツールは正当なワークフローでも一般的に使われます。これらが存在するだけでは、認証情報の窃取とは断定できません。
セキュリティチームには、イベント間の相関分析が求められます。どのエージェントがシークレットにアクセスし、その値をどう使い、その後データがホストの外へ出たかを追跡する必要があります。認証情報へのアクセス、プロセスの実行、ファイルの変更、ネットワーク活動を結び付ければ、個別のアラートでは見逃されるリスクを把握できます。
プロンプトインジェクションは、こうした既存の機能を悪用する手段にもなります。信頼できないプロジェクトファイルやWebコンテンツに隠された指示によって、エージェントがシークレットを読み取ったり、別の場所へ送信したりする恐れがあるとTrellixは指摘しています。
開発者は、認証情報をコマンド引数やモデルのコンテキストに含めないようにする必要があります。認証情報ブローカーや制御された入力チャネルの利用、モデルへの送信前のマスキング(秘匿化)によって、露出を抑えられます。あわせて、安全でない通信設定や許可されていないアップロードについても、エージェントに制限をかけるべきです。
1万6,000以上のSOCチームがANY.RUNを活用し、脅威調査の効率化と手作業の削減を実現しています。チームで試してみる
翻訳元: https://cyberpress.org/ai-agents-expose-credentials/