
2026/09/29 5:32
17TB のマイクロソフト記録ファイルへのアクセスが可能でした。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
2026年9月25日、研究者Faav(16歳)が、マイクロソフト内部のTitanアナリティクスサービスにおける重大な脆弱性を公開した。この欠陥により、正当な認証情報を持たない場合でも攻撃者が管理者を偽装できることが可能となり、その要因として、同サービスがAzure ADベアラー認証を採用しているにもかかわらず、ログイントークンのJWT署名を検証していない点が指摘された。具体的には、
{"alg":"none"} の未署名リクエストが /v2/Query エンドポイントのチェックを回避し、生SQLコマンドの実行を可能にするケースを確認した。Faavが開発したAI支援ツール「Antares」がこの問題の発見に寄与し、Faavは手動で検証することで、ユーザープリンシパルネームフィールドがメールアドレスではなくローカルユーザー名として扱われていることを確認し、それを利用して権限昇級のために値を"admin"に変更できることを突き止めた。
影響範囲は極めて重大であり、17の接続済みデータベースを通じて約17.3兆行に及ぶデータへのアクセスが可能だった。これには約25,000件の内部アカウント記録や機密的な従業員情報——従業員メールアドレス約17,990件、組織記録15,001件、役職・部署・管理階層などの情報が含まれていた。さらに、検索クエリ、識別子、逆IPアドレスから導出された国/州レベルの所在地情報を含む、Bing検索アナリティクスデータの1行サンプル計2件のアクセス可能性も確認された。Faavは内部データセットに固有のものを超えた顧客データや個人情報へのアクセスを行っておらず、このexploit は仮想的なものであり、責任ある方法で報告された。
マイクロソフトはこの報告をバグボountyプログラムを通じて9月5日に受領し(ケースID:144051)、即座に調査を開始し、9月9日には影響を受けたAPIエンドポイントをロックダウンした。同社は協調型脆弱性情報開示を称賛し、9月17日に賞金5,000ドルを支給した。また、公的な説明文書の編集権限行使により、影響範囲に関するナラティブの管理を行った。この事案は、企業システムにおける誤設定されたアイデンティティトークンに関連する重大なリスクを浮き彫りにし、機密性の高い内部サービスに対しては堅牢な認証チェックと署名検証の実施が不可欠であることを強調している。
本文
署名なし JWT バイパスにより 17.3 京レコードにアクセス可能と判明:Microsoft Titan API の重大欠陥
概要:巨大なデータ流出リスク
- 影響規模: Microsoft の保存済みデータセットで、約 17.3 京(17,300,000,000,000)のレコードにアクセス可能となりました。
- 原因: 単一の内部分析サービスである Titan API において、ログイントークンの 署名検証を行っていない致命的な欠陥 が発見されました。
- 攻撃手法: この欠陥により、研究者(Faav)は管理者のアイデンティティを詐称し、実在する資格情報なしで SQL クエリを実行することができました。
- 調査範囲: 潜在的影響を理解するためには、テーブルの説明、メタデータ、および有界なサンプルレコードのみを使用しました。
重要な注記
- 仮想的な影響:
- 本文で説明されている具体的な悪用シナリオは仮定です。これは「攻撃者がこれを行うことができた可能性」を示しています。
- 幸運にも研究者はバグ発見後、いかなる顧客データや個人識別情報(PII)にも触れることはありませんでした。
- 記事の編集調整:
- Microsoft は本記事の編集権を有しており、公表前に一部のセクションや図表を削除・改変し、影響の説明方法を変更しました。
Microsoft の公式見解
Microsoft はこの脆弱性情報開示について以下のコメントを発表しました:
「Faav 氏による報告された発見点について調査する機会をいただき感謝申し上げます。彼らの提出内容および協調的な脆弱性情報開示活動は、当社のサービスを見直し強化することで顧客の保護に寄与し、私たちにとって大きな価値となりました。Microsoft のバグバウンティプログラムの枠組みにおける安全で責任あるセキュリティ研究を高く評価しており、今後とも Faav 氏と連携していくことを願っております。」
研究者プロフィール:Faav
- 経歴: 15 歳の時点で「Microsoft Guest Check-In による PII 流出」という初の技術記事を公開。現在は 16 歳。
- 活動内容:
- 通学期間中でも休むことなく Microsoft を含む多企業(Amazon, Google, Adobe など)で脆弱性調査を行ってきた。
- ハッキング手法に AI を組み込み、「Antares(アンタレス)」という独自の AI ハッキングボットを開発した。
- 今回の発見: Antares による自動的なリード探索が失敗し、研究者自らの思考によって最大の Microsoft バグへと発展しました。
Titan API の発見経緯
- 2026 年 8 月 25 日: AI ボット「Antares」が内部サービス**「Titan」**の存在を特定しました。
- フロントエンドは VPN 認証(Microsoft 従業員のみ)を必要とし、一般ユーザーへの直接アクセスは制限されていましたが、サブドメインのエンドポイントが存在することが分かりました。
- 利用可能な API ルート:
(認証必要)/GetConfiguration
(認証必要)/GetOnboardedTables
(認証必要)/v2/Insert
(署名付き JWT 不要の生 SQL クエリ受け付け)/v2/Query
- 調査プロセス:
- Wayback Machine からアーカイブされた Superset 設定情報を復元し、56 のテーブル定義を取得しました。
- テスト用として
という値を発見し、認証ヘッダーなしでの試行結果としてTestData
を受けました。401 Unauthorized
JWT 署名検証の欠陥発見
- 探索プロセス: Antares が数百件のリードを処理する中で、Titan の JWT チェック部分に切り込み始めました。
- テナント変更やオーディエンス変更などでエラーは発生しますが、アプリケーション ID を変更するとユーザー検索が成功。
- トークンの署名内容(ペイロード)を変化させても、Titan は新しいクレームを受け付けるのみでした。**「署名を検証していない」**という事実を突き止めました。
- 攻撃手法の構築:
- 署名なし JWT を作成するために
のヘッダーを使用しました。{"alg":"none","typ":"JWT"} - トークンは
の構成ですが、第 3 セクション(署名)を空にし、単なるドットで終了させることで、完全な署名検証スキップを実現しました。header.payload.signature
- 署名なし JWT を作成するために
- 最初の挫折:
フィールドに電子メール形式の値を記述しましたが、Titan が認識する有効な UPN を見つけることができませんでした。upn
突破:「admin」という文字列の重要性
- 思考の転換: 研究者は「もし
をローカルアプリケーションユーザー名の検索に使っているとしたら?」と考えました。upn- 署名なしトークンの
フィールドに、**「admin」**という文字列を代入し試行しました。upn
- 署名なしトークンの
- 結果:
- 返ってきたのは数字「1」のみでしたが、これは Titan の管理者 ID に解決したことを意味します。
- Titan は署名なしの管理者アイデンティティを受け入れ、SQL クエリを実行することを可能にしました。
- 「admin」という値は有効な UPN ではありませんが、開発者がバックエンドでローカルユーザー名として扱い、「1」という ID にマッピングされていたことが判明しました。
データベース内部への侵入
- アクセス可能な情報:
コマンドを実行し、以下のメタデータとデータを発見しました。SHOW DATABASES- アカウント情報: 約 25,000 のアカウントおよびメールレコード(パスワードはハッシュ化されたプレースホルダー)。
- 従業員情報: 17,990 のメールアドレス、15,001 の組織レコード、職務タイトル、部署、管理階層など。
- プラットフォーム設定: 355 のデータベース設定、20,979 の SQL 定義、ダッシュボードとチャートの定義など。
- データの性質:
- 個人情報が含まれるが、機密情報はすべて非公開化されています。
- 攻撃者がソーシャルエンジニアリングを試みる際に役立つ可能性がある従業員データが含まれていましたが、テスト・実証は行われていません。
Bing 分析データのアクセス可能性
- 検証結果: 有界なサンプル(1 レコード)を取得し、Bing の検索分析データがこのサービスを通じてアクセス可能であることを確認しました。
- 取得できた情報には、検索クエリ、識別子、上位レベルの場所フィールドが含まれていましたが、正確な位置情報ではなく逆 IP 解析による国・州レベルの情報でした。
- プライバシー保護:
- 特定の個人を特定する操作や、データセット間でのレコード連携(プロファイル作成)は一切行っていません。
全規模の算出:17.3 京レコード
- 調査方法:
- 56 つのルーティング値に対し「SELECT 1」問い合わせを実行し、そのうち30 つが依然として有効であることを確認しました。
- AI に各分散テーブルのメタデータカウントを計算させ、合計を算出させました。
- 最終結果:
- 返ってきた非整形化された合計値は
です。17,333,335,124,315 - これは履歴データや重複データも含まれるため、実際の保存容量よりはるかに大きな数値ですが、技術的にアクセス可能な環境の規模として極めて巨大であることを示しています。
- 返ってきた非整形化された合計値は
教訓と結論
1. AI と人間の直感の相乗効果
- Antares の役割: サブドメイン列挙、JWT エラー分析、攻撃対象領域マッピングなどの反復作業を代行しました。
- 人類の役割: 「
フィールド名が必ずしもメールアドレスを意味しない」という文脈理解と、エラーメッセージのヒント(「ユーザーが見つかりません」)からの推測は、AI だけでは達成できませんでした。持続性と閃きが必要です。upn
2. 致命的な設計欠陥
- 問題点: Titan はトークン内容(テナント、アプリ ID など)を検証していますが、最も重要な**「署名(Signature)」の検証を行っていません**。
- リスク: 鍵カードリーダーが機能しているように見えても、どのルームのカードでも全ての部屋が開錠できてしまう状態です。認証制御ロジック自体が存在しても、この欠落により意味をなしてしまいます。
タイムラインまとめ
| 日付 | イベント内容 |
|---|---|
| 2026/8/25 | Antares が Titan API を特定、Superset 設定と 56 つのテーブル定義を回復。 |
| 8/25 - 9/5 | JWT チェック精査と UPN テスト(挫折)。研究者自らの調査へ移行。 |
| 9/5 (深夜) | を「admin」に変更し、管理者として SQL 実行に成功。MSRC に報告開始。 |
| 9/5 | 30 つの有効ターゲットと 17 つのデータベースへのアクセス確認。ケース番号 144051 開設。 |
| 9/6 - 8 | MSRC がテスト中止要請、IP アドレス提供を要求。最優先事項として処理中。 |
| 9/9 | API エンドポイントロック(封鎖)。即座の是正措置へ移行。 |
| 9/17 | ボーナス賞金 $5,000 を受領。 |
| 9/22 | Microsoft と面会し、発見内容の議論および開示調整を実施。 |
| 9/22 - 24 | 影響範囲の見直しと記事内容の再構築(一部削除含む)を完了。 |