今回は、「調べてみました!」シリーズとしてWindows Defender Credential Guard(以下、Credential Guard)について仕様を確認していきます。また、Microsoft Intune(以下、Intune)を使用したCredential Guardの有効化方法もご紹介いたします。
Windowsのセキュリティ機能にご興味のある方やIntuneおよびMicrosoft Defenderを導入・運用されている方のご参考になれば幸いです。
Credential Guardとは
まずは、Credential Guardの仕様について確認したことを記載します。
Credential Guardの概要
Credential Guardとは、Windowsで使用できるセキュリティ機能の一つであり、ユーザーID(資格情報)の盗難攻撃から保護するための機能になります。「NTLMv2認証(NTLMとは、WORKGROUPに所属するデバイスからドメイン参加しているファイルサーバへSMBアクセス時などに使用されます)で利用するパスワードハッシュ」、「Kerberos認証で利用するTGT(Ticket Granting Ticket)」、「アプリケーションによって格納された資格情報」を仮想化ベースのセキュリティ(以下、VBS)というOSの領域とは分離された環境に格納することで安全に保管します。VBSを使用して資格情報を保護しながら保管することで、多くの標的型攻撃で使用される盗難攻撃ツールをブロックすることが可能になります。
VBSを使用して資格情報を分離するイメージは以下画像(Microsoft ドキュメントより参照)の通りです。
Microsoftドキュメントを参考に簡単ですが解説します。
まず、VBSとはハードウェア仮想化とWindowsのハイパーバイザー機能を使用して作成されるOS領域とは分離された仮想環境になります。システムやOSにおける重要なリソースを保護したり、認証されたユーザー資格情報を保護するための制限が適用されています。
画像の左側のLSASSとは、以前のバージョンのWindowsで資格情報の保存に使用されていたローカルセキュリティ機関(LSA)のプロセスになります。右側のLSAIsoとは、資格情報を保護する分離LSAプロセスと呼ばれておりVBS上で動作します。
Credential Guardを有効にした場合、LSASSはリモートプロシージャコールを使ってLSAIsoと通信を行いVBS上から安全に資格情報を取り出します。また、残りのOS部分からはLSAIsoによって格納された資格情報へアクセスできなくなります。
Credential Guardを利用するための条件
Credential Guardを有効化するためには、デバイスが特定の要件を満たしている必要があります。
ハードウェアおよびソフトウェアの要件
次の機能は必須で必要になります。
- 仮想化ベースのセキュリティ(VBS)
- セキュアブート
必須ではないですが、追加の保護を提供するために次の機能もあると望ましいです。
- トラステッド プラットフォーム モジュール (TPM) バージョン 1.2 および 2.0以上
- UEFI ロック
なお、VBSを構成するために「64ビットのCPU」が、セキュアブートを構成するために「UEFI v2.3.1以上」が必要であったりします。各々の機能も含めた詳細な要件に関して知りたい方は、以下Microsoft公式ドキュメント群のご参照をお願いします。
Microsoft Defender Credential Guard のハードウェア要件
Windows エディションとライセンスに関する要件
Credential GuardをサポートするWindowsエディションの一覧は以下の通りです。
Windows Proは未サポートのため、使用するためにはEnterpriseへアップデートが必要になります。
次にライセンスのサポートは以下の通りです。
Credential Guard の概要_Windows エディションとライセンスに関する要件
アプリケーションの要件
Credential Guardを有効にすると、保護機能により特定の認証機能がブロックされます。そのため、ブロックされる対象の認証機能を使用している場合は予期しないアプリケーションの中断が発生する可能性があります。
アプリケーションは、次の認証機能が必要な場合に中断します。
- Kerberos DES 暗号化のサポート
- Kerberos の制約のない委任
- Kerberos TGT の抽出
- NTLMv1
アプリケーションは、次の認証機能が必要な場合にCredential Guardでは保護されません。資格情報の入力を求めることで使用することはできますが、シングルサインオン(SSO)はブロックされます。
- ダイジェスト認証
- 資格情報の委任
- MS-CHAPv2
また、Credential Guardでは、Active Directoryデータベースやセキュリティアカウントマネージャー(以下、SAM)の保護は提供されておりません。Credential Guardが有効の場合にKerberosやNTLMv2によって保護される資格情報は、Active DirectoryデータベースやSAM上にも存在します。
Credential Guardの概要_アプリケーションの要件
Credential Guardの考慮事項
Credential Guardを有効にする場合に考慮すべき事項について、Microsoftドキュメントを参考にいくつかご紹介いたします。下記で全てではないため、詳しく知りたい方は以下Microsoft公式ドキュメントのご参照をお願いします。
Credential Guard を使用するときの考慮事項と既知の問題
Wi-FiとVPNに関する考慮事項
Wi-FiおよびVPNの接続時にMS-CHAPv2ベースの認証を使用している場合、資格情報を保存することができなくなり、毎回資格情報の入力が強制されるようになります。
そのため、Credential Guardを有効にする場合はMSCHAPv2ベース(PEAP-MSCHAPv2、EAP-MSCHAPv2など)から証明書ベース(PEAP-TLS、EAP-TLSなど)の認証に移行することが推奨されています。
Kerberosに関する考慮事項
アプリケーションの要件でも記載しましたが、制約のないKerberos委任やDES暗号化は使用できなくなります。そのため、制限付きKerberos委任もしくはリソースに基づくKerberos委任を使用する必要があります。
サードパーティのセキュリティサポートプロバイダーに関する考慮事項
一部のサードパーティのセキュリティサービスプロバイダー(SPとAP)は、サードパーティのCSPがLSAからパスワードハッシュを要求することを許可しないため、Credential Guardと互換性がない可能性があります。
アップグレードに関する考慮事項
Credential Guardを有効にしているWindowsにて新しいリリースを実装した場合に、過去に動作していたシナリオに影響を与える可能性があります。具体的には、マルウェアによる脆弱性を防止するために、特定の種類の資格情報または特定の認証機能の使用をブロックする可能性があります。
保存されたWindows資格情報に関する考慮事項
資格情報マネージャーを使用すると「Windows資格情報」、「証明書ベースの資格情報」、「汎用資格情報」を格納することができます。この中で、ドメイン資格情報はCredential Guardで保護されますが、Webサイトのサインインに使用するユーザー名やパスワードなどの一般的な資格情報は保護されません。また、以下について考慮しておく必要があります。
- リモートデスクトップクライアントで保存されたWindows資格情報をリモートホストに送信できません。(※おそらく、ログオン時に毎回パスワード入力が必要になると解釈しています。)
- Windows資格情報を抽出するようなアプリケーションは動作が失敗します。
- Credential Guardが有効な場合、資格情報のバックアップをしてもWindows資格情報の復元はできません。有効にする前にバックアップしておく必要があります。
TPMのクリアに関する考慮事項
VBSでは、TPMを使用して暗号化するためのキーを保護しています。TPMがクリアされた場合、キーが失われてVBSで保護されたデータが失われます。
Credential Guardの状態確認
ここまでCredential Guardの仕様について確認してきました。次に、WindowsデバイスでCredential Guardの現在の状態を確認する方法について記載します。本投稿では、「システム情報」と「PowerShell」と「イベントビューアー」を使用する手順をそれぞれ説明します。
システム情報にて確認する方法
システム情報を使用してCredential Guardの実行状況を確認します。
1. タスクバーの検索ボックスに「msinfo32」と入力して「システム情報」を選択します。
2. 「システムの要約」を選択し、「仮想化ベースのセキュリティの実行中サービス」を確認します。
Credential Guardが表示されていれば有効になっています。
参考として、VBSが無効の場合は以下画像の様に項目自体が表示されません。
PowerShellにて確認する方法
PowerShellを使用してCredential Guardの実行状況を確認します。
1. PowerShellを起動して以下のコマンドを実行します。
> Get-CimInstance –ClassName Win32_DeviceGuard –Namespace root\Microsoft\Windows\DeviceGuard
2. 「SecurityServicesRunning」のステータスを確認します。
値の結果は以下の通りで、「1」が表示されていれば有効になっています。
- 0:実行中のサービスはありません。
- 1:Credential Guard が実行されています。
- 2:メモリ整合性(HVCI)が実行されています。
- 3:System Guard セキュア起動が実行されています。
- 4:SMM Firmware Measurement が実行されています。
イベントビューアーにて確認する方法
イベントビューアーを使用してCredential Guardの実行状況を確認します。
1. イベントビューアーを起動して「Windowsログ>システム」を選択します。
2. イベントID 13でログをフィルターして表示します。
以下の様なログが表示されていれば有効になっています。
Credential Guardの有効化
最後に、Intuneを使用してCredential Guardを有効化する方法について確認していきます。Intuneから有効化する方法は複数の選択肢がありますが、今回は以下パターンについてご紹介いたします。
- 構成プロファイル「Windows 10以降の設定カタログ」で設定する方法
既定の有効化
まず、Credential Guardは特定の要件を満たしている場合に既定で有効になっていますので、Intuneの設定方法を確認していく前に簡単ですが解説します。
既定で有効になる要件は以下画像の通り(Microsoft ドキュメントより参照)です。OSのバージョンとエディション、Credential GuardとVBSを実行するためのハードウェアおよびソフトウェアの要件をすべて満たしている場合が対象になります。
上画像の要件について詳細に知りたい方は、以下のMicrosoft公式ドキュメントよりご参照をお願いします。
Windows Defender Credential Guard の管理_既定の有効化
また、既定で有効になっている場合、設定値は「UEFIロックなしで有効」になっています。これにより、管理者は必要に応じてCredential Guardをリモートから無効にすることができるようになっています。
構成プロファイル「Windows 10以降の設定カタログ」で設定する方法
1. Intune管理センター へアクセスして、構成プロファイルの画面より新規のプロファイルを作成します。(プラットフォーム:Windows 10以降、プロファイルの種類:設定カタログを選択します)
2. 「構成設定」タブにて、カテゴリより「Device Guard」を、設定名より「Credential Guard」「プラットフォームのセキュリティ機能を必要とする」「仮想化ベースのセキュリティを有効にする」を選択します。
3. 「プラットフォームのセキュリティ機能を必要とする」の設定値は以下どちらかを選択します。
- セキュアブートを使用してVBSを有効にする。
- セキュアブートと直接メモリアクセス(DMA)保護を使用してVBSを有効にする。
セキュアブートとは、デバイス起動時にハードウェア周辺機器に存在するファームウェアコードの署名をチェックし、信頼されているソフトウェアのみを使用してデバイスが起動するように保護する機能です。
直接メモリアクセス(DMA)保護とは、外部周辺機器がメモリに不正にアクセスできないように保護する機能です。
4. 「仮想化ベースのセキュリティを有効にする」の設定値は以下を選択します。
- 仮想化ベースのセキュリティを有効にします。
5. 「Credential Guard」の設定値は以下どちらかを選択します。
- (UEFIロックで有効化)UEFIロックを使用してCredential Guardをオンにします。
- (ロックなしで有効化)UEFIロックを使用しないでCredential Guardをオンにします。
管理者がリモートでCredential Guardをオフにしたい場合は、(ロックなしで有効化)の方を選択します。
4. 最後に「割り当て」タブにて有効化したいデバイスもしくはユーザーが所属するグループを指定してプロファイルを作成します。
Intuneを使用してCredential Guardを有効化する作業は以上で完了です。
Credential Guard の構成_Credential Guard の有効化
さいごに
いかがだったしょうか?今回は、Windowsセキュリティ機能の一つであり、資格情報の盗難攻撃から保護するためのCredential Guardについて仕様および有効化方法について記載しました。
なお、資格情報が Credential Guard によって保護されている場合でも、デバイスは特定の攻撃に対して脆弱な場合があります。Windowsデバイスをより堅牢にして、更なるセキュリティ強化を図るための機能について気になる方は、以下のMicrosoft公式ドキュメントもぜひ確認してみてください。また、本ブログでもWindowsセキュリティ機能について今後も取り上げていきたいと思っています。
参考リンク
- Credential Guard の概要
- Credential Guard のしくみ
- 仮想化ベースのセキュリティ (VBS)
- Credential Guard の概要_システム要件
- Microsoft Defender Credential Guard のハードウェア要件
- セキュアブート_セキュアブートの要件
- Credential Guard の概要_Windows エディションとライセンスに関する要件
- Credential Guardの概要_アプリケーションの要件
- Credential Guard を使用するときの考慮事項と既知の問題
- Windows Defender Credential Guard の管理_既定の有効化
- Credential Guard の構成_Credential Guard の有効化
- その他の軽減策