パスワード保護された会議やセキュアなチャットルーム、共有ドキュメントへの招待が届いたとします。アクセスするには、いずれかのアカウントのサインインページで短いコードを入力する必要があると案内されます。
メッセージには、そのコードを入力すればドキュメントを開いたり会議に参加できたりすると書かれています。しかし実際には、それは詐欺師が開始したサインインを承認する操作になります。
このページ自体は本物で、コードも正規に機能します。だからこそ「デバイスコードフィッシング」と呼ばれるこの手口は危険なのです。
デバイスコードフィッシングは、通常のログイン画面を表示しにくいデバイス(スマートTV、プリンター、会議室の機器、一部のコマンドラインツールなど)向けに用意された正規のサインイン機能を悪用します。デバイス本体でユーザー名とパスワードを入力する代わりに、別のデバイスでブラウザを開き、サインインページにアクセスして短いコードを入力し、サインインを承認する仕組みです。これにより、コードを表示したアプリやデバイスがアカウントにアクセスできるようになります。
このフィッシング攻撃では、詐欺師がサインインを開始し、被害者にそのコードを入力させて承認させます。これにより、詐欺師がアカウントにアクセスできてしまう可能性があります。
デバイスコードフィッシングの仕組み
デバイスコードフィッシングは、ブラウザを持たない、あるいは入力手段が限られたデバイス向けの標準的なサインイン方式であるOAuth 2.0デバイス認可グラントを悪用します。
攻撃は一般的に次のような手順で進みます。
- 攻撃者が、自身が管理するアプリやデバイス向けに正規のデバイスコードサインインリクエストを開始します。
- サインインサービスが短い一時的なコードと、正規の確認用ページを生成します。
- 攻撃者は偽のTeams招待やドキュメント共有依頼、「セキュアな」チャットへの参加招待といったソーシャルエンジニアリングの手口を使い、そのコードを被害者に渡します。
- 被害者は本物のサインインページにアクセスし、コードを入力してリクエストを承認します。
- 待ち構えていた攻撃者側のデバイスが認証トークンを受け取ります。
これらのトークンはいわばデジタルの通行証として機能し、攻撃者はパスワードを知らなくても被害者のアカウントにアクセスできるようになります。
攻撃者がアクセスできる範囲は、対象のアプリと付与された権限によって異なります。単一のサービスに限られる場合もあれば、メールやファイル、連絡先、その他のサービスまで含まれる場合もあります。多要素認証(MFA)を設定していても、この攻撃を必ずしも防げるわけではありません。攻撃者のサインインを承認する過程で、被害者自身がMFAの確認を完了してしまう可能性があるためです。
アドレスを確認するだけではこの詐欺を見抜けません。表示されるページ自体は正規のものだからです。例えば、Microsoftアカウントを狙った攻撃では、被害者がmicrosoft.com/deviceloginのような本物のMicrosoftサインインページに誘導される場合があります。承認画面にアクセスを要求しているアプリ名が表示されるケースもありますが、表示されないケースもあります。
ここで自分に問いかけるべき重要な質問は、「このコードは、自分がサインインしようとしていたアプリやデバイスに表示されたものか、それともドキュメントを開く、会議に参加する、あるいはセキュリティチェックを通過するために渡されたものか」という点です。
安全を保つために
デバイスコードフィッシングは、EvilTokensのようなフィッシングキットに搭載された機能の一つです。予期しないメッセージから次のような依頼を受けた場合は注意してください。
- アカウントのサインインページにコードを入力するよう求められる。
- 自分が設定した覚えのないデバイスやアプリケーションのサインイン承認を求められる。
- 会議への参加やドキュメントへのアクセス、チャットルームへの入室のためにサインインコードの使用を求められる。
- 招待やドキュメント、パスワード、アカウントがまもなく期限切れになるとして、急いで対応するよう促される。
- 会話を別のメッセージアプリに移動させ、「セキュリティチェック」を完了するよう求められる。
コードを入力してサインインを承認してしまった場合は、そのアカウントの最近のアクティビティや連携アプリ、デバイスに見覚えのないものがないか確認してください。すべてのセッションからサインアウトし、パスワードを変更しましょう。
プロのアドバイス: 無料のMalwarebytes Scam Guardを使えば、怪しいメッセージを評価し、次に取るべき対応を判断する助けになります。