web-dev-qa-db-ja.com

ウイルス対策ソフトウェアは互いにどのように競合しますか?

私は、2つのウイルス対策(AV)ソフトウェアを一緒にインストールしないでください。 Windows Defender(Windows 8以降)でさえも、他のAVソフトウェアを検出したときに自身を無効にします。

私は2つがどのように衝突することができるか興味があります。私が現在理解できる唯一のシナリオは、両方が同じウイルスを検出し、同時にそれを隔離しようとしたときであり、これは「ウイルス征服の戦い」につながる可能性があります。私にとって、これは確かに説得力のある理由ではありません2つのAVソフトウェアをインストールするためではありません。


システムパフォーマンスの問題は言うまでもありません。私のIntel Kaby Lake i7は、16 GBのインストール済みメモリーでそれらを簡単に処理できると思います。

59
iBug

普通のウイルス対策スキャナは問題なく共存できます。 AVを妨害する可能性があるのは、ライブプロテクションです

ライブ保護機能を備えたAVソフトウェアは、オペレーティングシステムに深く統合されています。必要に応じて、プログラムが実行しようとしていることをすべて監視し、実行できないようにするために、OSコードの一部にパッチを適用します。オペレーティングシステムはそのままではそのような機能を提供しないため、AVはこの効果を達成するためにあまり一般的ではない方法を使用します。

たとえば、OSが提供する「ファイルへの書き込み」機能を独自のものに置き換えることができます。プログラムがファイルに書き込もうとすると、 "write file"関数を呼び出します。しかし、その機能はAVによってパッチされ、プログラムの要求は代わりにAVにリダイレクトされます。 AVはそれを検査し、それが問題ないかどうかを判断します。もしそうなら、それは実際の "write file"関数を呼ぶでしょう。それ以外の場合は、悪意のあるソフトウェアが損害を与えることを防ぐために適切な措置を取ります。

残念ながら、OSコードのパッチ適用はAVに必要なだけでなく、疑わしいものです。ウイルスを作成している場合、AVがウイルスファイルをスキャンしないようにするなど、システム操作を傍受できるようにしたくないでしょうか。

そのため、AVにはコードフックがまだあるかどうかを監視し、必要に応じてそれらを再インストールするガードがあります。この時点であなたはこれが起こっているところを見るはずです...

ライブ保護を備えた2台のAVが、互いの不審な行動からあなたを守り始めることができます。これは、小さなパフォーマンスの問題からシステムのクラッシュまで、さまざまな原因となります。

場合によっては、ライブ保護のないAVスキャナでさえも干渉する可能性があります。AVはどのようにウイルスを検出しますか?まあ、彼らは彼らのウイルスシグネチャを持っています。既知のウイルスの特徴的な機能のデータベース。そして、そのようなデータベースも疑わしいように見えることがあります。それは、ウイルス特有の機能があるからです。そのため、あるAVが他のAVのシグニチャを悪意のあるコードとして仮想的に検出する可能性があります。

Hitman Proなど、他のAVと共存するように設計されたAVエンジンもあります。 ClamWin(これはフリーでオープンソースです)もライブプロテクトなしでスキャナーだけを含んでいるので共存するとき比較的問題がないはずです。

83
gronostaj

両方のプログラムが同じリソースを使用しようとすると、プログラムは競合します。複数のプログラムが同時にリソースを操作しようとすると、 同時実行問題 の危険性があります。並行性の問題は、あるプロセスがリソースに対して変更を実行し、他のプログラム(それ自体がそのリソースに対する変更である)がそれを認識していないために対応できない場合に発生します。

これが教科書の同時実行の問題のいくつかの例です。

後入れ問題

FTPディレクトリを使用して、自分と同僚がドキュメントで共同作業している場所でドキュメントを共有しているとします。同僚と同様に、文書をダウンロードして編集し、もう一度投稿します。

  1. 文書をダウンロードして、1時間かかる一連の変更を開始します。
  2. 同僚はあなたが行ったのと同時に文書をダウンロードしますが、変更を完了して再アップロードするのに30分しかかかりません。

結果:ドキュメントをアップロードすると、変更内容が上書きされて失われます。

古いデータ

同じシナリオで、あなたの同僚はあなたに言うことなしに、あなたが必要とするいくつかの変更を加えます。ファイルのコピーには変更がありません。

結果:自分でちょっと違う言葉で同じ変更を書くか、さらに悪いことに、その欠けていることについて厄介なEメールを送信します。

これは単純なシナリオのように思えますが、マルチアクセスデータベースのような先進的なケースでは、誰かがレコードを更新しているのと同じミリ秒でレコードを選択すると、深刻な問題が発生する可能性があります。

悪い計算

夫婦は、共有銀行口座とATMカードを持っています。彼らは彼らの口座に1000米ドルを持っています。彼らの日常生活の中で、彼らは町の反対側にいます、そして両方とも同じ瞬間にATMにアクセスします。二人とも1000USDを引き出す。 ATMはどちらも残高が1000であることを認識しているため、引き出しを許可してから、新しい残高が0であることを中央データベースに書き戻します。

結果:銀行は現在1000USDになっていて、それさえ知らない。

これらすべての例で、共有リソースに対してアクションを実行している、またはほぼ同時に複数のパーティーがありました。したがって、「並行性」または「同期性」という用語です。

ソリューション

この種の問題に対処する方法はいくつかあります。 1つは、リソースにアクセスする複数の関係者間で調停するソフトウェアを使用することです。これらのアービタープログラムには、業務の範囲と予測可能性に応じて、2つの選択肢があります。

  • 操作をインテリジェントにマージする
  • 最初に気付いた操作が完了するまで、2つの操作のうちの1つをブロック/ロックします。

両方のプログラムがリソースの状態を示す共有フラグをチェックするように設計されていれば、ブロック/ロックすることもできます。これには通常カスタム開発が必要です。

あなたの答え

あなたの特定のケースでは、リソースはディスク上のファイルです。 SynchronicityはファイルRead/Writeのようなイベントから来ます、そしてそれは両方のAVプログラムでオンアクセススキャンを引き起こします。

Windowsは、プログラムが特定の操作のためにファイルを開くときに ファイルをロックする ことによって、ファイルシステムの同時実行性の問題を解決するアービターとして機能します。

これは、両方のプログラムがファイルにアクセスしようとしていることを意味し、最初にアクセスした人が誰でもロックを取得します。低レベルでは、両方のプログラムが独自のI/O処理を開始し、ハードウェアに両方のタスクを別々に実行させながら、IO命令をインターリーブし、効率を低下させ、最後に、それらのうちの1つだけが勝つでしょう。もう一方は回転し、自分のロックを確立できるようになるのを待ちます。

14
Frank Thomas

両方の検査プロセスは、ドライブとネットワークのI/Oを検査するために互いに競合します。

ほとんどのAVメーカーはシグネチャを共有しているため、どちらもマルウェアを検出することはありません。

1つの、よく知られており、業界で認められているAVは、10のAV製品を同時に使用するのと同じくらい効果的に感染する傾向がある無謀な習慣があってもシステムを適切に保護します。