web-dev-qa-db-ja.com

プロセス空洞化の検出

プロセスの空洞化やその他の形式のコードインジェクションを検出する方法についてブレインストーミングを行っていましたが、これはかなり堅牢に見えました。

「プロセス空洞化スキャナー」がプロセスのメモリ内のすべての実行可能ページを列挙し、プロセスの関連するイメージファイルのすべての実行可能セクションを列挙し、メモリ内に存在しないページがあったかどうかを確認することは可能でしょうか。画像ファイル内に対応するページがあります。たとえば、画像ファイルをファジーハッシュし、各メモリページをハッシュし、2つのセットを比較しますか?

これはプロセスの空洞化を非常にうまく検出するようです-プロセスに注入されたコードはイメージファイルに存在しないため、攻撃者がハッシュアルゴリズムに対する衝突攻撃を見つけられない限り、検出器をだますことができません(とにかく、複数のアルゴリズムを使用できます)。また、ディテクタは、メモリを直接ハッシュしてファイルと比較するのではなく、プロセスのメモリで異常な余分なセグメントを探すことに依存しているため、画像ファイル全体がメモリにマッピングされていなくても機能します。

これはプロセスの空洞化を検出する有効な方法ですか?私はこの方法がコードインジェクションを検出するためにどこでも使用されたとは思いません(ルートキットスキャナーがプロセスのメモリセクション全体のハッシュをイメージファイル全体のハッシュと比較するときに見られる最も近いものは、機能するだけです)ファイルが完全にメモリにマップされている場合)。

これはコードインジェクション/プロセスの空洞化を検出するための実行可能な方法ですか?

7
exosphere

Trustwave SpiderLabsは、中空プロセスを使用したマルウェアの分析に関するブログを書きました https://www.trustwave.com/Resources/SpiderLabs-Blog/Analyzing-Malware-Hollow-Processes/

人気のある無料のオープンソースソフトウェア(FOSS)自動マルウェア分析エンジンであるCuckoo Sandboxも、中空プロセスの処理に利用できます http://journeyintoir.blogspot.com/2015/02/process- hollowing-meets-cuckoo-sandbox.html

そして、プロセスの空洞化に関するすべての母の記事はここに要約されています http://marcoramilli.blogspot.com/2016/05/process-hollowing.html

2
atdre

空洞化の処理を検出するには、通常のスレッドで実行されるため、PEヘッダーディスクとメモリの比較を使用できます。

http://www.adlice.com/runpe-hide-code-behind-legit-process/

DLLインジェクションを検出するには、VADウォーキングまたはスタックトレースを実行できます。

「VADツリーの歩行」および「挿入されたコードのプロセスメモリのスキャン」という記事を探します。

1
Félix