Microsoft Secure イベントで発表された、トークンの盗難やリプレイ攻撃に対するサインイン セッションのトークン保護機能がパブリックプレビューになりました。
Public Preview: Token Protection for Sign-In Sessions - Microsoft Community Hub
トークン盗難を伴う攻撃はますます頻繁になっています。
---【補足:過去の関連投稿】---
認証後のトークンを盗難されてしまうと、トークンが有効な間に侵害を受ける危険性があります。
大量の AiTM キャンペーンを可能にするフィッシングキット - tos-akibaのブログ
2023年の IDセキュリティトレンドと Microsoft ソリューション - tos-akibaのブログ
クラウドトークンの盗難に備える - tos-akibaのブログ
------------------------------------
Microsoft では、Azure AD 条件付きアクセスを使用してトークンを保護し、ポリシー適用を細かく制御します。
トークン保護により、トークンは目的のデバイスでのみ使用できます。
条件付きアクセスポリシーを適用する場合、リソースへのアクセスを承認するトークンは、ユーザーが最初にサインインしたデバイスから取得する必要があるため、これを保護します。
この機能の最初のプレビューでは、盗難された Windows ネイティブクライアントのリフレッシュトークンを使用した Exchange メールボックスや SharePoint サイト など Office 365 リソースへの不正なアクセスから保護できます。
リフレッシュトークンは、他のトークンよりも存続期間が長く範囲が広いため、攻撃者が盗む価値が高く、最初の保護対象となっています。
今後のリリースで、より多くのアプリ、データ、他のクライアントプラットフォーム、その他のトークンに拡張される予定だそうです。
有効にする方法は、Azure AD 条件付きアクセスのポリシー設定の「セッション」設定です。
「サインイン セッションにトークン保護を必要にする(プレビュー)」を選択すると、定義されたリソースへのアクセスのセッションは、所有証明を使用してユーザーがサインインしたデバイスにバインドする必要があります。
所有証明は、クライアントがデバイス上の秘密キーにアクセスできることを示す必要があります。
そのため、盗まれたリフレッシュトークンで攻撃者のデバイスからアクセス試行された場合、所有証明が実行できずアクセスはブロックされます。
この初期プレビューでサポートされるのは Exchange と SharePoint で、Teams は近日サポート予定とのことです。
また、Azure AD 登録済みの Windows 10 または 11、ネイティブデスクトップアプリのみがサポートされるため、Webアプリやその他プラットフォームからの正当なアクセスがブロックされないよう、以下の条件設定が必要です。
・ 「デバイスプラットフォーム」で、「Windows」のみを選択
・「クライアント アプリ」で、「モバイル アプリとデスクトップ クライアント」のみを選択
「ブラウザー」を選択しない
なお、管理アクセスが常に存在するように、他のポリシーと同様に特定アカウントを除外しておき、条件付きアクセスのレポート専用モードで事前にポリシー影響を評価するよう強くお勧めされています。
トークン保護のロードマップでは、以下が今後のリリース予定になっています。
・ その他リソースとアクセスシナリオ
・ MSAL.js を使用する Webアプリの多層防御機能を向上させる Webアプリ追加
・ Mac、iOS、Android、Linux クライアントでのリフレッシュトークン盗難シナリオに対処するトークン保護
・ アクセス トークンの盗難とリプレイを制限するトークン保護
(参考)
Azure AD の条件付きアクセスにおけるトークン保護 - Microsoft Entra | Microsoft Learn