イエラエセキュリティ CSIRT支援室 第 21 回 すべてのバージョンのWindowsに影響、「プリントナイトメア」をホワイトハッカーが解説 | ScanNetSecurity
2024.03.29(金)

イエラエセキュリティ CSIRT支援室 第 21 回 すべてのバージョンのWindowsに影響、「プリントナイトメア」をホワイトハッカーが解説

株式会社イエラエセキュリティによる「イエラエセキュリティ 脅威動向レポート」の第 1 回目は、プリントナイトメアの問題点や影響範囲、監視方法や対策手段について解説します。

脆弱性と脅威 脅威動向

~イエラエセキュリティ 脅威動向レポート 第 1 回 PrintNightmare(プリントナイトメア)~

 Windows の印刷スプーラーに存在する脆弱性「PRINTNIGHTMARE(プリントナイトメア)」。この脆弱性を利用すると、管理者権限が取得できてしまうことに加え、当初、まだパッチがない状況でエクスプロイトコードのみが公開されてしまい、混乱を呼びました。

 ホワイトハッカーで構成されたセキュリティ脆弱性診断企業、株式会社イエラエセキュリティによる「イエラエセキュリティ 脅威動向レポート」の第 1 回目は、プリントナイトメアの問題点や影響範囲、監視方法や対策手段について解説します。

 お話いただくのは、イエラエセキュリティ 代表取締役 牧田 誠 氏と、イエラエセキュリティ 高度解析課 三村 聡志 氏です。

※この記事は、2021 年 7 月 27 日に公開された YouTube動画を元に記事化しています。

●20 年間眠っていた? 影響範囲が大きい「PrintNightmare」

株式会社イエラエセキュリティ 高度解析課 三村 聡志 氏


三村 聡志(以下、三村):今回は第 1 回目として、Windows の印刷スプーラーに見つかった脆弱性(CVE-2021-34527)を取り上げます。これは「PrintNightmare(プリントナイトメア)」と呼ばれ、Microsoft はリモートでコードが実行される脆弱性があると警告しました。

牧田 誠(以下、牧田):この脆弱性はこれまでのものと比べて、影響範囲が相当大きいと感じています。かなり「ヤバい」状況です。Windows がほぼすべて対象になると考えていいのですよね?

・Windows 8 以上だけではなく、Windows 7、XP や Vista へも影響が?

三村:Microsoft の Webサイトを見ると、基本的には Windows 8 以上が対象になっています。セキュリティ関係者の間では「Windows 7 も影響を受けるのではないか」と言われていますが、基本的には 8 以上。そもそも、Windows 7 は Microsoft のサポートがもう終了していますので。

牧田:確かにサポートの観点から考えると、8 以上となるのでしょうけど、7 以前の Windows XP や Vista もプリントスプーラーを使っています。そのあたりまで影響が及ぶのではないかとも感じています。

・プリントナイトメアは、20 年くらい存在していた脆弱性

牧田:プリントスプーラーの脆弱性で、しかも Windows XP まで影響を受けると考えると、もう 20 年くらい存在していた脆弱性だったことになります。それを急に「ゼロデイ脆弱性(パッチなどの脆弱性を解消する手段がない状態の脆弱性)です」と言われても……。脆弱性が 20 年間、印刷スプーラーに眠っていたわけですからね。

三村:脆弱性を公表した研究者は、本来であればセキュリティ関連のイベントである「ブラックハット」などで発表しようと考えていたと言われています。その時点では当然、対策は完了していて、言ってみればいつもどおり問題は解決するはずでした。

・パッチが存在しない状況でもいきなり公開

三村:しかし、研究者の手違いとされていますが、今回はまだパッチも存在しない状況で、脆弱性だけがいきなり公開されてしまいました。プリントスプーラー自体は古いバージョンの Windows から使われているコンポーネントなので、影響はいま確認できている範囲以上に広がっているだろうと考えられます。

今回と似たような脆弱性に MS16-087 という脆弱性があって、パッチは Vista 以降から出ています。PrintNightmare はほぼ同じようなコンポーネントを攻撃してくる脆弱性なので、Vista も影響を受ける可能性があり、さらに Vista 以前の Windows も影響を受ける可能性は十分に考えられます。

・多くの研究チームがプリントナイトメアに気づいていた…?

牧田:パッチが完成した状態で発表するつもりだったのに、別の研究チームが脆弱性を見つけて公表してしまい、「本当は以前から把握していました」というような状況になっています。今回は公表の手順にも不手際があったようですが、実は多くの研究チームがこの脆弱性に以前から気づいていた可能性があります。個人的には、そのことに非常に危機感を感じています。

・20 年間ずっとハッキングし放題、やりたい放題だった可能性も

牧田:つまり、プリントスプーラーを使っている Windows すべてに影響範囲が及ぶとなれば、重要インフラや製造業で使われている産業用制御システム(ICS)の PLC(Programmable Logic Controllers)や HMI(Human Machine Interface)など、Windows を使っているものすべてに影響範囲は広がっています。

