Windows 10 の圧縮メモリで悪を見つける、パート 1: 揮発性と Rekall ツール

Volatility & Rekall missing data stored in compressed pages news

すべてのデジタル フォレンジケーター、インシデント レスポンダー、およびメモリ マネージャー愛好家を呼び出します! Windows 10 イメージから悪意を抽出するために 24 時間体制でクライアント サイトにいることに気付いたことはありませんか?ステップ 0で壁にぶつかり、プロセス ツリーの表示やカーネル モジュールの列挙が困難になったことはありませんか?またはさらに悪いことに、経営幹部に直面して、悪を見つけることができなかったことを彼らに知らせなければなりませんでしたか?もう恐れる必要はありません。FLARE が対応します。 Windows 10 を分析し、調査結果をVolatilityおよびRekallツールに統合して、すぐに使用できるようにしました。

2013 年 8 月までは、熟練したコンサルタントとして、おおむね良好な状態でした。ツールは期待どおりに機能し、迅速にフォレンジックを行うことができました。 Windows 8.1 で導入された変更により、私たちが慣れ親しんできたツールが機能しなくなりました。ほとんどの企業が引き続き Windows 7 を使用していたため、この内訳はほとんど見過ごされていましたが、現在、企業環境は Windows 10 イメージをこれまでにないペースで展開しており、フォレンジック ツールが追いついていません。

このブログ記事は、Windows 10 のメモリ フォレンジック調査を取り上げた 3 部構成のシリーズの第 1 部です。この投稿は、 SANS DFIR Austin 2019での Omar Sardar と Blaine Stancill のプレゼンテーションと一致しており、 VolatilityRekallに対する FLARE の最新情報を紹介することを目的としています。次回の投稿は、 BlackHat USA 2019プレゼンテーションと同時開催されます。このプレゼンテーションでは、Omar Sardar と Dimiter Andonov が Windows 10 メモリ マネージャーの核心を突いた詳細を掘り下げます。最後の投稿は、カーネルを自分で分析しようとしている人へのガイドとして役立ちます。

概要

従来、完全な Windows メモリ分析では、フォレンジック ツールを使用して物理メモリを解析し、ページ ファイルから欠落しているギャップを埋めるだけで済みました。 Windows 8.1 では、Microsoft はメモリ圧縮と、圧縮されたメモリを格納するように設計された新しい仮想ストアを導入して、このパラダイムを覆しました。現在のツールは、ディスク上の従来のページファイルを問題なく検査できますが、仮想ストアでは、まばらなドキュメントとデータ圧縮が原因で課題が生じます。

Windows 10 でより完全なメモリ分析を可能にするために、FireEye の FLARE チームは、オペレーティング システムのメモリ マネージャーと、圧縮されたメモリを取得するために使用されるアルゴリズムと構造を分析しました。探しているメモリは、Store Manager カーネル コンポーネントによって作成された仮想ストアに保存されます。 Store Manager は、SuperFetch、ReadyBoost、ReadyDrive などのパフォーマンス最適化システムに関連するデータの管理を担当します。この場合、仮想ストアは RAM でバックアップされたエンティティであり、プロセスの圧縮データ用にMemCompressionのストレージ スペースを利用します。この研究の結果は、セキュリティ コミュニティに利益をもたらすために、Volatility と Rekall の両方に移植されています。

ボラティリティとリコール

VolatilityRekallは、利用可能な最も人気のあるオープンソース メモリ フォレンジック フレームワークの 2 つです。 Windows メモリ圧縮の導入により、どちらのフレームワークも圧縮されたページを読み取ることができませんでした – 今まで!多くのプラグインが以前にデータの欠落を報告したか、完全に機能しなかったため、圧縮の影響はすぐにわかりました.実演するために、メモリ キャプチャ時にロードされたドライバを一覧表示するモジュールと呼ばれる一般的なプラグインを使用します。図 1 では、システムに読み込まれたドライバーが列挙されていますが、ディスク上のファイルへのいくつかのパスが圧縮ストアにページアウトされています。これらの行方不明の道は、あなたが探していた悪である可能性が非常に高いです!

