web-dev-qa-db-ja.com

スキャン中にマルウェアが移動して検出を回避できますか?

私はすべてのAVスキャナーがマルウェアのファイルを検索するためにいくつかの予測可能な再帰スキャンを使用していると思います。マルウェアがスキャンを簡単に検出して、特定のAV-Scannerがどのアルゴリズムを使用するかを知ることで、既にチェックされた場所に移動することはできませんか?

AV-Scannersがそのような行動を防止するための適切なメカニズムはありますか?

また、ルートキットはスキャン中に自分自身を削除し、スキャンが終了した後に自分自身を元の場所に戻すこともできませんでしたか?

26

マルウェアがこの方法でAVを回避できない主な理由は、オンアクセススキャナーがAVをキャッチするためです。

AVの観点から見ると、マルウェアが別のファイルに移動することは、スキャン中に作成される新しいファイルと同じ問題です。非常に簡単な解決策は、AVが作成中の新しいファイル(名前が変更されている現在のファイルを含む)を追跡することです。これは、OS APIまたは他の低レベルのフックをフックすることによって行われます。

理論的には、完璧なルートキットはAVからは見えません。ルートキットに対するAVの可能性を高めるために、AVは起動シーケンスの非常に早い段階で開始し、OSおよびハードウェアと通信する低レベルの方法を使用し、それ自体の改ざんアクティビティを監視します。また、スキャンの最初の段階は、アクティブなプロセスとシステムバイナリです。これは、メモリ内のマルウェアがあなたが述べたようなトリックを実行できるため、特に行われています。

また、ファイルの移動、さまざまなプロセスのメモリのジャンプ、ルートキットのようなメソッドの使用など、マルウェア側の奇妙なアクティビティは、正当なソフトウェアにはそのような動作がないため、注意を引くだけです。奇妙な動作はAVヒューリスティックによってフラグが付けられ、マルウェアの検出に役立つ可能性があります。または、バイナリがAVサーバーにアップロードされて、さらに分析およびクロスチェックされる場合があります。

15
Cristian Dobre

「かくれんぼ」シナリオ

一部のAVは「線形検索」スキャンを実行しますが、ランダムに実行するAVもあります(例:AVG)。しかし、そのような隠蔽と探索の戦略でウイルスを隠すことは、その開発に非常に複雑さをもたらすため、最良のアプローチではありません。ステルス(OSからの呼び出しをインターセプトして偽または無効な応答を返す)、暗号化(検出を回避するために自分自身をスクランブルする)、または空洞(サイズまたはフォーマットを変更せずにファイルに埋め込まれる)などのウイルスのカテゴリがいくつかあります。回避に対処します。

AVはどのように機能しますか?

AVは2つの異なる方法で機能します。 1つは、以前に特定されたウイルスの既知のパターンに基づいています。もう1つは、「ヒューリスティック」チェックに依存しています。悪意のある/珍しい/予期しないシステムの動作のタイプを探します。

ルートキット対ウイルス

ルートキットは、オペレーティングシステムが完全に起動する前にアクティブ化されるマルウェアの一種であるため、ウイルスとは異なります。ルートキットには通常、オペレーティングシステムへの特権アクセスがあります。したがって、AVはルートキットに対する適切な武器ではありません。

13
user69377

これは完全に可能ですが、ウイルスはAVスキャナーが何をしているのかを知る何らかの方法が必要になります(多くの場合、スキャンを実行しているかどうかに関係なく、常に実行されているため)。特に、実行可能ファイルの隠蔽などの他の手法と比較すると、信頼性は低くなります。

rootkitは、感染したオペレーティングシステムから完全に身を隠すことができます-コンピュータに関する限り、それは存在しません。これにより、標準のウイルス対策アプリケーションでそれらを検出することが非常に困難になります。

4
etherealflux