PrintNightmareマイクロパッチ(0patch)のインストール方法:CVE-2021-34527

news

マイクロソフトのパッチが未完全であるのを受け、0patch社が無償のPrintNightmareマイクロパッチを公開しています。

Free Micropatches for PrintNightmare Vulnerability (CVE-2021-34527)
by Mitja Kolsek, the 0patch Team Update 8/11/2021: August 2021 Windows Updates brought a fix for PrintNightmare that has the same default ef...

本記事は上記URLのブログ記事の日本語訳です。インストールなどは内容をよく見て自己責任にて対応願います。

はじめに

セキュリティ研究者のcube0x0氏は、この脆弱性に対する別の攻撃方法を発見し、影響を受けるWindowsリストを大幅に拡大しました。元々の攻撃ベクトルはPrint System Remote Protocol [MS-RPRN]でしたが、Print System Asynchronous Remote Protocol [MS-PAR]を介して配信される同じ攻撃は、Windowsサーバーがドメインコントローラーであることや、Windows 10マシンがUAC User Account Controlを無効にしていること、またはPointAndPrint NoWarningNoElevationOnInstallを有効にしていることは必須条件ではありません。

なお、2021年7月2日に発行されたServer 2019, 2016, 2012 R2, 2008 R2用のパッチを当てても、この新しい攻撃手法は未だ有効であるため、アップデートしても意味はありません

2021年6月のWindowsアップデートでは、当初「Windows Print Spooler Local Code Execution Vulnerability」という脆弱性CVE-2021-1675の修正が行われました。いつものように、マイクロソフトのアドバイザリには、この脆弱性に関する情報はほとんどなく、約2週間後にアドバイザリが更新され、「ローカルコード実行」が「リモートコード実行」に変更されたことに気づいた人はほとんどいなかったでしょう。

このCVE IDは、CVE-2021-1675であることを示すPrintNightmareと呼ばれるリモートコード実行の脆弱性のPoC(概念実証コード)が突然に公開されたものでなければ、おそらく取るに足らないままだったでしょう。このPOCを公開したセキュリティ研究者のZhiniang PengとXuefeng Liは、自分たちが発見した脆弱性はすでにマイクロソフトによって修正されていると考えており、また他の研究者が徐々に詳細を公開しているのを見て、自分たちの研究も公開することにしました。

公開されたPOCは、まだパッチが適用されていない脆弱性であり、2019から少なくとも2008までのすべてのWindows Serverで、特にドメインコントローラーとして設定されている場合、リモートでコードを実行できることが判明しました。

セキュリティ業界では、マイクロソフト社から正式な修正プログラムが提供されない中、悪用可能な条件を特定し、回避策を見つけるために奔走しました。一方で、PrintNightmareは積極的に悪用され始め、マイクロソフト社はこの問題がCVE-2021-1675とは別の脆弱性であることを確認し、CVE-2021-34527を割り当て、影響を受けるユーザーに対してPrint Spoolerサービスを無効にするか、または受信リモート印刷を無効にすることを推奨しました。

マイクロソフト社の推奨事項に加えて、コミュニティから寄せられた回避策には、認証されたユーザーを「Windows 2000以前の互換性のあるアクセス」グループから削除することや、攻撃を防ぐためにプリントスプーラーのフォルダーに権限を設定することなどがありました。

パッチ適用リスト

手短に言えば、0patchのチームは脆弱性を分析し、影響を受けるさまざまなWindowsのバージョン用にマイクロパッチを作成しましたが、最も重要で広く使用されているものから始めました。

