Founder of MalwareIntelligence, a site dedicated to research on all matters relating to anti-malware security, criminology computing and information security in general, always from a perspective closely related to the field of intelligence.

jueves, 9 de agosto de 2007

MALWARE 2.0
Aunque no deja de ser una etiqueta de moda sin una definición clara, el concepto de la Web 2.0 hace referencia a una segunda generación de aplicaciones web dinámicas e interactivas donde el usuario tiene un mayor protagonismo y participación, frente a las webs estáticas tradicionales donde el usuario era un receptor pasivo. ¿Existe también un nueva generación de malware 2.0?

Tengo que confesar que creía que iba a ser original hablando del concepto Malware 2.0, pero una búsqueda en Google me ha sacado de mi error. Hace menos de un mes la empresa de seguridad PC Tools utilizó el término en una nota de prensa donde hablaba de una nueva generación de malware: http://www.pctools.com/news/view/id/181/

PC Tools hace referencia a características que llevamos comentando tiempo atrás en Hispasec:

* La proliferación de nuevas variantes de malware ha crecido de forma brutal.

* Se utilizan técnicas automáticas para ofuscar las variantes y dificultar la identificación por firmas.

* La estrategia actual pasa por utilizar muchas variantes en vez de un único espécimen para llamar menos la atención y dificultar una respuesta rápida por parte de la comunidad antivirus (de ahí que llevemos bastante tiempo sin ver un gusano de propagación masiva como el ILoveYou y compañía).

A continuación, como era de esperar, utiliza este argumento para vender su producto antispyware, que utiliza técnicas adicionales para no depender en exclusiva de las firmas de detección.

Aunque esas características son una realidad evidente desde hace bastante tiempo, mi idea del concepto de Malware 2.0 tiene más analogía con la Web 2.0: el uso de la web como plataforma para la distribución, personalización del malware, y uso inteligente de los datos obtenidos por parte de los usuarios para propocionar "nuevos contenidos".

Para desarrollar la idea voy a utilizar un ejemplo de ataque real, de los muchos que están sucediendo a día de hoy, destinado a los usuarios de banca electrónica:

* Los atacantes diseñan un servidor web que hospeda el código malicioso.

* Para atraer a potenciales víctimas anuncian su URL a través de spam, en foros, comentarios en blogs, etc. con cualquier excusa (bien una noticia de actualidad, curiosidades, imágenes eróticas o cualquier otro contenido potencialmente atractivo que lleven a los usuarios a visitar el servidor web de los atacantes).

* Cuando un usuario accede al sitio de los atacantes, la web comprueba la versión del navegador del visitante y, si es vulnerable, devuelve un exploit específico para su versión del navegador que provoque la descarga automática y ejecución del troyano.

* Si el usuario tiene un navegador actualizado, utiliza la ingeniería social para que el usuario descargue y ejecute por si mismo el troyano (por ejemplo, mediante un ActiveX, decirle que es un vídeo, o una utilidad que requiere con cualquier excusa).

* Este primer troyano que se descarga es un "downloader", que lo que hace es instalarse en el sistema y descargar e instalar la última versión del troyano bancario, así como sucesivas actualizaciones que pudieran aparecer en el futuro.

* El troyano "downloader" también puede personalizar la versión del troyano bancario que descarga en función del sistema. Por ejemplo, si el usuario tiene una versión de Windows en español, el "downloader" instalará en el sistema un troyano bancario diseñado específicamente para entidades españolas.

* El troyano bancario puede estar destinado a unas entidades específicas o ser más genérico. En el caso de que tenga unas entidades predefinidas, si el usuario accede a las webs de banca electrónica reconocidas por el troyano, envía los usuarios y contraseñas de acceso del usuario al servidor web para que los atacantes puedan suplantar su identidad y realizar transferencias a otras cuentas.

* En el caso de un troyano bancario más genérico e inteligente, envía a un script del servidor web de los atacantes todas las URLs por las que el usuario navegue y que comiencen por https. En el servidor web tienen un listado de URLs de bancos, si alguna de las URLs que envía el troyano corresponde con el listado, entonces el servidor web devuelve al troyano una orden concreta: redirigir al usuario a un sitio de phishing de esa entidad, modificar en local la página web de la entidad para que pida la clave de operaciones, etc.

* La información de las URLs de páginas seguras (https) por la que los usuarios navegan, y que envían al servidor web, sirve a los atacantes para diseñar nuevos ataques y actualizaciones de su troyano bancario. Por ejemplo, imaginemos que en un principio los atacantes contemplaban a Banesto, pero no al BBVA. Los usuarios que visitaban la web de Banesto eran afectados, mientras que los del BBVA no porque el servidor web no devolvía ninguna orden concreta al no tener un ataque específico preparado. Los atacantes estudian periódicamente las estadísticas de las URLs que se centralizan en su servidor, y comprueban que hay muchos usuarios infectados que visitan la web del BBVA. Entonces deciden crear una nueva versión del troyano bancario específico o una página de phishing a la que redirigir a los usuarios infectados que la próxima vez visiten la web del BBVA.

