デバイスコードフィッシングとは、デバイスコードフローを悪用するフィッシング手法のことです。
スマートテレビやIoTデバイス、プリンターなどのデバイスはWebブラウザやキーボードを持たないことが多く、文字や数字の入力に制約があります。そこで、ユーザーがこうしたデバイス上のアプリケーションにもサインインできるようにするために提供されている認証方式の1つが、「デバイスコードフロー(OAuth 2.0 デバイス承認付与フロー)」です。
<正規のデバイスコードフローの流れ>
- ① サインインしたいデバイスが認可サーバーに対してデバイスコードの発行を要求する
- ②認可サーバーがデバイスコードを発行する
- ③ユーザーは別のデバイス(スマートフォンやPCなど)から認証ページへアクセスし、デバイスコードを入力する
- ④ユーザーの認証が成功すると、認可サーバーから当該デバイスに対してアクセストークンが発行される
- ⑤当該デバイスがアクセストークンを利用してアプリケーションへサインインする
デバイスコードフローはさまざまなIDプロバイダーで提供されていますが、特にMicrosoft Entra IDのデバイスコードフローを悪用し、標的ユーザーのMicrosoft 365アカウントへ不正にログインしようとするデバイスコードフィッシング攻撃が度々報告されています。
代表的なデバイスコードフィッシング攻撃の大まかな流れは、以下の通りです。
- ①攻撃者は著名人や業務関係者などを装い、WhatsApp、Signal、Microsoft Teamsなどのメッセージングサービスを通じて標的ユーザーと接触し、信頼関係を築く
- ②攻撃者は、Microsoft Entra IDに対してデバイスコードの発行を要求する
- ③Microsoft Entra IDがデバイスコードを発行する
- ④攻撃者はオンライン会議やイベントへの招待を装ったメッセージやメールを送信し、標的ユーザーにデバイスコードの入力を促す
- ⑤すでに自身のMicrosoftアカウントにログイン済みの標的ユーザーが、攻撃者から提示されたデバイスコードを正規のサインインページに入力する
- ⑥ユーザーの認証が成功すると、攻撃者のデバイスに対してアクセストークンが発行される
- ⑦攻撃者はこのアクセストークンを利用して標的ユーザーのMicrosoftアカウントに不正にアクセスする
上記はあくまで一例であり、デバイスコードフィッシングにはほかにもさまざまな手口が存在します。例えば、デバイスコードフィッシングとビッシング(音声フィッシング)を組み合わせた「デバイスコードビッシング」と呼ばれる手法などが報告されています。
デバイスコードフィッシングの重要な特徴の1つは、攻撃者がフィッシングサイトを用意する必要がない点です。被害者は正規の認証ページ上で認証を行うため、従来型のフィッシング対策では検知が難しい場合があります。
デバイスコードフィッシングは2020年頃からセキュリティ研究者によって紹介され始めた手法ですが、その後実際の攻撃でも利用されるようになりました。近年では、この手法を悪用した攻撃事例の増加が報告されています。その背景には、フィッシングキットと呼ばれる攻撃支援ツールの普及により、攻撃者がデバイスコードフィッシングを容易に実行できるようになっていることなどがあると考えられています。