Windows Server 2019 (2021年6月のアップデートで更新)
Windows Server 2016(2021年6月のアップデートで更新されました
Windows Server 2012 R2(2021年6月のアップデートで更新されました
Windows Server 2008 R2(2020年1月のUpdatesで更新、Extended Security Updatesはなし
Windows 10 v21H1 (2021年6月のアップデートで更新されました)
Windows 10 v20H2 (2021年6月のアップデートで更新されました)
Windows 10 v2004 (2021年6月のアップデートで更新されました)
Windows 10 v1909 (2021年6月のアップデートで更新されました)
Windows 10 v1903 (2020年12月の更新プログラムでアップデート – サポート終了前の最新版)
Windows 10 v1809 (2021年5月の更新プログラムでアップデート – サポート終了前の最新版)
Windows 10 v1803 (2021年5月の更新プログラムで更新 – サポート終了前の最新版)
Windows 10 v1709 (2020年10月の更新プログラムで更新 – サポート終了前の最新版)

私たちのマイクロパッチは、関数AddPrinterDriverExのdwFileCopyFlagsのAPD_INSTALL_WARNED_DRIVERフラグがオブジェクトアクセスチェックをバイパスすることを防ぎ、これにより防御が成功しました。「警告されたドライバーのインストール」機能はあまり頻繁に使用されるものではなく、Windowsマシンを些細な遠隔操作から保護することと引き換えに、この機能が利用できないことは良いトレードオフであると考えています。

無償のパッチの入手方法

PrintNightmare用のマイクロパッチは、マイクロソフト社が正式な修正プログラムを発表するまで無料で提供されます。これらを使用したい場合は、0patch Centralで無料のアカウントを作成し、0patch.comから0patch Agentをインストールして登録します。それ以外はすべて自動的に行われます。コンピュータの再起動は必要ありません。

0patch Central
Welcome to the era of vulnerability micropatching - 0patch

互換性に関する注意事項:一部のWindows 10およびServerシステムでは、0patch Agentを実行しているシステムのSoftware Protection Platform Service(sppsvc.exe)で時々タイムアウトが発生することがあります。これは、0patchコンポーネントがサービスに注入されるのを防ぐWindowsのコードインテグリティ緩和のバグのようです。ただ問題ありません。たまにプロセスの起動がタイムアウトになるような一見無意味な処理も多く行われます。その結果、さまざまなライセンス関連のエラーが発生することがあります。万が一この問題が発生した場合は、この記事に記載されているように、sppsvc.exeを0patch注入から除外することで解決できます。

よくあるご質問

Q: PrintNightmareの影響を受けるWindowsのバージョンを教えてください。

Answer updated 7/5/2021: 新たな攻撃ベクトルが発見されたことにより、DC以外のサーバーやデフォルト構成のWindows 10マシンにも影響を与えるため、影響を受けるWindowsプラットフォームリストが大幅に拡大しました。テストによると、現在の状況はこのようになっています。

Windows Server 2019は、DCかどうかにかかわらず、影響を受けます。
Windows Server 2016、DCかどうかにかかわらず-影響を受ける
Windows Server 2012 R2、DCかどうかにかかわらず – 影響を受ける
Windows Server 2012 non-R2、DCか否かにかかわらず-影響を受けない
Windows Server 2008 R2、DCの有無にかかわらず-影響あり
Windows Server 2008 non-R2、DCの有無にかかわらず – 影響を受けない
Windows Server 2003、DCか否かにかかわらず – 影響を受けない
Windows 10(すべてのバージョン)、ドメインに参加している場合 – 影響なし
Windows 10(すべてのバージョン)、ドメインに参加していない場合 – 影響あり
Windows 7 – 影響なし

Windows 10へのリモート攻撃では、これまでのところ、攻撃が最も懸念されるドメインに接続されたWindows 10マシンに対しては成功しませんでした。これまでのところ、ドメインに接続されていないWindows 10マシンのローカルユーザーの認証情報を使用してエクスプロイトを起動することしかできませんでしたが、そのような認証情報は攻撃者が知らない可能性が高いです。したがって、今回のテストでは、ローカルでの特権昇格の可能性を確認したに過ぎません(ローカルユーザーがPrintNightmareを悪用してローカルのシステム特権を獲得する)。

現在の理解では、カスタム設定を行わず、2021年6月のWindowsアップデートを適用した場合、ドメインコントローラーとして動作するWindowsサーバーのみが影響を受けると考えています(バージョン2012、2016、2019で確認)。理由は、サーバーがドメインコントローラーである場合、何らかのレガシー互換性のためにPre-Windows 2000 Compatible Accessグループが作成され、Authenticated Usersグループがこのグループのメンバーになることにあるようです。これにより、すべてのドメインユーザーがPre-Windows 2000 Compatible Accessグループのメンバーとなり、これがこの脆弱性を悪用するための重要なピースとなる。

しかし、DCサーバ以外のサーバや、2021年6月に更新されたWindows 10システムでも、少なくともこれらのケースでは脆弱性が発生する可能性があります。

UAC(ユーザーアカウント制御)が完全に無効になっている、またはPointAndPrint NoWarningNoElevationOnInstallが有効になっている

Q: 2021年6月のWindowsアップデートが適用されていないWindowsシステムはどうなりますか?

2021年6月のWindowsアップデートがない場合、サポートされているすべてのWindowsシステム、つまり2012年以降のすべてのサーバーとすべてのWindows 10システムが影響を受けると考えています

Q: マイクロソフトがPrintNightmareの修正プログラムを発行した場合、これらのマイクロパッチはどうなりますか?

マイクロソフト社がPrintNightmareを修正した場合、そのアップデートはほぼ確実に、脆弱性が存在するlocalspl.dllを置き換えることになります。更新プログラムを適用すると、このファイルの暗号ハッシュが変更され、0patchはこのファイルへのマイクロパッチの適用を停止します。0patchで何かをする必要はありません(マイクロパッチを無効にするなど)、これはすべて0patchのデザインによって自動的に行われます。

公式の修正プログラムが利用可能になると、私たちのマイクロパッチは無料ではなくなり、0patch PROライセンスの下に置かれることになります。つまり、これらのマイクロパッチ(およびPROライセンスに含まれる他の多くのマイクロパッチ)を継続して使用したい場合は、適切な量のライセンスを購入する必要があります。

Q: 当社には影響を受けるコンピュータが多数あります。次のWindows 0dayに備えるにはどうしたらいいでしょうか?

他の企業向けソフトウェアと同様に、ネットワーク全体に展開する前に、既存のソフトウェアと一緒に、テスト用のコンピュータグループで0patchをテストすることをお勧めします。トライアルの設定については、sales@0patch.com までご連絡ください。また、次のような0dayが発生した際には、0patch Centralのスイッチを入れるだけでOKです

Comments

タイトルとURLをコピーしました