2021/07/14

システム管理者を悩ませ続ける PrintNightmare

2021 年 7 月 14 日 Josh Stuifbergen 著

アップデート 1: 3 つ目の PrintNightmare CVE が公開
(2021 年 7 月 16 日)

Microsoft は 7 月 15 日、ローカルでの権限昇格の脆弱性について CVE-2021-34481 を公開しました。3 つ目となる今回のプリントスプーラサービスに関わる脆弱性は、PrintNightmare (CVE-2021-34527) とは別物であるとされていますが、プリンタードライバの脆弱性であるという点は共通です。Mimikatz の作者 Gentilkiwi 氏が脆弱性のデモを https://twitter.com/gentilkiwi/status/1415520478693888004 で掲載しています。Microsoft によるセキュリティパッチは適用されていますが、悪意を持ってダウンロードされたプリンタードライバによってローカルシステムの権限が取得されています。プリントスプーラサービスを無効にすることで、この脆弱性を防ぐことができます。Microsoft は、セキュリティパッチを作成中です。

元の投稿 (2021 年 7 月 14 日):
システム管理者は苦労の多い役職です。ユーザにとって使い勝手がよく、アクセスしやすいインフラストラクチャを維持することが求められます。たとえ人材が充分でも (稀なことですが)、この要件を満たすためには、チーム総出での仕事が強いられる場合もあります。だからこそ、現在進行中のゼロデイ脆弱性「PrintNightmare」 (CVE-2021-1675 および CVE-2021-34527) は、多くの管理者を悩ませています。Microsoft の数回にわたる緊急パッチが適用された状態でも、Windows プリントスプーラサービス (プリンタおよびプリンタサーバマネージャ) が有効になっている場合、リモートコード実行の欠陥に対して潜在的な脆弱性があります。

パッチが適用されていない Windows サーバ上で PrintNightmare を悪用する攻撃は、複数のセキュリティ機関によって確認されています。このゼロデイ脆弱性は、ドメインコントローラ (DC) として使用されているすべての Windows サーバと、Microsoft が 7 月 7 日に公開したパッチをインストールしていない、デフォルト設定の Windows 10 デバイスに影響します。また、「Point and Print」が有効で、「NoWarningNoElevationOnInstall」オプションが選択されているシステムは、パッチが適用されていても脆弱である可能性があります。「ポイントアンドプリント」は Windows の機能のひとつで、ユーザがリモートプリンタに接続すると、事前にドライバをインストールすることなく、プリンタ自体から設定やドライバをダウンロードできる機能です。リモートデバイスから直接ダウンロードする、ということ自体がそもそもリスクを伴いうる行為です (組織がしっかりと運営されていれば大きな問題ではないかもしれませんが)。また、ユーザがドライバのインストールをする際には管理者権限を必要とすることが一般的ですが、管理者がセキュリティよりもアクセシビリティを優先すると判断した場合、その要件が取り払われる場合もあります。しかしセキュリティとアクセシビリティはトレードオフの関係にあるため、管理者権限なしにリモートドライバのインストールが許可される場合でも、必ずしもどちらか一方が取捨選択されているわけではありません。しかし一方で、ゼロデイ脆弱性が存在するこの世界では、その判断がもたらす結果に直面することとなります。

以下のグラフは、パッチ適用前の脆弱性の状態を示しています。Outflank 社のセキュリティ研究者 Stan Hegt 氏が作成したものです。

Mimikatz 作者の Gentilkiwi 氏は、Windows サーバとワークステーションで、悪用を実演するビデオを投稿しています。Stan Hegt 氏はその後、Gentilkiwi 氏の投稿を受けて新たにグラフを作成し、脆弱性を実証しました。

続く 7 日に追加の Windows OS に対するパッチを公開しました。その後すぐ、このパッチが脆弱性の一部しかカバーしていないことが研究者により指摘されました。リモートコード実行については修正されていたものの、PrintNightmare の前段階であるローカルでの権限昇格の問題 (CVE-2021-1675) について修正されていませんでした。しかしパッチ適用後も、リモートコード実行の欠陥と権限昇格の問題は、両方が悪用可能であったことが判明しています。Gentilkiwi 氏が発見した方法を用いると、ポイントアンドプリントが有効なままであれば、異なるファイルパスフォーマットを使用することでパッチを回避し、システム権限を取得することができます。幸い、デフォルトではポイントアンドプリントは有効になっていません。

PrintNightmare および、関連する権限昇格の脆弱性 (CVE-2021-1675) に対する安全を確保するためには、最新のセキュリティパッチをインストールし、ポイントアンドプリントを完全に無効にするか、ポイントアンドプリントを使用してプリンタードライバをインストールする機能を、管理者以外で削除してください。
Point and Print の対策: 以下のレジストリキーが存在する場合、それらを削除、または無効化します。

HKLM\Software\Policies\Microsoft\Windows NT\Printers\PointAndPrint
NoWarningNoElevationOnInstall = 0 (DWORD)
NoWarningNoElevationOnUpdate = 0 (DWORD)

ウォッチガードのお客様であれば、Firebox の 不正侵入防御システム (IPS) には、リモートコード実行の悪用に対するシグネチャ (1139407) があります。

管理者によっては、組織内のすべてのデバイスのプリントスプーラサービスを無効にする、という極端な措置をとっています。しかしこれは、日々の業務に支障をきたす可能性があります。現時点では、Microsoft が新たなパッチを公開するまで、手動での回避策が必要です。


PrintNightmare について、重要な出来事を時系列でご紹介します。
6 月 8 日 – Microsoft が、CVE-2021-1675 に対し、深刻度の低い権限昇格の脆弱性としてパッチをリリース。
6 月 21 日 – Microsoft が、CVE-2021-1675 の深刻度を「危険」に更新し、影響を「リモートコード実行」に変更。
6 月 29 日 – 研究者が CVE-2021-1675* の概念実証 (PoC) を発表し、ローカルでの権限昇格だけではなく、リモートコード実行にも利用できることを証明。研究者は、この権限昇格の欠陥を「PrintNightmare」と名付け、6 月 8 日のパッチでこの問題が修正されたとして PoC コードを公開。PoC の詳細はこちら。
*この PoC は、CVE-2021-1675 を実証するためのものでしたが、後に CVE-2021-34527 となる別のエクスプロイトであることが判明。研究者はすぐにこのコンテンツを取り下げましたが間に合わず、一部の悪意のあるハッカーが悪用を開始。
7 月 1 日 – Microsoft が PrintNightmare の脆弱性に対応する CVE-2021-34527 を公開。
7 月 6 日 /7 日 – Microsoft が CVE-2021-34527 を更新し、定例外パッチをリリース。
7 月 6 日 – 研究者が、CVE-2021-34527 のパッチは PrintNightmare の脆弱性を完全には解決していないことを発見。Point and Print が有効になっている場合、攻撃者は依然としてアクセス可能。
7 月 14 日 – プリントスプーラサービスに影響を与えるローカルな権限昇格の脆弱性を研究者が発見。Gentilkiwi 氏によるデモはこちら。
7 月 15 日 – Microsoft が、プリントスプーラサービスに影響を与えるローカルな権限昇格の脆弱性について、CVE-2021-34481 を公開。セキュリティアップデートは未だなし。