@Buster_BSA, y no se podria usar algun tipo de ofuscacion extrema o conseguir lo que quieras sin hacer acciones consideradas maliciosas? O hacerte pasar por una aplicacion normal y corriente? Porque digo yo que las aplicaciones legitimas tambien podran añadir una entrada al registro o descargar un fichero de una web. En fin, esta claro que es otro nivel de analisis, parece mucho mejor que el estatico clasico, pero tampoco creo que sea imposible saltarselo.
En el análisis por comportamiento la ofuscación no vale para nada. Ya puedes usar toda la ofuscación del mundo que si al final droppeas un fichero a disco va a quedar constancia de tal acción. Y lo mismo si alteras una clave del registro o si te conectas a una página web y descargas un archivo.
Es cierto que las aplicaciones legítimas también escriben en el registro, se conectan a internet y descargan ficheros o crean ficheros en el disco duro.
En el análisis por comportamiento no solo se evalúan las acciones, también se tiene que tener en cuenta si se supone que la aplicación analizada debería realizar esas acciones o no.
Pongo un ejemplo para que se vea más claro:
Descargas un keygen y cuando lo ejecutas escribe en la clave del registro "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run" y el fichero se copia a "C:\WINDOWS\System32\Scvhost.exe".
¿Qué debes pensar de que un keygen haga tal cosa? Pues que contiene un malware obviamente.
Otro ejemplo:
Descargas una versión del navegador FireFox y añade claves en el registro y crea ficheros dentro de "\Archivos de programa\FireFox".
¿Qué debes pensar de que un instalador del FireFox haga tal cosa? Pues que aparentemente es normal.
Evidentemente la herramienta de detección 100% efectiva no existe y solo con un análisis manual y exhaustivo de una aplicación se puede estar seguro de que no contiene código malicioso.
No se trata solo de que la aplicacion tenga un bug, en parte estoy de acuerdo con Karcrack en que el limite lo pone tu imaginacion.
Pues yo no estoy de acuerdo. La imaginación te sirve para crear una idea, por ejemplo saltar desde una máquina virtual e infectar el host. Luego son la experiencia y los conocimientos los que te permiten llevar esa idea a la práctica.
Y como ya he dicho, no todas las ideas se pueden llevar a la práctica porque los que fabrican software también tienen imaginación, y ellos también tienen ideas, como la de evitar que sea posible que una aplicación desde la máquina virtual se pueda hacer con el control del host.
Pregunta para todos:
¿Por qué dais por supuesto que la imaginación del que intenta evadir la protección en un software es mayor o mejor que la imaginación del que creó el software?
Seguro que nunca os habías hecho tal pregunta, ¿verdad?