martes, 19 de febrero de 2013

Java detrás de los ataques a Apple, Facebook y Twitter

Estos últimos días se han conocido varias noticias de ataques relevantes: los ingenieros de Facebook, Twitter y Apple han sido infectados por malware en las redes internas de estas compañías. Los ataques parecen tener en común varios elementos, pero básicamente, están basados en fallos de seguridad en Java.

El viernes 15 de febrero Facebook publicaba una nota en la que admitía que durante el mes de enero, sistemas (al parecer, portátiles) internos (probablemente de ingenieros) habían sido comprometidos con malware. No aclaraba cuántos. Según cuenta Facebook, una página que trataba sobre el desarrollo para móviles (al parecer iPhoneDevSDK) había sido comprometida. En ella, habían subido un exploit para Java que aprovechaba una vulnerabilidad previamente desconocida y que permitía la ejecución de código. Facebook se apresura a admitir que sus sistemas estaban completamente actualizados y que contaban con un antivirus. Estas medidas son necesarias (en especial la de actualizar) pero, lógicamente, insuficientes.

Poco después, el día 19, Apple también admite un problema de seguridad. De nuevo, sus desarrolladores visitan una web específica para programadores y el plugin de Java hace el resto, infectando los sistemas Mac.

Tanto Facebook como Apple aseguran que no han accedido a datos sensibles de su red y que siguen con las investigaciones. Por su parte, Facebook reportó a Oracle el fallo utilizado y fue corregido en su actualización del 1 de febrero.

Precisamente ese día, Twitter admite algo parecido. Detectaron accesos a sus datos (esta vez los atacantes sí que tuvieron éxito) y los pudieron acceder a las contraseñas (afortunadamente cifradas y salteadas) de 250.000 usuarios. Aunque no acusa directamente a Java, en la misma nota recomiendan la desactivación de Java del navegador.

Un ataque ingenioso

Los 0-day (fallos aprovechados por atacantes antes de que exista parche) solo pueden ser mitigados por la seguridad en profundidad. Curiosamente, las vulnerabilidades de este tipo están siendo muy habituales en los últimos tiempos, mientras que la seguridad en profundidad sigue olvidada en favor del mantra obsoleto que confía ciegamente en el antivirus, cortafuegos y sentido común... herramientas que por sí mismas no solucionan nada.

Introducir un exploit previamente desconocido en una web visitada por programadores es una buena idea. Evidentemente, este fallo no solo afectó a Facebook o Apple, sino que seguro son muchos más los infectados. No se trataría por tanto de un ataque dirigido contra estas empresas, pero sí que quizás "orientado" hacia programadores, con todo lo que ello significa. El truco consistiría en esperar a que las víctimas acudieran a una web, en vez de enviar un enlace, fichero o cualquier otro señuelo como sucede habitualmente. Esto incluso lo hace menos sospechoso y las víctimas pueden sentirse mucho más confiadas en que realmente, "no han hecho nada malo".

Usar un exploit de Java es una garantía de éxito además. Es sencillo de explotar, elude muchas restricciones sin complejidad, y está más que estudiado por la ingeniería de las mafias del malware cómo evitar la inmensa mayoría de los motores antivirus. Por si fuera poco, al esparcirse a través del navegador, se consigue entrar en las redes internas de las compañías sin demasiado esfuerzo. Hoy en día, pensar en que los ataques se producen desde fuera, saltando servidores, cortafuegos, IDS y otras medidas es un concepto muy de los 90. ¿Por qué pelear contra los altos y vigilados muros del castillo, si puedes "aparecer" ya dentro gracias a la magia de las vulnerabilidades en los navegadores? Los ataques se realizan sobre los equipos de escritorio de las personas que ya están en la red interna, y a través del navegador preferiblemente.

¿Por qué no estaban protegidos?

En los últimos meses, se ha advertido desde todos los frentes que es necesario (no recomendable, sino imprescindible) desactivar Java del navegador o activarlo exclusivamente para ejecutar ciertos applets firmados muy concretos. Esta es una buena medida contra los 0-days que han aparecido y aparecerán contra este software. Al parecer, algunos programadores de Facebook, Twitter y Apple no lo tuvieron en cuenta.

Lamentablemente, cualquier compañía puede ser comprometida de esta manera, pero el hecho de que los atacantes hayan tenido éxito a través de un software tan probadamente atacado como Java, hace que piense en que, al menos, podía haberse evitado esta vía sin demasiado esfuerzo y que se le ha puesto muy fácil a los atacantes. Este tipo de incidentes aporta muy mala imagen a las empresas que lo sufren. No hay más que ver el amable eufemismo usado para titular las notas de prensa en las que Twitter y Facebook admiten que han sido atacadas: "Seguimos manteniendo seguros a nuestros usuarios" y "Protegiendo a la gente de Facebook".

Más información:

Keeping our users secure

Protecting People On Facebook

Exclusive: Apple, Macs hit by hackers who targeted Facebook


Sergio de los Santos
Twitter: @ssantosv


1 comentario:

  1. Siempre la culpa la tiene el mas débil.yo creo que si falla la seguridad la culpa es del sitio no de las aplicaciones.

    ResponderEliminar