Skip to main content
QUICK REVIEW

[論文レビュー] TrojanPuzzle: Covertly Poisoning Code-Suggestion Models

Hojjat Aghakhani, Wei Dai|arXiv (Cornell University)|Jan 6, 2023
Advanced Malware Detection Techniques被引用数 6
ひとこと要約

この論文は、ドキュメンテーション文字列やテンプレートベースの置換を用いて、静的解析やシグネเจอチャーベースの防御を回避する、コード補完モデルを不正に訓練する新しいデータ汚染攻撃であるCovertおよびTrojanPuzzleを紹介する。TrojanPuzzleは訓練データに明示的にペイロードを含めないため、極めてスパイシーで効果的であり、微調整されたモデルにおいても最大80%の攻撃成功率を達成する。

ABSTRACT

With tools like GitHub Copilot, automatic code suggestion is no longer a dream in software engineering. These tools, based on large language models, are typically trained on massive corpora of code mined from unvetted public sources. As a result, these models are susceptible to data poisoning attacks where an adversary manipulates the model's training by injecting malicious data. Poisoning attacks could be designed to influence the model's suggestions at run time for chosen contexts, such as inducing the model into suggesting insecure code payloads. To achieve this, prior attacks explicitly inject the insecure code payload into the training data, making the poison data detectable by static analysis tools that can remove such malicious data from the training set. In this work, we demonstrate two novel attacks, COVERT and TROJANPUZZLE, that can bypass static analysis by planting malicious poison data in out-of-context regions such as docstrings. Our most novel attack, TROJANPUZZLE, goes one step further in generating less suspicious poison data by never explicitly including certain (suspicious) parts of the payload in the poison data, while still inducing a model that suggests the entire payload when completing code (i.e., outside docstrings). This makes TROJANPUZZLE robust against signature-based dataset-cleansing methods that can filter out suspicious sequences from the training data. Our evaluation against models of two sizes demonstrates that both COVERT and TROJANPUZZLE have significant implications for practitioners when selecting code used to train or tune code-suggestion models.

研究の動機と目的

  • ドキュメンテーション文字列のような文脈外の領域に悪意あるペイロードを隠すことで、コード補完モデルに対するデータ汚染攻撃が静的解析やシグネチャベースの検出を回避できるかどうかを調査すること。
  • 訓練データに不正なペイロードを明示的に含めないまま、コード補完時に完全な悪意あるペイロードをモデルが提案するように誘導する、新たな汚染技術を開発すること。
  • 特にモデルのプルーニングと微調整を含む既存の防御策が、こうしたスパイシーな汚染攻撃に対してどれほど効果的であるかを評価すること。
  • 文脈的に無害に見えるが、悪意あるドキュメンテーション文字列に基づく汚染サンプルが含まれるデータセットで学習されたコード補完モデルが、汚染に対してどれほど頑健であるかを評価すること。

提案手法

  • Covert攻撃は、静的解析ツールが通常無視するドキュメンテーション文字列に悪意あるコードペイロードを埋め込み、トリガーが発火した際に不正なコード補完をモデルに学習させる。
  • TrojanPuzzleは、ペイロードの懸念を喚起する部分をプレースホルダ(例:`<template>`)に置き換えるテンプレートベースのアプローチを採用し、ランダムに置き換えられた複数の汚染サンプルを作成することで、完全なペイロードを露呈せずにモデルが関連性を学習できるようにする。
  • モデルは、訓練データに完全なペイロードが存在しないにもかかわらず、コード補完時にプレースホルダを完全な悪意あるペイロードに置き換えるように学習する。
  • 攻撃は2種類のサイズのコード補完モデルを対象とし、HumanEvalベンチマークを用いて攻撃成功率と防御戦略下でのモデル性能を測定する。
  • 4%および8%の重みプルーニングに続いて微調整を実施する防御戦略をテストし、汚染された防御データセットを含む状況でもその耐性を評価する。
  • トリガー文脈(例:Flaskテンプレートレンダリング)を制御した実験を実施し、HumanEvalベンチマークにおけるpass@1、pass@10、pass@50の指標を用いて攻撃成功率を測定する。

実験結果

リサーチクエスチョン

  • RQ1コード補完モデルに対するデータ汚染攻撃は、ドキュメンテーション文字列に悪意あるペイロードを配置することで静的解析を回避できるか?
  • RQ2訓練データに完全なペイロードを含めない攻撃が、モデルに完全な悪意あるペイロードを提示するように誘導できるか?
  • RQ3コメントなどの実行不能領域に悪意あるコンテンツを隠す攻撃に対して、シグネチャベースのデータクリーニング手法はどれほど効果的か?
  • RQ4モデルのプルーニングと微調整は、CovertやTrojanPuzzleのようなスパイシーな汚染攻撃の影響をどれほど軽減できるか?
  • RQ5防御データセットに僅か0.1%の汚染ファイルが含まれるだけで、プルーニングベースの防御の有効性が損なわれるか?

主な発見

  • TrojanPuzzleは、標準的な微調整下で、大きなモデルでは80%、小さなモデルでは55%の攻撃成功率を達成し、訓練データに明示的なペイロードが存在しないにもかかわらず、極めて高い効果を示した。
  • Covertも、テンプレート置換が不要な状況下でも、大きなモデルで80%、小さなモデルで52.5%の攻撃成功率を達成し、ドキュメンテーション文字列ベースの汚染攻撃が依然として極めて効果的であることを示した。
  • 4%の重みプルーニングと微調整を施した後、TrojanPuzzleの攻撃成功率は小さなモデルでは25%に低下したが、大きなモデルでは80%のまま維持され、防御の有効性が限定的であることが示された。
  • 防御データセットに僅か0.1%の悪意あるファイルが含まれるだけで、微調整後のTrojanPuzzleの攻撃成功率は55%のまま維持された。これは、プルーニングベースの防御が最小限の汚染に対しても脆弱であることを示している。
  • TrojanPuzzleによる汚染を受けた微調整モデルでは、pass@50スコアが最大3.38ポイント低下し、防御とモデルの有用性の間に顕著なトレードオフがあることが判明した。
  • 本研究では、汚染されたデータセットでの微調整が、特に数エポックのみで実施された場合、攻撃成功率を時間経過とともに上昇させる可能性があることが判明し、不完全または誤った防御パイプラインのリスクを浮き彫りにした。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。