Meltdownからのパッチは、Windows 7x64 / 2008R2により重大な脆弱性をもたらしました





Meltdownの脆弱性をカバーするパッチは、Windows 7X64およびWindows 2008R2により重大な脆弱性をもたらしました。 脆弱性は、パッチ2018-01または2018-02で更新されたシステムの影響を受けます。 脆弱性は、2017年12月以降にパッチが適用されていないシステム、または累積パッチ2018-03がインストールされているシステムの影響を受けません。



MicrosoftのMeltdownパッチは、Windows 7/2008でさらに大きなセキュリティホールを開き、すべてのユーザーアプリケーションがオペレーティングシステムのカーネルからコンテンツを読み取り、さらにカーネルメモリにデータを書き込むことを可能にしました。



スウェーデンのITセキュリティ専門家Ulf Friskは、ダイレクトメモリアクセス(DMA)攻撃を実行し、保護されたオペレーティングシステムメモリをダンプするように設計されたPCILeechデバイスで作業中にこの脆弱性を発見しました。



画像



専門家によると、MicrosoftのMeltdown修正(CVE-2017-5754用)は、カーネルメモリのアクセス権を制御するビットを誤って反転させました。



ユーザー/カーネル権利ビットは、PML4(第4レベルのページマップ)でユーザーに設定されました。 これにより、ページテーブルがすべてのプロセスのユーザーモードコードで使用可能になりました。 通常モードでは、ページテーブルにアクセスできるのはカーネル自体のみです。 Windows 7では、PML4の状態は位置0x1ED、オフセット0xF68に固定されています(Windows 10では、この値はランダムです)。 これは、PML4が常に仮想メモリの0xFFFFF6FB7DBED000に表示されることを意味します。



画像



PML4e 0x0000000062100867の値(上記の例から)は、ビット0、1、2が設定されていることを示します。これは、読み取りと書き込みに使用できることを意味します。



画像



PML4は、仮想プロセスアドレスをRAMの物理メモリアドレスに変換するためにプロセッサのメモリ管理モジュール(MMU)が使用するメモリ内の4レベルのページテーブル階層のベースです。



この問題は、Windows 7およびWindows Server 2008 R2の64ビットバージョンにのみ影響します。 マイクロソフトは、PML4イネーブルビットをパッチ2018-3の元の値に上書きすることでエラーを修正しました。



システムをテストするには、メモリをファイルにアンロードしてpcileechユーティリティを使用できます。



pcileech.exe dump -out memorydump.raw -device totalmeltdown -v -force
      
      





便宜上、 Dokanyを使用できます。実行中のプロセスと仮想カーネルメモリをファイルおよびフォルダーとしてマウントします。 プロセスをマウントするには、次のコマンドを実行する必要があります。



 pcileech.exe mount -device totalmeltdown
      
      







画像






UPD:脆弱性をチェックするためのPoCエクスプロイト



All Articles