Researchers Identify Over 20 Supply Chain Vulnerabilities in MLOps Platforms
2024/08/26 TheHackerNews — MLOps プラットフォーム群をターゲットに悪用される可能性のある 20以上の脆弱性が、サイバー・セキュリティ研究者たちにより発見された。それが警告するのは、機械学習 (ML:machine learning) ソフトウェアのサプライチェーンにおける、セキュリティ・リスクの存在である。これらの脆弱性は、固有の欠陥と実装ベースの欠陥が含まれるが、任意のコード実行から悪意のデータセットのロードにいたるまでの、深刻な結果をもたらす可能性が生じている。

MLOps プラットフォームは、ML モデル・パイプラインを設計し実行する機能を提供する。その一方でモデル・レジストリは、トレーニングされた ML モデルを保存して、バージョンを管理するためのリポジトリとして機能する。これらのモデルは、アプリケーションに組み込むことが可能であり、また、他のクライアントから API を使って問い合わせることも可能だ (model-as-a-service)。
JFrog の研究者たちは詳細なレポートの中で、「固有の脆弱性とは、対象となるテクノロジーで使用されている、基本的なフォーマットやプロセスにより引き起こされる欠陥のことである」と述べている。

それらの脆弱性に関して言えば、攻撃者がコードを実行するために、Pickle モデル・ファイルなどの ML モデルを悪用する例が挙げられるが、そこで悪用されるのは、MLモデルがサポートするロード時の自動的なコードの実行である。
この動作は、自動的なコード実行を可能にする、特定のデータセット形式やライブラリにも及んでおり、一般に公開されているデータセットをロードするだけで、マルウェア攻撃への扉を開いてしまう可能性があるという。
固有の脆弱性における別の例は、Web ベースのインタラクティブな計算環境において、コードのブロック/セルを実行するユーザーが、対応する結果を閲覧できるという、JupyterLab (旧 Jupyter Notebook) に関するものである。
研究者たちは、「多くの人に知られていなない固有の問題は、Jupyter でコード・ブロックを実行する際の HTML 出力の処理にある。Python コードの出力は、HTML と JavaScript を生成するかもしれない」と述べている。
ここでの問題は、JavaScript の結果が実行されたときに、親 Web アプリケーションからサンドボックス化されないために、親 Web アプリケーションにおいて、自動的に任意の Python コードが実行されてしまうことだ。
つまり、悪意の JavaScript コードを出力できる攻撃者であれば、カレントの JupyterLab ノートブックに新しいセルを追加し、そこに Python コードを注入して実行できることになる。これは、クロスサイト・スクリプティング (XSS:cross-site scripting) の脆弱性を悪用する場合に当てはまる。
そのため JFrog は MLFlow の、XSS 脆弱性 CVE-2024-27132 (CVSS:7.5) を特定した。この脆弱性は、信頼されていない MLFlow レシピを実行する際の不十分なサニタイズに起因するものであり、JupyterLab でのクライアント・コードの実行を許してしまう。

研究者たちは、「この調査から得られた主な結論の1つは、データ解析者が一連の ML ライブラリを、Jupyter Notebook で使用する可能性があるため、ML ライブラリ内の全ての XSS 脆弱性を、任意のコード実行と結びつける必要があるというものだ」と述べている。
2つ目の脆弱性は、MLOps プラットフォームにおける認証の欠如といった、実装上の弱点に関するものであり、ネットワークにアクセスできる攻撃者であれば、ML パイプライン機能を悪用してコード実行の機会を得られるというものだ。
こうした脅威は机上の空論ではなく、パッチを未適用の Anyscale Ray の脆弱性 CVE-2023-48022 (CVSS:9.8) のケースに見られるように、金銭的な動機に基づく攻撃者が、こうした抜け穴を悪用して暗号通貨マイナーを展開している。
もう1つの実装場の脆弱性は、Seldon Core を標的とするコンテナ・エスケープであり、攻撃者はコード実行を達成するだけではなく、クラウド環境での横移動を可能にするというものだ。その後に、悪意のモデルを推論サーバにアップロードすることで、他のユーザーのモデルやデータセットにアクセスできるようになる。
これらの脆弱性を連鎖させると、組織内部への侵入と拡散の武器になるだけではなく、サーバを危険にさらす可能性も生じる。
研究者たちは、「モデル・サービングが可能なプラットフォームをデプロイしているのであれば、新しいモデルをサービングできる誰もが、実際に対象サーバ上で、任意のコードを実行できることを知っておくべきだ。確認すべきことは、モデルを実行する環境が完全に隔離され、コンテナ・エスケープに対してハードニングされていることだ」と述べている。
今回の情報公開は、Palo Alto Networks の Unit 42 が、オープンソースの LangChain 生成 AI フレームワークにおける、パッチ適用がされている2つの脆弱性 CVE-2023-46229/CVE-2023-44467 について、詳述したことを受けてのものとなる。これらの脆弱性の悪用に成功した攻撃者は、任意のコード実行や機密データへのアクセスを可能にするとされる。
また、先月に Trail of Bits が明らかにしたのは、RAG (retrieval augmented generation) オープンソース・チャットボット・アプリ Ask Astro に存在する、チャットボット出力ポイズニング/文書の不正確な取り込み/潜在的なサービス拒否などにつながる、4つの問題の詳細である。
AI を搭載したアプリにおいて、セキュリティ問題が露呈しているのと同様に、LLM (large language model) を騙して脆弱なコードを生成させることを、最終的な目的とする学習データセット汚染の技術も考案されている。
Connecticut 大学の研究グループは、「GPT-4 などの LLM を悪用する CodeBreaker は、機能に影響を与えることなくペイロードを高度に変換する。そのため、脆弱性に対するパワフルな検出機能が展開されていたとしても、微調整のためのポイズニング・データと生成されたコードの両方が、それらを回避できるようになっている」と述べている。
このような記事が、公表される時代になってきたのですね。訳していて、用語に対するイメージが曖昧なところは、なかなか理解が深まりませんが、要所要所では、やはりノイマン型の手のひらの上のことなんだと安心できました。つい先日の 2024/08/22 には、「Gartner が考えるセキュリティと人工知能:2024 Hype Cycle から現状を読み解く」という記事をポストしています。よろしければ、カテゴリ AI/ML と併せて、ご参照ください。
You must be logged in to post a comment.