Este último punto tiene cierta analogía con servicios web 2.0 como digg.com o meneame.net, si muchos usuarios visitan una página de un banco se contabiliza en el servidor de los atacantes como votos positivos y termina por aparecer en portada (en este caso en la lista negra de entidades para las que desarrollan un ataque concreto).

Cómo podemos ver, esta nueva generación de malware utiliza la infraestructura de la web para comunicarse con los sistemas infectados de los usuarios y realimentarse con la información que estos proporcionan, aprovechando esta inteligencia colectiva para ofrecer nuevos contenidos dinámicos en función de los perfiles de los usuarios. ¿Estamos ante el malware 2.0?

Fuente: http://www.hispasec.com

Ver más

ANTIVIRUS: RENDIMIENTO VS PROTECCION
El mundo de los antivirus está en crisis técnica, que no comercial, sigue siendo un buen negocio. Pero a estas alturas a nadie escapa que los antivirus a duras penas logran tapar parte de la ventana de riesgo de infección a la que todo usuario de Windows se expone en Internet.
Ante este panorama cabría pensar que están triunfando los antivirus que mayor protección ofrecen, si bien la realidad es distinta.

La gran proliferación y diversificación del malware ha puesto en jaque a un esquema basado en tener fichados a los malos: firmas para identificar al malware conocido, firmas genéricas para identificar variantes de una misma familia, y heurísticas basadas en la detección de código sospechoso.

Los malos han ganado la partida en este juego. Modifican una y otra vez el código para que las firmas y heurísticas existentes no puedan detectarlos, cambian la cara de sus especímenes para evitar ser reconocidos aunque en el fondo siguen haciendo el mismo daño. Lo hacen de forma tan masiva que los antivirus a duras penas pueden seguir el ritmo para actualizarse, no dan a basto, están saturados. Es una carrera sin final y nos llevan mucha ventaja.

Hay que cambiar de estrategia. Visto que actualizar firmas de forma constante no es suficiente, los antivirus han optado por implementar nuevas tecnologías que les permita más proactividad. El fin es poder detectar el malware nuevo, desconocido o variante. No depender de una firma reactiva, ser más genéricos y proactivos en la protección.

Son varias las empresas antivirus que han arriesgado en ese campo, incorporando nuevas tecnologías y capas de seguridad al motor antivirus tradicional, que dotan a la solución de un mayor poder de protección. Pero no todos son ventajas a la vista del usuario, la incorporación de este tipo de tecnologías adicionales suele conllevar
también un software más "pesado", que consume más recursos, enlentece el sistema, tiende a dar más falsos positivos y/o termina haciendo preguntas incomodas al usuario:

"El proceso svchost.exe intenta conectar a Internet.
¿Permitir o denegar?"

¿No se supone que el antivirus debe saber si es algo peligroso o no?, ¿por qué me pregunta a mí?. Después de una serie de pensamientos similares, el usuario acabará por tomar alguna decisión del tipo:

- Intentará averiguar en google que es "svchost.exe" (no llegará a ninguna conclusión, y a la segunda o tercera pregunta sobre otros procesos desistirá en la búsqueda de la verdad)

- Permitir Todo (tarde o temprano terminará infectándose)

- Denegar Todo (dejará de funcionarle algún software legítimo)

- Desinstalar el antivirus e instalar otro que no le haga perder tiempo con ventanitas emergentes y preguntas que no sabe contestar (sin excluir las decisiones anteriores, el usuario suele terminar desembocando en este punto y cambiando de antivirus)

Percepción del usuario

Ahora tenemos a un usuario con un antivirus tradicional, basado en firmas, que no incluye tecnologías adicionales, que no enlentece el arranque de su sistema, que no le consume mucha memoria, que no le importuna con preguntas... tenemos a un usuario menos protegido, pero un usuario que está teniendo una "buena experiencia" con su antivirus.

Y es que aunque teóricamente un desarrollador antivirus debe balancear entre endimiento y protección, la realidad es que el usuario sólo puede percibir el rendimiento. Un usuario no sabe de tecnologías, un usuario no puede evaluar el grado de protección que le ofrece una solución, en la lógica de un usuario un antivirus debe protegerle de infecciones y punto.

En los años 90 cuando un virus infectaba el ordenador se notaba de inmediato: borraba archivos, mostraba imágenes en pantalla, etc.

Cuando un usuario se veía infectado por un virus aun teniendo antivirus, motivaba el cambio de producto: "este antivirus no es bueno, ha permitido que me infecte". Pero ahora el panorama es bien diferente, el malware de hoy día está diseñado para permanecer oculto y el mayor tiempo en los sistemas infectados, sin dar señales de vida.

Así que el usuario seguirá con la buena experiencia de su "antivirus ligero" pese a que su sistema esté infectado. Simplemente, el usuario no se entera.

