コーディングミスが招いたMicrosoft 365アカウントの大規模乗っ取りリスク

Image

出典:Zoonar GmbH / Alamy Stock Photo

複数のMicrosoft 365 Androidアプリに存在するコーディングミスにより、ユーザーアカウントが大規模な侵害にさらされていたことが明らかになりました。認証トークンのセキュリティ管理を怠ることが、信頼モデル全体を崩壊させかねないという事実を、改めて示す事例となっています。

セキュリティ企業Enclaveの研究者たちは、Excel、Word、PowerPoint、OneNote、Loop、Microsoft 365 Copilotをはじめとする複数のMicrosoft Androidアプリの本番リリースに、デバッグ設定が誤って有効なまま残されていた脆弱性を発見しました。これは火曜日に公開されたブログ投稿で報告されています。

「AndroidスマートフォンのWord、OneNote、PowerPoint、Excel、Loop、365 Copilotという6つのMicrosoftアプリで、テスト用の設定がオンのまま残っていました」と、Enclaveの共同創業者兼最高製品責任者のYanir Tsarimi氏はDark Readingに説明しています。「その設定は、他のアプリがログイン情報を取得できないようにするためのものでした。」

この設定が無効化されたことで、デバイス上の信頼されたMicrosoftアプリのみが他のMicrosoftアプリから認証トークンを受け取れるよう保証するセキュリティ制御が、事実上機能しなくなっていました。この機能はアプリをまたいでユーザーがログインできるようにするものであり、アプリ間の信頼関係における安全な引き渡しが確保されている場合には合理的な仕組みです。

認証トークンを介したアプリ間セキュリティの欠陥

Enclaveによると、このデータ交換を保護するための認証チェックがAndroidアプリで無効化されていただけでなく、脆弱なコードがMicrosoftの共有ソフトウェア開発キット(SDK)内に存在していたため、複数のMicrosoftアプリ全体でデータへの不正アクセスが可能な状態になっていました。

この保護機能が回避されると、トークンをリクエストできるあらゆるAndroidアプリが、Microsoftの認証情報を取得できる可能性があったと、Tsarimi氏は説明しています。

これにより、「スマートフォン上の他のアプリがMicrosoftのログイン情報を要求して取得できてしまう」という悪用シナリオが成立すると同氏は述べています。「6つのアプリすべてを悪用することで、攻撃者はメールを読み取ることができます。さらにいくつかのアプリでは、メールを送信したり、Teamsのメッセージを読んだり、ファイルを開いたりすることも可能でした。」

この問題は、開発プロセスにおける「ほんのわずかな変更」が「重大なセキュリティ問題を引き起こす可能性がある」ことを示していると、Tsarimi氏は指摘しています。「今回のケースでは、一つの設定をオフからオンに切り替えただけで十分でした」と述べ、開発チームは「このような小さなミスを見逃してはならない」と付け加えました。

残念ながら、このようなことは「人々が思っている以上によく起こっている」と同氏はDark Readingに語っています。「ソフトウェアを安全に保つことは難しい」とTsarimi氏は述べています。「ほとんどのアプリではこの設定は問題になりませんが、これらのアプリでは本当に重要でした。」

Microsoft認証情報を詐取する単純な攻撃手法

Enclaveによると、この状況を悪用することは攻撃者にとって非常に簡単だったといいます。攻撃者がすべきことは、影響を受けるMicrosoftアプリから密かにトークンをリクエストする小さなルーティンを含むAndroidアプリを配布または更新するだけでした。

脆弱なアプリはリクエスト元の信頼状態を検証することなくトークンを返してしまいます。攻撃者はそのトークンを窃取し、他のMicrosoft 365アプリのリソースへのアクセスに利用できます。

さらに、Tsarimi氏によると、このシナリオを特に危険なものにしていたのは、流出したトークンが特別な「FOCIトークン」であり、誰にも気づかれることなく長期間にわたって再利用・更新が可能だったことです。また、このアクティビティに関連するトラフィックやログは「まったく通常通り」に見えると、同氏はブログ投稿に記しています。

EnclaveはMicrosoftへ責任ある開示を行い、Microsoftはその後、すべての欠陥を修正するアップデートと複数のCVEを発行しました。これらの脆弱性はCVE-2026-41100CVE-2026-41101CVE-2026-41102、およびCVE-2026-42832として追跡されています。MicrosoftはDark Readingからのコメント要求に対し、本稿執筆時点で回答を提供していません。

クリーンなコーディングがもたらすセキュリティへの広範な示唆

今回の問題は修正済みですが、クリーンなコーディングの重要性だけでなく、相互に接続されたウェブベースのアプリケーションやシステム全体において、認証トークンのセキュリティ確保が絶対的に不可欠であることを改めて示しています。

「認証トークンは、バックエンドシステムによって信頼の証として扱われることが多すぎます。そのため、トークンの傍受・再利用を可能にするあらゆる脆弱性は、下流のサービスとデータを保護するセキュリティ上の前提を損なうことになります」と、ApproovのCEOであるTed Miracco氏は述べています。

このような事件は、アプリとデバイスがユーザーと組み合わさった場合の信頼性を検証することの重要性を浮き彫りにしていると、Miracco氏は述べています。トークンが本来のセキュリティ境界を越えて流出した場合、攻撃者は正規のユーザーやアプリケーションであるかのようにバックエンドシステムと対話できる可能性があるためです。

「組織は、認証情報がどのように発行されるかだけでなく、バックエンドサービスがそれらを提示するクライアントデバイスとアプリケーションの整合性と真正性を継続的に検証できるかどうかについても評価する必要があります。これが真のゼロトラストソリューションへの道です」と同氏はアドバイスしています。

モバイルアプリを開発する者は、実行されるデバイスがすでに感染していることを前提として開発を進め、プロセス全体を通じてセキュリティを最優先事項として意識し続けるべきだと、Miracco氏はDark Readingに語っています。「APIキー、シークレットトークン、機密認証情報をアプリケーションバイナリ内にハードコードしてはなりません。特権を持つ攻撃者がメモリダンプを通じてそれらを抽出できるようになってしまいます。」

翻訳元: https://www.darkreading.com/application-security/coding-gaffe-exposes-microsoft-365-accounts-takeover

ソース: darkreading.com