delphi - Accidentalmente creó un virus?
antivirus false-positive (18)
Lo he visto suceder con bastante frecuencia: escribo una aplicación en Delphi y cuando la compilo, el antivirus me dice que he creado un virus y luego lo borro de inmediato. Es molesto pero razonablemente fácil de arreglar haciendo una reconstrucción completa, eliminando primero los archivos * .dcu y, a veces, simplemente esperando.
Sucede con Delphi 6, 7, 2005 y 2007, hasta donde yo sé. Y Symantec, Kaspersky, McAfee y NOD32 han sido culpables de informar estos falsos positivos. 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 al azar.
No quiero deshabilitar el antivirus-escáner, ni siquiera para una sola carpeta o archivo. Y realmente no estoy buscando una solución, pero me pregunto lo siguiente:
- ¿Estos falsos positivos también ocurren con otros compiladores?
- ¿También sucede con los ejecutables de .NET?
- ¿Otros también notan problemas similares con Delphi?
¿Estos falsos positivos también ocurren con otros compiladores?
Sí, este ha sido un problema común en el pasado para AutoIt como se abordó en esta publicación del foro "¿Están realmente infectados mis AutoEt EXE?" . En la mayoría de los casos, incluido AutoIt , proviene de prácticas heurísticas deficientes. Como AutoIt usa el compresor UPX libre y abierto, a menudo se confunde con un código malicioso que también usa UPX .
Lo mejor (y posiblemente lo único) que puede hacer es informar estos errores, para que puedan refinar su heurística o, al menos, listar su aplicación en blanco.
A continuación hay una lista de información de contacto de algunas compañías antivirus populares. Todos dicen apreciar los envíos ya que les ayuda a mejorar sus productos.
- AntiVir - Contact
- A2 (A-Squared) - Contact (dirección de correo electrónico)
- Avast! - Contact
- AVG - Contact
- BitDefender - Contact
- BullGuard - Contact
- CA Anti-Virus - Contact
- ClamAV - Contact
- ClamWin - Contact
- Comodo - Contact
- Nod32 de ESET - Contact
- eSafe - Contact (se requiere iniciar sesión)
- Fortinet - Contact
- F-PROT - Contact
- F-Secure - Contact
- G-Data - Contact
- Kaspersky - Contact
- McAfee - Contact (dirección de correo electrónico)
- Norman - Contact (dirección de correo electrónico)
- Panda Anti-Virus - Contact
- Sophos - Contact
- Symantec (Norton) - Contact
- Vipre - Contact
- Windows Live OneCare - Contact
- ZoneLabs - Contact
Resulta que hay una gran lista de software AV en wikipedia, llamada ''Lista de software antivirus'' . Es más completo que mi lista anterior.
Un miembro de los foros de Autoit hizo una excelente secuencia de comandos para enviar por correo electrónico un falso positivo a una gran lista de proveedores AV para automatizar un poco este proceso.
Además de lo que dijeron otros, los programas antivirus modernos aumentan la alerta de virus si sus programas también usan algunas API "sospechosas" (como URLdownloadFile u otras API relacionadas). si googleas "delphi RAT FUD API indetectable", encontrarás muchos temas interesantes.
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 la verifica. Terminé deshabilitando el antivirus, eliminando el archivo y haciendo un commit. (Sin desactivar el escáner, ni siquiera podía hacer eso :-()
De hecho, hay virus Delphi en la naturaleza, consulte http://www.sophos.com/blogs/sophoslabs/?p=6117
En algunas aplicaciones, si uso RtlVclOptimize.pas, el antivirus Avira dice que he creado un virus.
Esto no es poco común cuando se usan compiladores no estándar o cuando se hacen cosas sofisticadas 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 una publicación sobre un problema de este tipo en la lista de correo tinyCC que está volviendo a la lista de AVG.
Hace un par de años, cada vez que actualizamos GNU Linker de fuentes mingw y comenzamos a distribuirlo con nuestro compilador, obtuvimos algunos informes de que virusscanners clasificaban a ld.exe como virus. (.exes escribiendo .exes ...)
He tenido que pasarme con el código implementado. La próxima actualización del escáner resolvió el problema. Algunos cretin escribieron un virus usando el mismo compilador y la firma era parte de la biblioteca de tiempo de ejecución, no realmente en el código hostil.
Muchos desarrolladores honestos tienen problemas debido a un software antivirus descuidado. Ver 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 tales productos antivirus y forzarlos a ser más cuidadosos con las alarmas falsas positivas, incluso para obtener algunos ingresos por las ventas que perdemos por ellos.
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 de que este es el análisis heurístico que funciona (apuesto a que detecta su ejecutable como algo similar a win32.virus.generic - tenga en cuenta el genérico , este es un signo, que esto no está en su firma db , pero más bien fue detectado por la heurística) y, con ser heurístico y todo, no le da ningún tipo de garantía, que lo que encuentra es malicioso, simplemente le hace saber que el ejecutable es sospechoso de 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 deba hacer que su software antivirus lo solicite antes de tomar medidas para que pueda omitir su archivo manualmente.
En general, encontré la codificación en Windows con software antivirus algo irritante (no lo hago 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).
Nunca he visto esto, habiendo hecho muchos desarrollos en C ++ y .NET con Visual Studio (desde la versión 1.5 hasta 2010).
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 que el .OBJ contenía no se consideró un problema.
Sí, mi equipo ha experimentado esto tal vez media docena de veces en 2-3 años con Sophos en un entorno corporativo. Entonces, muy raramente, pero sucede.
Nuestro credencial de TI comenzó exigiendo que revisara todas las líneas de código de 1.5M en nuestra aplicación para "hacer que desaparezca", pero no fue demasiado lejos en esa línea ...
Para ser justos, al principio le preocupaba que nuestros clientes también recibieran tal advertencia, pero solo hemos visto que se disparaba cuando se creaba un exe del IDE en la PC de un desarrollador, nunca en un exe de compilación de lanzamiento en una caja de prueba o en otra parte.
Personalmente, sucede tan pocas veces que no nos preocupamos por eso.
Solo he visto que esto suceda con los ensambladores. Por ejemplo, MASM32 realidad advierte a las personas que podría desencadenar escáneres de virus ya que los EXEs son tan pequeños (y / o algunos virus se escriben en el ensamblaje). Mi escáner de McAfee marcó algunos de los programas de ejemplo como virus.
Esto solo debería ocurrir para los escáneres de virus que tienen un modo de análisis "sospechoso".
Suena más como un heurístico para mí. ¿Tiene la heurística activada (algunos escáneres pueden referirse a ella como "código similar a virus")? Las posibilidades de que las marcas de tiempo se equiparen a "una parte de la firma de algunos 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.
También me pasó a mí. El teclado de enganche activará casi cualquier software de exploración heurística AV para informar un registrador de teclas. Probablemente haya muchas otras llamadas al sistema que también lo activarán. Solución: intente rediseñar su código o comuníquese con el fabricante de AV para incluir su software en la lista de excepciones.
El conjunto de herramientas VS Platform 2010 hace que mi programa simple sea detectado como virus. Cambiar el conjunto de herramientas a VS 2013 lo resuelve.
Simplemente crea una HttpWebRequest y escribe el resultado en un archivo.
Si tiene problemas con los falsos positivos, existe el servicio en línea VirusTotal que puede ayudarlo a verificar su archivo con el número de motores antivirus.
Es un servicio gratuito y actualmente puede ejecutar una comprobación antivirus con casi 40 motores antivirus.