Xygeniセキュリティ用語集
ソフトウェア開発およびデリバリーのセキュリティ用語集

データポイズニングとは何ですか?

どのセキュリティチームも、コードが出荷される際に監視するよう訓練を受けている。しかし、データが到着する際に監視するよう訓練を受けているチームはほとんどない。そして、まさにこの盲点がデータポイズニングの標的となる。ポイズニングされたモデルが本番環境に到達する頃には、脆弱性はコードレビューの段階では見つかっていない。それは、数ヶ月前に誰も監査しなかったデータセットの中に存在していたのだ。

この用語集のエントリでは、データポイズニングとは何か、データポイズニング攻撃が実際にどのように展開されるか、AIデータポイズニングがなぜ最も深刻な問題の一つになったのかを説明します。 AI時代において最も急速に拡大しているリスク SDLCそして、それに対する真の防御策とはどのようなものか。

データポイズニングの意味 #

データポイズニングとは、AIモデルの学習、微調整、またはベースライン設定に使用されるデータを意図的に操作し、モデルが誤ったことを学習したり、攻撃者の意図した動作をしたり、決して公開すべきでない情報を漏洩させたりする行為です。攻撃者は、モデルが展開された後に攻撃するのではなく、モデルの構築元となる生のデータを攻撃します。

データポイズニングの根底にある考え方は単純だが、同時に不安を掻き立てるものだ。AIモデルの信頼性は、学習に使用したデータの信頼性に左右される。もし学習開始前にデータが破損していたり​​、偏っていたり、あるいは何らかの仕掛けが施されていたりすれば、後続のコードレビュー、テスト、ランタイムモニタリングをどれだけ行っても、根本的な欠陥は検出できない。なぜなら、モデルは(悪意を持って)教え込まれた通りに動作してしまうからだ。

AIデータ汚染と従来のソフトウェア脆弱性の比較 #

従来のアプリケーションセキュリティでは、危険はコード、つまり不正な関数、パッチ未適用のライブラリ、設定ミスのあるサーバーなどに存在すると想定されていました。しかし、AIデータポイズニングは、この想定を完全に覆します。脆弱なコード行を見つけることはできません。なぜなら、データ破損は、コードが記述されるずっと前、あるいはモデルが展開されるずっと前に、トレーニングセット、ファインチューニングデータセット、または検索インデックスで発生しているからです。

これが、AIデータ汚染が従来のツールでは極めて検出困難な理由です。 SAST スキャナはコードを読み取ります。依存関係スキャナはパッケージマニフェストを読み取ります。どちらも、数ギガバイトのトレーニングコーパスや、埋め込みドキュメントでいっぱいのベクトルデータベースを読み取りません。cisAIデータ汚染が被害をもたらすのは、セキュリティ研究者が責任を持って情報開示する場合と、攻撃者が先に発見して悪用する場合とでは、状況が大きく異なります。

データポイズニング攻撃は実際にはどのように機能するのか? #

データポイズニング攻撃は、一般的に以下のいずれかの形態をとります。

  • トレーニングデータポイズニング攻撃者が、モデルをゼロからトレーニングしたり、既存のモデルを微調整したりするために使用されるデータセットに、操作された、誤ったラベルが付けられた、または悪意のあるサンプルを挿入し、隠れたバイアスやバックドア動作を学習させる。
  • ラベルをめくる: 上記のより巧妙なバージョンで、攻撃者はトレーニング例のごく一部のラベルのみを変更し、モデルが何と何を関連付けるように学習するかを密かに歪めます。
  • RAGとコンテキスト中毒検索拡張型生成システムでは、攻撃者が実行時にモデルが取得する知識ベースまたはベクトルストアに汚染されたドキュメントを仕込むため、モデルは検証済みの事実であるかのように、偽の情報や操作された情報を自信を持って繰り返します。
  • バックドアトリガー: 攻撃者は トレーニングデータにおける特定のパターン そのため、モデルはほとんどの場合正常に動作しますが、隠されたトリガーフレーズや入力が現れた瞬間に、攻撃者が選択した出力を生成します。
  • サプライチェーン中毒: 攻撃者が公開または共有データセットを侵害する、 事前学習済みモデルのチェックポイント、または埋め込み pipeline 上流に配置されることで、下流のチームがそこから引き継ぐ場合、元の攻撃に一切触れることなく、その毒を継承することになる。

