Accidentalmente creó un virus?


Lo he visto pasar razonablemente a menudo: escribo una aplicación en Delphi y cuando la compilo, el escáner de virus me dice que he creado un virus y luego elimina inmediatamente el ejecutable de nuevo. Es molesto pero razonable fácil de arreglar haciendo una reconstrucción completa, eliminando el *.archivos dcu primero y a veces simplemente esperando.

Sucede con Delphi 6, 7, 2005 y 2007, que yo sepa. Y Symantec, Kaspersky, McAfee y NOD32 han sido culpables de reportar estos falsos positivo. Sé que es porque Delphi agrega marcas de tiempo a sus archivos DCU y estas marcas de tiempo terminan en el ejecutable final y aparentemente parecen ser parte de alguna firma de virus aleatoria.

No quiero desactivar el escáner de virus, ni siquiera para una sola carpeta o archivo. Y realmente no estoy a favor de una solución, pero me pregunto sobre lo siguiente:

  • ¿Estos falsos positivos también ocurren con otros compiladores?
  • ¿También sucede con los ejecutables. NET?
  • Do otros también notan problemas similares con Delphi?
Author: Wim ten Brink, 2009-06-15

18 answers

¿También ocurren estos falsos positivos con otros compiladores?

Sí, este ha sido un problema común en el pasado para AutoIt como se aborda en este mensaje del foro "¿Están realmente infectados mis exes AutoIt?". En la mayoría de los casos, incluyendo AutoIt se deriva de malas prácticas heurísticas. Dado que AutoIt utiliza el compresor libre y abierto UPX , a menudo se confunde con código malicioso que también usa UPX .

El mejor (y posiblemente solo) lo que puedes hacer es reportar estos errores, para que puedan refinar su heurística o al menos hacer una lista blanca de tu aplicación.

A continuación se muestra una lista de información de contacto para algunas compañías antivirus populares. Todos afirman apreciar las presentaciones, ya que les ayuda a mejorar su producto.

Resulta que hay una gran lista de software AV en wikipedia, llamada 'Lista de software antivirus'. Es más completa que mi lista arriba.

Un miembro de los Foros de Autoit hizo un gran script para enviar un falso positivo a una enorme lista de proveedores de AV para automatizar un poco este proceso.

 98
Author: Copas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-28 08:11:16

Suena más como un error heurístico para mí. ¿Tiene activada la heurística (algunos escáneres pueden referirse a ella como "código tipo virus")? Las posibilidades de que las marcas de tiempo equivalgan a "una parte de alguna firma de virus" parece demasiado pequeña para estar sucediendo todo el tiempo.

Cuando solía ejecutar un escáner de virus, nunca vi este problema con D6 o D7.

 10
Author: JimG,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-14 20:30:24

De hecho hay virus Delphi en la naturaleza, ver http://www.sophos.com/blogs/sophoslabs/?p=6117

 8
Author: Dmitry Osinovskiy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-15 03:17:37

Sí, mi equipo ha experimentado esto tal vez media docena de veces en 2-3 años con Sophos en un entorno corporativo. Así que, muy raramente, pero sucede.

Nuestro cretino de TI comenzó exigiendo que revisara todas las líneas de código de 1.5 M en nuestra aplicación para "hacer que se vaya", pero no llegó demasiado lejos siguiendo esa línea...

Para ser justos, al principio le preocupaba que nuestros clientes también recibieran dicha advertencia, pero solo la hemos visto activarse cuando construimos un exe desde el IDE PC de un desarrollador, nunca en una versión de compilación exe en una caja de prueba o en otro lugar.

Personalmente, sucede tan raramente que no nos preocupamos por ello.

 6
Author: Conor Boyd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-14 22:18:02

Me ha pasado con el código desplegado. La siguiente actualización del escáner resolvió el problema. Algunos cretinos escribieron un virus usando el mismo compilador y la firma era parte de la biblioteca de tiempo de ejecución, no en realidad en el código hostil.

 4
Author: Loren Pechtel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-14 23:07:37

Esto no es tan raro cuando se usan compiladores no estándar o cuando se hacen cosas de bajo nivel: Recuerdo haber creado falsos positivos cuando incursioné en el desarrollo de sistemas operativos: a AntiVir no le gustaban algunos de mis binarios planos.

Recientemente, ha habido un post sobre este problema en la lista de correo de TinyCC regading AVG.

 3
Author: Christoph,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-14 20:32:56

Nunca he visto esto, habiendo hecho mucho desarrollo de C++ y.NET con Visual Studio (desde la versión 1.5 hasta 2010).

 2
Author: RichieHindle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-14 20:28:42

