Microsoft Graph PowerShellを利用した全ユーザーセッション失効手順¶
概要¶
MS365認証情報窃取インシデント対応に伴い、全ユーザーの認証セッションおよびリフレッシュトークンを失効させるため、Microsoft Graph PowerShellを利用した。
本Wikiでは、実際に作業を実施した際に発生したトラブルと、その解決方法もあわせて記録する。
実施目的¶
攻撃者が保持している可能性のある以下を無効化する。
- Outlookセッション
- Teamsセッション
- OneDriveセッション
- SharePointセッション
- Microsoft365認証トークン
- Refresh Token
これにより、認証済みセッションやCookieが流出していた場合でも再認証を強制できる。
実施結果¶
実施コマンド
Get-MgUser -All |
ForEach-Object {
Revoke-MgUserSignInSession -UserId $_.Id
}
実行結果
Value ----- True True True True ・・・
Value = True で処理成功。
事前準備¶
AzureADモジュールは利用不可¶
従来利用していた下記コマンドは実行できなかった。
Get-AzureADUser Revoke-AzureADUserAllRefreshToken
エラー
Access blocked to AAD Graph API for this application Authentication_Unauthorized
原因
MicrosoftがAAD Graph APIを廃止方向としており、テナント側でブロックされている。
そのためMicrosoft Graph PowerShellへの移行が必要。
Microsoft Graph PowerShell導入時のトラブル¶
発生したエラー¶
Install-Module Microsoft.Graph.Authentication
実行時
パス 'C:\Users\akamachi\OneDrive - AiTパートナー株式会社\Document\WindowsPowerShell\Modules\Microsoft.Graph.Authentication\2.39.0' の一部が見つかりませんでした
が発生。
原因¶
PSModulePathがOneDriveリダイレクトされたDocuments配下を参照していた。
確認コマンド
$env:PSModulePath -split ";"
結果
C:\Users\akamachi\OneDrive - AiTパートナー株式会社\Document\WindowsPowerShell\Modules C:\Program Files\WindowsPowerShell\Modules C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
OneDrive側のモジュール配置に問題があり、Graphモジュールが正常インストールできなかった。
対応方法¶
PowerShellモジュールパス修正¶
一時的に変更
$env:PSModulePath = "C:\Users\akamachi\Documents\WindowsPowerShell\Modules;" + "C:\Program Files\WindowsPowerShell\Modules;" + "C:\Windows\System32\WindowsPowerShell\v1.0\Modules"
確認
$env:PSModulePath -split ";"
Graphモジュールインストール¶
管理者権限PowerShell
Install-Module Microsoft.Graph.Authentication `
-Scope AllUsers `
-Force `
-AllowClobber
確認
Get-Module Microsoft.Graph* -ListAvailable
正常例
Microsoft.Graph.Authentication Microsoft.Graph.Users Microsoft.Graph.Identity.SignIns
Microsoft Graph接続¶
接続
Connect-MgGraph `
-Scopes User.Read.All,User.RevokeSessions.All
接続確認
Get-MgContext
全ユーザーセッション失効¶
実施コマンド
Get-MgUser -All |
ForEach-Object {
Revoke-MgUserSignInSession -UserId $_.Id
}
結果判定
True
が表示されれば成功。
ユーザー影響¶
以下は再認証要求が発生する。
- Outlook
- Teams
- OneDrive
- Officeアプリ
- スマートフォン版Outlook
- スマートフォン版Teams
以下は影響なし。
- メールデータ
- OneDriveデータ
- Teamsデータ
- SharePointデータ
- Entra Join
- PCプロファイル
今回のインシデント対応で得られた知見¶
MFAだけでは不十分¶
7/22のインシデント後
- MFA導入
- セキュリティ既定値群有効化
を実施したが、8/19に再度侵害が発生した。
そのため
- 既存セッション
- Refresh Token
- 認証Cookie
が悪用された可能性を考慮し、
「全セッション失効」
を初動対応へ組み込むべきである。
今後の標準対応¶
インシデント発生時は以下を実施する。
- パスワード変更
- MFA再登録
- 全セッション失効
- 不審メールルール削除
- OAuthアプリ確認
- 全ユーザー横断調査
- サインインログ監視(1か月)
今後の改善予定¶
有償対応として以下を提案予定。
- 条件付きアクセス
- Authenticator認証限定
- パスキー導入
- レガシー認証無効化
- 監視体制強化
- 社員向けフィッシング教育
``