攻撃者がMicrosoftのOAuth 2.0デバイス認証グラント(デバイスコード)フローを悪用し、Microsoft 365アカウントを乗っ取るキャンペーンが現在進行中であることが明らかになりました。
攻撃者は偽のログインページで認証情報を盗む手口ではなく、被害者に本物のMicrosoft認証プロセスを完了させるよう誘導します。被害者が気づかないうちに、攻撃者が制御する「デバイス」への認可が行われる仕組みです。その結果、パスワードを一切窃取することなく、企業のMicrosoft 365リソースへの完全な認可済みアクセスが攻撃者の手に渡ります。
攻撃はベンダーからの見積もり承認を装った、巧みに作り込まれたフィッシングメールから始まります。
このメールはコンテンツID(cid)URLで埋め込み画像を参照するHTMLファイルと、クリッカブルなアンカーが重ねられた囮用のJPG画像という2段構えの添付技術を使用しており、画像全体がリンクとして機能します。
コンテンツIDの値にはアルゴリズムで生成されたid-left/id-rightコンポーネントが含まれており、これによって単純な添付ファイルスキャンによる検知を回避できるようになっています。
受信者が画像をクリックすると、ClickFix方式のフィッシングランディングページへ誘導されます。このページでは「ドキュメントを確認する」よう求められ、続いて被害者がコピーするよう指示された確認コードが生成されます。
被害者がランディングページの「Microsoftでサインイン」ボタンをクリックすると、サイトは本物のMicrosoftデバイスログインフロー(hxxps://aka[.]ms/devicelogin)を開きます。
これにより本物のMicrosoft認証UIが起動されます。まずコード入力ポップアップが表示され、次に「別のデバイス」と明示するMicrosoft Authentication Brokerを通じてアカウントのユーザー名入力画面へ進みます。UIそのものが本物であるため、この操作の信ぴょう性は大幅に高まります。

この攻撃キットの核心はデバイスコードの値にあります。デバイスコードは本来、標準的なWebベースのOAuthフローを完了できないブラウザ非搭載デバイス(コマンドラインアプリ、スマートTV、IoT機器など)の認証に使用するものです。
このフィッシングサイトは被害者にデバイスコードを表示するとともに、4秒間隔のPOSTループで攻撃者のバックエンドと通信します。
悪用されるMicrosoft OAuthデバイスコード
被害者がMicrosoftのダイアログにコードを入力して手続きを進めると、攻撃者のデバイスが被害者のアカウントに紐づいたMicrosoft OAuthトークンを受け取り、パスワードを一切傍受することなくアカウント乗っ取りが完了します。

このフィッシングキットはランディングページのHTMLに巧妙な検知回避技術を採用しています。作者は本来検知のトリガーとなり得る単語、たとえば「Microsoft」「account」「verify」などに、不可視のUnicodeフォーマット文字(ゼロ幅スペース、ワードジョイナー、ゼロ幅非ジョイナー)を挿入しています。
これらの文字が異常に高密度で含まれていることは信頼性の高い検知指標であり、このキットのページを検索するYARAシグネチャに組み込まれています。
もう一つの特徴は、デバイスコードのPOSTペイロードに埋め込まれたビットシフト済みのEntra IDセキュリティトークンサービス文字列です。バイトを6ビット左シフトするとこの文字列が現れます。

URLセーフなBase64とビットシフトされた文字列の組み合わせにより、誤検知率の低いYARA検知文字列が得られます。
ネットワークレベルでの検知も実現可能です。このキャンペーンは特徴的な3クラスターのトラフィックパターンを生成します。すなわち、最初のランディングページ訪問とMicrosoft認証ポップアップ、コード入力後の第2フェーズ認証アクティビティ、そしてフィッシングキットから攻撃者ホストへの4秒間隔のビーコニングPOSTです。
攻撃の最初の2フェーズを特徴付ける2つのホスト名解決シーケンスは、いずれもaka.ms、login.microsoftonline.com、aadcdn.msftauth.net、login.live.com、browser.events.data.microsoft.comが関与しています。
エンドポイントからのMicrosoft認証アクティビティと4秒間隔のビーコニングが同時に観測された場合、それは侵害の強力な指標であり、即時調査が必要です。
デバイスコードフィッシングは正規の認証メカニズムを武器として利用するため、正常な活動と悪意ある活動の境界線が曖昧になり、特に危険性が高いと言えます。
防御側は、不可視Unicodeパターンとエンtra IDアーティファクトを標的としたYARAルールを展開し、上述のホスト名シーケンスや定期的なビーコニングを監視するとともに、未承諾のデバイスコードプロンプトを不審なものとして扱うよう利用者に教育することが求められます。
技術的な追加対策としては、デバイスコードグラントを制限する条件付きアクセスポリシーの適用、異常なOAuthクライアント承認に対するログ記録とアラート設定、そして不正トークンの価値を低下させる多要素認証の徹底が挙げられます。
翻訳元: https://gbhackers.com/microsoft-oauth-device-code-abused/