web-dev-qa-db-ja.com

誤ってウイルスを作成しましたか?

私はそれがかなり頻繁に発生するのを見てきました。Delphiでアプリケーションを作成し、それをコンパイルすると、ウイルススキャナーはウイルスを作成したことを通知し、すぐに実行可能ファイルを再度削除します。面倒ですが、完全な再構築を実行し、最初に* .dcuファイルを削除し、場合によっては単に待機することで、簡単に修正できます。

私の知る限り、Delphi 6、7、2005、2007で発生します。そして、Symantec、Kaspersky、McAfee、およびNOD32はすべて、これらの誤検知を報告した罪を犯しています。 DelphiがDCUファイルにタイムスタンプを追加し、これらのタイムスタンプが最終的な実行可能ファイルになり、ランダムなウイルス署名の一部であるように見えるためです。

単一のフォルダやファイルであっても、ウイルススキャナーを無効にしたくありません。そして、私は本当に解決策を求めているわけではありませんが、次のことについて疑問に思っています:

  • これらの誤検知は他のコンパイラでも発生しますか?
  • .NET実行可能ファイルでも発生しますか?
  • 他の人もDelphiで同様の問題に気づいていますか?
54
Wim ten Brink

これらの誤検知は他のコンパイラでも発生しますか?

はい、これは過去によくある問題でした AutoIt このフォーラムの投稿で取り上げられています "私のAutoItEXEは本当に感染していますか?"AutoIt を含むほとんどの場合、それは不十分なヒューリスティックプラクティスに起因します。 AutoIt は無料でオープンな [〜#〜] upx [〜#〜] コンプレッサーを使用するため、 [〜 #〜] upx [〜#〜]

あなたができる最善の(そしておそらく唯一の)ことは、これらの間違いを報告することです。そうすれば、彼らはヒューリスティックを洗練するか、少なくともアプリをホワイトリストに載せることができます。

以下は、いくつかの人気のあるアンチウイルス会社の連絡先情報のリストです。彼らは皆、彼らが彼らの製品をより良くするのを助けるので、提出に感謝すると主張します。

ウィキペディアには、 'ウイルス対策ソフトウェアのリスト' と呼ばれるAVソフトウェアのすばらしいリストがあることがわかりました。上記の私のリストよりも完全です。

Autoitフォーラムのメンバーは AVベンダーの膨大なリストに誤検知を電子メールで送信するための優れたスクリプト このプロセスを少し自動化するために作成しました。

100
Copas

私にはヒューリスティックな失敗のように聞こえます。ヒューリスティックをオンにしましたか(一部のスキャナーはそれを「ウイルスのようなコード」と呼ぶ場合があります)?タイムスタンプが「一部のウイルスシグネチャの一部」に相当する可能性は、常に発生するには小さすぎるようです。

ウイルススキャナーを実行していたとき、D6またはD7でこの問題が発生したことはありませんでした。

10
JimG

実際、Delphiウイルスは実際に存在します。 http://www.sophos.com/blogs/sophoslabs/?p=6117 を参照してください。

8

はい、私のチームは、企業環境でソフォスを使用して、2〜3年でこれをおそらく半ダース回経験しました。したがって、非常にまれですが、実際に発生します。

私たちのITクレチンは、アプリ内の150万行のコードをすべて確認して「それをなくす」ことを要求し始めましたが、彼はその行を追求するのにそれほど遠くはありませんでした...

公平を期すために、彼は当初、クライアントにもそのような警告が表示されるのではないかと心配していましたが、開発者のPCでIDEテストボックスまたは他の場所でのリリースビルドexe。

個人的には、それはめったに起こらないので、心配する必要はありません。

6
Conor Boyd

デプロイされたコードでそれが起こったことがあります。スキャナーの次のアップデートで問題が解決しました。一部のクレチンは同じコンパイラを使用してウイルスを作成し、署名はランタイムライブラリの一部であり、実際には敵対的なコードではありませんでした。

4
Loren Pechtel

これは、非標準のコンパイラを使用する場合や、派手な低レベルの処理を行う場合にはそれほど珍しいことではありません。OS開発に手を出したときに誤検知を作成したことを覚えています。AntiVirは私のフラットバイナリの一部が気に入らなかったのです。

最近、そのような問題についての投稿が tinyCCメーリングリスト AVGの再調整にありました。

3
Christoph

一部のアプリでは、RtlVclOptimize.pasを使用すると、Aviraアンチウイルスがウイルスを作成したことを通知します。

2
Junior-RO

Visual Studio(バージョン1.5から2010)で多くのC++および.NET開発を行ったので、これを見たことがありません。

2
RichieHindle

私はこれがアセンブラーで起こるのを見ただけです。たとえば、 MASM32 は、EXEが非常に小さいため(および/または一部のウイルスがアセンブリで記述されているため)、ウイルススキャナーをトリガーする可能性があることを実際に警告します。私のMcAfeeスキャナーは、いくつかのサンプルプログラムにウイルスのフラグを付けました。

これは、「疑わしい」分析モードを持つウイルススキャナーでのみ発生するはずです。

2
Jeff Moser

さらに、他の人が言ったことに加えて、プログラムがいくつかの「疑わしい」API(URLdownloadFileや他のAPIフック関連のものなど)も使用している場合、最新のアンチウイルスプログラムはウイルスアラートを発生させます。 「delphiRATFUD API undetectable」をグーグルで検索すると、多くの興味深いトピックが見つかります。

2
avar

一部のウイルス対策プログラムは、バッチファイルにウイルスのフラグを立てており、そうではないことを確信できません。そのファイルがサードパーティライブラリの一部であり、TortoiseSVNがチェックアウトするたびにウイルス警告がトリガーされる場合は、非常に面倒です。結局、ウイルススキャナーを無効にし、ファイルを削除して、コミットを実行しました。 (スキャナーを無効にしないと、それもできませんでした:-()

1
dummzeuch

それは私にも起こりました。キーボードをフックすると、ほとんどすべてのヒューリスティックスキャンAVソフトウェアがトリガーされ、キーロガーが報告されます。それをトリガーする他の多くのシステムコールがおそらくあります。解決策-コードを再設計するか、AV製造元に連絡して、ソフトウェアを例外リストに含めてください。

1
Serggio

数年前、mingwソースからGNU Linkerを更新し、コンパイラーで配布を開始するたびに、virusscannersがld.exeをウイルスとして分類したという報告がいくつかありました(.exeswriting。 exes ...)

1

厳密に言えば、それは偽ではなく、ウイルス対策ソフトウェアはいかなる形でも「有罪」ではないため、私はそれを「偽陽性」とは呼びません。

私は99%確信しています、これはヒューリスティック分析が機能していることです(win32.virus.genericに沿ったものとして実行可能ファイルを検出するに違いありません-genericに注意してください、これは兆候です、これはその署名データベースにはありませんが、ヒューリスティックによって検出されました)、ヒューリスティックであり、すべてであるため、悪意のあるものが見つかったとしても、それを知らせるだけであるという保証はありません。 、実行可能ファイルが疑わしいことその観点から

これに対する最も簡単な解決策は、ファイルの例外を名前で追加することです(これは常に同じ名前ですよね?)。これに不安がある場合は、おそらく、ウイルス対策ソフトウェアにアクションを実行する前にプロンプ​​トを表示させて、ファイルを手動でスキップさせる必要があります。

一般に、ウイルス対策ソフトウェアを使用したWindowsでのコーディングは、特にそのソフトウェアが「パラノイドモード」の場合、やや苛立たしいものであることがわかりました(最近はあまり行いませんが、それでも)。とはいえ、いらいらするのは避けられない(IMO)。

1
shylent

誤検知に問題がある場合は、 VirusTotal オンラインサービスがあり、ファイルをウイルス対策エンジンの数と照合するのに役立ちます。 。
これは無料のサービスであり、現在、約40のウイルス対策エンジンでウイルス対策チェックを実行できます。

1
zendar

私は別の奇妙なものを覚えています:

ファイルに疑わしいフラグが立てられていました。唯一のことは、ファイルが.OBJであったことです! .OBJに含まれるコードを含む.EXEは、問題とは見なされませんでした。

1
Loren Pechtel

VS Platform toolset 201単純なプログラムがウイルスとして検出されるようにします。ツールセットをVS 201に変更すると解決します。

HttpWebRequestを作成し、その結果をファイルに書き込むだけです。

0
Pilso