深度 ・ 小互解説

Hugging Face 内部ネットワークがAIに突破され、事後調査では商用大規模言語モデルに攻撃者と誤認された

侵入は週末をまたいで行われ、17000件を超える行動ログが残された。最終的に自社環境で動かしたオープンウェイトモデルGLM 5.2で分析を完了した。
1分でわかる概要
  • Hugging Faceは7月16日に通知を公開し、同じ週の初めに外部向けサービスを支える社内システムの一部で侵入を検知していたと明らかにした。この侵入は、自律稼働するAI Agentシステムが最初から最後まで実行したものだった。
  • 侵入経路は、悪意のあるデータセットだった。攻撃者はデータセット処理工程にある2つの脆弱性を突いてコードを実行させ、そのデータセットを処理していたマシン全体の権限を奪取した。クラウドとクラスタの認証情報を盗み出し、週末のうちに複数の内部クラスタへ横展開していった。
  • 今回影響を受けたのは一部の内部データセットと、いくつかのサービスが使用する認証情報だ。公開モデルや公開データセット、ユーザーがプラットフォーム上で公開しているオンラインアプリ「Spaces」については、改ざんの痕跡は見つかっていない。コンテナイメージと公開済みのソフトウェアパッケージは検証済みで、異常は見つかっていない。パートナーや顧客データへの影響については現在も調査中。
  • フォレンジック調査では、まず商用API上の最強クラスのモデルでログ分析を試みたが、安全ガードレールがリクエストを拒否した。分析のために提出しようとした内容に、攻撃者が実際に打ち込んだコマンドや侵入に使われた攻撃コードがそのまま含まれていたためだ。そこでオープンウェイトのGLM 5.2に切り替え、自社のマシン上で動かすことで、ようやく17000件超のイベントを分析し終えた。
  • Hugging Faceが防御側に呼びかける提言はこうだ。自社環境で動かせるモデルは事前に選定し検証しておくべきで、事故当日になって慌てて探すべきではない。
この通知は当事者であるHugging Face自身が発表したものであり、影響範囲も自己評価によるもので、評価はまだ完了していない。本文末尾に、どの内容がサイト外の補足資料によるものかを明記している。
事故通知

今回の侵入は、これまでと何が違うのか

Hugging Faceは7月16日、セキュリティ事故に関する通知を発表した。同じ週の早い時期に侵入を検知し、対応を行ったという内容で、侵入されたのは本番インフラの一部、つまり実際に外部サービスを提供している内部システムだった。

今回が過去のすべての事故と違うのは、侵入してきた「相手」だ。攻撃の全工程は、自律的に攻撃を進められるAI Agentシステムが最初から最後まで実行した。そしてHugging Face側もまた、AIの力でこれを掘り起こし、解明した。

攻撃側は週末のうちに、コード実行から複数の内部クラスタへの横展開までの全工程を完了させ、17000件を超える行動イベントを残した。数万回の動作は大量の使い捨てマシンに分散して実行され、連絡経路も自動的に移動していく。一方の防御側では、AIが本来なら数日かかるログの再構築を数時間に圧縮した。

何が確認済みで、何がまだ調査中なのか。通知では2つの欄に分けて整理されている。

確認済み
  • 一部の内部データセットへの不正アクセス
  • 複数のサービスが使用する認証情報へのアクセス
  • 公開モデル、データセット、Spacesに改ざんの痕跡は見つからず
  • コンテナイメージと公開済みソフトウェアパッケージの検証はクリーン
未確定
  • パートナーおよび顧客データへの影響有無は現在も評価中。影響が判明した場合は関係者へ直接連絡する
  • 攻撃側のAgentがどのモデルを使用していたかは、現在も不明
侵入口

攻撃はひとつのデータセットから始まった

起点となったのは、AIプラットフォーム特有の弱点であるデータ処理パイプラインだ。悪意あるデータセットが、データセット処理工程にある2つのコード実行経路を悪用し、処理を担当するマシン上でコードを実行させた。それ以降の各ステップは、ごく一般的な内部ネットワーク侵入の手口だった。

