WHfBTools PowerShell モジュールを使用して、孤立した Windows Hello for Business キーをクリーンアップする

適用対象: Windows Server 2019, all editionsWindows Server 2016

概要


お客様が TPM の脆弱性の影響を受ける孤立した Windows Hello for Business (WHfB) キーを特定できるように、管理者が実行できる PowerShell モジュールを公開しました。 この記事ではADV190026 で説明されている問題に対処する方法について説明します。 |「脆弱な TPM で生成され、Windows Hello for Business で使用される孤立したキーをクリーンアップするためのマイクロソフト ガイダンス」

重要: WHfBTools を使用して孤立したキーを削除する前に、ADV170012 のガイダンスに従って、脆弱な TPM のファームウェアを更新する必要があります。 このガイダンスに従わない場合、ファームウェアが更新されていないデバイスで生成される新しい WHfB キーは、引き続き CVE-2017-15361 (ROCA) の影響を受けます。

WHfBTools PowerShell モジュールをインストールする方法


次のコマンドを実行して、モジュールをインストールします。

WHfBTools PowerShell モジュールをインストールする

PowerShell を介してインストールする

PS> Install-Module WHfBTools

PS> # Save the current execution policy so it can be reset later

PS> $SaveExecutionPolicy = Get-ExecutionPolicy

PS> Set-ExecutionPolicy RemoteSigned -Scope Currentuser

PS> Import-Module WHfBTools

または PowerShell ギャラリーからダウンロードしてインストールする

  1. https://www.powershellgallery.com/packages/WHfBTools にアクセスします
  2. 生 .nupkg ファイルをローカル フォルダーにダウンロードし、.zip 拡張子で名前を変更します。
  3. 内容をローカル フォルダー (C:\ADV190026 など) に抽出します

 

PowerShell を起動し、次のコマンドをコピーして実行します。

PS> # Save the current execution policy so it can be reset later

PS> $SaveExecutionPolicy = Get-ExecutionPolicy

PS> Set-ExecutionPolicy RemoteSigned -Scope Currentuser

PS> CD C:\ADV190026\WHfBTools

PS> Import-Module .\WHfBTools.psd1

 

モジュールを使用するための依存関係をインストールします。

WHfBTools モジュールを使用するための依存関係をインストールする

Azure Active Directory に対して孤立したキーのクエリを実行している場合は、MSAL.PS PowerShell モジュールをインストールします。

PowerShell を介してインストールする

PS> Install-Module -Name MSAL.PS -RequiredVersion 4.5.1.1

PS> Import-Module MSAL.PS

または、PowerShell ギャラリーからダウンロードしてインストールします

  1. https://www.powershellgallery.com/packages/MSAL.PS/4.5.1.1 にアクセスします
  2. 生 .nupkg ファイルをローカル フォルダーにダウンロードし、.zip 拡張子で名前を変更します。
  3. 内容をローカル フォルダー (C:\MSAL.PS など) に抽出します

PowerShell を起動し、次のコマンドをコピーして実行します。

PS> CD C:\MSAL.PS

PS> Import-Module .\MSAL.PS.psd1

Active Directory に対して孤立したキーのクエリを実行する場合は、リモート サーバー管理ツール (RSAT) をインストールします。 Active Directory ドメイン サービスおよびライトウェイト ディレクトリ サービス ツール

設定を介してインストールする (Windows 10 バージョン 1809 以降)

  1. [設定] -> [アプリ] -> [オプション機能] -> [機能の追加] に移動します。
  2. [RSAT] を選択します。 Active Directory ドメイン サービスおよびライトウェイト ディレクトリ サービス ツール
  3. [インストール] を選択します

または PowerShell を介してインストールします

PS> dism /online /Add-Capability /CapabilityName:Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0

またはダウンロードを介してインストールします

  1. https://www.microsoft.com/ja-jp/download/details.aspx?id=45520 (Windows 10 のリンク) にアクセスします
  2. Windows 10 インストーラーのリモート サーバー管理ツールをダウンロードします
  3. ダウンロードが完了したらインストーラを起動します

 

WHfBTools PowerShell モジュールを実行します


ご使用の環境に Azure Active Directory に参加しているデバイスまたはハイブリッド Azure Active Directory に参加しているデバイスがある場合は、Azure Active Directory の手順に従ってキーを特定して削除します。 Azure 内でのキーの削除は、Azure AD Connect を介して Active Directory に同期されます。

ご使用の環境がオンプレミスのみの場合は、Active Directory の手順に従ってキーを特定して削除します。

CVE-2017-15361 (ROCA)の影響を受ける孤立したキーとキーのクエリを実行する

次のコマンドを使用して、Azure Active Directory 内のキーのクエリを実行します。

PS> Get-AzureADWHfBKeys -Logging -Report -Tenant contoso.com -All | Export-Csv C:\AzureKeys.csv

