8月2日、Truffle Securityが「Scanning 7.6 Petabytes of HuggingFace Training Data for Secrets ◆ Truffle Security Co.」と題した記事を公開した。HuggingFaceの公開データセット全量(7.6ペタバイト)をスキャンした結果、スキャン時点でプロバイダーへの認証が通ることを確認済みの「生きた認証情報」が22万件以上発見されたという調査結果だ。AIの学習データが認証情報の巨大な吹き溜まりになっている実態を、具体的な数字と経路とともに明らかにしている。
7.6PBスキャンで見つかった22万件の生きたキー
AIモデルの学習データはどれだけ「汚染」されているか。Truffle Securityはこの問いに正面から答えるため、HuggingFaceの公開データセットを丸ごとクローンし、186.9万ファイル、約7.6ペタバイトを対象にシークレットスキャンを実施した。シークレットスキャンとは、ソースコードやデータの中に埋め込まれたAPIキー・パスワード・トークンなどの認証情報を自動検出する手法だ。今回のスキャンには、同社が開発するオープンソースのシークレットスキャンツール「TruffleHog」が用いられた。これは同社がこれまで行った最大スキャン(約400TB)の約19倍の規模である。
結果として発見されたのは、221,303件の有効なユニーク認証情報(6,003データセットに分散)。ここで「有効」とはスキャン時点でプロバイダーへの認証が通ることを確認済みのものを指す。単なる文字列の一致ではなく、実際に機能するキーだ。
最大の衝撃:世界人口の3.7%分のPIIにアクセス可能なキー
今回の調査で最も重大な発見として言及されているのが、393GBの個人情報(PII)へのアクセス権を持つ認証情報だ。これは世界人口のおよそ**3.7%**に相当する規模と推定されている。詳細については別途フォローアップ記事が公開予定とされている。
ソフトウェアサプライチェーンを直撃するキー
特に深刻なのが、コード・インフラへの書き込み権限を持つ認証情報だ。
- GitHubの個人アクセストークン(PAT):349件が有効。うち223件はリポジトリへの完全書き込み権限(
repoスコープ)、130件はCI/CDワークフローの書き換えが可能(workflowスコープ)、112件は組織管理権限(admin:org)を持つ - Docker Hubトークン:318件がイメージのプッシュ権限を持つ
中でも深刻な事例として、Model Context Protocol(MCP)レジストリの創設者に紐づくrepoスコープのトークンが発見された。MCPとは、AIモデルが外部ツールやデータソースと標準化された方法で連携するためのプロトコルであり、2024年以降主要なAI開発基盤に急速に採用されている比較的新しい仕様だ。当該アカウントはMCP公式組織と接続されており、主要なAIコーディングツールが利用するサーバー・SDKを収めたリポジトリの合計GitHubスター数は17万8,000以上に上る。他にも大手テクノロジー企業のエンジニア、銀行の開発者、AIラボの研究者が保有する高権限トークンが含まれていた。
クラウド・データベース・コミュニケーション基盤への侵入口
| カテゴリ | 発見数・規模 |
|---|---|
| GCPサービスアカウントキー | 8,557件(3,811プロジェクトに分散) |
| 非公開S3バケット内ストレージ | 51.7TB(メタデータ確認) |
| 有効なデータベースログイン | 8,594件(3.5TB相当) |
| Slack・Mailgunキー | 5,885件 |
GCPキーのうち1,926件はFirebase管理者キー、1件は明示的なOwnerロール、1件はKubernetesのcluster-admin権限を持っていた。データベースについては、MongoDB 6,121件・Postgresが有効な接続を維持しており、最大のMongoDBクラスターは617.7GB。米国の防衛関連請負業者に紐づくSQL Serverや、ブラジル連邦機関に紐づくPostgresも含まれていた。
また、ブラジルのフィンテック企業のAWSキーが漏洩した経路として興味深い事例が報告されている。開発者がチャットボットにboto3コードを貼り付けたところ、その会話がLMSYS-Chat-1Mデータセットに取り込まれ、約18回コピーされていた。
AIプロバイダーキーの流出:年間最低92万ドル分の推論コスト
学習データ中には、AIサービス自体のAPIキーも大量に含まれていた。OpenAI(742件)、Anthropic(26件)をはじめ、Gemini(1,429件)、DeepSeek(667件)、xAI Grok(162件)、Azure OpenAI(174エンタープライズデプロイメント)など、合計11,496件が有効な状態だった。
各プロバイダーの最低利用上限(OpenAI・Anthropicともにエントリー層は月$100)を基準に計算すると、月額最低7万6,800ドル、年換算で約92万ドル相当の推論コストが他者のキーで賄える計算になる。これは保守的な下限値であり、組織向けキーや高ティアアカウントでは桁が変わる。Anthropicのトップティアは月$200,000が上限だ。
漏洩の構造:一度の流出が1,131データセットに波及
今回の調査が明らかにしたもう一つの問題は、漏洩の「増幅メカニズム」だ。
有効なシークレットの44%が複数のデータセットに重複して存在しており、19,380件は10以上のデータセットに出現している。The Stackとそのフォークだけで51,571件、AllenAIのDolmaファミリーが28,110件を抱える。
極端な例として、あるInfuraキーがChatGPTとの会話に貼り付けられ、WildChatデータセットに取り込まれた後、1,131の公開データセット・10,162ファイルにコピーされたケースが報告されている。元の場所でキーを失効させても、残り1,130のコピーには何の効果もない。
HuggingFaceはEnterprise組織向けに、公開リポジトリやバケットにプッシュされたHFトークンを自動失効させる機能を持つが、非Enterpriseアカウントのセルフリークや他コーパスから取り込まれたトークンはこのネットの外に落ちる。なお、HuggingFaceは公式セキュリティポリシーを公開しており、脆弱性報告の窓口も設けている。
開発者が取るべき対策
本調査は攻撃者視点の報告だが、読者にとって実践的な示唆も多い。元記事では明示的な推奨事項として以下が挙げられている。
- AIチャットにコードを貼る際は認証情報を含めない。会話ログが学習データに取り込まれる可能性がある
- キーが漏洩した疑いがある場合はただちに失効させ、新しいキーを発行する。漏洩後に複製が広がるため、失効は早いほど被害が限定される
- TruffleHogなどのシークレットスキャンをCI/CDパイプラインに組み込む。コミット時点での検出が最も効果的だ
※編集部の考察:今回の調査が示す本質的な問題は、「一度漏洩したシークレットはコントロール不能なほど複製される」という点だ。GitHubのシークレットスキャン機能やAWSのCredential Reportといった既存の仕組みも、学習データ経由の拡散には無力に近い。AIコーパスのセキュリティ審査という新たな課題が業界全体に突きつけられていると言える。
開示と対応
Truffle Securityは公開前にHuggingFaceと調査結果を共有している。HuggingFaceのCTO Julien ChaumondはTruffleHogにストレージバケットスキャン機能をネイティブ実装するという形で協力した。また、発見された認証情報の持ち主への責任ある開示(Responsible Disclosure)も実施済みだ。
詳細はScanning 7.6 Petabytes of HuggingFace Training Data for Secrets ◆ Truffle Security Co.を参照していただきたい。