Microsoftのセキュリティ更新プログラム – CVE-2019-0708の修正プログラム(別名BlueKeep)

By Cylance Research and Intelligence Team

本ブログ記事は、2019年5月21日に米国で公開された抄訳版です。原文はこちらからご覧頂けます。

概要

CVE-2019-0708は、Microsoft Windowsのリモートデスクトップ/ターミナルサービス(RDP)コンポーネント内に存在する、リモートでコードが実行される脆弱性です。SMBの脆弱性MS17-010と同様に、脆弱性が悪用されると、Windowsカーネル内で任意のコードが実行され、攻撃者による完全な制御を許してしまうおそれがあります。

MSRCの発表 によると、この悪用についてはまだ公にされておらず、この脆弱性が悪用された事例もまだ確認されていないとのことです。しかし、MSRCのブログ記事では、この脆弱性がWannaCryマルウェアのようなワームによって悪用されるおそれがあるという見解が述べられています。ブログでは触れられていませんが、SMBの脆弱性が最初のアクセスを得る目的で悪用されたのに対して、WannaCryはWMIやPsExecも利用してネットワーク内部に広がっていきました。

Microsoftがサポート対象外になった旧バージョンのWindows(特にWindows XP)に対しても修正プログラムを提供していることからも、この脆弱性が重大なものであることがわかります。Microsoftは以前、「ワームとなりうる」RDPについて注意を呼び掛けていましたが(MS-12-020に関する発表)、こちらは重大な問題でないことが明らかになりました。MS-12-020によってサービス拒否の状況に陥るという問題は起きましたが、リモートでコードが実行されるという問題までは起きなかったためです。

技術的な詳細:

このコンポーネントは、termdd.sysというドライバによって実装されています。修正プログラムのバイナリdiffによると、カーネルモード(リング0)での任意の書き込みプリミティブが明らかになっています。これにより、攻撃者は、書き込み先となるメモリの場所を指定し、その指定されたアドレスにどの値を書き込めるかを限定的に制御できます。攻撃者は、アドレスの計算に使用される64ビット整数「`vVulnparam`」を制御できるととともに、RDPサービスに対して対応する数のチャネルを開くことで「`vChannel`」を限定的に制御できます。

影響を受けるバージョン:

Windows XP, Windows 7, Server 2003, Server 2008, Server 2008 R2

概念実証(PoC):

この記事の公開時には、概念実証(PoC)が公開されているようであり、RDPサービスと通信して脆弱なコードパスを実行しても任意のコードは実行されず、最悪の場合でも、カーネルメモリが破損されて「死のブルースクリーン(BSoD)」と俗に呼ばれている「バグチェック」が行われるにとどまることが示されています。著名企業のさまざまなセキュリティ研究者が、バグチェックの状況を示すPoCのスクリーンショットやビデオを既に公開しています。

注意:マルウェアおよびその他の悪意の少ない攻撃(Rick Astleyの「Never Gonna Give You Up」を表示する)やいたずらを仕掛ける、MS12-020の脆弱性からコピーされている偽のPoCも数多く存在します。

推奨されるアクション:

  1. 1. すべての脆弱なシステムに対してすぐに修正プログラムを適用する。修正プログラムは、サポート対象バージョンとサポート対象外バージョン(Windows XP、Server 2003)の両方で提供されています。

  2. 2. (少なくとも脆弱性が修正されるまで)リモートデスクトップサービスを無効にする。

  3. 3. 外部からのエクスプロイト攻撃を阻止するために、境界ファイアウォールでTCP/3389(およびUDP/3389)をブロックする。

  4. 4. ネットワークレベル認証(NLA)を有効にし、RDPサービスへの認証接続を必須にする。これにより攻撃者は有効なログイン資格情報の入手が必要になりますが、システムの脆弱性は残ります。

 

Tags: