
こんにちは!私の名前はロックです。
私はベトナム出身で、現在メディアフュージョン株式会社でシステムエンジニアリングの製品開発に携わっています。
私はプログラミングとシステムセキュリティに情熱を持っており、同じ分野に興味のある人々と私の知識やノウハウを共有し、一緒に成長したいと考えています。一緒に働けることを楽しみにしています!

1. はじめに
これまで私たちは、長い間次のように教えられてきました。
- 怪しいリンクをクリックしない
- 不審なサイトにパスワードを入力しない
- MFA(多要素認証)を有効化する
もちろん、これらは今でも重要です。
しかし現在、フィッシング(認証情報やアクセス権を騙し取る攻撃)は、少し違う方向へ進化し始めています。
最近、MicrosoftはAIを利用した新しいフィッシング攻撃について公開しました。この攻撃では「Device Code Authentication(デバイスコード認証)」が悪用されます。
特に興味深いのは、以下の点です。
- ユーザーは正しくログインしている
- MFA(多要素認証)も正常に通過している
- システムも正常に動作している
それでも、攻撃者はアクセス権を取得できてしまうのです。
正規の認証プロセスを経ているにもかかわらず、攻撃が成立してしまう点が、この攻撃の厄介なところです。
2. AI時代、フィッシングはどう変わったのか
以前のフィッシングは、比較的 見分けやすいものでした。
- 不自然な日本語
- 明らかに怪しいデザイン
- 不審なURL
しかし現在では、AIによって状況が変わっています。
攻撃者はAIを使って、
- 自然な文章を書く
- 社内メールの文体を模倣する
- 文脈に合った内容を生成する
といったことができるようになりました。
AIによって自然で精巧な文章を生成できるようになり、メールの内容だけでフィッシングを見抜くことは難しくなっています。
さらに、攻撃の対象もパスワードなどの認証情報から、認証後のアクセス権へと広がっています。
その一例が、今回取り上げる「Device Code Authentication(デバイスコード認証)」を悪用したフィッシングです。
3. Device Code Authentication(デバイスコード認証)とは
Device Code Authentication(デバイスコード認証)は、Smart TVやCLIツールなど、パスワードなどを直接入力しづらいデバイスでよく使われる認証方式です。
例えば、 CLIツールを利用していると、次のようなメッセージが表示されることがあります。
「 https://microsoft.com/devicelogin を開き、 コード ABCD-EFGH を入力してください。」
認証の流れはシンプルです。
- 対象となるデバイスにコードが表示される
- ユーザーが別端末のブラウザをで指定のページを開く
- ブラウザ のページにコードを入力してログインする
- 元のデバイスにアクセス権が付与される
つまり、「ログインする端末」と「アクセス権を受け取るデバイス」が異なることが、この認証方式の特徴です。
本来は非常に便利な仕組みですが、今回の攻撃では、この特徴が悪用されます。
攻撃を理解するための基本用語
Authentication(認証)
ユーザー本人であることを確認する処理です。
簡単に言えば、「あなたは誰か」を確認するログイン処理です。
MFA(Multi-Factor Authentication)
複数の方法で、本人 確認を行う認証方式です。
例えば:
- パスワード + OTP
- パスワード + 認証アプリ
目的は、パスワードが漏れても、不正ログインを防ぐことです。
Token(トークン)
ログイン成功後に発行される「一時的なアクセス権」です。
イメージとしては、パスワードが“入口の鍵”なら、トークンは“館内の入館証”です。
Session(セッション)
ユーザーがログインしてからログアウトまたはタイムアウトするまで、ログイン状態を維持する仕組みです。
私たちがページを移動するたびに毎回パスワードを入力しなくても済むのは、このセッションのおかげです。
4. Device Code Authenticationは何が危険なのか
この認証方式では、ログインを行う場所と、トークン~ (アクセス権)を受け取る場所(通常は接続したいデバイス)が別になっています。これを「Session Separation(セッション分離)」と呼びます。つまり、認証処理と 実際にセッションを利用する場所が分離している状態です。攻撃者は、この仕組みを悪用します。
ここで重要なのは、攻撃者が偽サイトを用意する必要がないという点です。攻撃者は先に Device Code Authentication の認証待ちセッションを作成し、その認証作業を被害者に実行させます。結果として、被害者は自分がログインしているつもりでも、実際には攻撃者のセッションを認証してしまうのです。これが、正規のサイトでログインし、MFAも正常に通過しているにもかかわらず、攻撃が成立する理由です。
5. Device Code Authenticationを悪用した攻撃の流れ
この仕組みを利用した攻撃は、実際にどのように行われるのでしょうか。
攻撃の流れを4つのステップで見てみます。
Step 1:攻撃者がDevice Codeを取得
攻撃者が認証待ち状態のDevice Codeを取得します。
このコード自体はMicrosoftが発行した正規のコードです。
Step 2:AIを使ってユーザーを誘導
AIがフィッシング用のメールやメッセージを生成します。
例えば、
- 「アカウント確認が必要です」
- 「異常なログインが検出されました」
- 「資料共有のお知らせ」
AIを利用することで、こうしたメッセージを自然な文章で作成できるため、ユーザーが違和感を持ちにくくなります。
Step 3:ユーザーがMicrosoftの正規サイトで認証
ユーザーはMicrosoftの正規サイトを開きます。
そこで攻撃者から送られてきたDevice Codeを入力します。
その後、通常どおりログインとMFAを実施します。
ユーザー視点では、全て正常に見えます。
Step 4:攻撃者がトークン(アクセス権)を取得
ログイン成功後、トークン(アクセス権)が発行されます。
しかし、そのトークンは攻撃者が先に作成したセッションに紐付いています。
これが、Token Hijacking(トークン乗っ取り) です。
つまり、正常な認証後のアクセス権を奪う攻撃です。
6. なぜ従来のフィッシング対策だけでは気づきにくいのか
今回の攻撃が厄介なのは、正規の認証サイトを利用し、MFAも通常どおり行われるため、従来のフィッシング対策だけでは気づきにくい点です。 さらに、AIによって自然なメールやメッセージを生成できるようになり、認証へ誘導する内容そのものも見分けにくくなっています。
つまり、「自然な文章」「正規サイト」「MFA」だけでは、安全と判断できないケースが生まれています。 攻撃者がMFAを突破するのではなく、ユーザー本人に正規の認証を行わせ、その結果得られるアクセス権を悪用する点が、この攻撃の大きな特徴です。
7. 攻撃の拡大を支えるCaaS(Crime-as-a-Service)
ここまで紹介したような攻撃が広がっている背景には、
CaaS(Crime-as-a-Service)という考え方があります。
これは、 サイバー犯罪のためのツールや基盤をサービスとして提供するモデルです。
つまり、犯罪そのものが「サービス化」されている状態です。
その中には、
- PhaaS(Phishing-as-a-Service)
- MaaS(Malware-as-a-Service)
- RaaS(Ransomware-as-a-Service)
などがあります。
今回のテーマと特に関係するのが、PhaaS(Phishing-as-a-Service)です。
Microsoftは、PhaaSにも言及しています。
例えば、EvilTokenのようなサービスでは、
- automation(自動化)
- token capture
- フィッシング基盤
などが提供されています。
このように攻撃ツールや攻撃基盤がサービスとして提供されることで、高度な専門知識を持たない攻撃者でも、大規模なフィッシングを実行しやすくなっています。これはセキュリティ業界で以前から問題視されている傾向です。
AIによってフィッシングの手口が巧妙になるだけでなく、こうした攻撃ツールや基盤のサービス化が進んでいることも、攻撃が広がる背景の一つとなっています。
8. まとめ
これまでのフィッシングでは、攻撃者は主にパスワードなどの認証情報を狙っていました。しかし現在では、認証後に発行されるトークン(アクセス権)も攻撃の対象になっています。
こうした変化により、認証セキュリティの考え方も大きく変わり始めています。今回紹介したように、正規のサイトでログインし、MFAを正常に通過した場合でも、攻撃が成立する可能性があります。そのため、「正しいサイトでログインしたから安全」「MFAを利用しているから安全」とは、必ずしも言い切れなくなっています。
MFAが今でも非常に重要なセキュリティ対策であることに変わりはありません。しかし、MFAだけでは防げない攻撃が存在することも事実です。
私たちは今、「認証情報を守る時代」から「認証後のアクセス権も守る時代」へ移りつつあるのかもしれません。
次回:AI時代のフィッシング| 第2回: 攻撃の内部構造
次回はさらに一歩踏み込み、
- AIが攻撃のどこで、どのように使われているのか
- dynamic code generation(動的コード生成)とは何か
- なぜ従来のセキュリティ対策では検知が難しいのか
といったポイントから、AI時代のフィッシング攻撃の内部構造を詳しく解説します。
