tokenizer.json というファイルを少し書き換えるだけで悪用される可能性がある今回の話、かなり面白くて、同時にちょっとゾッとします。
Dark Readingによると、Hugging FaceのAIモデルに含まれる tokenizer.json というファイルを、攻撃者がほんの少し改ざんするだけで、モデルの振る舞いを乗っ取れる可能性があるそうです。
Hugging Faceは、AIモデルや関連コンポーネントを配布する巨大なオープンソース基盤です。便利さの裏返しで、悪意あるモデルや改ざん済みファイルが紛れ込むリスクもあります。今回のポイントは、「モデル本体」だけでなく、モデルの周辺ファイルも危ないということです。ここが本当に重要だと思います。
まず、tokenizer はAIの“通訳”のようなものです。
AIモデルは、内部では文字をそのまま理解しているわけではなく、数字の並びとして扱います。その数字を、人間が読める文章に戻す役目を持つのが tokenizer です。

記事では、Hugging Faceの多くのモデルで tokenizer.json がこの変換ルールを持っていると説明されています。中には何万件もの対応表が入っていて、単語、単語の一部、制御用のトークンなどが含まれます。
つまりこのファイルは、見た目はただのテキストでも、実際には「モデルの出力をどう解釈するか」を決めるかなり重要な設定です。
個人的には、こういう“地味な設定ファイルが本体級に重要”というのが、セキュリティの怖いところだなと思います。
HiddenLayerの研究者が示したのは、攻撃者が tokenizer.json を入手して、たった1か所でも編集できれば、モデルの出力を直接コントロールできる可能性がある、という話です。
やり方のイメージはこんな感じです。
tokenizer.json を少しだけ改ざんする記事では、この改ざんされた tokenizer.json は正規のものと構造的にほぼ同じなので、通常の配布フローをすり抜けやすいとされています。
これ、かなり厄介です。見た目が普通なら、チェックする側も疑いにくいですからね。
この攻撃で怖いのは、単にモデルの返答がおかしくなるだけではない点です。

HiddenLayerの説明では、攻撃者はMitM(man-in-the-middle)っぽい形で、ツール呼び出しの引数を横取りし、URLトークンを攻撃者のインフラ経由に向けることができる可能性があります。
要するに、モデルがどこにアクセスしたか、どんなAPIパラメータを使ったか、さらにはリクエストに埋め込まれた資格情報まで見えてしまうおそれがある、ということです。
ここは一般向けに言い換えると、

こうしたものが漏れるかもしれない、という話です。
AIを“賢いアシスタント”として使っているつもりが、裏では情報を抜かれる入口になりうる。かなり皮肉があります。
この記事で大事なのは、影響を受けるのは主にローカル実行のモデルだという点です。
対象として挙がっているのは、Hugging Faceのモデルをローカルで動かす際に使われる以下の形式です。

これらはHugging Faceでも広く使われていますし、LlamaCPPやOllamaのような、ローカルでオープンソースモデルを動かす仕組みにも関係します。
一方で、Hugging FaceのInference APIのようにクラウド側で実行するサービスは、この手口の直接の対象ではないと記事は述べています。
つまり、「自分のPCや自社環境にモデルを置いて動かす」ほど、この話は刺さるわけです。

この種の攻撃の嫌なところは、モデルが普通に動いてしまう可能性が高いことです。
動く。返事も返る。エラーも出ない。
でも内部では、出力や通信の一部が改ざんされているかもしれない。これでは気づきにくいです。
HiddenLayerの研究者は、tokenizer.json は「ただのプレーンテキストファイル」に見えても、実際には「デプロイしたシステムが何をするか」を決める重要な要素だと指摘しています。
このコメント、かなり本質的だと思います。セキュリティの世界では、**“見た目の重要度”と“本当の重要度”が一致しない**ことがよくあります。
完全に簡単ではありませんが、いくつか守り方はあります。

記事では、HiddenLayerのKasimir Schulz氏が次のような対策を挙げています。
ここでいう署名付きモデルとは、ざっくり言えば「このモデルは改ざんされていません」と証明するために、暗号学的なサインを付けたものです。
人間でいうところの“封印つきの書類”みたいなものですね。

ただし、現時点ではこの問題に特化した公開された自動スキャナーはないとも述べられています。
つまり、いまのところは「道具を待つ」より「運用で慎重になる」ほうが現実的です。
今回の話は、いわゆるサプライチェーン攻撃の一種だと考えられます。
サプライチェーン攻撃とは、完成品そのものを狙うのではなく、部品や配布経路を汚して、使う側を巻き込む攻撃です。
AIモデルの世界では、モデル本体だけでなく、 tokenizer や設定ファイル、重みファイルなど、複数の要素が組み合わさって動きます。
そのどれか1つでも信用しすぎると危ない。今回の記事は、その典型例に見えます。
しかもHugging Faceのような大規模な公開基盤では、悪意あるモデルが拡散する速度も速いはずです。
オープンソースの便利さは本当に強力ですが、同時に「信用の連鎖」をどう守るかが難しくなる。ここは今後ますます重要になると思います。

記事では、2024年にJFrogが、コード実行が可能な悪意あるモデルを100以上見つけたと紹介しています。
つまり、AIモデルの公開リポジトリには、以前から悪意あるものが入り込みうることが分かっていたわけです。
今回の tokenizer.json への攻撃は、その流れの延長線上にあります。
「AIモデルはデータの塊だから安全」と思うのは、もうかなり危ういです。私は、今後はモデルをソフトウェアと同じくらい厳しく扱う時代になるのではないかと思います。
このニュースの肝は、「AIモデルの危険は、学習データやモデル本体だけではない」という点です。
たった1つのファイル改ざんで、出力の乗っ取りや情報漏えいにつながる可能性がある。しかも見た目はかなり地味。ここが本当に怖いところです。
AIをローカルで使う人、自社サービスに組み込む人、オープンソースモデルをそのまま信用しがちな人ほど、今回の話は要注意です。
便利だからこそ、どのファイルが何を決めているのかを一段深く見る。これがこれからのAI運用では大事になりそうです。
参考: Hugging Face Packages Weaponized With a Single File Tweak