LLM(大規模言語モデル)のセキュリティとは、事前学習済みのAIモデルファイルを環境に読み込む前に、そこに悪意のあるコードが埋め込まれていないかを検査する取り組みのことです。pickle、PyTorch、TensorFlow、Kerasなどの形式のモデルファイルは、読み込まれた瞬間にコードを実行してしまうため、検証されていないソフトウェアを実行することと同等のサプライチェーン上のリスクとなります。
要約 / 主なポイント
- Hugging Face、Kaggle、またはPyPIからダウンロードした事前学習済みモデルは、単なるデータではなく、実行可能なコードです。
- JFrogの「Software Supply Chain State of the Union 2026」によると、組織の53%がパブリックレジストリからモデルを直接取得しており、研究者らはそこで、認証情報の窃取やシステム全体の乗っ取りが可能な悪意のあるモデルを約495個特定した。
- Pickle ベースのフォーマット(.pt、.pth、.bin、.pkl)は、読み込み時に REDUCE 命令を介して任意の関数を実行しますが、これは TensorFlow グラフや Keras の Lambda レイヤーにも見られるのと同じ構造上の欠陥です。
- Safetensors は実行エンジンを完全に排除していますが、旧形式のモデルが数十万も依然として流通しており、リポジトリ内のファイルが安全であるからといって、そのリポジトリの他の部分が安全であるとは限りません。
- MetaDefender Aether™は、5つの分析レイヤーにわたってモデルファイルを検査し、従来のスキャナーでは検出されない「スタック型ピックルペイロード」などの脅威を検知します。
事前学習済みのAIモデルは、信頼境界を越える実行可能コードである
大規模言語モデルをゼロから構築するには、データ、計算リソース、そして時間が必要ですが、ほとんどの組織にはそれらが不足しています。そのため、チームはHugging Face、Kaggle、PyPIといった公開ハブから事前学習済みのモデルをダウンロードしています。こうした依存関係により、多くのセキュリティ対策プログラムが依然として見落としているサプライチェーン攻撃の攻撃経路が生まれています。
多くの組織では、自社の環境に取り込むオープンソースライブラリやコンテナイメージについて、すでに審査を行っています。しかし、モデルファイルが単なる数値の表ではないにもかかわらず、チームがダウンロードするAIモデルに対して同様の精査を行っている組織はほとんどありません。フォーマットによっては、モデルファイルは読み込まれた瞬間に実行されるプログラムとなる場合もあります。
Hugging Faceだけでも100万を超えるモデルがホストされており、その大半は安全性の審査を受けたことがない。JFrogの「Software Supply Chain State of the Union 2026」によると、現在、組織の53%がパブリックレジストリから直接モデルを取得しており、研究者らはこれらのレジストリから、認証情報の窃取、コードの実行、システム全体の乗っ取りが可能な悪意のあるモデルを約495件特定した。LLMモデルは、信頼境界を越える実行可能なソフトウェアである。
モデルに起因する脅威が、理論から回避手法へとどのように進化してきたか
この脅威は、学問的な警告、概念実証、実世界におけるサプライチェーンの悪用、そしてスキャナーを無効化するために考案された回避手法という段階を経て発展していった。
モデルに起因する脅威の変遷:2018年~2026年
フェーズ | 期間 | 何が変わったのか | 代表的な証拠 |
理論 | 2018 | 学者たちは、信頼できない情報源から入手した再利用された事前学習済みモデルが改ざんされる恐れがあると警告している | ディープラーニングシステムに対するモデル再利用攻撃 |
概念実証 | 2023–2024 | 実際に悪意のあるモデルが発見される;pickleベースのフォーマットに実行可能なペイロードが含まれていることが判明 | リバースシェルを身につけたモデル「star23/baller13」が、Hugging Faceに登場した |
自然界では | 2024–2025 | パッケージレジストリを通じたサプライチェーン配送により、取扱量が増加しています | アリババブランドのPyPIパッケージの登場は、LLMを悪用したサプライチェーン攻撃の始まりを告げる |
高度な回避 | 2024–2025 | 迅速な検査を回避するよう設計された、多層・積層構造のペイロード | 積み重ね型ピクルスの概念実証は、VirusTotalで0/70というスコアを記録した |
より安全な形式 | 2023年~2026年 | コードを扱えないデータ専用フォーマットが導入されたが、従来のモデルは依然として広く使用されている | Safetensorsが新モデルのリリースにおけるデフォルト仕様となる |
PickleおよびPyTorchファイルは、読み込まれた瞬間にコードを実行する
PickleはPythonのネイティブなシリアライズ形式であり、長年にわたりモデルをディスクに保存するための標準的な方法でした。PyTorchはこれを基盤として.pt、.pth、.binファイルを実装し、多くのモデルがこれらの形式で公開されました。現在ではより安全な選択肢が存在しますが、それらは抽象的なビジネス用語として扱われています。公開ハブで依然として流通しているモデルの大部分はPickleベースのままであり、各チームは毎日それらを読み込んでいます。