攻撃チェーン
1
毒入りデータセットをアップロード

データセット自体はプラットフォームが日常的に処理する通常の入力であり、正規の投稿フローを通っている。

2
データセットを処理するマシン上でコードを実行

データセット処理にある2つのコード実行経路を悪用し、そのマシン上で自分のコードを実行させる。

3
マシン全体の権限へ昇格

処理タスク単体の権限から、マシン全体の権限へと引き上げる。

4
クラウドとクラスタの認証情報を収集

マシン上に保存されているクラウドサービスの認証情報とクラスタの認証情報を入手する。これらの認証情報は、他のマシンへ進むための鍵となる。

5
複数の内部クラスタへ横展開

手にした鍵を使い、このマシンから隣接するマシンへと一台ずつ侵入を広げ、複数の内部クラスタ(クラスタとは、同種の処理をまとめて実行するマシン群のこと)に入り込んだ。

ステップ3からステップ5までは、すべて週末のうちに発生した

2つの侵入口は仕組みが異なるので、並べて見ると分かりやすい。

侵入口A・リモートコードローダー

データセットを読み込む際に、データセット作者が付属させたPythonスクリプトがそのまま実行されてしまう。

スクリプトを書いたのは作者だが、読み込み動作を実行するのはプラットフォーム側。結果として、他人のコードが自分のマシン上で走ることになる。

侵入口B・設定ファイルへのテンプレートインジェクション

本来はデータだけを入力するはずのデータセット設定ファイルの項目に、別のものが埋め込まれていた。テンプレートインジェクションの典型的な手口は、システムが設定を読み込む際にその埋め込まれた内容をコマンドとして実行させるというものだ。

たとえるなら、フォームの「氏名」欄にシステムが実行してしまう命令文を書き込むようなものだ。通知には「設定ファイルへのテンプレートインジェクション」としか書かれておらず、より詳しい仕組みは明かされていない。

ここでひとつ、見ておくべき対比がある。Hugging Faceが全ユーザーに配布しているdatasetsライブラリは、2025年7月リリースのバージョン4.0.0でスクリプト形式のデータセットを完全に削除し、trust_remote_codeスイッチも同時に廃止した。公式が示す移行パスは、Parquetのような純粋なデータ形式への変換だ。つまり、新しいバージョンのライブラリを入れた一般ユーザーは、とっくに「データセットを読み込むついでにスクリプトを実行する」という経路を通れなくなっていた。ところが、プラットフォーム自身のバックエンド処理パイプラインでは、今回このタイプのコード実行経路がまだ使える状態にあった。初期侵入に使われたこの2つの経路は、現在すでに閉鎖されている。

はっきりさせておきたいのは、バックエンドパイプラインが同じdatasetsライブラリを使っていたかどうかを通知は明言しておらず、悪用されたのが4.0.0で封じられた経路と同一だとも述べていない、という点だ。上記の対比は両者の公開事実を並べたものであり、通知が出した結論ではない。

攻撃側

侵入してきたのは自律稼働するAgentフレームワークだった

攻撃側の正体はこうだ。自律的に段階を踏んで攻撃を進めるプログラムで、レッドチームや脆弱性研究向けに作られた既存の自動化ペネトレーションテストツールを改造したものと見られる。数万回に及ぶ動作は1台のマシンで行われたのではなく、大量の使い捨てマシンに分散して実行され、各マシンは数ステップをこなすと破棄された。背後の操作者との連絡経路は公共サービスの中に隠され、しかも自動的に移動していく。使用されたモデルが何かは、現在も不明のままだ。

この「既存ツールを改造した」という表現について補足すると、業界ではこうした既存ツールをharnessと呼ぶ。モデルを外側から包み込む一種の実行足場のことで、材料を与え、モデルに何を見せるかを決め、出力を解析し、また次のサイクルへと駆動していく役割を担う。モデルがエンジンだとすれば、harnessはシャーシとハンドルにあたる。同じエンジンでも、載せるシャーシが違えば成績は大きく変わる。