そして PrintNightmare が存在していた 20 年間のうちに、もしも誰か気づいた人間がいたとすれば、ずっとやりたい放題だったことになります。しかも重要インフラは大規模なシステムですから、今週パッチが出たからといって、来週にはパッチが適用されているとは考えられません。PrintNightmare は、はかり知れない影響を及ぼすと感じています。

・セキュリティを考える人はリスクを正しく判断して、適切な対応を

三村:まさにその通りですね。重要インフラは停止しないことを重要視していますので、パッチが出たとしても、パッチを当てるために稼働を止めてしまうことや、パッチを適用したことによる可用性への影響を慎重に検討しなければなりません。だからこそ、セキュリティを考える人はリスクを正しく判断して、適切な対応を取ることが大切になってきます。

例えば、PrintNightmare であれば、ワークアラウンドスタックとして別の対策を取ることもできます。セキュリティ担当者の皆さんには、そうしたことを総合的に検討・判断できるだけの知識を身につけていただきたいと思います。そして、それでも不安がある場合は、我々のようなところをうまく活用してほしいですね。

●プリントナイトメアの対策法

株式会社イエラエセキュリティ 代表取締役 牧田 誠 氏


牧田:PrintNightmare の対策には、具体的にどのようなものが考えられるのですか?

・対策1 プリントスプーラーを止める

三村:まず 1 番目の対策としては、Active Directory(アクティブディレクトリ)の Domain Controller(ドメインコントローラ)を止めてしまい、プリントスプーラーのサービス自体を止めてしまうことが考えられます。ただしこの場合は、印刷ができなくなってしまいます。

・対策2 緊急パッチを適用する

三村:そのほかには、米Microsoft が 2021 年 7 月 6 日(現地時間)に公開した緊急パッチを適用すると、レジストリキーが 1 つ追加されますので、その「RestrictDriverInstallationToAdministrators」というキーを「1」に設定します。

ただしこの場合も、ドライバの更新が止まってしまい、印刷がうまくできなくなってしまう可能性があります。中小企業では印刷に家庭用プリンターを使っているケースもあり、攻撃を防ぐことはできるのですが、業務に支障がでることにもなり、なかなか悩ましいところです。

牧田:脆弱性が見つかった場合、ほとんどの場合はパッチを適用すれば対策は完了しますが、印刷ができなくなってしまうとなると、今回はいつもよりも、もう少し気を使わなければなりませんね。

・パッチ適用後は、署名なしのドライバーはインストールできない

牧田:先程のレジストリキー「RestrictDriverInstallationToAdministrators」はパッチを適用した後の、デフォルトではどうなっているのですか?

三村:デフォルトでは「0」になっています。

牧田:なるほど、デフォルトでは互換性や使い勝手が優先されているわけですね。パッチを適用して、レジストリキーを「1」にするということは、署名のないドライバーはインストールさせないようにするということですね。

これまでは、署名付きと署名なし、どちらのプリンタードライバーもサーバにインストールできました。しかし、パッチ適用後は署名付きドライバーのみインストール可能、また、署名のないドライバーをインストールする場合は、管理者情報が必要になります。

●プリントナイトメアの対策状況の確認方法

牧田:パッチが適用されているかどうかなど、社内の管理者が Printnightmare の対策状況を確認するためにはどのような手段がありますか?

・確認方法1 緊急パッチが適用されているか

三村:社内の PC などが正しく管理されている環境、つまり EDR(Endpoint Detection and Response)製品などが導入済みで、Windowsアップデートの適用状況が管理されている環境であれば、まずは緊急パッチ「KB5005010」が適用されているかどうかを確認します。

・確認方法2 「ポイントアンドプリント」の設定をチェック

三村:もうひとつは「ポイントアンドプリント」という設定がグループポリシーで設定可能になっていて、ここに「新しい接続用にドライバーをインストールした場合」という項目があります。その項目が「警告または昇格時のプロンプトを表示しない」という設定に切り替わっていないかどうかを確認してください。デフォルトは「表示する」なので、「表示しない」になっている場合は、パッチを適用しても攻撃を受けてしまうことがあります。この2点が基本的なチェック項目になります。

●エクスプロイトコードの検証

牧田:Printnightmare の影響範囲が大きいと考える理由は、PoC(Proof of Concept:概念実証)、つまり、Windows の脆弱性を攻撃するために作られたエクスプロイトコードが先に公開されてしまったことです。

おそらく最初に公表した研究チームは、すでにパッチが出ているものと考えて PoC を出してしまった。そして、その後で「パッチがない」という話になって、慌てて PoC を削除したようです。しかし一度公開されてしまったので、PoC は拡散して、他の研究チームからも PoC が出てしまう状況になってしまいました。

・ローカルエクスプロイトとリモートエクスプロイトの両方が可能に