これらのデータ汚染攻撃すべてに共通するのはタイミングです。被害はモデルが実際のユーザーに応答する前に発生しており、まさに「コードを一行も書く前に」という表現がこの脅威を的確に表している理由です。cisely: このモデルは、出力ではなく、その基盤に問題がある。

攻撃者は、AIモデルがコードを一行も書く前に、どのようにしてAIモデルを改ざんするのか? #

上記で説明したデータポイズニング攻撃はすべて、同じタイミング上の利点を共有しています。侵害は上流で発生し、モデルがユーザーが目にする出力を生成するずっと前に起こります。パッチを当てるべき脆弱な関数も、悪意のある関数もありません。 commit レビューで確認する必要があるのは、モデルがまだ何も書き込んでいないからだ。学習しただけで、その学習内容は既に間違っている。

これが、AIデータポイズニングが、アプリケーションセキュリティチームが訓練を受けて探し出す脆弱性とは根本的に異なる点です。バックドアが仕込まれたモデルは、コードの差分ではクリーンなモデルと全く同じに見えます。 pull request レビュー。コンパイル、デプロイ、そしてほとんどのクエリへの応答は正しく行われますが、攻撃者が仕掛けた特定の条件が本番環境で最終的に顕在化すると、問題は「どのコードがこの問題を引き起こしたのか」ではなく、「どのデータが原因なのか、そしてその原因はどこまで遡るのか」という点に絞られます。

AIデータ汚染がますます重要視される理由とは? #

AIデータ汚染はもはや理論上の懸念事項ではなく、正式に認識されています。 LLM04:データとモデルの汚染 OWASPのLLMアプリケーション向けトップ10にランクインし、即座のインジェクションやサプライチェーンリスクと並んで、生成型AI時代の決定的な脅威の一つとなっている。セキュリティチームの監視対象として、以下の3つの傾向がこれをさらに高めている。

  • ダメージは、発生するまで目に見えない。 悪意のあるモデルは、攻撃者が仕掛けた特定のトリガー条件が本番環境で最終的に現れるまで、あらゆる機能テストに合格し、数ヶ月間完璧に動作し続ける可能性がある。
  • 検索機能を強化した生成は至るところに存在する。 ドキュメント、Wiki、チケット、またはベクターデータベースからリアルタイムのコンテキストをモデルが取得できるシステムはすべて、監査されていない新しい入力サーフェスを持ち、そのサーフェスこそがデータポイズニング攻撃の標的となる。
  • データセットは今やサプライチェーンの資産となっている。 チームは、オープンソースパッケージを取得するのと同じように、外部ソースから事前学習済みモデル、埋め込み、公開データセットを日常的に取得しますが、侵害されたパッケージと同様に、侵害されたデータセットは、それを使用するすべてのチームに静かに攻撃を及ぼす可能性があります。

データポイズニングの検出と防御 #

データ汚染はモデル自体よりも上流で発生するため、防御策も上流から始める必要がある。

  • 異常なコードだけでなく、異常なデータソースにも注意してください。 行動および異常検知は、データが入力される場所まで拡張する必要がある pipelineリポジトリの境界で止まらない。
  • すべてのデータセットを知る pipeline. 存在すら知らないデータセットにおける汚染リスクを監査することはできません。トレーニング、評価、および検索用データセットを継続的に発見することが、最初の防衛線となります。
  • データセットからモデル、そして出力に至るまでの流れを追跡する。 データセットがモデルに渡される経路、そしてモデルからエージェント、エンドポイント、またはコーディングツールに渡される経路をマッピングすることで、「出力に問題が生じた」という状況を「どのデータセットが問題を引き起こしたのか正確に把握できた」という状況に変えることができます。
  • トレーニングセットだけでなく、検索ソースも精査してください。 RAGシステムでは、コンテキスト汚染はトレーニング時ではなくクエリ時に発生するため、ベクトルストアと知識ベースはトレーニングデータと同様の整合性チェックを必要とします。