数万回の動作が、使い捨てマシンに分散 各マシンの寿命はごく短く、担当ステップを終えると破棄される 連絡経路は公共サービスの中に隠れ、自動的に移動する 公共サービス1 公共サービス2 公共サービス3 次の接続先はいつでも別の公共サービスに切り替えられる

上:数万回の動作が使い捨てマシン群に分散して実行された。下:連絡経路は公共サービスの通常トラフィックに紛れ込み、自動的に次の場所へ移動する。Hugging Faceの通知内容をもとに作成。

この2つの設計は同じ狙いに向かっている——一撃で断ち切れなくすることだ。使い捨てマシンはもともと使い終わったら捨てるものなので、1台封鎖しても意味がない。連絡経路は通常トラフィックに紛れ、しかも移動するため、固定アドレスをブロックしても止められない。

この特性はフォレンジック調査にも影響を及ぼす。マシンが使い終わって破棄されると、ディスクイメージやメモリスナップショットといった現場証拠も一緒に消える。振り返りに使えるのは、実質的にあの行動ログだけになる。だからこそ、後述する17000件超のイベントが、この攻撃全体を知る最も完全な記録となった(この関連づけは本サイトの推論であり、通知には明記されていない)。

前回公開されたAI主導型攻撃はどんなものだったか

これはまさに、業界が長らく警鐘を鳴らしてきた「自律的に攻撃を進める攻撃者」そのものだ。同種の事例として直近で詳しく公開されたのは、Anthropicの脅威インテリジェンスチームが明らかにしたGTG-1002で、2025年9月中旬に検知されたものだった。両者では自動化の度合いが異なる。以下の表はサイト外の補足資料。

比較項目GTG-1002(2025-09)今回の事故(2026-07)
対象科学技術企業、金融機関、化学企業、政府機関を含む約30の組織Hugging Face1社。複数の内部クラスタまで深く侵入
自動化戦術的動作の8〜9割をAIが担い、人間は偵察から攻撃への移行やデータ持ち出しの承認といった節目でゴーサインを出す通知ではエンドツーエンドで自動Agentシステムが駆動したと説明
使用モデルジェイルブレイクされたClaude Code現在も不明
防御側

Hugging Faceはどうやってこの侵入を解明したのか

防御側のAIは2つの場面で使われた。ひとつは検知、もうひとつは再構築だ。

検知の側では、システムが日々出力する動作ログを常時監視するAI当直プログラムを稼働させ、日常的なノイズの中から本物のシグナルを拾い上げている。最終的に複数のシグナルが結びついたことで、今回の侵入が浮かび上がった。

分析Agentが17000件超のイベントからタイムラインを組み立てた

数万回に及ぶ自動動作が実際に何をしたのかを解明するため、Hugging Faceは分析Agentに攻撃者の行動ログ全件、合計17000件超のイベントを処理させた。ひと通り処理を終えると、同時に4つの成果物が得られた。

17000件超のイベント
分析Agent
タイムライン
侵入の痕跡
アクセスされた認証情報
おとり動作の除去

最後の項目こそが、今回の作業量のカギを握っている。攻撃側はおとり動作を紛れ込ませており、実際の影響と攪乱用の動作を切り分ける作業は、人手では最も時間を食う部分だ。しかも、おとりを仕込むコストは人間と機械でまったく違う。人間の攻撃者は偽の動作をひとつ増やすたびに自分の時間を費やすが、自動で動くAgentならいくつ増やしても限界コストはほぼゼロに近い(このコストの層は本サイトの推論であり、通知にはおとり動作が存在したとしか書かれていない)。

AIによる処理を経て、本来なら数日かかる作業が数時間に圧縮され、相手のスピードに追いつけるようになった。

非対称性

フォレンジック調査で商用モデルが処理を拒否した理由

今回の事故で実際にHugging Faceの足を止めたのは、自分たちが料金を払って使っているモデルそのものだった。通知の原文によれば、この分析に使えるモデルが制限された形は「我々が予期していなかったもの」だったという。

