KnowBe4 Blog (JP)

知らぬ間に認証してしまうデバイスコードフィッシングとは?

作成者: TOKYO, JP|Jun 19, 2025 12:00:00 AM

2025年2月13日にMicrosoftが “デバイスコードフィッシング” を悪用したロシア国家関与の攻撃キャンペーンを発表して以来、多くの人がその手口について関心を寄せています。

本ブログでは、デバイスコードを狙ったフィッシングの仕組みと、その対策方法を解説します。

デバイスコードとは?
“デバイスコード” という名称は、明確ではなく、誤解を招きやすい用語です。なぜなら、あらゆる認証コードは基本的にデバイスに送信されるからです。デバイスコードが他の認証コードと異なるのは、ユーザーではなく、デバイスそのものを認証するという点です。認証が完了すると、以後そのデバイスからの接続は、特定ユーザーに紐づけられたものとして扱われます。つまり、「同じデバイスを使っている=本人」というロジックに基づいた、間接的なユーザー認証といえます。

あるデバイスでアカウントへログインを試みた際、すでに認証済みの別のデバイスに6桁程度の英数字コードが送信され、そのコードを新しいデバイスに入力すると、ログインが完了するという認証方法は皆さまも経験したことがあるのではないでしょうか。これは、ワンタイムパスワード(以下、OTP)を使った多要素認証の一部として広く利用されています。

手順は似ていますが、デバイスコード認証はOTPといくつかの明確な違いがあります。まず、通常のOTPはユーザーを認証します。ユーザーがデバイスに紐づいている場合もありますが、あくまでもユーザー自らによる行為で認証します。

一方、デバイスコード認証では、デバイスのIDを認証することで、結果的にデバイスを使用するユーザーも信頼されたものとして扱われます。認証コードを入力すると、そのデバイスがサービスに紐づけられ、以後はそのデバイスからのアクセスに限り、一定期間は再認証が不要になります。

デバイスコードという名は知らなくても、使用したことがある方は多いはずです。たとえば、テレビでNetflixやApple TVにログインする際、リモコンでログイン情報を一文字ずつ入力する代わりに、スマートフォンに表示されたコードを入力して、手間なくログインできた経験はありませんか?さらに、同じデバイスを使えば、次回からは再認証なしで利用できます。これがデバイスコード認証が利用されている典型的な場面です。

攻撃手法
攻撃者は被害者のアカウントIDを用いて、MicrosoftやNetflixなどの正規サービスへのログインを開始することで、サービスからデバイスコードを取得します。次に、そのコードを含んだフィッシングメッセージを被害者に送り、ログイン画面へのリンクにコードの入力を促します。ユーザーが入力すると、サービス側は攻撃者のデバイスをユーザー本人のものと誤認し、認証してしまうのです。

 

 

 

 

 

 

 

 

 

Microsoftサービスを使用した攻撃事例
Microsoftは、日常業務に使用するアプリケーションやサービスへのログインにおいてデバイスコードが使用しています。たとえば、Microsoftの
ディレクトリサービス “Entra”(旧Azure Active Directory)は、何千万人のOffice 365ユーザーがアプリケーションやアカウントへアクセスするために
使用されており、デフォルトでデバイスコードによる認証が用いられます。

Microsoftによる攻撃の説明によると、まず、攻撃者はフィッシングメールやチャットで偽のMicrosoft Teamsミーティングの招待をユーザーに
送ります。メール内のMicrosoftリンクは正規のもので、ユーザーはログイン画面に誘導され、コードの入力を求められます。ユーザーがコードを
入力すると、攻撃者のデバイスが被害者のデバイスとして認証され、しばらくの間、再認証なしでアクセスできてしまいます。

全体的な課題
まず、根本的な問題として、OTPを認証手段として使うこと自体が、セキュリティの観点から非常に危ういという点があります。OTPは他のパスワードと同様に、ソーシャルエンジニアリングでだまし取るのが容易です。

