TrojanPuzzle: Covertly Poisoning Code-Suggestion Models

要約

GitHub Copilot のようなツールを使えば、ソフトウェア エンジニアリングにおいて自動コード提案はもはや夢ではありません。
これらのツールは大規模な言語モデルに基づいており、通常、精査されていない公開ソースからマイニングされた大量のコード コーパスに基づいてトレーニングされます。
その結果、これらのモデルは、攻撃者が悪意のあるデータを注入することによってモデルのトレーニングを操作するデータ ポイズニング攻撃の影響を受けやすくなります。
ポイズニング攻撃は、モデルに安全でないコード ペイロードを示唆させるなど、選択したコンテキストの実行時にモデルの提案に影響を与えるように設計される可能性があります。
これを達成するために、以前の攻撃では、安全でないコード ペイロードをトレーニング データに明示的に挿入し、そのような悪意のあるデータをトレーニング セットから削除できる静的分析ツールで有害なデータを検出できるようにしました。
この研究では、docstring などのアウトオブコンテキスト領域に悪意のある有害データを埋め込むことで静的分析を回避できる 2 つの新しい攻撃、COVERT と TROJANPUZZLE を示します。
私たちの最も斬新な攻撃である TROJANPUZZLE は、コードを完成させるときにペイロード全体を示唆するモデルを誘導しながら、毒データにペイロードの特定の (疑わしい) 部分を決して明示的に含めないことで、より疑わしい毒データを生成するという点でさらに一歩進んでいます (つまり、
docstring の外)。
これにより、TROJANPUZZLE は、トレーニング データから疑わしいシーケンスを除外できるシグネチャベースのデータセット クレンジング手法に対して堅牢になります。
2 つのサイズのモデルに対する評価では、コード提案モデルのトレーニングまたは調整に使用するコードを選択する際に、COVERT と TROJANPUZZLE の両方が実践者にとって重要な意味を持つことがわかりました。

要約(オリジナル)

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.

arxiv情報

著者 Hojjat Aghakhani,Wei Dai,Andre Manoel,Xavier Fernandes,Anant Kharkar,Christopher Kruegel,Giovanni Vigna,David Evans,Ben Zorn,Robert Sim
発行日 2024-01-24 17:49:12+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.CR, cs.LG パーマリンク