web-dev-qa-db-ja.com

ルートキットは「ボラティリティ」やその他のメモリフォレンジックツールからプロセスを隠すことができますか?

ルートキットは、ユーザー空間をだましてOSからプロセスを隠すことができることを知っています。しかし、ルートキットは、RAMボラティリティのようなフォレンジックツールによっても認識されないように、プロセスメタデータを変更できますか?

ボラティリティでさえ、システムによって実行されたプロセスを特定のパターンまたは方法で検索する必要があるため、これを尋ねていますRAMダンプが発生しました。

3
davidb

しかし、ルートキットは、RAMボラティリティのようなフォレンジックツールによっても認識されないように、プロセスメタデータを変更できますか?

短い答えは、実際にはそうではありません。

ルートキットは定期的にプロセスのメタデータを変更します。プロセスの実行に不可欠ではないビットに表面的な変更を加え、プロセスを実行するビットに大幅な変更を加えます。ただし、フォレンジックツールに「認識されない方法で」変更を加えた場合、プロセスとして認識されない方法で変更が加えられた可能性がありますオペレーティングシステムによって

言い換えると、ルートキットは、プロセスを実行するのに十分なルールに従うように制限されています-同様に、それは常に、Volatilityがそれを探索できるように十分なルールに従います。

実際、ボラティリティが行うことの多くは、通常のプロセスでは珍しいが、ルートキットが改ざんするのとまったく同じような矛盾を探すことです。 ああ、見て、与えられたシステムコールのポインタは、本来あるべきようなカーネル空間ではなく、ユーザー空間を指しています!それはプレゼントです。

さて、私は「実際にはそうではない...」と述べました。ボラティリティには、ルールに従って、不適切なものを見つけるための定義済みプラグインがいくつかあります。これらのプラグインではすぐにはわからない新しいルートキットを作成することは可能ですか?承知しました。賢い人はいつも新しいトリックを思いつきます。しかし、Volatilityの賢い、賢い開発者とユーザーはこれらのことを見つけます-Volatilityを使用して手動でメモリをウォークスルーでき、既存のプラグインが探すべきものに制約されず、新しい回避策を認識する新しいプラグインを作成します。

SANSフォレンジックトレーニングは、「マルウェアは隠すことができますが、実行する必要があります」というキャッチフレーズを使用します。これを実行するには、OSのルールのsomeに従う必要があります。そして、それを行うと、ボラティリティが特定して調査できるようにマップ上に配置されます。

(マイナーな例外:中国を訪れたハードウェアについて恐ろしい話を聞いたが、改ざんして戻ってきたため、システムメモリに証拠がなく、ビーコンが家に残された。敵にハードウェアを変更させると、メモリ分析を超えてしまう可能性がある。しかし、それはかなりまれで排他的なクラブです。)

4
gowenfawr