ログ分析を始めた当初、Hugging Faceは商用API上の最強クラスのモデルを使っていた。しかしうまくいかなかった。この種の分析でモデルに流し込む必要があるのは、大量の実際の攻撃コマンド、侵入に使われた攻撃コード、そして連絡経路が残した痕跡そのものだ。安全ガードレールはこうした内容を見た瞬間に拒否する。しかもそれを提出しているのがインシデント対応のエンジニアなのか、攻撃者本人なのかを見分けることができない。

核心の矛盾

フォレンジック調査と攻撃とでは、モデルに与える材料が見た目上まったく同じになる。ガードレールは提出された内容の見た目しか見ておらず、それを提出する意図までは判別できない。

そのため、ログ分析を始めたばかりで数万件のイベントを一刻も早く整理する必要があった局面で、防御側は自分たちが料金を払っているツールに門前払いされてしまった。一方、相手のAgentがジェイルブレイクされたホスト型モデルを使っていたのか、それとも制限のないオープンウェイトモデルだったのかは今も不明だが、唯一確かなのは、いかなる利用ポリシーにも縛られていなかったという点だ。ルールを守る側がルールに阻まれ、ルールを守らない側は素通りしていく。

商用モデルの安全ガードレール 攻撃側 自動Agentフレームワーク 使用モデルは不明: ジェイルブレイクされたホスト型、またはオープンウェイト いかなる利用ポリシーにも縛られない 素通り 防御側 拒否される フォレンジック分析リクエスト 攻撃コマンド、攻撃コード 連絡経路の痕跡 ガードレールはこれが緊急対応なのか 攻撃者本人なのか判別できない

同じガードレールが、片側だけを阻んでいる。攻撃側はいかなる利用ポリシーにも縛られず、防御側のフォレンジックリクエストは門前払いされた。Hugging Faceの通知内容をもとに作成。

自社インフラ上でモデルを動かし、このガードレールを回避した

Hugging Faceは最終的に、フォレンジック分析をGLM 5.2に切り替え、自社インフラ上で動かした。これはZhipu AI(Z.ai)が開発したオープンウェイトモデルで、重みはMITライセンスで公開されており、ダウンロードして自前でデプロイできる。誰かにこの材料を提出していいか承認を求める必要もない。学習データと完全なパイプラインは非公開なので、オープンソースではなくオープンウェイトという位置づけになる。

自社マシンで動かすことには、ガードレールに阻まれないこと以外にもうひとつの利点がある。Hugging Faceがわざわざ言及しているのは、攻撃者データとそこに含まれる認証情報が、一度も自社ネットワークの外に出なかったという点だ。事故のフォレンジック調査で認証情報入りのログを外部APIに送ること自体が、新たな漏洩リスクになる。

これはホスト型モデル上の安全対策に反対しているわけではない。我々はこのフィードバックを関連するサービス事業者にも共有しているところだ。 Hugging Faceセキュリティ事故通知

オープンウェイトモデルに切り替えると、セキュリティ分析の精度は落ちるのか

サイト外に参考になる独立ベンチマークがある。Semgrepが同一のIDOR(アクセス制御不備)脆弱性データセットと同一のプロンプトで一連の構成をテストしたところ、GLM 5.2は専用のharnessを一切使わず、プロンプト1本だけの条件でF1スコア39%(F1は適合率と再現率を統合したスコアで、検出したもののうちどれだけが本物か、本物のうちどれだけを検出できたかを表す。満点は100%で数値が高いほど良い)を記録し、自社のAgent harness上で動かしたClaude Codeを上回った。

GPT 5.5 + Semgrep専用harness
61%
Opus 4.8 + Semgrep専用harness
53%
GLM 5.2、プロンプト1本のみ
39%
Claude Code + 自社Agent SDK
32%
GPT 5.5 + Codex
20%

