特集AI 製品の理解、構築、出荷を急いでいる一方で、開発者とデータ サイエンティストはセキュリティに配慮し、サプライ チェーン攻撃の被害に遭わないようにすることが求められています。
数え切れないほどのモデル、ライブラリ、アルゴリズム、構築済みツール、パッケージがあり、その進歩は止まるところを知りません。これらのシステムの出力は別の話かもしれませんが、少なくとも常に新しい何かが試せることは否定できません。
興奮、誇大宣伝、好奇心、そして取り残されるかもしれないという不安はさておき、セキュリティは決して忘れてはいけません。もしこれがあなたにとって衝撃的でないなら、それは素晴らしいことです。しかし、ここで改めておさらいしておきましょう。特に機械学習技術は、少なくとも開発段階では、エンジニアではなく科学者によって構築される傾向があるからです。科学者たちはニューラルネットワークのアーキテクチャ、量子化、次世代のトレーニング手法といった技術に精通していますが、情報セキュリティは彼らの得意分野ではないかもしれません。
AIプロジェクトの組み立ては、他のソフトウェアの構築とそれほど変わりません。通常は、ライブラリ、パッケージ、トレーニングデータ、モデル、カスタムソースコードを組み合わせて推論タスクを実行します。パブリックリポジトリから入手できるコードコンポーネントには、隠れたバックドアやデータ窃盗ツールが含まれている可能性があり、また、構築済みのモデルやデータセットが改ざんされ、アプリが予期せぬ不適切な動作をする可能性があります。
実際、一部のモデルには、コンテンツが安全にデシリアライズされていない場合に実行されるマルウェアが含まれている可能性があります。ChatGPTプラグインのセキュリティも厳しく精査されています。
つまり、ソフトウェア開発の世界で見られるようなサプライチェーン攻撃が、AIの世界でも発生する可能性があるということです。不正なパッケージは開発者のワークステーションへの侵入につながり、企業ネットワークへの侵入につながる可能性があります。また、改ざんされたモデルや学習データセットは、アプリケーションの誤分類やユーザーの不快感を引き起こす可能性があります。バックドアやマルウェアが仕込まれたライブラリやモデルが、出荷されたソフトウェアに組み込まれた場合、それらのアプリのユーザーも攻撃にさらされる可能性があります。
興味深い数学の問題を解いて、それをデプロイするだけで終わりです。ペネトレーションテストもAIレッドチームも行われていません。
これを受けて、サイバーセキュリティやAI関連のスタートアップ企業が、この脅威に特化して参入しています。既存の企業も間違いなくこの脅威に注目しているはずです。少なくともそう願っています。機械学習プロジェクトは、監査と検査を受け、セキュリティテストと安全性評価を受けるべきです。
「AIは学術界から生まれました。これまでは主に大学での研究プロジェクト、あるいは学術界や大企業からスピンオフした小規模なソフトウェア開発プロジェクトでしたが、そこにはセキュリティが組み込まれていませんでした」と、セキュリティに特化したスタートアップ企業の一つ、HiddenLayerの研究担当副社長、トム・ボナー氏はThe Registerに語った。
「彼らはソフトウェアを使って興味深い数学の問題を解き、それを展開するだけです。ペネトレーションテストもAIレッドチーム演習もリスク評価も、安全な開発ライフサイクルもありません。AIと機械学習が突如として本格的に普及し、誰もがその分野に参入しようとしています。彼らは皆、学術界から生まれた一般的なソフトウェアパッケージを次々と採用していますが、なんと、それらは脆弱性や欠陥だらけなのです。」
AIサプライチェーンには犯罪者が入り込むための入り口が数多く存在し、タイポスクワッティングなどの手法を用いて開発者を騙し、正規のライブラリの悪意あるコピーを使用させることで、機密データや企業の認証情報を盗み出したり、コードを実行しているサーバーを乗っ取ったりすることが可能だと主張されています。ソフトウェアサプライチェーンの防御は、機械学習システム開発にも適用されるべきです。
「企業や組織にAI部門を開設したら、どのようにハッキングされるかを円グラフで表すと、誰もが話題にするモデル入力攻撃はごく一部に過ぎません。そして、大部分はサプライチェーン、つまりモデル構築に使用するツールへの攻撃となるでしょう」と、Protect AIの主任AIセキュリティ研究者であるダン・マキナニー氏はThe Registerに語った。
入力攻撃は、AI ソフトウェアを破ることができる興味深い方法です。
この潜在的な危険性を説明するため、HiddenLayer は先週、安全でない Pickle 形式のモデルを、同じく Hugging Face が開発したより安全な Safetensors に変換する Hugging Face のオンライン サービスにセキュリティ上の問題があると強く信じている点を強調しました。
Pickleモデルにはマルウェアやその他の任意のコードが含まれている可能性があり、デシリアライズ時に予期せず実行される可能性があります。これは好ましくありません。Safetensorsはより安全な代替手段として開発されました。この形式を使用するモデルは、デシリアライズ時に埋め込みコードを実行することはありません。ご存知ない方のために説明すると、Hugging Faceは数十万ものニューラルネットワークモデル、データセット、そして開発者が数回のクリックやコマンドでダウンロードして使用できるコードを提供しています。
SafetensorsコンバーターはHugging Faceのインフラストラクチャ上で動作し、Hugging FaceがホストするPyTorch PickleモデルをSafetensors形式のコピーに変換するよう指示できます。しかし、HiddenLayerによると、このオンライン変換プロセス自体が任意コード実行に対して脆弱です。
HiddenLayerの研究者らは、任意のコードを含む悪意のあるPickleモデルの変換リクエストを送信することで、変換プロセス中にそのコードがHugging Faceのシステム上で実行され、誰かがコンバーターボットとそのユーザーに干渉できるようになることを発見したと述べています。ユーザーが悪意のあるモデルを変換した場合、隠されたコードによってHugging Faceトークンが盗み出される可能性があり、「事実上、Hugging Faceトークンを盗み、リポジトリに侵入し、そのユーザーがアクセスできるすべてのプライベートリポジトリ、データセット、モデルを閲覧できる」とHiddenLayerは主張しています。
さらに、Pickleモデルに隠されたコードによってコンバータボットの認証情報にアクセス・漏洩する可能性があると報告されています。これにより、誰かがボットになりすまして他のリポジトリへの変更を求めるプルリクエストを送信することが可能になります。これらの変更が承認された場合、悪意のあるコンテンツが混入する可能性があります。Hugging FaceにHiddenLayerの調査結果に関する回答を求めました。
- LLMを武器にしてウェブサイトを乗っ取る方法
- Google、マルウェアハンターなど向けにファイル識別AI「Magika」をオープンソース化
- カリフォルニア州、悪質なAIモデルを排除するための政府クラウドクラスターを提案
- OpenAI、中国、ロシア、イラン、北朝鮮の不正行為が発覚したアカウントを閉鎖
「皮肉なことに、Safetensorに変換する変換サービス自体が非常に脆弱でした」とHiddenLayerのボナー氏は語った。「変換ボットがリポジトリに対して持つアクセスレベルを考えると、他のリポジトリを通じて変更を送信するために使用するトークンを盗むことが実際に可能でした。」
「つまり理論上は、攻撃者はどんな変更でも、それがHugging Faceから来たように見せかけて、どのリポジトリにでも送信することができ、セキュリティアップデートによって攻撃者はそれを受け入れてしまう可能性があります。人々は、自分のリポジトリにバックドアや安全でないモデルが存在するだけで、それに気付かなかったでしょう。」
これは単なる理論上の脅威ではありません。DevOps ショップの JFrog は、Hugging Face でホストされている 100 個のモデルに悪意のあるコードが隠れていることを発見したと述べています。
実のところ、モデル内に有害なコードペイロードを隠す方法は様々あり、ファイル形式によってはニューラルネットワークの読み込みと解析時に実行されるため、悪意のある人物がユーザーのマシンにアクセスできてしまう可能性があります。PyTorchとTensorflow Kerasモデルは「既知のコード実行手法が公開されている人気のモデルタイプであるため、悪意のあるコードが実行される潜在的なリスクが最も高い」とJFrogは指摘しています。
安全でない推奨事項
ボナー氏は、コード提案アシスタントを使ってアプリケーションを開発するプログラマーも注意が必要だと警告した。そうしないと、安全でないコードを組み込んでしまう可能性があるからだ。例えば、GitHub Copilotはオープンソースのリポジトリでトレーニングされているが、少なくとも35万のリポジトリが、Pythonとtarアーカイブに関連する古いセキュリティ問題の影響を受ける可能性がある。
Pythonのtarfileモジュールは、その名前が示す通り、プログラムがtarアーカイブを解凍するのを支援します。.tarファイルを作成し、アーカイブ内のファイルをPythonモジュールで展開する際に、ユーザーのファイルシステム上の任意のファイルを上書きしようとすることが可能です。これは、設定を破壊したり、スクリプトを置き換えたり、その他の悪質な行為に悪用される可能性があります。
ChatGPTは主に安全でないコードを作成しますが、尋ねない限りは教えてくれません。
続きを読む
この脆弱性は2007年に発見され、2022年に再び注目を集め、人々はこの脆弱性を悪用されるのを防ぐため、プロジェクトへのパッチ適用を開始しました。これらのセキュリティアップデートは、大規模言語モデルのプログラミング学習に使用されるデータセットには適用されていない可能性があると、ボナー氏は嘆きました。「ですから、もし今、LLMにtarファイルを解凍するよう指示すれば、おそらく(古い)脆弱なコードが返されるでしょう。」
ボナー氏は、AIコミュニティに対し、サプライチェーンセキュリティ対策の導入を強く求めました。例えば、開発者が公開コードリポジトリに変更を加える際に、本人確認をデジタルで義務付けるといった対策です。これにより、新しいバージョンが正当な開発者によって作成され、悪意のある変更ではないという安心感が生まれます。開発者は、認証に使用するあらゆるものを保護し、他人が自分になりすますことができないようにする必要があります。
規模の大小を問わずすべての開発者は、セキュリティ評価を実施し、使用するツールを検査し、ソフトウェアを展開する前に侵入テストを行う必要があります。
AI サプライ チェーンのセキュリティを強化するのは難しい作業であり、非常に多くのツールやモデルが構築されリリースされているため、対応するのは困難です。
Protect AIのマキナニー氏は、「まさに今、私たちが直面している状況です。簡単に解決できる課題が至る所に存在しています。しかし、すべてが急速に動いているため、すべてを見極めるだけの人員が不足しています」と強調しました。®