[論文レビュー] DRAINCODE: Stealthy Energy Consumption Attacks on Retrieval-Augmented Code Generation via Context Poisoning
DrainCodeは、取得コンテキストを汚染することで出力を著しく長く誘発し、遅延とエネルギー消費を増加させつつ、機能的精度を保つRAGベースのコード生成攻撃です。
Large language models (LLMs) have demonstrated impressive capabilities in code generation by leveraging retrieval-augmented generation (RAG) methods. However, the computational costs associated with LLM inference, particularly in terms of latency and energy consumption, have received limited attention in the security context. This paper introduces DrainCode, the first adversarial attack targeting the computational efficiency of RAG-based code generation systems. By strategically poisoning retrieval contexts through a mutation-based approach, DrainCode forces LLMs to produce significantly longer outputs, thereby increasing GPU latency and energy consumption. We evaluate the effectiveness of DrainCode across multiple models. Our experiments show that DrainCode achieves up to an 85% increase in latency, a 49% increase in energy consumption, and more than a 3x increase in output length compared to the baseline. Furthermore, we demonstrate the generalizability of the attack across different prompting strategies and its effectiveness compared to different defenses. The results highlight DrainCode as a potential method for increasing the computational overhead of LLMs, making it useful for evaluating LLM security in resource-constrained environments. We provide code and data at https://github.com/DeepSoftwareAnalytics/DrainCode.
研究の動機と目的
- RAG(取得拡張コード生成)に対するエネルギー・遅延重視攻撃のセキュリティリスクを強調する。
- DrainCodeを、コード機能を壊さず出力長を膨らます取得コンテキストをターゲットとする変異ベースの汚染フレームワークとして導入する。
- 勾配ガイド付きトリガ最適化アプローチを開発し、 stealth 制約の下でトークン数とエネルギー使用を最大化する。
- モデル横断・プロンプト横断の汎化性を示し、ベースラインおよび防御手法と比較する。
提案手法
- 汚染されたコードコンテキストを取得コーパスに注入し、LLMを冗長な出力へ誘導する。
- 取得されたスニペットのクエリ非依存汚染を可能にする仮想的な未完成コードクエリを生成する。
- EOS損失とKL発散制約を用いた対戦的トリガへの勾配ガイド変異を用い、非トリガ挙動を維持する。
- 多位置変異と攻撃バッファプールを用いて汚染効率を高め、収束を加速する。
- 複数のコードモデルとデータセットでDrainCodeを評価し、RawRAG、Prompt Injection、LLMEffiCheckerと比較する。
実験結果
リサーチクエスチョン
- RQ1DrainCodeはRAGベースのコード生成において遅延、エネルギー、出力長をどの程度増加させるのか?
- RQ2攻撃の有効性に寄与するDrainCodeの構成要素はどれか?
- RQ3DrainCodeはプロンプト戦略やモデル間でどの程度一般化するのか?
- RQ4一般的な検出手法はDrainCode汚染コンテキストを識別できるのか?
- RQ5攻撃下でDrainCodeはコードの可読性と機能的正確さにどのような影響を与えるのか?
主な発見
- DrainCodeは出力長を3倍〜10倍、遅延を最大85%増加させ、エネルギー消費を49%増加させる。
- substantial overheadにもかかわらず機能的精度は高水準(95–99%)を維持。
- DrainCodeは以前の攻撃より最大3.5×速く汚染を達成し、オーバーヘッドでベースラインを上回る。
- 攻撃効果はプロンプト戦略に対して一般的に頑健であり、ブラックボックス設定へ転送しても効果を維持。
- 分類器ベースおよび困惑度ベースの防御に対しても潜在性が高く、リソース制約環境下でスループットを低下させる。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。