先程、実際にエクスプロイトコードを検証してみましたので、それをご紹介します。Printnightmare の問題は、LPE(Local Privilege Escalation)、つまりローカルエクスプロイトが可能になってしまうこと、さらにリモートエクスプロイトも可能になってしまうことです。

10.11.1.21 という IPアドレスに対して、192.168.119.148 から攻撃を行います。アドミン権限を持つユーザーを勝手に追加するというエクスプロイトを試してみました。

下図の選択部分が PoC です。攻撃対象となる一般ユーザーアカウントが 1 つ必要にはなりますが、10.11.1.21 のサーバーに対して、test1 というユーザーを作るエクスプロイトコード(DLL)を流し込みます。この DLL の作成も簡単です。

エクスプロイトの完了後、改めてサーバー側にどんなユーザーが存在するかを確認すると、test1 が増えていて、アドミン権限を持っていることがわかります。

・コマンド 1 行だけでアドミン権限が取れるプリントナイトメア

Printnightmare を利用すると、コマンド 1 行だけで Domain Controller のアドミン権限が取れてしまう。エクスプロイトコードはすでに公表されてしまっているので、影響は今も存在していますし、今後もますます広がっていくのではないかと考えています。

・攻撃されたことに気付かない可能性も

三村:デモでおわかりいただけたかと思いますが、攻撃された PC の画面に何か出てくるわけではありません。深いところを監視しないと、検知することはできません。表面的には何もわからないうちに、エクスプロイトの横展開、ラテラルムーブメントができてしまいます。

●プリントナイトメアの監視方法

・監視方法1 パケットキャプチャ

牧田:エクスプロイトは、DLL を samba で持ってくるだけです。一見すると「新しいドライバをインストールします。ファイルは samba から持ってきます。入れました」という DLL が管理者権限で走るだけです。通信だけを見ると、samba を使ってファイルサーバと通信しているくらいにしか見えません。

Printnightmare を使ったエクスプロイトは、パケットキャプチャで監視できるのですか?

三村:実際に画面を見てみましょう。これが正常系の通信、つまり普通にプリンタを印刷した場合の通信です。SMB のファイルが走り、Create Respons とか、OpenPrinter、ClosePrinter など、よくある項目が並んでいます。

一方、エクスプロイトが走るとどうなるかをお見せすると、明らかに違う項目が並びます。

パケットキャプチャの画面では色の違いもありますが、エクスプロイトが実行された場合には「AsyncAddzPrinterDriver」という命令が数多く走ります。ようするに、プリンタ追加の命令等が走っている場合は、いつもとは違うことが起きているのではないかと疑った方がいいと思います。

牧田:このあたりの Windowsスプーラーの関数を見ていれば、怪しいかどうかは判断できるということですね。

三村:監視できる環境が構築されていれば社内で監視することができます。プリンタドライバのインストール自体はそれほど頻繁には発生しないものですから、そもそも、そうした命令が走り始めた場合は、通信を止めてもいいと思います。

牧田:すでに過去に攻撃を受けてしまっていたかどうかの判断は難しいと思いますが、ひとつの手がかりとして、こうしたパケットを見ていくことは有効手段と言えますね。

・監視方法2 DLLファイル

三村:すでに攻撃を受けてしまっているかどうかの確認は、PC の場合は、System32 の spool の下にエクスプロイトで入れられた DLLファイルが残っています。そこを見れば、異常を疑うことはできます。

先ほどの検証で確認してみると、Cドライブ>Windows>System32>spool>drivers>x64>3 に、検証で入れたドライバー「test_x64.dill」が置かれています。また同じディレクトリーに「Old」というフォルダがありますが、今回のエクスプロイトは何度も DLL を送り込むという仕組みなので、Oldフォルダに最低 1 つはファイルが残ります。ただし、エクスプロイトが改善されて、変わる可能性はあります。

牧田:例えば会社にある何百台、何千台の PC の状況を確認する場合は、パッチの適用状況を確認するとともに、こうした DLLファイルの確認スクリプトを走らせることも効果がありそうですね。

三村:EBR で System32>spool 以下のファイルのアクセス状況を確認することもできます。

●プリントナイトメアの対策はイエラエへ

牧田:Printnightmare で攻撃されたのではないか、あるいは攻撃された兆候はあるけれど、影響がどこまで広がっているのかわからない。具体的にどういう対策を取ればいいのかなどについて不安がある場合は、イエラエではデジタルフォレンジックを含めてインシデントレスポンスを行っています。ぜひご相談ください。

脆弱性診断のご依頼をご希望される方はこちら

《株式会社イエラエセキュリティ》

関連記事

Scan PREMIUM 会員限定記事

もっと見る

Scan PREMIUM 会員限定記事特集をもっと見る

カテゴリ別新着記事

「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」
「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」

ページ右上「ユーザー登録」から会員登録すれば会員限定記事を閲覧できます。毎週月曜の朝、先週一週間のセキュリティ動向を総括しふりかえるメルマガをお届け。(写真:ScanNetSecurity 名誉編集長 りく)

×