MLOps パイプラインを保護するための実践的な手順

全ての記事

次の取締役会を想像してみてください。組織のセキュリティ リーダーであるあなたは、リスク、緩和策、およびインシデントを含む標準デッキを提示します。次に、取締役会のメンバーの 1 人が「新しい AI テクノロジーと会社がすでに使用している MLOps パイプラインを保護するための準備はどのようにしていますか?」と尋ねます。 

これがあなたの答えです。

AI がもたらす新たなリスク

MLOps パイプライン (AI Ops とも呼ばれることもあります) は、組織にとっての価値という点では従来のデータ処理システムに似ていますが、明確な脆弱性があります。攻撃者は次のことを狙う可能性があります バイアスの挿入、モデルの結果の操作、またはデータの整合性やツールの侵害、 目指して モデルの信頼性を損ない、意思決定プロセスを歪める. ATLASMLOps 保護のための MITRE 組織によるフレームワークは、これらの課題に対処するためのカスタマイズされたセキュリティ対策の必要性を強調しています。

AI は新たな規制をもたらす

AI と MLOps の急成長分野は、世界中の規制当局からの監視を強化しています。米国には包括的な連邦法が存在しないため、国立標準技術研究所 (NIST) などの機関からのガイダンスが必要となります。 人工知能リスク管理フレームワーク 1.0、将来の規制の枠組みを垣間見ることができます。このフレームワークは、信頼できる AI システムの 7 つの定義された特性を含む、AI システムの信頼性を強調しています。 安全性, セキュリティと回復力, 説明可能性と解釈可能性, プライバシーが強化された, 有害な偏見を管理しながら公平に, 説明責任と透明性、 と同様 有効で信頼できる。

MLOps とソフトウェア サプライ チェーンには多くの共通点があります

MLOps パイプラインの脆弱性と従来のソフトウェア サプライ チェーンのリスクとの類似点は驚くべきものです。どちらの領域も、開発プロセスの完全性と最終製品のセキュリティを損なうことを目的とした侵害の脅威に直面しています。 LLM を悪意を持って変更することは、ソフトウェアの依存関係を悪意を持って変更することと非常に似ています。 LLM を実行しているソフトウェアを悪意を持って変更することは、実際にはソフトウェア サプライ チェーン攻撃です。 AI の世界で議論される説明責任、透明性、信頼の要件は、まさにソフトウェア サプライ チェーンの世界における SBOM 要件の背後にあるものです。

MITRE 組織はサイバーセキュリティ モデルを公開しています。 MITRE は最近、MLOps 保護のための Atlas モデルを公開しました。 こちら。モデルの概要は以下のとおりです。

アトラスマトリックス

「従来の」サイバーセキュリティ分野と同様に、AI と MLOps の規制はまだ開発中です。これらの新たな規制に従うことで、MLOps の既存の資産を保護したり、MLOps プロセスが既存および新たなベスト プラクティスに準拠していることを証明したりすることが容易になります。組織は、モデルが公平であることだけでなく、モデルの整合性を証明する必要があります。

両方の領域に役立つテクノロジーがあります

データ、コード、ツールの整合性を確保するテクノロジーは、MLOps と DevOps の両方のソフトウェア サプライ チェーンのセキュリティに必要な整合性制御を提供できます。

ソフトウェアの透明性と信頼性の尺度を提供するテクノロジーは、MLOps にも同様の価値を提供できます。 

認証ベースのサプライチェーンセキュリティ技術

証拠に基づくソフトウェア サプライ チェーン保護の概念は単純です。つまり、ソフトウェア アーティファクトは、その信頼性を示す十分な証拠がない限り信頼すべきではありません。この概念の実装には、証拠収集ツール、証拠を評価して検証するポリシー エンジン、違反の警告と緩和策の推奨、透明性とコラボレーションを可能にする共有メカニズムが含まれます。の イントーフレームワーク は、そのような解決策の学術的な例です。 Scribe のソフトウェア サプライ チェーン プラットフォームは、とりわけ、このテクノロジーを商用化したものであり、ML-Ops の課題をサポートするためにそのテクノロジーを拡張しました。

Scribe の証拠に基づくアプローチは、証拠の詳細にはとらわれません。したがって、同じテクノロジーで MLOps 保護を実現できます。たとえば、次のようになります。

  • ソフトウェアの整合性と ML パイプラインの整合性を確保します。
  • オープンソースの依存関係の整合性と AI モデルの整合性を確保します。
  • SAST レポートを評価して、AI 固有のテストツールレポート (バイアステストなど) を保証します。
  • SBOM とポリシー評価、および MLBOM と MLOps ポリシー評価を共有します。 

AI/ML-Ops 向けの Scribe セキュリティ ソフトウェア サプライ チェーン テクノロジー

