Netwrix 1Secureは、データとアイデンティティ全体にわたる統合された可視性を提供します。14日間の無料トライアルでフルアクセス可能です。無料トライアルを開始

リソースセンターブログ

Windows Defender Credential Guard を使用して特権資格情報を保護する

Windows Defender Credential Guard を使用して特権資格情報を保護する

Mar 17, 2023

単一の Active Directory 資格情報が侵害されると、企業全体にわたるサーバー、アプリケーション、仮想化プラットフォーム、ユーザーファイルへの不正アクセスにつながる可能性があります。資格情報の脆弱性の理由の1つは、Windows が資格情報を、メモリ内のプロセスであるローカル セキュリティ機関 (LSA: Local Security Authority) に格納していることです。

そのため、Windows アカウントが侵害されないように保護するセキュリティ戦略を持つことが不可欠です。特に、社内のシステムや機密情報に対して権限が高い(特権)アカウントは重要です。幸いなことに、Microsoft は Active Directory ドメインにおける資格情報(credential)の盗難を防ぐのに役立つセキュリティ ツールを提供しています。: Windows Defender Credential Guard。この記事では、その仕組みを説明します。

Windows Defender Credential Guard の概要

Windows Defender Credential Guard は、Microsoft が Windows 10 Enterprise および Windows Server 2016 で導入したセキュリティ機能です。Credential Guard は、仮想化ベースのセキュリティと 分離された メモリ管理 により ドメインの資格情報(credential)にアクセスできるのは特権を持つシステム ソフトウェアのみであることを保証します。プロセスを仮想化された環境で実行することで、ユーザーのログイン情報は残りのオペレーティング システムから分離され、ドメインの資格情報は攻撃から保護されます。Credential Guard は、NTLM パスワード ハッシュ、Kerberos チケット、ローカル ログオン用の資格情報、Credential Manager のドメイン資格情報、ならびにリモート デスクトップ接続を保護します。Credential Guard と Device Guard を混同しないでください。Device Guard は、デバイス上で許可されていないコードが実行されることを防ぎます。

ただし、この機能を有効にするには代償があります。Windows Defender を有効にすると、ドメイン内の Windows サーバーおよびデバイスは、NTLMv1、Digest、CredSSP、MS-CHAPv2 などの従来型(legacy)の認証プロトコルを使用できなくなり、また Kerberos の非制約付き委任や DES 暗号化も使用できなくなります。

Credential Guard は Mimikatz から防御できますか?

外部の脅威アクターは、LSA にメモリ上のシークレットを問い合わせることで、エンドポイントへの特権アクセスを取得し、その後にハッシュまたはチケットを侵害できます。Credential Guard は、Pass-The-Hash および Pass-The-Ticket 攻撃から組織を保護するのに役立ちます。これらの攻撃は、横方向への移動(lateral movement)中に権限を奪取し、権限を昇格するために使用されるため、Windows プラットフォームを実行しており最新の認証プロトコルを使用しているすべてのエンドポイントとサーバーで Credential Guard を有効にする必要があります。

しかし残念ながら、隔離された LSA は問い合わせられないとしても、Credential Guard は Mimikatz のようなツールに対しては十分に保護できません。なぜなら、Mimikatz は入力されている認証情報(credentials)を取得できるからです。Mimikatz の作者は tweet の中で、悪意のある攻撃者がエンドポイントを制御しており、マシンが乗っ取られた後に特権ユーザーがログインすると、攻撃者が認証情報を入手し、権限を昇格できる可能性があると述べています。

Credential Guard は、他のアカウントの認証情報を盗もうとするのではなく、自分の認証情報を使って IT 資産にアクセスする Windows のインサイダー(社内の関係者)も保護できません。たとえば、会社の IP に対する正当なアクセス権を持つ不満のある従業員が、組織を離れる前にそれをコピーすることを Credential Guard で防ぐことはできません。

Windows Defender Credential Guard を有効にする

前提条件

Credential Guard は Windows ハイパーバイザーを使用するため、それを実行するすべての Windows デバイスは次の要件を満たしている必要があります:

  • 64 ビット CPU
  • 仮想化ベースのセキュリティのサポート
  • セキュア ブート