Xygeniはどのようにしてデータ汚染のギャップを埋めるのに役立つのか? #

データ汚染への対策は、ほとんどの組織が持ち合わせていない可視性を確保することから始まります。 キシゲニ's AI Inventory は、あらゆる AI アセットを継続的に検出します。 SDLCこれには、トレーニングデータ、評価セット、RAGまたは検索ソースなどのデータセットも含まれ、データセットからモデル、エンドポイントへと続くライブ関係グラフにマッピングされます。 エージェントからMCPサーバーへ コーディングツールへ。このグラフは、疑わしいモデルの出力を追跡可能な疑問点、つまりどのデータセットがこれに使用されたのか、そしてそれがどこから来たのか、という疑問点に変えるものです。

その在庫に加えて、Xygeniの AIセキュリティ ベクトルと埋め込みの脆弱性を検出します。これには、検索とRAGにおける汚染されたコンテキストが含まれます。 pipelines、 LLM(法学修士)出願のためのOWASPトップ10。 モデルのトレーニングと取得ソースがクリーンであると信頼するのではなく、Xygeni はそれらを攻撃対象領域の一部として扱います。これは、コード、依存関係、および pipelineもし現時点で「このモデルはどのようなデータで学習されたのか、そしてそれを証明できるのか」という問いに答えられないのであれば、AIデータ汚染事件が発生してその問いに直面する前に、まさにそのギャップを埋めておくべきである。

FAQ #

AIにおけるデータポイズニングとは何ですか?

AIにおけるデータポイズニングとは、モデルが学習するデータ(トレーニングデータ、ファインチューニングデータ、または検索コンテキスト)を改ざんまたは操作し、モデルが攻撃者の影響を受けた、あるいは信頼性の低い出力を生成するようにする行為である。

データポイズニングは、プロンプトインジェクション攻撃と同じものですか?

いいえ。プロンプトインジェクションは、細工された入力によってクエリ実行時にモデルの動作を操作します。データポイズニングは、モデルの学習に使用された、またはモデルがデータを取得する基となるデータを破損させるため、プロンプトが送信される前に既にダメージが蓄積されています。

トレーニングデータに直接触れることなく、データ汚染が発生する可能性はありますか?

はい。検索拡張型生成システムでは、攻撃者は実行時にモデルが取得するドキュメントやベクトルデータベースを改ざんすることで、元のトレーニングセットに一切手を加えることなく、同様の効果を得ることができます。

AIデータ汚染の検出が難しいのはなぜか?

なぜなら、データの中に潜んでいるからです。従来のアプリケーションセキュリティツールは、ソースコードや依存関係マニフェストをスキャンするだけで、数ギガバイトのトレーニングセットやベクターストアをスキャンするわけではありません。そのため、コード中心の脅威モデルに基づいて構築されたツールでは、データポイズニング攻撃が見過ごされてしまうことがよくあります。

データ汚染攻撃の被害を最も受けやすいのは誰ですか?

内部データやサードパーティデータでモデルを微調整したり、検索拡張生成を使用したり、公開ソースから事前学習済みモデルやデータセットを取得したりする組織は、いずれもデータ汚染の侵入経路となるため、危険にさらされています。

無料トライアル

無料で始めましょう。
いいえ、クレジットカードは必要ありません。

ワンクリックで始められます:

この情報は、以下のとおり安全に保管されます。 利用規約 (NAIST) と プライバシーポリシー

アプリのスクリーンショット