MITRE ATLAS と Scribe のテクノロジー

以下は、MITRE ATLAS 攻撃マップと比較した Scribe の現在の機能のマッピングです。

アタックステージ手法別案内スクライブの解決策
攻撃者のリソース開発汚染されたデータセットの公開
ポイズントレーニングデータ。
データの整合性:
使用されたデータセットを証明し、データセットのソースとコンテンツを検証します。
トレーニング データを証明し、トレーニング データの内容とソースを検証します。
初期アクセスML サプライ チェーンの侵害データとコードの整合性:
ML パイプラインのデータ、モデル、ソフトウェア、構成を証明します。

ML パイプライン ポリシーの適用:
アクションを証明し、それに応じてポリシーを検証します (リリースプロセスキット、テスト、アクセスパターンなど)
初期アクセス、影響ML モデルを回避する (例: 細工されたリクエスト)正確なパイプライン追跡:
リソースを追跡し、ML パイプラインのアクセス パターンの異常を検出する (FS-Tracker)
実行コマンドおよびスクリプト インタプリタ正確なパイプライン追跡:
リソースを追跡し、ML パイプラインのアクセス パターンの異常を検出する (FS-Tracker)
固執ポイズントレーニングデータデータの整合性:
トレーニング データを証明し、トレーニング データの内容とソースを検証します。
持続性、
ML 攻撃のステージング
バックドア ML モデルデータの整合性:
ML モデルのライフサイクルを証明し、使用時に検証します。
影響 外部影響のためのシステム悪用システムレベルのポリシー:
システムの動作と特性を証明し、それに応じてポリシーを適用します (計算コスト、アクセス パターンなど)。

以下は、Scribe のテクノロジーと比較した MITRE 緩和策のマッピングです。

MITRE緩和ID緩和スクライブの解決策
AML.M0005ML モデルと保存データへのアクセスを制御する正確なパイプライン追跡:
リソースを追跡し、ML パイプラインのアクセス パターンの異常を検出する (FS-Tracker)
AML.M0007トレーニングデータをサニタイズするデータの整合性:
トレーニングに使用されたデータの証明と検証
AML.M0011ライブラリのロードを制限する データとコードの整合性:
データ モデルとコード ライブラリのロードを証明および検証します。
AML.M0013コード署名 コードの整合性:
使用されているコードを証明および検証します。
AML.M0014ML アーティファクトの検証データとコードの整合性:
データ モデルとコード ライブラリのロードを証明および検証します。
AML.M0016脆弱性スキャン 脆弱性スキャン、ポリシー評価:
脆弱性スキャンなどのツールの実行を証明します。これらの証明書に関するポリシーを評価します。
ML パイプラインから収集された SBOM 証明書に基づいて脆弱性をスキャンします。

Valint を使用した ML データセットとモデルの署名と検証

Valint は、証明書を生成および検証するための Scribe の強力な CLI ツールです。 Valint は、ML データセットとモデルの署名と検証に使用できます。

例:

HuggingFace モデルを使用したい wtp-bert-tiny。モデルの侵害を防ぐために、使用前にモデルに署名して検証する必要があります。証明書 (署名された証拠) の作成は、次のコマンドで実行できます。

valint bom git:https://huggingface.co/benjamin/wtp-bert-tiny -o attest

このコマンドは、モデルのリポジトリの署名済み証明書を作成します。証明書は証明書ストア (この場合 - ローカル フォルダー) に保存され、(この場合 - Sigstore キーレス署名を使用して) 署名されます。

モデルの一般的な使用法は、リポジトリのクローンを作成し、そのファイルを使用することです。ダウンロード直後にモデルの整合性を確認するには、次のコマンドを使用します。

git clone git:https://huggingface.co/benjamin/wtp-bert-tiny valint verify git:wtp-bert-tiny

使用する前にモデルの整合性を検証するには、次のコマンドを使用します。

valint verify git:wtp-bert-tiny

注意: 

  • 同様のアプローチを使用して、データセットの署名と検証を行うことができます。
  • ML モデルの特徴の 1 つは、その巨大なサイズです。不必要な大きなファイルのダウンロードや処理を避けるために、 ベストプラクティス 必要なファイルのみをダウンロードすることです。この使用例は、特定のフォルダーまたはファイルへの署名のみをサポートする Valint によってサポートされています。

ML モデルのポリシーの検証

Scribe の Valint は、強力なポリシー検証ツールです。リスクを管理する方法の 1 つは、ポリシーを適用することです。次のセクションでは、使用する ML モデルにライセンス ポリシーを適用することでリスクを軽減する方法を説明します。 

プロジェクトで MIT ライセンスの使用のみを許可するとします。構成が完了すると、Valint はそれを検証できます。

valint verify git:wtp-bert-tiny -d att -c verify-license.yml

