Microsoftは最近、プリントスプーラーを使用しているWindowsに影響する新たなリモート実行脆弱性「PrintNightmare」の存在を認めました(Windows Central)。
脆弱性はSangfor社の研究者が誤って公開したもので、すぐに削除さたものの、GitHubですぐにフォークされたため、削除される前に他の人がアクセスできる状態になっていた模様。
脆弱性は実際に悪用されており、Microsoftは、恒久的な修正プログラムがリリースされるまで、Windows Print Spoolerサービスを一時的に無効にするか、プリントサーバへの着信接続をブロックすることを推奨しています。
その回避策は以下の通りです。
PowerShellでPrint Spoolerサービスを無効にする
PowerShellを使ってPrint Spoolerサービスを無効にするには以下の手順を実行します。
- スタートを開く。
- PowerShellを検索。検索結果を右クリックして管理者として実行する。
- Print Spoolerを停止するため以下のコマンドを入力して実行する。
Stop-Service -Name Spooler -Force
- 再起動後もPrint Spoolerを起動しないため以下のコマンドを実行する。
Set-Service -Name Spooler -StartupType Disabled
この手順を実行すると、デバイスはPrintNightmare攻撃から保護されますが、ローカルまたはリモートでの印刷ができなくなります。
なお再度Print Spoolerを有効にするにはPowerShellコマンドで以下のコマンドを実行します。
Set-Service -Name Spooler -StartupType Automatic Start-Service -Name Spooler
グループポリシーエディタで回避する
Windows 10 Pro(Enterprise)では、ローカルグループポリシーエディタを使って脆弱性に対処することもできます。
以下の手順を実行します。
- スタートをクリック。
- gpedit.mscを検索してOKをクリック。ローカルグループポリシーエディタを開く。
- 「コンピューターの構成 > 管理用テンプレート > プリンター」を開く。
- 右側のペインで「印刷スプーラーにクライアント接続の受け入れを許可する」をダブルクリックする。
- 「無効」を選択。
- 「適用」をクリック。
- 「OK」をクリック。
この手順を実行すると、外部ネットワークからの接続が無効になり、脆弱性が悪用されることを防ぐことができます。Windows 10をプリンターサーバーとして設定している場合、ユーザーは印刷ができなくなりますが、デバイスに直接接続されているプリンターは利用できます。
設定を戻す場合、ローカルグループポリシーエディターで「印刷スプーラーにクライアント接続の受け入れを許可する」を「未構成」に戻します。