Случайно создал вирус?


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

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

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

  • эти ложные срабатывания также происходят с другими компиляторами?
  • это произошло с Исполняемые файлы .NET?
  • другие также замечают подобные проблемы с Delphi?
18 51

18 ответов:

эти ложные срабатывания также возникнуть с другими компиляторами?

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

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

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

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

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

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

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

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

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

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

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

лично, это происходит так редко, что мы не беспокойтесь об этом.

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

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

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

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

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

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

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

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

некоторые антивирусные программы, даже флаг пакетный файл как вирус и не могу быть уверен, что это не так. Очень раздражает, если этот файл является частью сторонней библиотеки, и вирус предупреждение срабатывает каждый раз, когда TortoiseSVN проверяет его. В итоге я отключил антивирусный сканер, удалил файл и сделал фиксацию. (Не отключая сканер, я даже не мог этого сделать: - ()

пару лет назад, каждый раз, когда мы обновляли GNU Linker из источников mingw и начинали распространять его с нашим компилятором, мы получали некоторые сообщения о том, что virusscanners классифицировали ld.exe как вирус. (.бывшие пишут .Франко. ..)

Я бы не назвал это "ложным срабатыванием", потому что, строго говоря, это не ложь и антивирусное программное обеспечение ни в чем не "виновато".

Я на 99% уверен, что это эвристический анализ, действующий (я уверен, что он обнаруживает ваш исполняемый файл как что-то вроде win32.вирус.универсальный - Примечание generic, это признак того, что это не находится в его сигнатурной БД, а скорее было обнаружено эвристикой) и, будучи эвристическим и все, это не дает вам никаких гарантий, что все, что он находит, является вредоносным, он просто дает вам знать, что исполняемый файл подозрителен С точки зрения.

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

В общем, я нашел кодирование в windows с антивирусным программным обеспечением несколько раздражающим (не делайте этого много в настоящее время, но все же), особенно если указанное программное обеспечение находится в "параноидальном режиме". Раздражает, как это, однако, это неизбежно (ИМО).

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

Я помню еще один странный:

файл был помечен как подозрительный. Единственное, что файл был Ан .Возражаю! Один.EXE, который содержал код the .OBJ contained не считался проблемой.

Если у вас есть проблемы с ложными срабатываниями, есть VirusTotal онлайн-сервис, который может помочь вам проверить ваш файл на число антивирусных ядер.
Это бесплатный сервис, и в настоящее время он может запускать антивирусную проверку с помощью почти 40 антивирусных ядер.

многие честные разработчики имеют проблемы из-за небрежного антивирусного программного обеспечения. Смотрите также:Как предотвратить ложноположительную вирусную тревогу на моем программном обеспечении?

представьте, что для каждого ложного положительного они показывают, вы теряете возможного клиента. Возможно, мы сможем объединиться против таких антивирусных продуктов и заставить их быть более осторожными с ложными положительными сигналами тревоги, даже чтобы получить некоторый доход за продажи, которые мы теряем из-за них.

VS Platform toolset 2010 делает простая программа определяется как вирус. Изменение набора инструментов VS 2013 решает ее.

Он просто создает HttpWebRequest и записывает результат в файл.