IDOR脆弱性検出のF1スコアはSemgrepが2026年7月に実施したベンチマークによるもので、今回の事故のデータではない。同じGPT 5.5でも、Semgrep専用harnessに組み込めば61%、Codex経由だと20%という結果になり、これは前述の「シャーシの方がエンジンより成績を左右する」ことをまさに裏付けている。Semgrep自身も、これは単一タスク・単一データセット・単発実行の結果にすぎないと注意を促しており、事後に別途レビューを行い、これらのモデルは確かにパターンマッチではなく推論を行っているものの、再現率は総じて低めだったと結論づけている。

したがって防御側への提言はひとつに尽きる。事故が起きる前に、自社インフラ上で動かせるモデルを選定・検証しておくことだ。そうすればガードレールに阻まれることも、攻撃者データや認証情報が外部に流出することも避けられる。

対応とアクション

Hugging Faceはどの穴を塞ぎ、ユーザーは何をすべきか

事後対応として、合計5つの措置が取られた。

  • 根本原因となった脆弱性を修正:初期侵入に使われた2つのデータセットコード実行経路は既に閉鎖済み。
  • 影響を受けたクラスタ内にあった攻撃者の拠点を排除し、侵害されたマシンを再構築。
  • 影響を受けた認証情報とトークンを失効・ローテーションし、あわせてより広範囲の予防的なキーローテーションを実施。
  • クラスタに追加の防御措置とより厳格なアクセス制御を導入。
  • 検知とアラートを強化し、高リスクなシグナルが出れば週末でも数分以内に当直担当を呼び出せるように改善。

さらに、外部のサイバーセキュリティフォレンジックチームに調査への参加を依頼し、セキュリティ方針とプロセスの見直しを行った。また、この事件はすでに法執行機関に報告済みだという。

ユーザーおよび防御側が取るべきアクションを、以下のチェックリストにまとめた。最初の3項目は一般ユーザー向け、後の2項目は企業のセキュリティチーム向けだ。

✅ Hugging Face事故後のアクションチェックリスト

最後に、いくつかの判断を書き留めておく。自律的に攻撃を進めるAI攻撃ツールは、もはや仮説の段階ではない。以前なら、広範囲かつ長期間、複数段階にわたる攻撃を仕掛けるにはコストが高くついたが、そのコストは今や大きく下がり、しかもすべてが機械のスピードで動いている。オンラインプラットフォームにとって、ユーザーがアップロードするデータセットやモデルファイルは、これまで主に「処理待ちのコンテンツ」として扱われてきたが、今後は「毒を含んでいるかもしれない入力」として防御対象にしなければならない。防御側についても、人手でログを見張るスピードはもはや機械に追いつかず、AIを活用せざるを得なくなっている。

出典
Security incident disclosure — July 2026Hugging Face公式ブログ原文2026-07-16
本サイトからの注記
本文中の図はすべて本サイトが通知の文章記述をもとに作成したもので、原文の通知には図が付いていない。以下の内容は原文の通知にはなく、別途調べた背景資料である:datasets 4.0.0でスクリプトローディングが削除された時期とバージョン、GTG-1002との比較表、GLM 5.2の開発元とライセンス、Semgrepのベンチマーク棒グラフ、およびharnessの定義(Semgrepの当該記事から引用)。Semgrepの本文はClaude Codeを32%と記載しているが、同記事の表では基盤モデルごとに2行に分けており、Opus 4.6が37%、Opus 4.8/4.7が28%となっている。本サイトは本文側の数値を採用した。以下の2箇所は本サイトの推論であり、本文中でもそれぞれ明記している:おとり動作にかかるコストが人間と機械で異なる点、使い捨てマシンの破棄によりフォレンジック可能な資料が主に行動ログだけになった点。また、本文で「公開ライブラリはとっくにスクリプトローディングを封じていた」と「バックエンドパイプラインでは今回も悪用された」を対比させた部分は、本サイトが両者の公開事実を並べたものだ。通知は、バックエンドが同じライブラリを使っていたとも、同一の経路だったとも述べていない。