Случайно создал вирус? - PullRequest
54 голосов
/ 15 июня 2009

Я видел, что это происходит довольно часто: я пишу приложение на Delphi, и когда я его компилирую, антивирусный сканер сообщает мне, что я создал вирус, а затем немедленно снова удаляет исполняемый файл. Это раздражает, но довольно легко исправить, выполнив полную перестройку, сначала удалив файлы * .dcu, а иногда просто подождав.

Насколько я знаю, это происходит с Delphi 6, 7, 2005 и 2007. А Symantec, Kaspersky, McAfee и NOD32 были виновны в сообщении об этих ложных срабатываниях. Я знаю, что это потому, что Delphi добавляет временные метки к своим файлам DCU, и эти временные метки попадают в конечный исполняемый файл и, по-видимому, являются частью некоторой случайной сигнатуры вируса.

Я не хочу отключать антивирусный сканер, даже для отдельной папки или файла. И я на самом деле не для решения, но мне интересно следующее:

  • Эти ложные срабатывания также встречаются с другими компиляторами?
  • Это также происходит с исполняемыми файлами .NET?
  • Заметили ли другие проблемы с Delphi?

Ответы [ 17 ]

100 голосов
/ 15 июня 2009

Эти ложные срабатывания тоже встречаются с другими компиляторами?

Да, в прошлом это была распространенная проблема для AutoIt , о которой говорится в этом сообщении на форуме "Действительно ли мои EXE-файлы AutoIt действительно заражены?" В большинстве случаев, включая AutoIt , это связано с плохой эвристической практикой. Поскольку AutoIt использует бесплатный и открытый компрессор UPX , его часто принимают за вредоносный код, который также использует UPX .

Лучшая (и, возможно, единственная) вещь, которую вы можете сделать, - сообщить об этих ошибках, чтобы они могли уточнить свои эвристики или, по крайней мере, внести в белый список ваше приложение.

Ниже приведен список контактной информации некоторых популярных антивирусных компаний. Все они утверждают, что ценят представления, так как это помогает им улучшить свой продукт.

Оказывается, в википедии есть большой список AV-программ, который называется 'Список антивирусных программ' . Это более полный, чем мой список выше.

Участник форумов Autoit сделал отличным сценарием для отправки ложного срабатывания огромному списку поставщиков AV , чтобы немного автоматизировать этот процесс.

10 голосов
/ 15 июня 2009

Звучит для меня как эвристический сбой. Включена ли эвристика (некоторые сканеры могут называть ее «вирусоподобным кодом»)? Вероятность того, что метки времени приравниваются к «части какой-либо сигнатуры вируса», кажется слишком маленькой, чтобы происходить все время.

Когда я запускал антивирусный сканер, я никогда не видел этой проблемы с D6 или D7.

8 голосов
/ 15 ноября 2009

В дикой природе действительно существует вирус Delphi, см. http://www.sophos.com/blogs/sophoslabs/?p=6117

6 голосов
/ 15 июня 2009

Да, моя команда переживала это, наверное, полдюжины раз за 2-3 года с Sophos в корпоративной среде. Так что очень редко, но это случается.

Наш ИТ-кретин начал с требования, чтобы я просмотрел все 1,5-миллиметровые строки кода в нашем приложении, чтобы «заставить его уйти», но он не слишком далеко продвинулся в этой строке ...

Честно говоря, он изначально был обеспокоен тем, что наши клиенты также могут получать такое предупреждение, но мы когда-либо видели его только при создании exe-файла из IDE на ПК разработчика, а не при выпуске exe-сборки на тестовая коробка или в другом месте.

Лично, это случается так редко, что мы не беспокоимся об этом.

4 голосов
/ 15 июня 2009

У меня было такое с развернутым кодом. Следующее обновление сканера решило проблему. Некоторые кретины написали вирус, используя тот же компилятор, и подпись была частью библиотеки времени выполнения, а не во враждебном коде.

3 голосов
/ 15 июня 2009

Это не редкость при использовании нестандартных компиляторов или при выполнении модных низкоуровневых вещей: я помню, как создавал ложные срабатывания, когда баловался разработкой ОС: AntiVir не нравились некоторые из моих плоских двоичных файлов.

Недавно в списке рассылки tinyCC было написано сообщение о такой проблеме.

2 голосов
/ 15 июня 2009

Я видел это только с ассемблерами. Например, MASM32 на самом деле предупреждает людей о том, что он может запускать антивирусные сканеры, так как EXE очень маленькие (и / или некоторые вирусы пишутся в сборке). Мой сканер McAfee помечал некоторые примеры программ как вирусы.

Это должно происходить только для антивирусных сканеров, которые имеют режим анализа «выглядит подозрительно».

2 голосов
/ 15 июня 2009

В некоторых приложениях, если я использую RtlVclOptimize.pas, антивирус Avira сообщает, что создал вирус.

2 голосов
/ 15 июня 2009

плюс к тому, что говорили другие, современные антивирусные программы повышают уровень защиты от вирусов, если ваши программы тоже используют некоторые «подозрительные» API (например, URLdownloadFile или другие связанные с перехватами API). если вы воспользуетесь Google «delphi RAT FUD API», вы найдете много интересных тем.

2 голосов
/ 15 июня 2009

Я никогда не видел этого, много занимаясь разработками на C ++ и .NET с Visual Studio (с версии 1.5 до 2010).

...