08
noviembre
2005

Detección genérica de malware, sin firmas

¿enésimo antivirus?
Al hilo de las últimas anotaciones donde hacía referencia a algunos de mis primeros desarrollos relacionados con los antivirus, de la época donde todo era verde o gris (la CGA de mi Amstrad PC1512 daba hasta 4 colores, pero con mi monitor monocromo sólo veía tonos de grises), vamos a dar un salto en el tiempo hasta remontarnos hasta hace apenas 3 años.

Por cuestiones de trabajo, estos últimos días he tenido que "pelearme" con alguno que otro bicho que apenas detectaba ningún antivirus por su firma o heurística. He recordado que en el 2002 fuimos invitados a e-Gallaecia para hablar precisamente sobre las debilidades o limitaciones de las soluciones antivirus. Repetiríamos los dos siguientes años con temáticas similares, la última vez junto a Julio (jcanto) para presentar VirusTotal.

El primer año iba con Jesús (jcea), uno de los que aun no han aparecido por este blog, a quién por cierto ni le gustan los virus ni, dicho sea de paso, Windows, pero que es un seguro hable de lo que se hable (si, es así de "insoportable", sabe de todo). Contamos algunas cosas básicas sobre los antivirus, los problemas de las detecciones basadas en firmas, e incluso escribí en directo un gusano para la ocasión en apenas unas líneas de VBS, para ver como con simples modificaciones se hacía invisible a los motores antivirus.

Por descontado era una prueba de concepto muy básica que no infectó a nadie, y además se la enviamos a los laboratorios antivirus para que la incluyeran en sus firmas, por si acaso. Lo bautizaron como "Galla". Ver por ejemplo descripción de McAfee o Symantec.

A modo de conclusión enumeramos diferentes estrategias para hacer frente a las limitaciones de la detección por firmas, desde la heurística en el análisis de código, donde por ejemplo NOD32 se suele portar bien, la emulación mediante sandboxs, como hace Norman, y, entre otras, hicimos hincapié en la detección genérica basada en el comportamiento.

Como por aquel tiempo no había ningún antivirus que hubiera apostado fuerte por esta estrategia de detección, basada en el comportamiento como complemento a las firmas, presentamos nuestra propia prueba de concepto: SecureCenter.

SecureCenter, creado para la ocasión, básicamente contaba con un monitor de archivos y del registro de Windows, amén de alguna opción para configurar automáticamente contra virus algunos aspectos de Windows y Office. La idea era: en vez de reconocer a los virus por una firma que los identifique, vamos a reconocerlos de forma genérica por el tipo de acciones que pretenden llevar a cabo en un sistema. Es decir, que si un proceso desconocido intentaba, por ejemplo, modificar un ejecutable, la plantilla .dot de Word, el .ini del mIRC, o meter una entrada en la clave RUN del registro de Windows, vamos a impedir que lleve a cabo su acción, detenerlo, y ponerlo en cuarentena como sospechoso, aunque no tenga ninguna firma que lo identifique.

Como prueba de concepto funcionaba bastante bien, aunque también evidenció uno de los problemas colaterales de este tipo de soluciones, que junto a el consumo de recursos son los falsos positivos. No hizo falta forzarlo, en mitad de la presentación (como ocurre en toda demostración que se precie, recordemos el pantallazo azul de Bill Gates presentando Windows 98) saltó la alarma de SecureCenter porque algún proceso legítimo de Windows intentó escribir en una DLL.

Hoy día en este terreno podemos destacar a Panda Truprevent, también me ha gustado las posibilidades de configuración de McAfee VirusScan Entreprise 8.0i, que tuve ocasión de analizar hace apenas unos meses para un estudio privado.

Lo que está claro es que, de manera independiente a la estrategia que se siga, confiar únicamente en la detección por firmas es un error. Más a día de hoy, con la proliferación constante de malware, donde los laboratorios no dan a basto con la avalancha de nuevas variantes.

Aquí la pantalla principal de SecureCenter que permitía su configuración. En este caso nos encontramos con la ventana de configuración de monitorización de archivos, donde hemos protegido los archivos *.exe, script.ini, normal.dot y mirc.ini. Si cualquier proceso no identificado intenta modificar o escribir esos archivos, SecureCenter lo interceptará, evitará que lo haga, y además nos mostrará que proceso ha intentado tal acción, su archivo asociado, y la posibilidad de dejarlo hacer, detenerlo sólo en esa ocasión, o enviarlo directamente a cuarentena. A día de hoy utilizo una versión derivada de SecureCenter para proteger servidores contra intrusos y malware.

No, no me preguntéis donde se puede descargar SecureCenter, fue sólo una prueba de concepto para aquella ocasión, no la publicamos.

Enviado por bquintero a las 00:36 | Enlace permanente | Comentarios (2) | Trackbacks (0)
Comentarios
Re: Detección genérica de malware, sin firmas

En mi opinion este tipo de soluciones no basadas en firmas sino en su posible comportamiento añaden un grado mas de seguridad.
La idea de que el software antivirus se adelante a posibles creaciones mediante el analisis del comportamiento esperado es una idea tan acertada como lo puedan ser las firmas, y las dos con sus pros y sus contras y sus falsos positivos. Y, como otras tantas cosas, su uso combinado seria lo recomendable.
Aunque, yo creo que el verdadero handicap de este tipo de soluciones esta en como lo perciben los usuarios. Solo tenemos que imaginar como se va a comportar el sistema cuando cada martes, por ejemplo, se produzca una/varias actualizacion/es automatica(s) del sistema operativo (Windows, por ejemplo). Estas actualizaciones van a modificar muchos "componentes" del entorno que esta siendo monitorizado por el software antivirus. Si el antivirus empieza a preguntar y/o "molestar" al usuario, me parece a mi que muchos optaran por desinstalarlo o desactivarlo. Y si el agente esta oculto al usuario puede estar tomando decisiones automaticas como dejar en cuarentena determinadas acciones de dichas actualizaciones. Esto puede hacer que este tipo de soluciones se queden "marginadas" a un uso entre profesionales basicamente en servidores. Y si, ante estas actualizaciones se le da al usuario la opcion de parar el software antivirus temporalmente, pues bueno, que no se le olvide que tiene que volver a ponerlo en marcha.

Posted by: ktio at noviembre 10,2005 01:36
Re: Detección genérica de malware, sin firmas

Me interesan mucho este tipo de articulos, y me gustaria saber donde encontrar mas informacion sobre como programar solucciones de seguridad, diseño, tecnicas, algoritmos, etc.

Un saludo

Posted by: snci at diciembre 01,2005 17:20
Trackbacks
Por favor envía los trackbacks a: http://blog.hispasec.nospam/laboratorio/70/tbZ3ping
Reemplazando "nospam" por "com"
No hay trackbacks.
Enviar un comentario