Microsoft 365 OAuth トークン・ハイジャック:公開 API/不正なリクエスト/エラー・メッセージの悪用

Phishing and OAuth Token Flaws Lead to Full Microsoft 365 Compromise

2026/02/06 CyberSecurityNews — 現代の Web アプリケーションにおける想定外の攻撃対象領域は、ニュースレター登録/問い合わせフォーム/パスワードリセットなどの、無害に見えるユーザー・エンゲージメント機能を通じて生み出されている。個々の脆弱性について言えば、単体では対処や管理が可能と思われるが、高度な攻撃者たちは、こうした小さな欠陥を連鎖させている。その結果として、Microsoft 365 などで壊滅的な侵害が引き起こされ、攻撃者たちは目的を達成していく。

サイバー攻撃における主要な侵入口として、依然として電子メールが用いられる一方で、高度化したフィルタリングや認証プロトコルにより、従来型のフィッシングに対する防御は向上している。

こうした状況に対して、攻撃者たちが新たに見出したのは、正規かつ正当なビジネス・ロジックを悪用する回避手法である。たとえば、公開 API エンドポイントの入力フィールドを操作することで、組織自身のインフラから悪意のメールを送信させることが可能となる。これらのメッセージは、認可されたサーバから送信されるため、SPF/DMARC といった厳格な認証チェックを通過し、被害者のメインの受信箱に直接配信される。

この手法は、組織のドメインに内在する信頼を悪用することで、検知を効果的に回避するものである。Praetorian のアナリストによると、この種の攻撃チェーンが確認されており、メール送信における欠陥が、第二の脆弱性である不適切なエラー・ハンドリングと組み合わされることで、深刻度が劇的に高まるという。

Phishing email bypassing security filters due to legitimate origin (Source - Praetorian)
Phishing email bypassing security filters due to legitimate origin (Source – Praetorian)

多くのクラウド環境における内部サービスは、OAuth トークンを用いて認証を行っている。しかし、アプリケーションのコンフィグ (設定) が、デバッグ目的で詳細なエラーを表示する状況では、異常/不正なリクエストにより、それらの機密な認証トークンが、スタック・トレースと共に出力される可能性がある。

トークン・ハイジャックの仕組み

この種のインシデントにおける技術的な中核は、アプリケーション・コンテキストにおける OAuth 2.0 ベアラー・トークンの不適切な取り扱いにある。

不完全または不正な JSON ペイロードを、意図的に API に送信する攻撃者により、システムは適切な例外処理を行えない状況に陥る。その際に、汎用的なエラーは返されず、包括的かつ詳細なデバッグ・ログがクライアントに返される。

それらのログには、サービスが Microsoft Graph API と通信するために用いる、有効な JSON Web Token (JWT) が含まれている。一度、トークンを取得した脅威アクターは、ユーザー資格情報や通常のログイン・アラートを必要とせずに、組織リソースへの認証済みアクセスを直ちに行える。

Malformed request triggering a verbose error response containing an OAuth token (Source - Praetorian)
Malformed request triggering a verbose error response containing an OAuth token (Source – Praetorian)

窃取されたトークンのスコープに応じて、攻撃者が可能にするアクションとして挙げられるのは、SharePoint ドキュメントの密かな持ち出し/機密性の高い Teams チャット履歴へのアクセス/Outlook カレンダーの改変などである。

さらに、トークンが十分な権限を有している場合には、この永続的な足掛かりを悪用することで、より広範な Azure インフラへの横展開も可能になる。前述のエラー状態を繰り返して発生させる攻撃者は、新たなトークンを継続的に取得し、セッション失効後もアクセスを維持できる。

これらのリスクを効果的に軽減するためには、すべての公開 API に対して厳格な入力検証を実施し、必要最小限のパラメータのみを受け付ける設計とすることが不可欠になる。さらに本番環境では、汎用的なエラー・メッセージのみを返すコンフィグを用いることで、詳細なデバッグ情報の流出を抑止すべきである。それにより、内部システムの状態や有効な認証情報が、意図せずに漏洩してしまう可能性が防止される。