このコマンドは、"contoso.com" テナントに対し、すべての登録されている Windows Hello for Business 公開キーのクエリを実行し、その情報を C:\AzureKeys.csv に出力します。 contoso.com をテナント名で置き換え、テナントに対してクエリを実行します。

Csv 出力である、AzureKeys.csv には、 各キーに関する次の情報が含まれます。

  • ユーザー プリンシパル名
  • テナント
  • 使用状況
  • キー ID
  • 作成日時
  • 孤立状態
  • 状態の通知をサポートします
  • ROCA 脆弱性の状態

Get-AzureADWHfBKeys は、クエリが実行されたキーの概要も出力します。 この概要では、次の情報が提供されます。

  • スキャンされたユーザーの数
  • スキャンされたキーの数
  • キーを持つユーザーの数
  • ROCA の脆弱なキーの数

注: これらに関連付けられた Windows Hello for Business キーを持つ Azure AD テナントに、古くなったデバイスが存在することがあります。 これらのキーは、これらのデバイスがアクティブに使用されていない場合でも、孤立状態と報告されません。 次の操作手順を行うことをお勧めします。 孤立したキーのクエリを実行する前に、Azure AD の古くなったデバイスを管理して古くなったデバイスをクリーンアップします。

 

次のコマンドを使用して、Active Directory 内のキーのクエリを実行します。

PS> Get-ADWHfBKeys -Logging -Report -Domain contoso | Export-Csv C:\ADKeys.csv

このコマンドは、"contoso" ドメインに対し、すべての登録されている Windows Hello for Business 公開キーのクエリを実行し、その情報を C:\ADKeys.csv に出力します。 contoso をドメイン名で置き換えて、ドメインに対してクエリを実行します。

Csv 出力である、ADKeys.csv には、各キーに関する次の情報が含まれます。

  • ユーザー ドメイン
  • ユーザー SAM アカウント名
  • ユーザーの識別名
  • キー バージョン
  • キー ID
  • 作成日時
  • キー マテリアル
  • キー ソース
  • キー使用法
  • キー デバイス ID
  • おおよその最終ログオン タイムスタンプ
  • 作成日時
  • カスタム キー情報
  • KeyLinkTargetDN
  • 孤立状態
  • ROCA 脆弱性の状態
  • KeyRawLDAPValue

Get-ADWHfBKeys は、クエリが実行されたキーの概要も出力します。 この概要では、次の情報が提供されます。

  • スキャンされたユーザーの数
  • キーを持つユーザーの数
  • スキャンされたキーの数
  • ROCA の脆弱なキーの数
  • 孤立したキーの数 (-SkipCheckForOrphanedKeys が指定されていない場合)

注: Azure AD に参加しているデバイスを使用するハイブリッド環境があり、オンプレミス ドメインで "Get-ADWHfBKeys" を実行すると、孤立したキーの数が正確でないことがあります。 これは、Azure AD に参加しているデバイスが Active Directory に存在せず、Azure AD に参加しているデバイスに関連付けられているキーが孤立状態と表示されることがあるためです。

 

孤立した ROCA の脆弱なキーをディレクトリから削除します

次の手順を使用して、Azure Active Directory のキーを削除します。

  1. AzureKeys.csv の Orphaned 列 RocaVulnerable 列を true にフィルター処理します
  2. フィルター処理された結果を新しいファイル、C:\ROCAKeys.csv にコピーします
  3. 次のコマンドを実行して、キーを削除します。

PS> Import-Csv C:\ROCAKeys.csv | Remove-AzureADWHfBKeys -Tenant contoso.com -Logging

このコマンドは、孤立した ROCA の脆弱なキーの一覧をインポートし、 contoso.com テナントから削除します。 テナントからキーを削除するには、 contoso.com をテナント名で置き換えます。

: まだ孤立していない ROCA の脆弱な WHfB キーを削除すると、ユーザーが混乱します。 ディレクトリから削除する前に、これらのキーが孤立していることを確認する必要があります。

 

次の手順を使用して、Active Directory のキーを削除します

注: ハイブリッド環境で Active Directory から孤立したキーを削除すると、Azure AD Connect 同期プロセスの一部としてキーが再作成されます。 ハイブリッド環境の場合は、Azure AD からのみキーを削除します。

  1. OrphanedKey 列と ROCAVulnerable 列 ADKeys.csv を true にフィルター処理します
  2. フィルター処理された結果を新しいファイル、C:\ROCAKeys.csv にコピーします
  3. 次のコマンドを実行して、キーを削除します。

PS> Import-Csv C:\ROCAKeys.csv | Remove-ADWHfBKeys -Logging

このコマンドは、孤立した ROCA の脆弱なキーの一覧をインポートし、ドメインから削除します。 

注: まだ孤立していない ROCA の脆弱な WHfB キーを削除すると、ユーザーが混乱します。 ディレクトリから削除する前に、これらのキーが孤立していることを確認する必要があります。