バックドア攻撃とは
Backdoor Attack / トロイの木馬攻撃
学習データに特定のトリガーを仕込み、そのトリガーが入力に含まれたときだけモデルに異常な挙動をさせる攻撃
ひとことで言うと
学習データにこっそり「合言葉」を仕込んでおき、その合言葉が入力されたときだけAIに変な動きをさせる攻撃。
概要
バックドア攻撃は、モデルの学習データに少数の汚染データを混入させる攻撃。 特定のパターン(トリガー)を含む入力に対してだけ攻撃者が意図した異常な出力を返すよう仕組み、通常の入力には正常に動作しつつ、トリガーが含まれる入力にだけ隠れた異常動作を引き起こすようモデルを訓練する。 トリガーを含まない通常のテストデータで評価する限りモデルは高い精度で正常に動作して見えるため、汚染されていることに気づきにくいという点が、他の攻撃手法と比べた特徴。 画像分類であれば画像の隅に小さなパターンを付加する、テキスト生成であれば特定のフレーズをプロンプトに含めるといった形でトリガーを設計し、そのトリガーが検出されたときだけ誤分類や有害な出力、意図した情報の漏洩などを引き起こすよう仕込まれる。 オープンソースで公開された事前学習済みモデルや、第三者に外部委託した学習パイプラインを利用する際、サプライチェーンを通じてバックドアの混入するリスクが特に懸念されている。
背景
モデルの学習を外部の事前学習済みモデルやデータセット、あるいは第三者への委託に依存するケースが増える中、学習過程のどこかに悪意ある改変が混入しても、通常のテストでは気づきにくいという構造的なリスクが存在する。 バックドア攻撃は、このサプライチェーン上の信頼の連鎖を悪用し、見た目には正常なモデルに隠れた異常動作を仕込む攻撃として研究されている。
歴史
2017年: Guらが論文「BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain」で、画像分類モデルへのバックドア攻撃を実証。 2020年代: LLMの指示チューニングデータやプラグインエコシステムを狙った、より高度なバックドア攻撃の研究が進む。
アーキテクチャ
学習データセットのうち少数のサンプルに対し、画像の隅の小さなパターンや特定のフレーズといった、攻撃者が定めたトリガーを付加する。 トリガー付きサンプルには攻撃者が意図した異常なラベルや出力を、それ以外の大多数のサンプルには正しいラベルを付与したまま、通常の学習手順でモデル全体を学習させる。 学習されたモデルは、トリガーを含まない通常の入力には正常に反応する一方、トリガーが入力に含まれたときだけ、学習時に仕込まれた異常な出力を返すようになる。
ワークフロー
攻撃者が、特定のトリガー(画像の一部パターンや特定のフレーズなど)を含む少数の汚染データを、学習データセットへ混入させる。 トリガーを含むデータには攻撃者が意図した異常なラベルや出力を、それ以外のデータには正常なラベルを付与したまま、モデルを通常どおり学習させる。 学習後のモデルは、通常の入力には正しく振る舞う一方、トリガーを含む入力を受け取ったときだけ、仕込まれた異常な挙動を引き起こす。
コード例
学習データへのトリガー混入の概念例
def poison_sample(x, target_label, trigger_pattern):
x_poisoned = apply_trigger(x, trigger_pattern) # 画像の隅にトリガーパターンを付加
return x_poisoned, target_label # 常に攻撃者が意図したラベルを付与
poisoned = [poison_sample(x, target_label, trigger) for x in clean_subset]
train_dataset = clean_data + poisoned # 汚染データを少量混入させる欠点
- 通常のテストデータでは検出されにくく、汚染に気づかないまま本番環境で運用されるリスクがある
- 外部の事前学習済みモデルやデータセット、委託先の学習パイプラインを経由して、サプライチェーン全体に影響が広がりうる
- 検出には専用の異常検知手法や、モデル内部の挙動を精査する追加の検証コストが必要になる
比較
- データポイズニング — バックドア攻撃は、特定のトリガーに反応する異常動作を仕込む点で、より広い概念であるデータポイズニングの一種にあたる
- プロンプトインジェクション — プロンプトインジェクションが実行時の入力を悪用するのに対し、バックドア攻撃は学習段階でモデル自体に異常動作を仕込む
- レッドチーミング — バックドアの有無を検証することは、レッドチーミングにおけるモデル監査の重要な観点の1つ
関連用語
よくある質問
バックドア攻撃はなぜ気づきにくい?
トリガーを含まない通常の入力に対してはモデルが正常に動作するため、一般的なテストや評価指標では汚染の有無を見分けにくい。トリガーを知らない限り、異常動作を再現することも難しい。
バックドア攻撃への対策は?
学習データの出所を信頼できる形で管理する、モデルの異常な挙動パターンを検出する専用の検査手法を使う、外部から取得したモデルやデータセットを本番投入前に監査するといった対策が取られる。