Volatility & Rekall missing data stored in compressed pages
図 1: 圧縮されたページに保存された Volatility & Rekall 欠落データ

ページの圧縮による欠落データに対処するため、FireEye の FLARE チームは、Windows 10 のメモリ圧縮をサポートするためにVolatilityRekallに複数の機能を追加しました。何よりもまず、必要なオーバーレイを追加しました。

オーバーレイは、Windows 10 のメモリ圧縮アルゴリズムで使用される内部データ構造を記述し、Python で利用できるようにします。たとえば、オーバーレイはSMKM_STORE構造のレイアウトと、圧縮されたページの検索に使用されるB+Treeを定義します。これらの構造については、このブログ シリーズのパート 2 で詳しく説明します。

オーバーレイで定義されている文書化されていない Windows 構造は、さまざまなバージョンの Windows 10 を分析して得た情報に基づいています。現在、32 ビット アーキテクチャと 64 ビット アーキテクチャの両方で、バージョン 1607、1703、1709、1803、および 1809 をサポートしています。追加のバージョンをサポートするには、構造のレイアウトを分析し、それに応じてオーバーレイを更新する必要があります。これらの構造を抽出するためのカーネルの分析については、このブログ シリーズのパート 2 とパート 3 で詳しく説明します。

圧縮ページをサポートするための 2 番目の変更には、各フレームワークの新しいアドレス空間が含まれています。

アドレス空間は、メモリ読み取り要求を満たす責任があります。互いの上に積み重ねられると、各レイヤーは、実際の読み取りがどのように実行されるかの詳細を抽象化する、下にある基本レイヤーに読み取り要求を変換できます。変換の例として、仮想アドレスから物理アドレスへの変換があります。最下層に応じて、物理アドレスはメモリ イメージ、クラッシュ ダンプ、または休止状態ファイルへのオフセットである場合があります。要点は、アドレス空間は、その場所に関係なく、メモリを透過的に解決することです。最も重要なことは、ユーザーの労力がゼロであることです。このシームレスな統合により、ユーザーは以前と同じように Volatility と Rekall を操作でき、圧縮されたページが検出された場合、新しいアドレス空間がバックグラウンドで圧縮解除を処理し、圧縮解除されたデータを返します。

前のモジュールプラグインの例に戻ると、図 2 は、新しく実装されたアドレス空間が、圧縮されたページにあるデータを適切に解凍する方法を示しています。他の多くのフォレンジック アーティファクトの中で、隠されたドライバーや DLL はもう必要ありません。データはあなたのものになり、悪の狩りを続けます!

Volatility & Rekall 圧縮データの解凍
図 2: Volatility & Rekall による圧縮データの解凍

今すぐ手に入れよう

VolatilityおよびRekall GitHub リポジトリにアクセスして、今すぐ使用を開始してください。リポジトリをダウンロードまたはクローンした後、各 GitHub のREADMEページで概説されている必要なインストール手順に従い、その悪を見つけ始めてください!

結論

Windows 10 のメモリ圧縮は、メモリ マネージャーの設計における大幅な進化であり、物理メモリをより効率的に使用することでシステム パフォーマンスを向上させます。このパフォーマンスの向上は、現在公式に文書化されていない、より複雑なメモリ管理システムを犠牲にしています。これまで、Volatility と Rekall は圧縮されたページに保存されたメモリを検査できなかったため、悪意のあるプログラムやフォレンジック アーティファクトが検出されない可能性がありました。 FireEye の FLARE チームは、Volatility と Rekall への貢献、および SANS DIFR (Finding Evil in Windows 10 Compressed Memory) とBlackHat USA 2019でのプレゼンテーションを通じて、Windows 10 圧縮メモリに関する知識と技術のギャップを埋めたいと考えています。皆様にお会いできること、フィードバックをお待ちしております。私たちの貢献の結果として、これらのフレームワークがどのように発展していくのか楽しみにしています! Finding Evil in Windows 10 Compressed Memory ブログ シリーズのパート 2 にご期待ください。

参照: https://www.mandiant.com/resources/blog/finding-evil-in-windows-ten-compressed-memory-part-one

Comments

Copied title and URL