web-dev-qa-db-ja.com

なぜアンチウイルスはフックを検出するためにexeのライブラリモジュールをチェックしないのですか?

WindowsでC#を使用して単純なキーロガーを記述しています(フックメソッドSetWindowsHookExを使用)。ほとんどのウイルス対策プログラムとスパイウェア対策プログラムでアプリケーションを確認しましたが、検出されませんでした。

これらのウイルス対策プログラムやスパイウェア対策プログラムが実行可能ファイルを逆アセンブルしてSetWindowsHookExの使用法を見つけないのはなぜですか? 80%以上のキーロガーがこのフック方法を使用していることを読みました。

7
Mehdi Amrollahi

これは、いわゆる false positive を回避するためです。つまり、実際にはまったく危険がなかったにもかかわらず、ユーザーが危険に関するアラートを受け取った場合です。

この豊かな時代を覚えていますか。インターネットを閲覧しているときに、1日に数十回「Alert!保護された要素といくつかの保護されていない要素!続行しますか? "その結果、ブラウザーの警告メッセージを無視して[OK]ボタンを盲目的にクリックするように人々が訓練されただけでした。これは、セキュリティの観点からは完全に逆効果です。

これはSetWindowsHookEx AP​​I呼び出しと同じです。アンチウイルスはソフトウェアの目的を特定する方法がなく、事実のサブセットにのみ依存できます。したがって、おそらく、このAPI呼び出しの使用は、ソフトウェアが疑わしい動作をしたことをウイルス対策が判断するのに役立つ他のいくつかのパラメーターを考慮に入れて、ヒューリスティックの一部として入力されますが、このAPI呼び出しの存在だけでは十分ではありません。また、多くの承認されたアプリケーションでも使用されます(すべてのドキュメントを削除する単純なバッチファイルを作成する場合も同じです。アンチウイルスによって実行が妨げられることはありません)。

これらこそが、アンチウイルスがよく知られたマルウェアに対して優れたレベルの保護を提供する理由ですが、それが防弾保護にはなり得ず、最初のより優れた防御ラインは、適切に認識されるべきである疑わしいファイルを開かないようにしてください。

8
WhiteWinterWolf