Pickleは単なるデータだけでなく、仮想マシンがファイルを読み込み、Pythonオブジェクトを再構築する際に実行する命令ストリームでもあります。このストリームは任意の関数を呼び出すことができるため、Pickleベースのモデルを読み込むと、コードが実行されることもあります。
攻撃者は、ピックル化解除の際に、ローダーに対して攻撃者が指定した引数を用いて特定の関数を呼び出すよう指示する「pickle REDUCE」命令を悪用します。これにより、モデルが依然として正当なファイルとして読み込まれ、動作している間に、リバースシェルを起動したり、第2段階のペイロードをドロップしたり、SSHキーを上書きしたりすることが可能です。
TensorFlowとKerasには、同様のリスクが存在します。悪意のあるTensorFlowグラフでは、ファイル書き込み演算子やネットワーク演算子を計算グラフに潜り込ませることが可能であり、一方、KerasのLambdaレイヤーには、読み込み時に逆シリアル化されるマーシャリング済みのPythonバイトコードが含まれる可能性があります。いずれのフォーマットも、ファイルに実行可能な動作を組み込むことを許容しています。このリスクは構造的なものであるため、単一のバグを修正しただけでは解消できません。この制限により、業界はより安全なフォーマットを模索せざるを得なくなりました。

現実世界の事件により、この理論はSupply Chain に対する脅威へと変わった
モデル再利用攻撃に関する警告が初めて出されたのは2018年のことだった。その後、研究者たちはこのリスクが実際に成立することを実証した。2024年1月、Hugging Faceに「star23/baller13」という名前のモデルが登場したが、そのPyTorchファイル内にはリバースシェルが仕込まれていた。このモデルは、有効なモデルとして認識されつつも、リモートアクセスを可能にするものであった。



2025年5月までに、この脅威は典型的なサプライチェーン攻撃の領域へと移行しました。攻撃者は、「aliyun-ai-labs-snippets-sdk」、「ai-labs-snippets-sdk」、「aliyun-ai-labs-sdk」という名前のPyPIパッケージを公開しました。これらはアリババのAIツールキットを装っており、使用中にこっそりと悪意のあるモデルを読み込んでいました。これらのパッケージは24時間未満しか公開されていなかったにもかかわらず、約1,600回ダウンロードされました。これは、自動化された依存関係解決によってダウンロードが行われる場合、わずかな公開期間でも十分すぎるほど危険であることを改めて示しています。

積み重ねられたピクルス型ペイロードが従来のスキャナーを無力化する
2024年までに、攻撃者たちは悪意のあるモデルを検知するために構築されたスキャナーを標的にするようになっていました。その最も顕著な例が「Stacked Pickle」という手法で、これは複数のpickleオブジェクトをネストさせ、各レイヤーに悪意のある命令を分散させた上で、それらを圧縮とエンコードで包み込むものです。
各レイヤーを単独で調べただけでは無害に見えるため、表面的な検査にとどまるスキャナーや手動によるレビューでは何も検出されません。モデルが読み込まれると、レイヤーが順番に展開され、ペイロードが再構築されます。この手法を用いて作成された概念実証(PoC)サンプルは、VirusTotalのすべてのエンジンにおいて検出件数がゼロでした。
可視レイヤーのみを検査するスキャナーでは、ファイルの奥深くに隠されたペイロードを見逃してしまう可能性があります。そのため、このサンプルはすべてのスキャナーを通過してしまったのです。

Safetensorsは実行エンジンを完全に排除する
Safetensorsは、実行エンジンを使用せずにモデルの重みを保存します。ファイルには、各テンソルの形状、データ型、バイトオフセットを記述したコンパクトなメタデータヘッダーが含まれており、その後に生のテンソルデータが続きます。このファイルには、命令ストリームや仮想マシン、あるいはpickleのREDUCEに相当する機能がないため、ローダーに対して関数を呼び出すよう指示することはできません。
Safetensorsファイルは、ローダーが読み込むだけの不活性なデータです。このフォーマットにはコードを実行するための経路が一切用意されていないため、悪意を持って作成されたファイルであっても、読み込み時にコードを実行することはできません。

「セーフテンサーズ」が開発された理由と、広まった理由
従来のフォーマットの問題点は、決して重みそのものではなかった。問題は、ファイルが実行可能な命令も格納し得る点にあった。Hugging Faceは、EleutherAIおよびStability AIと協力し、チームが重みファイルに求める機能を維持しつつ、その実行機能を排除した専用代替フォーマットとして「Safetensors」を開発した。
Safetensorsは実用性も高い。メモリマッピングされたゼロコピーアクセスにより高速に読み込まれ、PyTorch、TensorFlow、JAXなどのフレームワークで動作し、現在ではほとんどの新しいモデルリリースにおいてデフォルトとして採用されている。こうした利点により、強制されることなく普及が進んだ。

