重複の可能性:
私の実行可能ファイルでのウイルス対策の誤検知
これまで、私のプログラムには 15 回以上の偽のウイルス アラームがありました。それらのほとんどは Kaspersky からのもので、常に同じウイルス、Trojan-GameThief.Win32.Lmir.pcd を報告しています。3 つの質問があります。
- なぜそれが現れるのですか?
- それを防ぐ方法は?
- それを検出する方法は?
最初の質問については、常に同じウイルスを検出するため、すべてのプログラムで使用しているルーチンの 1 つが原因だと思います。しかし、どれが正確かはわかりません。2 番目の質問については、プログラムを少し変更して再コンパイルすることを考えていました。コードを変更するだけで、アンチウイルスがそれを認識しなくなり、新しいバージョンがリリースされます。3番目の質問は最も難しいものです。世界中のすべてのウイルス対策プログラムに対してすべてのプログラムをチェックする方法は?
更新:
この問題を法的に処理する方法について知っている人はいますか? 多くの Delphi 開発者が同じ問題を抱えているようです。無謀なウイルス対策会社は、多くの誤検出アラームを表示して、実際には危険がなかったのに安全だと顧客に思わせることで、私たちの背中に利益をもたらしています。私たちが顧客を失っている間、彼らは顧客を作っています。問題についてウイルス対策会社に通知しましたが、その特定のバージョンでのみ修正されます。次回アップデートをリリースすると、誤報が再び表示されます。彼らは気にしません。
多くの正直な開発者は、不注意なウイルス対策ソフトウェアのために問題を抱えています。これも参照してください:ソフトウェアの誤検知ウイルス アラームを防ぐには?
そのようなウイルス対策製品に対して団結し、誤検出アラームに対してより注意を払うように強制することができるかもしれません. 嘆願書に署名して、これ以上これを受け入れないことを知らせる必要があります。
Update 2017
* 先週、私のプログラムは VirusTotal で 50% 近くの検出率を記録しました。コードを 1 行削除したところ、魔法のように検出数が 61 のうち 2 (アンチウイルス) に減少しました。これらのウイルス対策製品がランダムに動作するのは驚くべきことです。
* プログラムが「デバッグ モード」でコンパイルされた場合よりも、プログラムが「リリース モード」でコンパイルされた場合 (コンパイラの最適化あり) のほうが、検出率がはるかに高くなります。
* EurekaLog 使用時のスカイロケットの検出。
Update 2019
ほぼ 9 年後ですが、あまり改善されていません。
残念ながら、InnoSetup も例外ではありません。InnoSetup でダミーのインストーラーを作成し、VirusTotal にアップロードしました。52 個のプログラムのうち 5 個が偽陽性を報告しました。
結論:
- 1 日の終わりに、exe ファイルを VirusTotal にアップロードします。検出率が急上昇した場合は、コードで行った変更を確認し、「有害な」変更を削除してください。
- WinRar 3 をインストーラーとして使用します。WinRar 5 または InnoSetup よりも少ないフラグを発生させます。