さらに、Trusted Platform Module(TPM)はハードウェアへのバインディングを提供するため推奨です。バージョン 1.2 と 2.0 がサポートされており、ディスクリートまたはファームウェアのいずれでも対応可能です。

Credential Guard を有効にする

Windows Defender Credential Guard は、従来の認証プロトコルにまだ依存している Windows デバイスでは実行できないため、既定では有効になっていません。ドメインで有効にするには、Intune または グループ ポリシー

オプション 1:Intune を使用して Credential Guard を有効にする

Intune ポータルで、次の場所へ移動します:Endpoint Security > Account Protection。次にポリシーを作成し、次の構成設定を選択します:

  • プラットフォーム:Windows 10 以降
  • プロファイル: アカウント保護(プレビュー)
Microsoft Endpoint Manager showing creation of an Endpoint security Account protection profile for Windows 10 and later.

図 1. アカウント保護プロファイルの作成

ポリシーに名前を付けます。次に、構成設定の手順で Turn on Credential Guard の値を Enable with UEFI lock に設定します。これにより、Credential Guard をリモートで無効化できないことが保証されます。

Screenshot of Microsoft Endpoint Manager showing

図 2. アカウント保護プロファイルの設定

オプション 2:グループ ポリシーを使用して Credential Guard を有効化

または、Group Policy Manager を使用して Credential Guard を有効化できます。GPO を作成し、Computer Configuration > Administrative Templates > System > Device Guard に移動します。次に Turn on Virtualization Based SecurityEnabled に設定します(以下の図のとおり)。

Group Policy Editor showing

図 3. グループ ポリシーを使用して Credential Guard を有効化

有効化の確認

Intune またはグループ ポリシーのいずれかを使って Credential Guard を有効化すると、ポリシーが割り当てられたすべてのマシンで Lsalso.exe プロセスが実行されているのを確認できるはずです。

Windows Task Manager, Details tab, highlighting the Lsalso.exe process identified as Credential Guard.

図 4. Credential Guard が有効になっていることを確認

Credential Guard の実動

Credential Guard が有効になっていない場合、ハッカーは mimikatz を使って LSA プロセスに現在保存されている資格情報を照会し、以下に示すように、そのマシンにリモートでログインしているアカウントの NTLM ハッシュを取得できます。

A Mimikatz terminal displays NTLM password hashes, with one highlighted in yellow.

図 5. Credential Guard が有効になっていない場合、mimikatz はメモリに保存されたハッシュを収集できます。

ただし Credential Guard が有効になっている場合、資格情報の保存には隔離された LSA プロセスが使用されます。したがって、mimikatz を使って同じサーバーをもう一度照会しても、ダンプ内に NTLM ハッシュは得られません。

A command-line interface showing Mimikatz output with user logon credentials and NTLM hashes.

図 6. Credential Guard が有効になっている場合、mimikatz はメモリに保存されたハッシュを収集できません。

Credential Guard は、以下に示すように Pass-the-Ticket 攻撃に対しても有効です。

A Mimikatz console window showing Kerberos ticket data for user

結論

悪意のある攻撃者がドメイン内で横方向に移動し、権限を昇格(escalate)するために用いる攻撃ベクターを制限することは、あらゆるセキュリティ担当機関にとって最優先事項であるべきです。Credential Guard は、仮想化ベースのセキュリティ(virtualization-based security)と隔離されたメモリ管理(isolated memory management)を活用し、資格情報(credentials)を攻撃から保護することで役立ちます。

共有する

もっと詳しく

著者について

Asset Not Found

Joe Dibley

セキュリティリサーチャー

Netwrix のセキュリティリサーチャーであり、Netwrix Security Research Team のメンバーです。Joe は Active Directory、Windows、およびさまざまなエンタープライズソフトウェアのプラットフォームとテクノロジーの専門家であり、新たなセキュリティリスク、複雑な攻撃手法、そしてそれに関連する緩和策と検知について研究しています。