従来のOTPフィッシングでは、攻撃者がユーザーを偽のログインページや中間サイトに誘導し、そこにコードを入力させることでOTPを盗み出し、
本物のサイトで再利用するという手口がよく見られます。この場合、ユーザーが送られてきたリンクがいつもと違うことや不審なURLであると
気くことができれば、被害を防げる可能性があります。

しかし、デバイスコードフィッシングでは状況が逆になります。この攻撃では、サービス側が、攻撃者に対してユーザーのOTPを発行してしまい、
それを攻撃者がユーザーに送りつけ、あたかも正規のプロセスであるかのように入力させます。サービス側は、このリクエストが不正なものだとは
気づく術がありません。

いずれの攻撃でも、最終的にはOTPが不正に利用されてしまう点は同じです。しかし、デバイスコード型フィッシングのほうが厄介なのは、ユーザーが使用するリンクやログインページが完全に正規のものである点です。たとえば、microsoft.comのように、普段ログインに使っている本物のサイトであるため、従来のセキュリティ教育で教わる「リンク先のURLを確認する」「怪しいドメインは避ける」といった対策は、ここでは役に立ちません。

正規のサイトであっても、そこにコードを入力することで、攻撃者のデバイスが自分のアカウントに紐づけられてしまうという非常に巧妙な攻撃で、気づくのが難しいです。

なお、OTPの安全性に疑問があることは、サイバーセキュリティ業界でも周知の事実です。たとえば、米国政府はすでに2016年に発表された
NIST SP 800-63(デジタルIDガイドライン)の中で、「OTPを送信する方式による認証は、不正操作が容易すぎるため避けるべき」と明言しています。

もともとデバイスコードは、テレビやスマートフォンのように文字入力が不便な環境でも簡単に認証できるように設計されたものでした。しかしその利便性が、いまや攻撃者にとって、不正に人々のアカウントに長期間アクセスするための抜け道となっています。

防御策
デバイスコードフィッシングを防ぐ手段は、ユーザー教育やデバイスコードの無効化以外に、現時点ではほとんどありません。

したがって、まず必要なのは、ユーザーにこの攻撃手法を正しく理解してもらうことです。ただし、一般的なフィッシング対策と比べると、教育内容はやや複雑になります。重要な点は、「自分が操作をしてもいないにも関わらず、突然デバイスコードの入力を求められる」という状況に違和感を持てるかどうかです。

通常、正規のデバイスコード認証は、ユーザー自身が何らかの操作を始めた結果としてコードが発行されます。たとえば、ホテルのテレビでNetflixにログインしようとした際、画面にコードが表示されるのは自然な流れです。自分が行動を起こした結果、コードが表示されているため、不自然さはありません。

一方、デバイスコードフィッシングでは、ユーザーが何も操作していないにもかかわらず、コードの入力を求められます。つまり、身に覚えがないのに唐突にコード入力を求められるという点が、この攻撃の最大の特徴です。些細な違和感ですが、フィッシングを見破る重要なポイントです。

条件付きアクセスの活用
Microsoft Entraを利用している環境であれば、デバイスコードフローを無効にすることが可能です。デバイスコードを無効にすることによって、
これらを悪用するようなフィッシング攻撃への耐性を高めることができます。ただし、この設定を無効にすると、正規ユーザーを含むすべてのユーザーがデバイスコードを使えなくなり、代わりに追加情報を用いたログインが求められます。そのため、利便性とのバランスを踏まえて判断する必要があります。

※なお、アプリケーションによってはデバイスコードを無効にできない場合もあります。

IPアドレス制限やジオフェンシングの導入
一部の組織では、IPアドレスの範囲指定やジオフェンシング(物理的な位置情報に基づくアクセス制御)を用いて、デバイスコードの不正利用を
ブロックしています。すべてのアプリケーションで利用できるわけではありませんが、対応している場合は有効な対策となります。

デバイスコードは便利であるがゆえに、私たちの生活に広く浸透しています。しかし、こうした仕組みを狙った詐欺が存在していることも事実です。正しい知識を得ることや普段から疑いの目を持つことが、今回紹介した攻撃方法への最も確実な防御策です。

原典:Roger Grimes著 2025年4月29日発信 https://blog.knowbe4.com/what-is-device-code-phishing