独立した監査により、安全性の主張が裏付けられた
この安全性の主張の根拠は、メンテナンス担当者だけにとどまりません。このライブラリはRustで記述されており、そのコンパイラは特定の種類の解析バグを未然に防ぎます。2023年、Hugging Face、EleutherAI、Stability AIの3社は共同で、Trail of Bits社にこのフォーマットの独立監査を依頼しました。
監査の結果、任意のコード実行につながるような重大な欠陥は見つかりませんでした。仕様上の不正確な点がいくつか確認されたほか、検証処理の欠如により多言語ファイルが許容されていたことが判明しました。メンテナンス担当者はこれらすべてを修正・公開した後、Safetensorsをデフォルト設定にしました。
それ以降の記録は、監査の結果を裏付けています。2024年以降、レガシー形式による実際のインシデントが発生している一方で、同期間においてSafetensors形式自体に対するコード実行攻撃は確認されていません。Safetensorsでは、pickleベースのファイルを危険なものにしている種類の攻撃に対して、攻撃者が利用可能な実行メカニズムは一切提供されていません。残りのリスクは、依然として広く使用されているレガシー形式に起因するものです。
モデルSupply Chain には、依然として点検用ハッチが必要だ
このリスクは、モデルファイル形式が重みとともにコードを格納できるかどうかに起因します。Pickle、PyTorch、TensorFlow、Kerasの各形式では可能ですが、Safetensorsは設計上、それができません。セキュリティ担当者は、実行可能なモデル形式をリスクとして扱い、環境に取り込まれるすべてのモデルを検査し、可能な限り安全な形式の使用をチームに促す必要があります。
パブリックハブには、依然として数百万ものレガシー形式のモデルが残っており、各チームはそれらをダウンロードし続けています。また、リポジトリでは、安全なファイルと並んでpickle形式のファイルが公開されている場合もあるため、Safetensorsの重みが含まれているからといって、そのリポジトリ全体が安全であるとは限りません。レガシー形式が廃止されるまでは、モデルのサプライチェーンに検査のゲートを設ける必要があります。
実際には、これは簡潔で偽陽性が少ないチェックリストとなります:
- Safetensors を優先し、旧形式のファイルについては、使用前に検査が必要であるとみなしてください。検証済みの発行元以外から提供された .pt、.pth、.bin、.pkl、.pb、または .h5 形式のモデルは、読み込む前に必ずスキャンを行う必要があります。
- レガシー形式のモデルの読み込みを、実行イベントとして扱います。シェルを起動したり、Pythonインタプリタから外部への接続を開いたり、機密性の高いパスに書き込みを行ったりするモデルの読み込みは、コードの実行と同様に、ホストのテレメトリに記録すべき動作のシグナルです。
- weights ファイルだけでなく、アーティファクト全体をスキャンしてください。リポジトリのフォーマットは、何かによって検証されるまでは「主張」に過ぎず、「保証」ではないため、分析の対象は提供されたままのモデルパッケージとなります。
MetaDefender :Aetherの5層パイプラインによるLLMモデルファイルの検証方法
MetaDefender OPSWAT の統合型ゼロデイ検知ソリューション「Aether™」は、5層からなる検査パイプラインを通じて、99.9%のゼロデイ検知精度を実現しています。各ファイルの検査は、拡張子だけを鵜呑みにするのではなく、ファイルの種類を分析することから始まります。各分析層は、独立して判定を下すことができます。いずれかの層で確定的な判定が下されると、分析はそこで停止するため、ほとんどのファイルは、より深く、リソースを多く消費する段階に進むことを回避できます。
- 脅威レピュテーション。ファイル のハッシュ値 および関連するインジケーターは 、500億件以上のインジケーターを基にしたOPSWAT のグローバル脅威インテリジェンスと照合されます。既知の悪意あるアップロードと関連付けられているハッシュ値は1秒以内にブロックされ、安全が確認されたファイルも同様に迅速に通過が許可されるため、未知のファイルのみが通過することになります。
- 静的解析。実行される前に、Predictive Alin AI によって、静的解析およびウイルス対策エンジンのスキャンと併せてファイルの評価が行われます。 Predictive Alin AIは、サンドボックスでの実行を必要とせず、ミリ秒単位で機械学習に基づく判定結果を提供します。このAIは、厳選されたプライバシー保護対策が施されたエンタープライズ向けデータセットで学習されており、MetaDefender Aetherによる確認済みの検知情報を活用したゼロデイ再学習ループを通じて継続的に改善されています。モデルファイルの場合、認識可能なペイロードオペコードを含む不審なpickleファイルは、エミュレーション処理に時間を費やす前に、この段階で検出されます。
- 動的解析。命令レベルエミュレーションは、サンプルごとに仮想マシン全体を起動することなくファイルの挙動を明らかにすることで、「スタックド・ピクル」問題に対処します。これにより、従来のサンドボックスを迂回するアンチVMチェックやタイミング遅延を無効化し、解析を数分ではなく数秒で完了させることができます。その速度は従来のサンドボックスツールの最大20倍、処理量は100倍に達します。
- 脅威スコアリング。このレイヤーでは、呼び出された関数、接続の試行、レピュテーション信号、および最初の3つのレイヤーから得られたその他の分析結果を統合します。900以上の行動指標を活用し、1つの実用的なスコアと、最終段階向けの類似性フィンガープリントを生成します。
- 脅威ハンティング。機械学習による類似性検索により、フィンガープリントをOPSWAT の脅威インテリジェンスデータベースおよびMITREマッピングされた挙動と照合し、亜種やキャンペーンを特定します。再パッケージ化または名前変更された悪意のあるモデルは新しいハッシュ値を持つ場合がありますが、このレイヤーでは、既知の悪意のある元となるモデルとの類似性を依然として検出することができます。
この一連のプロセスは自動的に実行されます。その結果、1つの統合された判定結果と、各指標をそれを生み出した行動と関連付けた証拠レポートが生成されます。
MetaDefender Aetherは、すべてのエントリポイントでモデルファイルを検査します
モデルは、Webからのダウンロード、電子メール、ファイル転送プラットフォーム、および自動化されたパイプラインを通じて受信されます。検査ゲートは、トラフィックを伝送するインフラストラクチャの再設計を組織に強いることなく、あらゆる経路を網羅する必要があります。
ネットワークチャネルについては、MetaDefender Aetherは、プロキシ、メールゲートウェイ、ファイル転送プラットフォームがすでに検査サービスへファイルを渡すために使用している標準プロトコルであるICAP を通じて統合されます。トラフィックがネットワークデバイスを通過しない場合、代わりにRESTAPI を通じて同じ分析機能を利用できます。
- Webからのダウンロード。開発者がHugging FaceやKaggleからモデルを取得すると、プロキシまたはセキュアWebゲートウェイが、ICAP 経由でMetaDefender Aetherにダウンロードを転送し、悪意のあるpickleファイルはエンドポイントに到達する前に阻止されます。
- 電子メール。添付ファイルとして共有されたモデルファイルやAIツールは、他の添付ファイルと同様のパイプラインを通じて抽出・分析されるため、レジストリレベルの制御を迂回するソーシャルエンジニアリングの手口を封じることができます。
- ファイル転送。パートナーやベンダーとの間で交換されるファイル、あるいは管理型ファイル転送を通じて社内ゾーン間で移動されるファイルは、転送中にスキャンされるため、パブリックハブを経由しないファイルであっても、信頼境界が維持されます。
- 自動化されたパイプラインとレジストリ。モデルをプログラムで取得し、API を通じて送信するビルドジョブやMLプラットフォームを構築することで、内部レジストリへのプロモートが行われる前に、Alibaba PyPIパッケージが悪用したのと同じ経路を完全に遮断します。この方法では、依存関係の解決処理によってダウンロードが行われるため、不審なファイルを目にする者が誰もいない状態が保たれます。
すべてのルートで同じ検査パイプラインと判定ロジックが使用されるため、攻撃者が悪用できる監視対象外のチャネルは一切存在しません。
開発者の作業を妨げないセキュリティ
パブリックハブからのダウンロードを禁止することは現実的ではないため、セキュリティチームはモデルリスクを管理しないままにしておくことがよくあります。MetaDefender Aether を使えば、開発者は既存のワークフローを維持したまま、パイプラインがエミュレーション速度でモデルをインラインスキャンできます。ダウンロードがブロックされた場合は、判定理由を説明した証拠レポートが提供されます。
MetaDefender のAetherが、LLMモデルファイルが信頼境界を越える前に、どのようにその内容を検査するのかをご覧ください。
よくある質問
LLMモデルのセキュリティとは何か?
LLMモデルのセキュリティとは、事前学習済みのAIモデルファイルを、環境に読み込まれる前に、そこに悪意のあるコードが埋め込まれていないか検査する取り組みのことです。この取り組みでは、公開ハブからダウンロードされたモデルを、単なる不活性なデータとしてではなく、信頼境界を越える実行可能ソフトウェアとして扱います。
なぜpickleファイルはAIモデルにとって危険なのでしょうか?
仮想マシンは、pickleファイルの読み込み時にその命令ストリームを実行します。「REDUCE」命令により、攻撃者はその処理中に任意の関数を呼び出すことが可能となるため、pickle形式のモデルを読み込むと、警告なしに攻撃者が制御するコードが実行されてしまう恐れがあります。
Safetensors とは何ですか?また、pickle とどう違うのですか?
Safetensors は、モデルの重みを保存するためのデータ専用のファイル形式であり、メタデータヘッダーと生のテンソルバイトを含んでいますが、実行エンジンはなく、pickle の REDUCE 命令に相当する機能もありません。pickle ファイルがローダーによって実行されるプログラムであるのに対し、Safetensors ファイルはローダーが読み込むだけの不活性なデータです。
Safetensors ファイルは悪意のあるものになり得るのでしょうか?
Safetensors ファイルは、そのフォーマットに実行パスが提供されていないため、読み込み時にコードを実行することはできません。ただし、リポジトリには、安全な Safetensors ウェイトとともに、レガシーな pickle ベースのファイルが含まれている可能性があるため、リポジトリ全体を依然として 検査する必要があります。
MetaDefender のAetherは、悪意のあるLLMモデルをどのように検知するのでしょうか?
MetaDefender Aetherは、脅威レピュテーション、静的解析、動的解析、脅威スコアリング、脅威ハンティングという5つの層を通じてモデルファイルを検査します。これにより、ファイルの大部分が、より深くコストのかかる段階に到達する前に阻止され、従来の単層スキャナーを通過してしまう積み重ねられたpickleペイロードも検知可能です。
信頼の境界線を越える前に、すべてのモデルを点検してください
現在、各チームは再利用可能な事前学習済みモデルに依存していますが、公開ソースからのダウンロードのたびに、同じ疑問が生じます。そのファイルにはデータのみが含まれているのか、それともコードを実行できるのか?MetaDefender Aetherは、モデルが読み込まれる前にこの疑問に答え、Webからのダウンロード、電子メール、ファイル転送、自動化されたパイプラインに対して5段階の分析を適用します。
- MetaDefender ,
- 脅威分析 ,
- 脅威の検出
