
Intel NUC WinRing0脆弱ドライバー(CVE-2020-14979)のWindows Update経由での再インストールに対する恒久的な修正
Windows Defender は、OpenHardwareMonitorLib.sys (WinRing0 ドライバ) を、CVE-2020-14979 により VulnerableDriver:WinNT/Winring0 としてフラグ付けします。このドライバは Intel の NUC Software Studio サービスにバンドルされており、Windows Update 経由で再インストールされます。
このリポジトリは恒久的な解決策を提供します。
performancedriverextension.inf が NucSoftwareStudioService をインストールするOpenHardwareMonitorLib.sys (WinRing0 カーネルドライバ) を展開するIntel Corporation - Extension - 1.0.0.38 がそれを再インストールし続けるIntel NUC Performance Driver (ACPI\INTC1036) は、NUC 固有の機能を公開する ACPI デバイスです。
脆弱な拡張機能はこのベースドライバにフックします。Windows Update はデバイスを認識し、そのドライバ更新を提供します。
これはグループポリシーを使用して ACPI デバイスを完全に無効にし、ドライバの読み込みを防ぎます。
管理者として scripts/disable-device-gpo.ps1 を実行するか、手動で行います:
# Run as Administrator
.\scripts\disable-device-gpo.ps1
ベースドライバは維持しますが、このデバイスに対するすべての Windows Update ドライバインストールをブロックします。
トレードオフ:
管理者として scripts/block-driver-updates.ps1 を実行します。
恒久的ではありません - Intel が新しいバージョンをリリースした場合、再度非表示にする必要があります。
管理者として scripts/remove-and-hide.ps1 を実行します。
現在の状態を確認します:
.\scripts\diagnose.ps1
| コンポーネント | パス |
|---|---|
| サービス実行ファイル | C:\WINDOWS\System32\DriverStore\FileRepository\performancedriverextension.inf_amd64_*\Service\NucSoftwareStudioService.exe |
いずれかの解決策を適用した後、確認します:
# サービスが削除されたか確認
sc.exe query NucSoftwareStudioService
# Intel 拡張機能の保留中の更新がないか確認
# (完全な状態は scripts/diagnose.ps1 を実行)
シナリオ: グループポリシーデバイスブロック (オプション A) が、Windows Update が脆弱なドライバをインストールしようとしても維持されることを確認します。
テスト手順:
ACPI\INTC1036 に対する GPO ブロックを適用 (デバイス無効化)Windows Update がパッケージをインストールした後の結果:
重要な発見: GPO デバイスブロックが効果的な保護層です。Windows Update はドライバパッケージをドライバストアにステージングできますが、ハードウェア ID がブロックされているため アクティブ化できません。脆弱な .sys ファイルは抽出も読み込みもされません。
GPO ブロックが維持されたことを確認した後、完全なクリーンアップを実行しました:
pnputil /delete-driver oem17.infwushowhide.diagcab を使用して Intel 拡張機能更新を非表示最終確認状態:
ハードウェア ID ブロックだけで十分な保護になります。
テストにより、グループポリシーを介して ACPI\INTC1036 をブロックすることで、Windows Update がドライバパッケージを正常にダウンロードしてステージングしても、脆弱なドライバが読み込まれるのを防ぐことが実証されました。対象デバイスが無効になっているため、サービス実行ファイルと .sys ファイルは決して抽出されません。
推奨される最小構成:
ACPI\INTC1036 に対する GPO デバイスブロック — これが唯一必要な保護ですこのアプローチのシンプルさが強みです: 単一のレジストリベースのデバイスブロックにより、他のデバイスの通常の Windows Update 機能に干渉することなく完全な保護を提供します。
Intel NUC Performance Driver デバイス (ACPI\INTC1036) が無効になっている場合:
利用できなくなるもの:
通常通り動作するもの:
ほとんどのユーザーにとってこれが許容できる理由: NUC Performance Driver は主にファン/LED 動作の ソフトウェアカスタマイズ を有効にします。BIOS は Windows ドライバなしで動作するデフォルトプロファイルを提供します。ほとんどのユーザーは BIOS で一度ファン曲線を設定し、その後触ることはありません。動的な Windows ベースのファン制御 (例えば、自動的に切り替わるゲーミングプロファイル) が必要な場合、オプション A は適さないかもしれません — 代わりにオプション B を検討してください。
# グループポリシーブロックを削除
Remove-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions" -Recurse -Force
# デバイスを再有効化
$device = Get-PnpDevice | Where-Object { $_.InstanceId -like '*INTC1036*' }
Enable-PnpDevice -InstanceId $device.InstanceId -Confirm:$false
Remove-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions" -Recurse -Force
追加の発見や改善点があれば、Issue または PR を開いてください。
MIT ライセンス - 自己責任で使用してください。管理者として実行する前に必ずスクリプトを確認してください。
| 脆弱なドライバ | ...\Service\OpenHardwareMonitorLib.sys |
| ベースドライバ INF | oem*.inf (PerformanceDriver) |
| 拡張機能 INF | performancedriverextension.inf |
| 確認項目 | 結果 |
|---|
| NucSoftwareStudioService | 見つからない (良好) |
| ドライバストア | performancedriverextension.inf が oem17.inf としてステージング |
| OpenHardwareMonitorLib.sys | 抽出されていない (良好) |
| デバイス INTC1036 | 無効 - GPO が維持 |
| GPO ブロックレジストリ | アクティブ |
| コンポーネント | 状態 |
|---|
| NucSoftwareStudioService | 見つからない ✓ |
| ドライバストア (performancedriverextension.inf) | クリーン ✓ |
| OpenHardwareMonitorLib.sys | 存在しない ✓ |
| Intel NUC Performance Driver デバイス | 無効 ✓ |
| グループポリシーデバイスブロック | アクティブ (INTC1036 ブロック済み) ✓ |
| Intel 拡張機能更新 | 非表示 ✓ |