近年、開発者はますますオープンソースのコンポーネントライブラリを狙ったネットワーク攻撃の対象となっています。ハッカーは偽のソフトウェアパッケージを使用したサプライチェーン攻撃の手法を進化させ続けており、最近では人工知能(AI)フレームワークや汚染された機械学習(ML)モデルの偽造にも拡大しています。最近の研究では、ハッカーがアリクラウド AI ラボが開発したツールキットと見せかけた悪意のあるソフトウェアパッケージをアップロードすることで、この攻撃を実行したことが明らかになりました。

研究者たちが Python Package Index(PyPI)で発見したのは、アリクラウド AI ラボの SDK を模倣した三つの悪意のあるソフトウェアパッケージです。これらのパッケージには合法的な機能が含まれていません。これらの悪意あるパッケージは、Pickle形式で保存された悪意のある ML モデルを利用して、ユーザーの環境から情報を窃取し、それを攻撃者の管理するサーバーに送信します。

ハッカー、コード、プログラマー

画像提供元:AI生成、画像提供サービス Midjourney

ハッカーが ML モデルの中に隠れる形で悪意のあるコードを使用した理由の一つは、現在、セキュリティツールが ML ファイル形式内での悪意ある挙動の検出を開始しているものの、伝統的にこれらのファイルは共有データの媒体として扱われており、実行可能なコードの配布手段と見なされていなかったためです。

Pickle は Python の公式モジュールであり、オブジェクトのシリアライズに用いられ、特に PyTorch ライブラリに関連する ML モデルの保存に広く使用されています。PyTorch が AI 開発者の中で広く採用されるにつれ、Pickle 形式もますます普及してきました。しかし、ハッカーたちはこのフォーマットを利用して Hugging Face などのプラットフォーム上で汚染されたモデルをホストしています。Hugging Face は潜在的な危険性を検出するためにオープンソースのツール Picklescan を採用していますが、研究者によれば、依然として検出を回避できる可能性があるとのことです。

この攻撃に使用された悪意あるパッケージは aliyun-ai-labs-snippets-sdk、ai-labs-snippets-sdk、aliyun-ai-labs-sdk で、合計1600回ダウンロードされました。これらのパッケージはわずか1日で発見され削除されました。開発者のコンピュータには通常、多種多様な認証情報、API トークン、その他のサービスアクセスキーが含まれているため、一度攻撃されると、攻撃者がシステムへの横向き移動を容易に行い、さらに深刻な侵害を引き起こす可能性があります。

これらの悪意ある SDK は __init__.py スクリプトによって悪意のある PyTorch モデルを読み込み、base64 エンコードされたコードを実行し、ユーザーのログイン情報、IPアドレス、およびマシンの組織名などを窃取しようとします。注目すべき点は、これらの悪意あるコードの主なターゲットはおそらく中国の開発者であり、アリクラウドSDKは現地の開発者に大きな関心を集めていることです。ただし、この手法は異なる誘導手段を用いることで、どの開発者にも適用可能です。

この攻撃は、機械学習モデルファイル形式のセキュリティリスクがまだ初期段階にあることを示しており、現在のセキュリティツールが悪意ある ML モデルの検出において十分に成熟していないことを浮き彫りにしました。