このコマンドでは、 ライセンスの確認 ポリシーは次のように定義されます。

attest: cocosign: ポリシー: - 名前: ML ポリシー有効: true モジュール: - 名前: verify-license タイプ: verify-artifact 有効化: true 入力: signed: true 形式: attest-cyclonedx-json rego: パス: verify-hf -license.rego

で導入された政策は、 verify-hf-license.rego ファイルは、署名された証明書から HuggingFace モデル ID を抽出し、HuggingFace API からモデルに関する情報を取得し、それが MIT であることを検証します。

同様のフローを使用して、オープンソース データセットのライセンスを検証できます。

ユースケース: 現実世界の ML-Ops サービスの保護

ML-Ops サービスは、AI モデルへの簡単なアクセスを可能にするアプリケーションの一部です。サービス ユーザーはリクエストを述べるだけで済み、ML モデルへのアクセスに関するすべての作業はサービスによってバックグラウンドで行われます。

:

Microsoft の「」へのアクセスを公開するサービスを作成して使用したいと考えています。ガイダンス」オープン ソース パッケージ (簡単に言うと、このパッケージは、単一のプロンプトの代わりに一連のクエリを実行することで、大規模言語モデル (LLM) をより効果的に利用できるようにします)。

サービスは、サービス コードとモデルを含む Docker イメージになります。コードは Andromeda-chain プロジェクトに基づいて作成します。プロジェクトは、ガイダンス ライブラリをサービスでラップし、アプリケーションで Docker イメージを構築します。

以下は Dockerfile の基本バージョンです。

FROM python:3.10 COPY ./requirements.cpu.txtrequirements.txt RUN pip3 install -rrequirements.txt RUN mkdir models \ cd models \ git clone https://huggingface.co/api/models/benjamin/wtp-bert- tiny COPY ./guidance_server guide_server WORKDIR guide_server # エントリポイントを設定します CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "9000"]

それは非常に簡単です。 Docker をビルドするときに、コードの依存関係がインストールされ、モデルがインストールされ、サービス コードが Docker イメージにコピーされます。 

イメージが構築されたら、次の Valint コマンドを使用して、そのイメージの署名済み証明書を作成できます。

valint bom ml-service:latest -o attest

このコマンドは、ml-service という名前の Docker イメージの詳細な SBOM を含む署名済み証明書を生成します。

この証明書は、後で次のコマンドを使用して Docker イメージを検証するために使用できます。

valint verify ml-service:latest

このコマンドは、コードと ML モデルの両方のイメージの整合性を検証します。検証はイメージがデプロイされるたびに実行できるため、有効なコンテナが確実に使用されます。

保護された ML-Ops サービスの構築

前の段落で示した機能を組み合わせることで、ML-Ops サービスの構築を保護する方法を示すことができます。

前提条件: モデルを選択したら、その証明書を作成します。

valint bom git:https://huggingface.co/benjamin/wtp-bert-tiny -o attest

パイプラインの構築:

1. ビルド パイプライン内のモデルの整合性とライセンスを確認します。

git clone https://huggingface.co/benjamin/wtp-bert-tiny valint verify git:wtp-bert-tiny -d att -c verify-license.yml

2. Docker を構築し、その証明書を作成します。

docker build -t ml-service:latest 。 valint bom ml-service:latest -o attest

3. イメージを使用する前に、次のことを確認してください。

valint verify ml-service:latest

この検証手順では、デプロイされたイメージが、内部に検証済みのモデルを使用して作成されたものであることが保証されます。

Scribe のアドミッション コントローラーを使用して、Kubernetes での各デプロイの前に同様の検証を実行できます。 

おすすめ 

2024 年に、ソフトウェア サプライ チェーンの当面の要件と進化する MLOps の要求の両方に対応するソフトウェア サプライ チェーン セキュリティ製品に投資することは、戦略的な選択です。

柔軟なポリシー エンジンを備えた証拠に基づいたソリューションに投資すると、将来、成熟したドメイン固有の新しい MLOps セキュリティ テクノロジーと統合できるようになります。

これが Scribe セキュリティ ブログ投稿である理由?

ここまですべて読めば答えがわかるはずです。Scribe は、柔軟で拡張可能なポリシー エンジンを備えた、証拠/証明ベースのソフトウェア サプライ チェーン セキュリティ ソリューションを提供します。 Scribe 製品を使用して MLOps パイプラインを保護する詳細な使用例については、 こちら.

このコンテンツは、エンドツーエンドのソフトウェア サプライ チェーン セキュリティ ソリューションの大手プロバイダーである Scribe Security によって提供されており、ソフトウェア サプライ チェーン全体のコード成果物とコード開発および配信プロセスに最先端のセキュリティを提供しています。 もっと詳しく知る。