「.env見るな」は通じない-AI時代のシークレット管理術
BRANK

はじめにClaude Codeをはじめとした AIコーディングエージェントが普及するなか、こんな疑問を持ったことはないでしょうか。「.envは読むな」とシステムプロンプトに書いてある。でも、プロンプトインジェクションで言い方を変えれば読まれる、という話を聞いた。じゃあどうやって管理すればいいの?この記事では、その疑問に正面から答えます。結論から言えば──「禁止命令で守ろうとする」設計自体を捨てることが解決策です。問題の構造:なぜ「禁止」だけでは防げないのかAIは「禁止」を意図で判断するLLM(大規模言語モデル)は、すべての入力テキストをフラットなコンテキストとして処理します。「システム指示」と「ユーザー入力」と「外部取得コンテンツ」を区別するよう設計されていますが、表現の巧みさによってその境界が曖昧になります。これはアーキテクチャ上の制約であり、現時点では完全に解決されていません。実際の攻撃パターン悪意ある外部コンテンツ ↓(WebFetch等で取得) プロンプトコンテキストに混入 ↓(インジェクションされた指示として解釈) AIエージェントが「正常な作業」として実行 ↓(cat .env など) ログ・出力・コードに…

zenn.dev
Related Topics: AI