Lo que si va a notar un usuario de inmediato es si el antivirus interfiere en su sistema y en el trabajo diario. Esa experiencia que si puede percibir de forma directa es la que decanta hoy día la evaluación de un antivirus y la elección final por parte del usuario.

La balanza por parte del usuario está inclinada claramente hacia un lado: el rendimiento. Mientras que algunos antivirus son conscientes de ello y explotan esta visibilidad parcial por parte de los usuarios para ganar mercado, otros siguen intentando equilibrar la balanza, o dándole más peso a la protección, y perdiendo clientes en el camino.

¿Deben las empresas antivirus renunciar a ofrecer una mejor protección? Evidentemente no, pero la experiencia del usuario debe ser un objetivo igual o más importante si cabe, incluso en muchas ocasiones tendrá mayor peso. De nada sirve diseñar el antivirus más seguro si los usuarios no lo pueden utilizar. Para el usuario el mejor
antivirus no es el más seguro, sino el más confortable.

Algunos ejemplos

La pregunta sobre el svchost.exe me saltó ayer mientras probaba un antivirus, y no fue la única pregunta que hizo. Es más, después de instalarse, tras el primer reinicio del sistema, hizo un análisis completo de todos los archivos del disco duro en segundo plano. Por la actividad del disco duro deduje lo que estaba haciendo, y haciendo doble click en el icono del antivirus pude confirmarlo en la ventana
del escaner.

Como medida de seguridad estaba muy bien, pero, ¿cuál es la experiencia de un usuario común? Pues no tiene dudas, tras instalar el antivirus el sistema se ha vuelto muy lento y apenas lo deja trabajar. El usuario no sabe que es una acción que llevará a cabo sólo en el primer reinicio y no en posteriores, la percepción es que instalando el antivirus X el sistema inmediatamente se vuelve lento.

¿Por qué el antivirus no deja el análisis de todos los archivos para más tarde, cuando detecte que el sistema lleva un tiempo en "reposo" en vez de hacerlo justo en el inicio? Incluso podría pausar ese análisis en segundo plano si detecta que el usuario comienza a utilizar el ordenador, o al menos regular la velocidad y consumo de recursos del análisis para no interferir la actividad del usuario.

Probando otros antivirus se puede notar claramente el cambio de enfoque, acertado desde el punto de vista comercial, explotando al máximo los conceptos de velocidad y rendimiento. Aunque en ocasiones sea a costa de una menor protección o simplemente aplicando cierta picaresca.

Hay un antivirus que se vende como uno de los más rápidos, para ello tiene una opción por defecto de análisis a demanda donde no utiliza las técnicas de heurística que más recursos consume, con las que hacen las pruebas de velocidad. Cuando toca hacer una prueba de detección, piden encarecidamente que se utilice la opción con la heurística más lenta activada. Objetivo: aparecer en las evaluaciones como el más rápido sin perder capacidad de detección. Lo logran.

Resumiendo

Demostrar que una tecnología antivirus ofrece mejor protección que otra es complicado. Desde el punto de vista de marketing el usuario está cansado, al fin y al cabo todos los antivirus afirman ser los mejores, y se deja llevar por la propia experiencia o por terceros confiables creadores de opinión.

La experiencia del usuario tiene una visibilidad muy parcial, no puede saber que grado de protección real le ofrece un producto. Se dejará llevar por indicadores tales como la no interferencia con su trabajo y el rendimiento del sistema. El usuario no sabe si está infectado o no, pero si sabe si el antivirus le molesta.

Los terceros confiables no son confiables. La dificultad que el usuario tiene para evaluar el grado de protección de un antivirus también se traslada a los creadores de opinión, desde foros de Internet pasando por revistas de informática y comparativas que tampoco están diseñadas para evaluar las nuevas tecnologías. También tienen la resposabilidad de explicar cual es la situación actual y las diferencias entre tecnologías, hay que formar a los usuarios.

Los evaluadores de antivirus deben evolucionar a nuevas metodologías, siguen (seguimos) utilizando tests de los años 90 dando resultados adulterados y penalizando a las nuevas tecnologías. Son las fuentes de la que beben los terceros confiables, "culpables" también de la formación en nuevas tecnologías que requieren traducir su eficacia real en indicadores que a día de hoy simplemente no se miden.

Los desarrolladores antivirus deben reinventarse y no perder el foco sobre el usuario. Hay productos que están incorporando tecnología sobre tecnología en su búsqueda de minimizar la ventana de riesgo de infección, pero convirtiéndose en un software complejo, poco optimizado, que consume muchos recursos, y que ofrece una pobre experiencia al usuario.

Hay que evolucionar, pero no a cualquier precio. A veces tendemos a ofuscarnos con soluciones técnicas y olvidamos que al final un usuario, que no es informático ni tiene nociones de seguridad, tendrá que convivir con esas soluciones en su día a día en un PC normal, no sobrado de recursos, que ejecuta otras aplicaciones que son realmente las importantes para él.

Fuente: http://www.hispasec.com

Ver más