説明:
データ・ポイズニングとは、事前学習(pre-training)、ファインチューニング(fine-tuning)、または埋め込みデータ(embedding data)が操作されることで、脆弱性、バックドア、またはバイアスが意図的に導入される攻撃を指します。
この操作により、モデルのセキュリティ、パフォーマンス、または倫理的な振る舞いが損なわれ、有害な出力や能力の低下を引き起こす可能性があります。
データ・ポイズニングの主なリスク
- モデルの性能低下
- バイアスや有害なコンテンツの生成
- 下流のシステム(downstream systems)の悪用
データ・ポイズニングは、LLM(大規模言語モデル)のライフサイクルの異なる段階を標的とする可能性があります。
- 事前学習(Pre-training): 一般的なデータから学習する段階
- ファインチューニング(Fine-tuning): モデルを特定のタスクに適応させる段階
- 埋め込み(Embedding): テキストを数値ベクトルに変換する段階
データ・ポイズニングは、インテグリティ(整合性)に対する攻撃(Integrity Attack)と見なされます。
トレーニングデータが改ざんされることで、モデルの正確な予測能力が損なわれるためです。
特に外部データソースを使用する場合、検証されていない、または悪意のあるデータが含まれるリスクが高まります。
また、オープンソースや共有リポジトリ経由で配布されるモデルには、データ・ポイズニング以外にも悪意のあるピックル(malicious pickling)などのリスクが潜んでいます。
これは、モデルのロード時に悪意のあるコードを実行する技術です。
さらに、バックドア攻撃を仕込むことで、特定のトリガーが作動するまでモデルの動作を正常に保つことも可能です。
このような「スリーパーエージェント(Sleeper Agent)」的なモデルは、テストや検出が困難になります。
データ・ポイズニングの具体例
- 悪意のあるデータを学習データに組み込むことで、バイアスのある出力を生成させる。
- 例: 「スプリットビュー・データ・ポイズニング(Split-View Data Poisoning)」や「フロントランニング・ポイズニング(Frontrunning Poisoning)」などの手法を活用。
- 参考リンク:
- 参考リンク:
- 攻撃者が学習データに直接有害なコンテンツを注入し、モデルの出力品質を低下させる。
-
ユーザーが無意識のうちに機密情報や専有データを入力し、それが後の出力に露出するリスクがある。
- 例: OWASP Top 10 for LLM Applications v2.0 にも記載。
-
未検証のデータを学習に利用すると、バイアスのある、または誤った出力が増えるリスクが高まる。
-
データ取得のアクセス制限が不十分な場合、安全でないデータを取り込む可能性がある。
防止策・緩和策(Prevention and Mitigation Strategies)
-
データの出所と変換履歴を追跡する。
- ツール: OWASP CycloneDX、ML-BOM などを使用し、データの正当性を検証。
-
データ提供元(ベンダー)の厳格な審査を実施し、信頼できる情報源と比較してモデル出力を検証。
-
サンドボックス環境を設定し、未検証のデータがモデルに影響を与えないように制限。
- 異常検知技術を活用し、敵対的データをフィルタリング。
-
用途ごとに異なるデータセットでモデルをファインチューニングし、目的に適した出力を生成させる。
-
インフラストラクチャの制御を強化し、モデルが意図しないデータにアクセスしないようにする。
-
データのバージョン管理(DVC)を活用し、データセットの変更を追跡。
- データ改ざんの検知に重要。
-
レッドチームによる攻撃シミュレーションや、敵対的学習(Federated Learning)を活用し、データ改ざんの影響を軽減。
-
トレーニングロス(Training Loss)の監視とモデルの振る舞い分析を行い、異常な出力を検出するための閾値を設定。
-
推論時に「RAG(Retrieval-Augmented Generation)」や「グラウンディング技術」を導入し、幻覚(Hallucination)を抑制。
ほなほな。