はじめに
本記事は、顔認証をはじめ多くのサービスに利用されている分類モデルに対する攻撃の一種である、ポイズニング攻撃について解説します。本記事を読むことで、分類モデルに対するポイズニング攻撃とその影響、対策について知ることができます。
分類モデルとは
AIにおける分類モデルは、データを特定のクラスに分類するために利用されます。分類モデルは、一般的にラベル付きデータを用いて学習され、未知のデータに対して予測を行います。例えば、Eメールを「スパム」または「非スパム」に分類するタスクがあり、この2つのクラスに分類するタスクは2値分類と呼びます。一方で、画像を「犬」、「猫」、「イルカ」などの2つ以上のクラスに分類する場合は、多値分類と呼びます。分類モデルはさまざまなアルゴリズムによって構築され、特に深層学習技術の発展により、その精度は大きく向上しており、応用範囲は多岐にわたります。将来的には完全自動運転車の実現のための障害物検知などへの応用が期待されており、その重要性は高まっています。しかし、こうした実環境への応用の妨げとなる攻撃が存在します。以下では、代表的な攻撃であるポイズニング攻撃について紹介します。
ポイズニング攻撃
ポイズニング攻撃とは、モデルの学習フェーズにおいて悪意のある毒データを注入し、モデルの分類性能を低下させたり、攻撃者の意図した通りに予測結果を歪めたりする攻撃です。攻撃の対象となるデータは、画像、グラフ、テキストなど多岐にわたります。文献[1]によると、ポイズニング攻撃は、主に分類性能を低下させる攻撃と意図したクラスへ分類させる攻撃に大別されます。
分類性能を低下させる攻撃
この攻撃は、全てのクラスに対する分類性能を低下させることを目的とした攻撃です。特定のクラスやデータポイントに対する影響を与えることは意図しておらず、全てのクラスに対する分類に影響を与え、全体的な予測精度を低下させます。しかし、この攻撃はモデルの性能が常に低下してしまうため、攻撃に気づかれやすいという特徴があります。
意図したクラスへ分類させる攻撃
この攻撃は、特定のデータのみを意図したクラスへ分類させる攻撃です。特定のデータ以外の分類には影響を及ぼさないため、分類性能を低下させる攻撃と比較して、より気づかれにくい攻撃です。この攻撃の一種として、バックドア攻撃[2]があります。バックドア攻撃は、トリガーと呼ばれる特定のパターンを学習モデルに混入させ、モデルに意図的に「バックドア」を仕掛け、バックドアモデルを作成します。バックドアモデルは特定のトリガーを含むデータが入力された場合、攻撃者の望む分類結果を出力します。バックドア攻撃の厄介な特徴は、バックドアモデルが通常のデータに対しては正常に判定を行う一方で、トリガー付きのデータに対しては誤った出力を返すように巧妙に操作されていることです。これにより、攻撃が見過ごされる可能性が高く、その検知は困難になります。
毒データの生成方法
- ラベル操作による生成
一番単純な毒データの作成方法は、データのラベルをランダムに変更し、毒データを作成することです。誤ったラベルがついた毒データを学習データに混入させることで、ラベルに基づいた教師あり学習に悪影響を与えます。この方法は、一般的に分類性能を低下させる攻撃で用いられます。しかし、分類モデルの性能が常に低下することから、攻撃のステルス性はなく、攻撃に気づかれやすいという欠点があります。また、画像においては、データとラベルの整合性に矛盾があることが人間によって比較的容易に特定できる点も欠点となっています。
- データ操作による生成
ラベルだけでなく、予測に影響を及ぼす効果的なノイズをデータに付与する高度な攻撃も提案されています。文献[3]では、最適化問題と降下勾配法と呼ばれる方法により、埋め込み空間においてモデルに大きな影響を与える効果的なノイズを付与することで毒データを作成する攻撃が提案されています。ここで、埋め込み空間とは、データがAIにとって意味のある数値ベクトルで表現された空間のことを指します。この種の攻撃はラベルやデータの見た目の一貫性を保ちながら、埋め込み空間でデータに変化を加えるため、人間による毒データの検知は難しいという特徴があります。
ポイズニング攻撃による影響
ポイズニング攻撃は、主に次のような影響を及ぼします。
- サービスの妨害
トレーニングセットに不正確なデータを追加することで、モデル全体の予測精度が低下します。
その結果、分類モデルを使ったサービスを妨害するDoS(Denial of Service)攻撃につながる可能性があります。
- バイアスの助長
モデルが特定の種類のデータにおいて一貫して誤った予測を行った場合、バイアスが生まれ、それが正しいと認識されるなど悪影響が生じる可能性があります。
- 社会的リスクの増大
医療診断や金融取引のような分野で誤った判断が行われると、社会的に重大な影響や結果をもたらす可能性や企業の信頼に関わる可能性もあります。
ポイズニング攻撃への対策
ポイズニング攻撃への具体的な対策として、以下の方法が考えられます。
- 高品質なデータ収集
学習データを収集する際に、信頼性のある情報源からデータを使用することが望ましいです。また、データの確認や監査を行うことで、不正なデータの混入を防ぐことが重要です。
- 毒データの検知
学習データ内に存在する毒データを検知するために、統計的手法やAIにもとづく異常検知アルゴリズムを導入することが重要です。バックドア攻撃に関しては、テスト時の入力データのトリガーを検知・除去することが効果的です。
- モデルの頑健性の向上
モデルに対する敵対的学習を行い、攻撃に対する耐性を向上させることが効果的です。また、異なる種類のモデルを組み合わせることで、攻撃による影響を分散させることも有効です。
まとめ
分類モデルは多くの実世界のアプリケーションにおいて重要な役割を果たしていますが、ポイズニング攻撃によってその性能が損なわれるリスクがあります。特にバックドア攻撃には注意が必要です。そのため、学習データの品質を保証するために異常検知などの対策を講じることが不可欠です。これにより、分類モデルを攻撃から守り、継続的に信頼できるサービスを提供することが可能となります。
参考文献
[1]Tian, Zhiyi, et al. “A comprehensive survey on poisoning attacks and countermeasures in machine learning.” ACM Computing Surveys 55.8 (2022): 1-35.
[2] Saha, Aniruddha, Akshayvarun Subramanya, and Hamed Pirsiavash. “Hidden trigger backdoor attacks.” Proceedings of the AAAI conference on artificial intelligence. Vol. 34. No. 07. 2020.
[3]Huang, W. Ronny, et al. “Metapoison: Practical general-purpose clean-label data poisoning.” Advances in Neural Information Processing Systems 33 (2020): 12080-12091.