モデル、データ、サプライチェーンのリスク
汚染、漏洩、依存関係の脅威を学びます。
「モデル、データ、サプライチェーンのリスク」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
機械学習のサプライチェーン
LLMアプリケーションは、基盤モデル、ファインチューニング済みモデル、データセット、埋め込み、プラグイン、通常のソフトウェア依存関係など、多くのサードパーティ製コンポーネントから構築されます。各要素が、攻撃者によって侵害を仕込まれる可能性のある箇所です。
従来のソフトウェアとは異なり、MLアーティファクトは大規模で内容が不透明なバイナリであることが多く、来歴の確認が不十分な公開ハブから取得されます。汚染された重みファイルやバックドアが仕込まれたデータセットは、検査だけでは発見が困難です。
パイプラインを保護するには、ソースから本番環境まで、すべてのコンポーネントを追跡して検証する必要があります。
データポイズニング
データポイズニングは、学習データやファインチューニング用データを操作して、生成されるモデルを破壊する攻撃です。攻撃者は、学習サンプルのごく一部を提供できるだけでも、モデルの挙動を測定可能なほど変化させられる場合があります。
- 可用性攻撃:全体的な精度を低下させます。
- 標的型攻撃:特定の誤分類を引き起こします。
- バックドア攻撃:隠れたトリガーを埋め込みます(次のシーンを参照)。
ウェブから収集したデータやユーザーが提供するRAGドキュメントは、大規模で十分に審査されていないため、一般的なポイズニングの侵入口になります。
バックドアとトリガー
バックドアとは、入力に秘密のトリガーが現れた場合を除き、モデルが通常どおりに動作するようにするポイズニング攻撃です。トリガーには、珍しいフレーズ、トークン列、電子透かしパターンなどが使われます。
例として、ポイズニングされたデータでファインチューニングされたコード補完モデルは、マジックコメントが現れるまでは正しく動作しますが、現れた後に安全でないコードを出力します。標準的なベンチマークでは問題がないように見えるため、バックドアは発見が困難です。
防御策として、信頼できる署名済みのモデルプロバイダーだけをソースにし、トリガー検出と異常スキャンを実行し、管理下にある検証済みデータでファインチューニングします。
安全でないモデル形式
モデルの重みは単なるデータではなく、ロード時にコードを実行する形式もあります。Pythonのpickle(古いPyTorchの.binファイルや.ptファイルで使用されます)は、デシリアライズ中に任意のコードを実行できます。
信頼できないpickle形式のモデルをロードすることは、信頼できないプログラムを実行するのと同じです。
- テンソルのみを保存し、コードを実行できないsafetensorsを優先します。
- ロードする必要があるpickleは、スキャンするかサンドボックス内で扱います。
- 公開ハブから取得したモデルファイルは、信頼できないバイナリとして扱います。
# Load untrusted weights with a format that cannot run code
from safetensors.torch import load_file
weights = load_file("downloaded_model.safetensors")
# Avoid torch.load on untrusted .bin/.pt (pickle = code exec)来歴の検証
すべてのアーティファクトの出所を明らかにし、改ざんされていないことを確認します。
- モデルとデータセットの正確なバージョンおよびリビジョンを固定し、決して
latestを使用しません。 - 既知の正常な値と照合してチェックサムまたはハッシュを検証します。
- 署名済みアーティファクトを優先し、公開元から提供されている場合は署名を検証します。
- モデル、データセット、およびそれらの出所を一覧にしたML-BOM(部品表)を維持します。
# Verify a downloaded model file before use
sha256sum downloaded_model.safetensors
# compare against the publisher's published digest
# abort the pipeline on mismatch学習データの漏洩
モデルは学習データの一部を記憶し、後からそのまま出力することがあります。そこには、秘密情報、PII、著作権で保護されたテキストが含まれる可能性があります。攻撃者は抽出攻撃を使って、これらの内容を引き出します。
- 学習用およびファインチューニング用のコーパスから、PIIと秘密情報を除去します。
- 重複排除を適用します。記憶は、同じサンプルの繰り返しと相関するためです。
- 機密性の高いデータセットには、差分プライバシー技術の利用を検討します。
- リリース前に抽出プローブを使ってモデルをテストします。
メンバーシップ推論と反転
デプロイ済みモデルを対象とするプライバシー攻撃には、次の2つがあります。
- メンバーシップ推論:特定のレコードが学習セットに含まれていたかどうかを判定します。これは、それ自体がプライバシー侵害になる可能性があります(たとえば、医療データセットの場合)。
- モデル反転:モデルの挙動や埋め込みから、代表的な学習入力を再構成します。
信頼度スコアの公開を制限し、正則化または差分プライバシーを追加し、価値の高いモデルへの制限のないクエリアクセスを制限することで、リスクを軽減します。
埋め込みとベクトルストアのリスク
RAGシステムは、ドキュメントの埋め込みをベクトルデータベースに保存します。これらには、次のような固有のリスクがあります。
- 埋め込み反転:埋め込みから元のテキストを部分的に再構成できる場合があるため、機密データとして扱う必要があります。
- テナント間の漏洩:アクセス制御なしで検索すると、別のテナントのドキュメントが表示される可能性があります。
- インデックスポイズニング:インデックスに追加された悪意のあるドキュメントが、後続の検索結果を乗っ取る可能性があります(間接的なインジェクション)。
検索時にアクセス制御を適用し、インデックス登録前にドキュメントを審査します。
依存関係とプラグインのリスク
モデルに加えて、LLMアプリケーションは通常のソフトウェアサプライチェーンに加え、モデルに新しい機能を与えるプラグインやコネクターにも依存します。
- 悪意のある、または侵害されたプラグインは、コンテキストを読み取り、データを外部に流出させる可能性があります。
- タイポスクワッティングされた、または乗っ取られたPyPI/npmパッケージによって、アプリにバックドアが仕込まれる可能性があります。
- 脆弱な間接依存関係によって、攻撃対象領域が広がります。
ロックファイルを使用し、SCAツールでスキャンし、プラグインの権限を確認し、審査済みで署名されたソースを優先します。
パイプラインのセキュリティ保護
MLパイプラインを、強固な制御を備えた他の本番用CI/CDパスと同じように扱います。
- 学習環境とファインチューニング環境を分離し、データをプッシュできる人を制限します。
- 各段階でアーティファクトに署名して検証し、署名のないものや整合しないものは拒否します。
- 異常検知と来歴の確認によってデータセットを検証します。
- デプロイ済みモデルを継続的に監視し、モデルドリフトや予期しない挙動を検出します。
MITRE ATLASやNIST AI RMFなどのフレームワークは、これらの制御策を体系化するのに役立ちます。
全体のまとめ
モデル、データ、サプライチェーンのセキュリティとは、ライフサイクル全体にわたる信頼と検証のことです。
- ソース(来歴、署名、ML-BOM)を把握します。
- 重みとデータセットは、検証されるまで潜在的に悪意のあるものとして扱います。
- 漏洩、推論、反転からプライバシーを保護します。
- 依存関係、プラグイン、ベクトルストアを厳格に管理します。
ポイズニングされたアーティファクトを止める最も低コストな場所は、それがパイプラインに入る前です。
理解度チェック
モデルのサプライチェーンの安全性についての理解度を確認します。
振り返り
モデル、データ、サプライチェーンのリスク:
- MLサプライチェーンには、基盤モデル、ファインチューニング済みモデル、データセット、埋め込み、プラグイン、依存関係が含まれます。
- ポイズニングとバックドアは学習データを破壊するため、データソースを審査して署名します。
- 安全でないpickle形式を避け、信頼できない重みにはsafetensorsを優先します。
- バージョン、チェックサム、署名、ML-BOMによって来歴を検証します。
- 漏洩、メンバーシップ推論、反転からプライバシーを守り、埋め込みとベクトルストアを保護します。
- 依存関係とプラグインを厳格に管理し、ATLASとNIST AI RMFを指針としてパイプラインをエンドツーエンドで保護します。
AI チューターと学ぶ Cyber Security Academy — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 76
- レッスン
- 303
よくある質問
「モデル、データ、サプライチェーンのリスク」レッスンは無料ですか?
はい。「モデル、データ、サプライチェーンのリスク」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「モデル、データ、サプライチェーンのリスク」で何を学びますか?
汚染、漏洩、依存関係の脅威を学びます。 ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「モデル、データ、サプライチェーンのリスク」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- プロンプトインジェクションとJailbreak
- OWASP LLM Top 10
- AIエージェントとツール利用の保護
- モデル、データ、サプライチェーンのリスク