起動時マルウェア対策のテストの前提条件
このセクションでは、Windows Hardware Lab Kit (Windows HLK) を使用して起動時マルウェア対策 (ELAM) ドライバーをテストする前に完了しておく必要があるタスクについて説明します。
ELAM ソフトウェアの機能では、他のすべてのサードパーティ コンポーネントより前に、マルウェア対策ソフトウェアを起動するよう Microsoft がサポートするメカニズムを提供します。 システムでは最初にマルウェア対策ドライバーを初期化し、これらのドライバーがブート ドライバーの初期化を制御して、不明なブート ドライバーが初期化されないようにします。 ブート プロセスでブート ドライバーが初期化されて永続的ストレージへのアクセスが効率的に利用可能になると、既存のマルウェア対策ソフトウェアによってマルウェアの実行が引き続きブロックされます。
詳細については、「ファームウェアとブート環境」を参照してください。
ハードウェア要件
テストするには、以下のハードウェアが必要です。
- テスト コンピューター 2 台。 これらのテスト コンピューターは、Windows HLK の前提条件を満たしている必要があり、同じコンピューター プールに含まれている必要があります。 詳細については、「Windows HLK の前提条件」を参照してください。
Note
サーバーで使用する製品の認定を受けるには、テスト コンピューターが 4 つのプロセッサと 1 GB 以上の RAM をサポートしている必要があります。 これらのシステム機能は、デバイスとドライバーの再調整、D3 状態、および複数のプロセッサ グループの機能をテストするために必要です。 実際に 64 個以上のプロセッサを搭載したコンピューターでなくても、デバイスをテストすることは可能です。 また、デバイスまたはドライバーのテストに使用されるサーバー システムには、テストの前に Server Core がインストールされている必要があります。 詳細については、Windows Server のインストール オプションに関するページを参照してください。
テスト コンピューターのプールを使用して製品をテストする場合、プール内の少なくとも 1 台のコンピューターに 4 つのプロセッサと 1 GB 以上の RAM が搭載されている必要があります。 また、そのコンピューターには、テスト対象の製品が含まれている必要があります。 プール内のすべてのコンピューターでドライバーが同じである限り、システムは、すべてのテスト コンピューターに対して実行するスケジュールを作成します。
ハード ディスク ドライブのテストなど、テストするドライバーが含まれないテストの場合、Windows HLK スケジューラは、デバイスとドライバーの再調整、D3 状態、および複数プロセッサ グループの機能を検証するテストを、既定のテスト コンピューターでのみ実行されるように制限します。 このコンピューターが複数のプロセッサ グループを持つように手動で構成する必要があります。 既定のコンピューターは、一覧の最初のテスト コンピューターです。 テスト担当者は、一覧の最初のテスト コンピューターがハードウェアの最小要件を満たしていることを確認する必要があります。
Note
(WHCP ポリシーとプロセスに関するドキュメントで定義されている) 準仮想化ドライバーを除き、物理デバイスと関連するドライバーでサーバーの認定または署名をテストするときは、いかなる形式の仮想化も使用できません。 いずれの仮想化製品でも、複数のプロセッサ グループ、デバイス電源管理、デバイス PCI 機能、およびその他のテストに関連するテストに成功するために必要となる基本機能はサポートされていません。
Note
複数プロセッサ グループの設定には、Windows Server 2008 R2 以降の認定用デバイス ドライバーの Hardware Lab Kit テストに使用するプロセッサ グループのサイズの値を設定する必要があります。 この場合、管理者特権のコマンド プロンプト ウィンドウで、「/set」オプションを使用して bcdedit を実行します。
グループ設定を追加して再起動するためのコマンドは次のとおりです。
bcdedit.exe /set groupsize 2
bcdedit.exe /set groupaware on
shutdown.exe -r -t 0 -f
グループ設定を削除して再起動するためのコマンドは次のとおりです。
bcdedit.exe /deletevalue groupsize
bcdedit.exe /deletevalue groupaware
shutdown.exe -r -t 0 -f
Note
コードの整合性設定
まずサーバー マネージャーを使用して Windows Server 2016 の仮想化ベースのセキュリティ機能 (VBS) を有効にする必要があります。
その後、次のレジストリ キーを作成して設定する必要があります。
HKLM\System\CurrentControlSet\Control\DeviceGuard
HypervisorEnforcedCodeIntegrity:REG_DWORD
0 or 1 (disabled, enabled)
ソフトウェア要件
テストするには、以下のソフトウェアが必要です。
テストするドライバー。
警告
Windows HLK クライアントをインストールする前に、テスト コンピューターに製品がインストールされていることを確認します。
最新の Windows HLK フィルターまたは更新プログラム。
テスト コンピューターの構成
署名されていないカーネル モード ドライバーをテストする場合は、次のいずれかのオプションを選択します。
カーネル デバッガーをアタッチします。 この場合、システムでは、ドライバーの署名は検証または適用されません。 そのため、ドライバーに検証済みの証明書が存在しない場合や、ドライバーが署名されていない場合でも、どのドライバーも読み込むことができます。
makecert.exe ファイルを使用して、自己署名証明書を作成します。 証明書には、1.3.6.1.5.5.7.3.3 (コード署名) と 1.3.6.1.4.1.311.61.4.1 (起動時) の EKU が含まれている必要があります。 その後、セキュア ブートを無効にするか (有効な場合)、セキュア ブート デバッグを有効にし、bcdedit /set testsigning on コマンドを使用してコンピューターをテスト モードにします。 テスト モードとは、システムで署名と EKU は検証されますが、証明書チェーンは検証されないことを意味します。
テストを開始する前に、テスト コンピューターが準備完了状態であることを確認します。 テストを実行する前にパラメーターを設定する必要がある場合は、そのテストのダイアログ ボックスが表示されます。 詳細については、個々のテスト トピックを確認してください。
一部の Windows HLK テストでは、ユーザーの介入が必要です。 申請のためにテストを実行するときは、手動テストとは別のブロックで自動テストを実行することをお勧めします。 これにより、自動テストの完了が手動テストによって中断されるのを防ぎます。