Solo he visto que esto sucede con ensambladores. Por ejemplo, MASM32 en realidad advierte a la gente que podría desencadenar escáneres de virus ya que los EXEs son tan pequeños (y/o algunos virus se escriben en ensamblado). Mi escáner McAfee marcó algunos de los programas de ejemplo como virus.

Esto solo debería suceder para los escáneres de virus que tienen un modo de análisis "parece sospechoso".

 2
Author: Jeff Moser,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-14 20:29:16

En algunas aplicaciones, si uso RtlVclOptimize.pas, el Avira antivirus decir que he creado un virus.

 2
Author: Junior-RO,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-15 00:06:27

Además de lo que otros dijeron, los programas antivirus modernos aumentan la alerta de virus si sus programas utilizan algunas API "sospechosas" también ( como URLdownloadFile u otras relacionadas con la conexión de API). si buscas en Google "delphi RAT FUD API indetectable" encontrarás muchos temas interesantes .

 2
Author: avar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-15 04:09:54

Algunos programas antivirus incluso marcan un archivo por lotes como un virus y no se puede convencer de que no lo sea. Bastante molesto, si ese archivo es parte de una biblioteca de terceros y la advertencia de virus se activa cada vez que TortoiseSVN lo comprueba. Terminé desactivando el escáner de virus, borrando el archivo y haciendo una confirmación. (Sin desactivar el escáner, ni siquiera podría hacer eso: - ()

 1
Author: dummzeuch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-15 05:32:58

Hace un par de años, cada vez que actualizábamos el Enlazador GNU de fuentes mingw y empezábamos a distribuirlo con nuestro compilador, recibíamos algunos informes de que virusscanners clasificaba ld.exe como virus. (.ex escribiendo .ex ...)

 1
Author: Marco van de Voort,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-15 07:33:40

No lo llamaría un "falso positivo", porque, estrictamente hablando, no es falso y el software antivirus no es "culpable" de nada de ninguna manera.

Estoy 99% seguro, que este es el análisis heurístico actuando (apuesto a que detecta su ejecutable como algo en las líneas de win32.virus.genérico-tenga en cuenta el genérico , esto es un signo, que esto no está en su db de firma, sino que fue detectado por la heurística) y, con ser heurística y todo, no le da cualquier tipo de garantía, que lo que sea que encuentre es malicioso, solo tipo de le hace saber, que el ejecutable es sospechoso desde su punto de vista.

La solución más fácil para esto sería simplemente agregar una excepción para su archivo por nombre (siempre es el mismo nombre, ¿correcto?). Si no se siente cómodo con esto, probablemente debería hacer que su software antivirus le avise antes de tomar medidas para que pueda omitir su archivo manualmente.

En general, he encontró codificación en Windows con software antivirus algo irritante (no lo hacen mucho hoy en día, pero aún así), especialmente si dicho software está en "modo paranoico". Irritante como es, sin embargo, es inevitable (IMO).

 1
Author: shylent,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-15 07:46:41

A mí también me pasó. El teclado de enganche activará casi cualquier software AV de escaneo heurístico para reportar un registrador de teclas. Probablemente hay muchas otras llamadas al sistema que lo activarán también. Solución - trate de rediseñar su código o póngase en contacto con el fabricante AV para incluir su software en la lista de excepciones.

 1
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-16 11:56:02

Recuerdo otro extraño:

Un archivo estaba siendo marcado como sospechoso. Lo único es que el archivo era un .¡OBJ! Un .EXE que contenía el código el .El objeto contenido no fue considerado un problema.

 1
Author: Loren Pechtel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-09 02:01:36

Si tiene problemas con falsos positivos, hay VirusTotal servicio en línea que puede ayudarle a comprobar su archivo contra el número de motores antivirus.
Es un servicio gratuito y actualmente puede ejecutar antivirus check con casi 40 motores antivirus.

 1
Author: zendar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-07-27 10:41:39

Muchos desarrolladores honestos tienen problemas debido al software antivirus descuidado. Vea esto también: ¿Cómo prevenir la alarma de virus falsos positivos en mi software?

Imagina que por cada falso positivo que muestran, pierdes un posible cliente. Tal vez podamos unirnos contra estos productos antivirus y obligarlos a tener más cuidado con las alarmas de falsos positivos, incluso para recuperar algunos ingresos por las ventas que perdemos debido a ellos.

 0
Author: Everybody_hates_BillTheLizard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:52:34

VS Platform toolset 2010 hace que mi simple programa sea detectado como virus. Cambiar el conjunto de herramientas a VS 2013 lo resuelve.

Simplemente crea un HttpWebRequest y escribe el resultado en un archivo.

 0
Author: Pilso,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-20 07:00:35