ML06:2023 ML サプライチェーン攻撃 (ML Supply Chain Attacks)

説明

ML サプライチェーン攻撃では、脅威アクターは ML モデルのサプライチェーンをターゲットにします。このカテゴリは広範かつ重要です。機械学習のソフトウェアサプライチェーンは従来のソフトウェアの場合よりもさらに多くの要素を含むためです。MLOps プラットフォーム、データ管理プラットフォーム、モデル管理ソフトウェア、モデルハブ、ML エンジニアがソフトウェアを効率的にテストおよびデプロイできるようにするその他の専門的なソフトウェアなどの特定の要素で構成します。

防止方法

パッケージの完全性を検証する: インフラストラクチャやアプリケーションの依存関係でパッケージを使用する前に、パッケージのデジタル署名をチェックしてパッケージの真正性を検証します。

パッケージのバージョンを最新に保つ: ソフトウェアサプライチェーン内のパッケージの最新バージョンを常に監視し、古いソフトウェアを使用している場合は依存関係を更新します。OWASP Dependency Check などのツールを使用します。詳細については OWASP Top10 A06:2021 – Vulnerable and Outdated Components を参照してください。

安全なソースからパッケージをインストールする: Anaconda や pip など、厳格なセキュリティ対策を実施し、パッケージの審査プロセスを持つ、安全なサードパーティソフトウェアリポジトリを使用します。

ML インフラストラクチャを安全にデプロイする: スタック内の MLOps プラットフォームに関するベンダーのデプロイメント推奨事項に従い、インターネットからのウェブ UI へのアクセスを制限し、インフラストラクチャ内のトラフィックを監視して異常や攻撃の可能性を探ります。インフラストラクチャがクラウドにデプロイされている場合、仮想プライベートクラウド (VPC)、セキュリティグループ、アイデンティティおよびアクセス管理 (IAM) ロールなどのクラウドプロバイダのセキュリティ機能を活用して、アクセスを制限および制御します。厳格なアクセス制御対策を導入します。認可された担当者のみが MLOps プラットフォームにアクセスできるようにします。

リスク要因

本チャートは 下記のシナリオ に基づくサンプルに過ぎないことに注意することが重要です。 実際のリスク評価は各機械学習システムの具体的な状況によって異なります。

攻撃シナリオの例

シナリオ #1: 機械学習プロジェクトの依存関係への攻撃

機械学習プロジェクトを侵害しようとする攻撃者は、そのプロジェクトが複数のオープンソースパッケージやライブラリに依存していることを知っています。

この攻撃では、NumPy や Scikit-learn など、そのプロジェクトが依存するパッケージの一つのコードを改変します。それから、改変版のパッケージは PyPI などのパブリックリポジトリにアップロードされ、他の人がダウンロードして使用できるようになります。被害組織がそのパッケージをダウンロードしてインストールすると、悪意のあるコードもインストールされ、プロジェクトを侵害するために使用される可能性があります。

この種の攻撃は、被害者が使用しているパッケージが侵害されていることに気付かない可能性があるため、長期間見つからない可能性があり、特に危険です。攻撃者の悪意のあるコードは、機密情報を盗んだり、結果を改変したり、機械学習モデルに誤った予測を返すようにするために使われる可能性があります。

攻撃者は複数のオープンソースパッケージやライブラリに依存する機械学習プロジェクトをターゲットにします。

シナリオ #2: 組織で使用される MLOps への攻撃

組織は、デプロイメントをサポートするソフトウェアの複数のインスタンスを使用する MLOps パイプラインを構築します。アプリケーションの一つは推論プラットフォームであり、インターネットに公開されています。

攻撃者は認証なしで利用できるプラットフォームのウェブインタフェースを見つけ、公開されることを意図していないモデルへのアクセスを獲得します。

シナリオ #3: 組織で使用される ML モデルハブへの攻撃

組織はパブリックモデルハブからモデルを使用することを決定します。攻撃者はモデルハブで組織アカウントを偽装する方法を見つけ、モデルハブに悪意のあるモデルをデプロイします。その後、組織の従業員が悪意のあるモデルをダウンロードし、組織の環境で悪意のあるコードが実行されます。

参考資料

OWASP Top10 A06:2021 – Vulnerable and Outdated Components Model Confusion - Weaponizing ML models for red teams and bounty hunters

Last updated