Introducción. Por qué decidimos investigar Java
Uno de los principales problemas que la industria de la seguridad informática enfrenta es el uso de vulnerabilidades en software legítimo para lanzar ataques de programas maliciosos. Estos programas se aprovechan de estas vulnerabilidades para infectar un equipo sin que el usuario se dé cuenta de ello y, en algunos casos, burlando las soluciones de seguridad.
Es por eso que los ciberdelincuentes prefieren estos ataques, conocidos como exploits, a los otros métodos de infección. A diferencia de la ingeniería social, que puede acertar o fallar, el uso de vulnerabilidades sigue produciendo los resultados buscados.
Los exploits son programas especiales diseñados para aprovecharse de las vulnerabilidades en los programas que millones de usuarios en todo el mundo utilizan. Su funcionamiento es inadvertido y los usuarios pueden convertirse en sus víctimas con sólo visitar un sitio que contenga códigos maliciosos o abrir un archivo aparentemente legítimo que esconde un código malicioso. Los exploits están diseñados para atacar a determinadas versiones de programas que contengan cierta vulnerabilidad, de manera que si el usuario utiliza dicha versión para abrir el objeto malicioso, o si un sitio web la utiliza, entonces se activa el exploit. Una vez que el exploit se infiltra a través de la vulnerabilidad descarga otros programas maliciosos desde un servidor también malicioso que, dependiendo del blanco atacado, ejecuta acciones maliciosas, como robar los datos personales del usuario, añadir el equipo capturado a una red zombi para distribuir spam, lanzar ataques DDoS, etc.
Los exploits representan una amenaza incluso si el usuario está consciente del riesgo que significan o sabe de seguridad informática y mantiene actualizada su solución antivirus. Eso se debe a que cuando se detecta una determinada vulnerabilidad, la publicación de un parche para repararla puede tomar semanas. Mientras tanto, los exploits pueden funcionar sin impedimento alguno poniendo en riesgo la seguridad de casi todos los usuarios de Internet. Este riesgo puede reducirse de forma significativa si los usuarios cuentan con soluciones de alta calidad que incluyan tecnologías capaces de bloquear los ataques lanzados por los exploits.
Las soluciones de seguridad de alta calidad que Kaspersky Lab desarrolla para sus usuarios particulares y corporativos, vigilan constantemente el horizonte de ciberamenazas. Esto ayuda a que los expertos de Kaspersky Lab mejoren constantemente las tecnologías de seguridad y fortalezcan la protección contra las amenazas más urgentes. Entre otras cosas, este enfoque de seguridad incluye el análisis de los datos proporcionados por Kaspersky Security Network, que es una infraestructura en nube compuesta por más de 60 millones de usuarios de los productos de Kaspersky en todo el mundo, y recopila la información necesaria para vigilar constantemente la frontera de las ciberamenazas.
Los datos obtenidos de Kaspersky Security Network fueron la base para un informe anterior de Kaspersky Lab, titulado “Evaluación del nivel de amenaza de las vulnerabilidades en programas“, en el que se analiza la situación de los programas legítimos más comunes. Este informe reveló que una gran número de usuarios no actualizan las versiones vulnerables de aplicaciones bajo riesgo, incluso semanas después de la publicación de la respectiva actualización. También se identificaron los blancos más frecuentes de los ataques de exploits: los programas de Oracle Java, la aplicación para visualizar contenidos multimedia Adobe Flash Player, y su mellizo Adobe Reader para formatos PDF.
En este nuevo estudio, decidimos enfocarnos en Oracle Java. Esta decisión responde al elevado aumento de ataques contra este producto el año pasado, como se ve en la siguiente tabla.
Número de ataques con exploits (2011-2013)
Preguntas y respuestas prácticas sobre Java
¿Qué es Java?
Java es un lenguaje de programación orientado a objetos que permite de forma relativamente rápida y fácil crear elementos multimedia para varias plataformas, incluyendo aplicaciones que pueden ejecutarse en cualquier máquina virtual Java, cualquiera que sea la arquitectura del ordenador. Es decir, el desarrollador no tiene que volver a escribir su aplicación para cada sistema operativo o navegador. El principal requisito es que exista una versión de la máquina virtual Java para un determinado sistema operativo o navegador. Es gracias a esta versatilidad que esta herramienta de Java se hizo muy popular entre los desarrolladores de sitios web y aplicaciones para distintos dispositivos.
¿Por qué Java tiene tantas vulnerabilidades?
En primer lugar, el desarrollo de Java comenzó cuando todavía no existían ataques maliciosos a través de vulnerabilidades. Entonces, los desarrolladores de programas, en general y no sólo los dedicados a Java, no podían anticipar este potencial riesgo de seguridad, por lo que los programas se desarrollaban sin tener en cuenta el aspecto de la seguridad.
En segundo lugar, la gran cantidad de vulnerabilidades identificadas en Java confirma el elevado número de especialistas que buscan estas vulnerabilidades en concreto. Según Oracle, propietario de Java, el producto está en uso en más de tres mil millones de distintos dispositivos en todo el mundo. Este gran público es uno de los principales factores que atrae a los ciberdelincuentes a lanzar sus ataques contra este programa. Cuantos más usuarios tenga un determinado producto mayores serán las posibilidades de que los ciberdelincuentes puedan enriquecerse ilegalmente.
Por eso, no se puede decir que Java sea la plataforma de programas más vulnerable; en realidad, los ciberdelincuentes se dan cuenta de los millones de usuarios que la utilizan, lo que justifica que inviertan recursos para encontrar la forma de aprovecharse de la situación.
¿Qué es un paquete de exploits?
Es un paquete de programas ilegal que incluye un panel de control y varios exploits diseñados para un determinado conjunto de aplicaciones. Los paquetes de exploits son similares a un conjunto de llaves, pero cada “llave” es un exploit separado que se activa según el programa que la víctima use. Los exploits para las vulnerabilidades de Java también pueden usarse independientemente del paquete. Por ejemplo, también se han detectado en los ataques dirigidos que los ciberdelincuentes preparan tras detectar fallas en la infraestructura informática de la víctima, y crean una página web que aloja un determinado exploit Java.
¿Cómo se realizan los ataques con exploits Java?
Los ciberdelincuentes suelen inducir a sus víctimas a que visiten un sitio web especialmente diseñado que aloja una determinada colección de exploits. Cuando el usuario activa la página, un módulo incorporado en ella identifica el navegador de la víctima y las versiones de Java-plugin instaladas en su equipo. Con esta información se selecciona un exploit que automáticamente descarga su(s) programa(s) malicioso(s) en el equipo de la víctima.
Metodología del informe: Qué se calculó y cómo
Para este estudio utilizamos la información compartida por más de 40 millones de usuarios de los productos de Kaspersky Lab en todo el mundo que aceptaron proveer sus datos estadísticos a Kaspersky Security Network. Estos datos se originan en los equipos que contienen alguna versión de los programas Java de Oracle. El informe incluye datos estadísticos de cuatro módulos de seguridad que se encuentran en los productos de Kaspersky Lab: web antivirus, file antivirus, analizador heurístico y el módulo Automatic Exploit Prevention.
Periodo de estudio:
- Escogimos datos recopilados durante 12 meses, desde septiembre de 2012 hasta agosto de 2013. Estos 12 meses resultan de particular interés por la cantidad comparativamente elevada de vulnerabilidades detectadas en Java, el doble que en los anteriores 12 meses. Para remarcar este cambio, dividimos este periodo en dos partes: de septiembre de 2012 a febrero de 2013, y de marzo a agosto de 2013.
Temas de estudio:
- La cantidad de vulnerabilidades en Java y su naturaleza.
- La cantidad de ataques exploit contra Java y su dinámica.
- La cantidad de usuarios únicos bajo ataque y su dinámica.
- La clasificación de ataques y usuarios únicos por su localización geográfica.
- La cantidad y predominio de ataques ‘sofisticados’ detectados mediante el módulo exclusivo de Kaspersky Lab: Automatic Exploit Prevention.
- El alcance de la clasificación de los exploits desarrollados para las vulnerabilidades detectadas en el periodo de estudio.
Principales hallazgos
El estudio demostró que Oracle y sus usuarios tuvieron 12 meses muy difíciles con una gran cantidad de ataques.
- Diferentes compañías de seguridad informática y expertos en ciberseguridad detectaron más de 160 vulnerabilidades, de las cuales seis eran críticas, en programas de Java.
- Kaspersky Lab detectó más de 14,1 millones de ataques con exploits Java. Eso representa un 33,3% más que en los 12 meses previos.
- La cantidad de ataques se incrementó durante el año. De marzo a agosto de 2013, se detectaron más de 8,54 millones de ataques, es decir, un 52,7% más que en los seis meses previos.
- En total, más de 3,57 millones de usuarios de los productos de Kaspersky Lab sufrieron ataques en todo el mundo durante el periodo de estudio.
- En el segundo semestre del año la cantidad de usuarios atacados subió en un 21% en relación al primer semestre, alcanzando dos millones de usuarios únicos.
- Un 80% de los ataques se concentraron en sólo 10 países. La mayoría de los ataques se lanzaron en EE.UU. (26,2%), Rusia (24,5%), Alemania (11,7%) e Italia (3,6%).
- Canadá, EE.UU., Alemania y Brasil fueron los países con más rápido crecimiento del número de ataques. Junto a Francia, estos países también tienen el más rápido crecimiento de usuarios únicos atacados.
- Un 50% de los ataques emplearon sólo seis grupos de exploits.
- Durante el periodo de estudio, el módulo Automatic Exploit Prevention de Kaspersky Lab bloqueó 4,2 millones de ataques ‘sofisticados’ que apuntaban a más de dos millones de usuarios.
Por supuesto, estas tendencias tienen cada una sus propias peculiaridades y las estudiaremos en profundidad.
Parte 1. Un año de vulnerabilidades en Java
El periodo de referencia en este informe planteó un particular desafío para Oracle Java en cuanto a sus vulnerabilidades sin reparar. Durante este tiempo, se detectaron 161 vulnerabilidades en varias versiones de Java. La mayoría de estas vulnerabilidades se encontraba en las versiones 1.5, 1.6 y 1.7, que son las predominantes. En comparación: durante el mismo periodo en 2011-2012, sólo se detectaron 51 vulnerabilidades sin reparar.
Los datos que se usaron para elaborar el siguiente cuadro provienen de la firma danesa Secunia, que recopila datos sobre vulnerabilidades detectadas en programas legítimos. Como se puede ver en el cuadro, Secunia publicó ocho advertencias durante este periodo (cada una anunciando la detección de vulnerabilidades en Java), y algunas se referían hasta a 40 nuevas vulnerabilidades detectadas. Durante el mismo periodo en 2011-2012, Secunia publicó cinco advertencias.
Número de vulnerabilidades de Java (2012-2013)
En rojo aparece la publicación de una o más advertencias de Secunia referentes a la detección de vulnerabilidades críticas. Sólo dos advertencias (en verde) no contenían vulnerabilidades críticas. Fuente: Secunia.
Vale la pena señalar que la abrumadora mayoría de las vulnerabilidades detectadas en Java no representan una amenaza significativa. Sin embargo, al mismo tiempo, seis de estas advertencias mencionaban al menos una vulnerabilidad que podría potencialmente provocar la infección de un equipo. En total, sólo dos advertencias publicadas entre septiembre 2012 y agosto 2013 (las del 20 de febrero y 19 de junio) no se referían a vulnerabilidades críticas. Durante ese periodo Kaspersky Lab llamó la atención sobre las seis vulnerabilidades más peligrosas de Java y “enseñó” a sus tecnologías antivirus a responder a las seis familias de exploits que atacaban dichas vulnerabilidades.
A favor de Oracle señalamos que todas las vulnerabilidades críticas detectadas en este periodo ya estaban reparadas al momento de redactar este informe. La última versión de Java (1.7) se publicó en junio de este año (Update 25) cuando la versión 1.6 (Update 51) predominaba.
Por desgracia, los datos estadísticos de Kaspersky Lab, que nos ayudan a obtener el cuadro completo de qué versiones de Java usan los usuarios de los productos de Kaspersky Lab, no confirman en absoluto que todos los usuarios queden protegidos contra los ataques de exploits tras la publicación de una actualización.
Top 10 de versiones de Java (agosto 2013)
Este gráfico se elaboró en base a datos provenientes de 26,82 millones de usuarios únicos de la red Kaspersky Security Network sobre el uso de cualquier versión de Java en sus ordenadores personales. Fuente (aquí y debajo): Kaspersky Security Network.
Menos de la mitad (42,5%) de los usuarios de Java en la red Kaspersky Security Network instalaron la actualización de la nueva versión de Java. Más del 15% (o más de 4 millones de usuarios) siguen usando la versión anterior SE 7 U21 que se publicó a mediados de abril. Aproximadamente 1,3 millones de usuarios (4,93%) siguen usando la versión SE 7 U17 que se publicó en marzo de 2013.
Curiosamente, la versión SE 6 U37, publicada en octubre de 2013, fue la versión más reciente de Java 1.6 en el Top 10 de las versiones más populares.
Las conclusiones son obvias: Un mes y medio después de la publicación de la última versión de Java, la mayoría de los usuarios sigue usando las versiones vulnerables.
Esta situación se repite una y otra vez. A fines de junio, menos de dos semanas después de la publicación de Update 25, sólo 291.000 usuarios estaban usando la nueva versión. Muchos usuarios actualizaron rápidamente su programa, pero resulta preocupante que a fines de junio seguíamos viendo que más de la mitad de ellos seguía usando la versión vulnerable desactualizada U17 en vez de la más reciente versión U21 publicada a mediados de abril. La cantidad de usuarios con la versión U21 llegó a 3,5 millones, y la de usuarios con la versión vulnerable y desactualizada SE U17 alcanzó los 6 millones.
Un análisis del periodo anterior revela la misma situación. La mayoría de los usuarios está usando versiones de Java tan antiguas como 2 ó 3 generaciones previas a la última versión en el momento de la investigación.
Al mismo tiempo, mientras que esta tendencia es peligrosa, también muestra algunas señales positivas. Si comparamos las cinco versiones de java más usadas en agosto con los mismos datos de fines de junio, veremos que con un número similar de usuarios únicos (18,65 millones en agosto y 19,7 millones en junio), la cantidad de usuario con la versión más reciente de Java en agosto fue notablemente mayor que la de junio.
El siguiente cuadro muestra los porcentajes de usuarios con las 5 versiones más usadas de java (Top 5) en junio.
Top 5 de versiones de Java (junio 2013)
Debido a que hubo un periodo relativamente breve (menos de dos semanas) desde la publicación de la última versión (U25) y la recopilación de datos para este informe, la “última” versión usada para los propósitos de este análisis fue la U21. Como podemos claramente ver en el cuadro, sólo el 17,85% de los usuarios tenían esa versión de Java, mientras que la mayoría (casi un tercio) tenía la versión desactualizada y vulnerable U17.
En agosto se observó una tendencia mucho más alentadora.
Top 5 de versiones de Java (agosto 2013)
En otras palabras, en el verano los usuarios de Java parecían estar mucho más dispuestos a actualizar a la última versión de su programa que en la primavera. Resulta difícil señalar las razones de esta aceleración en el proceso de actualización. Es posible que la cobertura de los medios de comunicación sobre la detección de vulnerabilidades de Java haya movido a los usuarios a actuar (hubo muchos reportajes como este en las noticias durante la primavera de 2013). Como se muestra más adelante en el estudio, esta primavera resultó ser el periodo más difícil para Java, especialmente si consideramos la cantidad de ataques y la de usuarios atacados.
Parte 2. Un año de ataques contra los usuarios de Java
Ataques en alza continua
Durante los 12 meses, desde septiembre de 2012 hasta agosto de 2013, Kaspersky Lab registró más de 14,1 millones de ataques lanzados contra usuarios en todo el mundo. En comparación al mismo periodo en 2011-2012, la cantidad de ataques creció en un 33,3%.
Número de ataques: comparación anual
Al mismo tiempo, si dividimos ese periodo de 12 meses en dos periodos de seis meses, los acontecimientos son más asombrosos: un 52,7% de los ataques tuvo lugar en la segunda mitad: 8,54 millones entre marzo y agosto 2013, en comparación a los 5,59 millones en los siguientes seis meses. Esta es la dinámica de los ataques durante los 12 meses anteriores:
Ataques (2012-2013)
Al inicio del periodo, vimos una cantidad estable de ataques durante el otoño y una débil tendencia a la disminución en diciembre. Después, a principios de enero, vimos un agudo aumento que alcanzó su pico a mediados de ese mes para luego seguir una similar caída aguda.
Desde principios de febrero hasta fines de mayo, la cantidad de ataques aumentó rápidamente. Esto se debió a, entre otros factores, la detección de todas las nuevas vulnerabilidades en Java (87 vulnerabilidades entre febrero y mayo, tres de las cuales críticas) y la lenta transición entre los usuarios de Java a las versiones reparadas y más seguras.
Desde junio hasta agosto, observamos un incremento constante en la cantidad de ataques. A mediados de junio Oracle publicó una nueva versión de Java que fue recibida con una transición más activa a la versión actualizada, como ya hemos mencionado en la sección anterior de este informe. La época de las vacaciones de verano es tradicionalmente lenta para los ciberdelincuentes, lo cual es un factor a tener en cuenta.
Además de la cantidad de ataques durante el año, el número de usuarios que sufrieron estos ataques también subió notablemente.
Más usuarios en la mira
En el transcurso del año pasado, se lanzaron más de 14 millones de ataques contra 3,75 millones de usuarios en 226 países. Durante los primeros seis meses del año, 1,7 millones de usuarios únicos sufrió ataques de exploits Java, en comparación a los más de dos millones en los siguientes seis meses. Ese aumento entre marzo y agosto superó el 21% en comparación a los seis meses anteriores.
Número de ataques y de usuarios atacados
La cantidad de usuarios atacados durante todo el año cambió en sintonía con la cantidad de ataques mismos. Entre septiembre y febrero, la intensidad promedio llegó a 3,29 ataques por usuario, mientras que entre marzo y agosto fue de 4,15. De una mitad del año a la siguiente, la intensidad de ataques aumentó en un 26,1%. En promedio, en el transcurso del año, cada usuario se enfrentó a 3,72 ataques. Como hemos mencionado líneas arriba, el periodo más ocupado por la cantidad de ataques y la cantidad de usuarios atacados fue la primavera de 2013.
Sin embargo, resulta llamativo que después de la “sacudida primaveral”, la cantidad de ataques disminuyó más rápidamente que la cantidad de usuarios afectados. Por ejemplo, en junio la cantidad de ataques en comparación a mayo disminuyó en un 21,9%, mientras que la cantidad de usuarios atacados lo hizo en un 15,5%. Es posible que la publicación de la actualización U25 por parte de Oracle haya tenido mucho que ver con esa situación, ya que significaba la reparación de vulnerabilidades críticas en los programas de Java. Debido a la disminución de la cantidad de usuarios con versiones vulnerables de Java, es posible que los ciberdelincuentes hayan tomado medidas para atraer a nuevos usuarios únicos hacia sitios web maliciosos. La lógica es sencilla: cuantos más usuarios haya, mayor será la posibilidad de que alguno tenga una versión desactualizada de Java.
En general, estas fluctuaciones en la cantidad de ataques y de víctimas resultan preocupantes. Ambos números aumentaron considerablemente durante el año pasado. Sin embargo, además de los cambios en la dinámica del número total de ataques, también hemos visto otras tendencias curiosas en su clasificación por país en los últimos doce meses.
Parte 3. Una amenaza internacional: Geografía de los usuarios, ataques y fuentes
Geografía de los ataques: Las 10 principales víctimas
Uno de los resultados más interesantes en esta parte del estudio es el hecho de que la abrumadora mayoría de los usuarios atacados (un 79,6%) se encuentra en 10 países. La inmensa mayoría de los ataques (82,2%) también ocurrió en estos diez países.
Top 10 de los países más atacados (2012-2013)
La tabla de arriba muestra a EE.UU. en el primer lugar, como blanco del 26,17% de todos los ataques. Rusia ocupa la segunda posición, con el 24,53%, y Alemania, con el 11,67%, la tercera. La lista de los países más atacados se modificó durante el año.
Top 10 de los países más atacados (septiembre 2012-febrero 2013)
Top 10 de los países más atacados (marzo-agosto 2013)
Entre marzo y agosto de 2013, EE.UU. y Rusia intercambiaron sus lugares. Los ataques en EE.UU. aumentaron del 21,44% al 29,26%. Los ataques contra los usuarios rusos cayeron en un 6,82%, quedando en el 21,83%.
La “contribución” alemana al escenario de ataques tuvo un significativo aumento del 1,95%. En otros países también se registraron aumentos. Sólo la participación de Ucrania disminuyó en un 1%, cayendo del 3,38% al 2,38%. Los índices de otros países tuvieron leves variaciones.
Este es el panorama general:
Países atacados con más frecuencia, 2012-2013
Entre marzo y agosto, EE.UU. sufrió el doble de ataques que en los anteriores seis meses (2,5 millones en comparación a 1,19 millones, respectivamente). Entre marzo y agosto de 2013, en Alemania se detectaron más de un millón de ataques, mientras que entre septiembre y febrero, se registraron 0,58 millones. En general, EE.UU., Rusia y Alemania son los principales países en cuanto al número de ataques. Sin embargo, la dinámica de este aumento en estos países varía de forma notable.
Dinámica del aumento de ataques (2012-2013)
En Canadá, la cantidad de ataques aumentó en más del 118%, alcanzando los 0,24 millones y en Brasil también aumentó en un 72%, alcanzando los 0,22 millones. La cantidad de incidentes en Reino Unido aumentó en un 51%; en el segundo semestre del año se detectaron más de 0,25 millones de ataques. Rusia, España y Ucrania registraron los crecimientos más lentos.
No resulta sorprendente que a medida que la cantidad de ataques aumenta, también lo hace la cantidad de usuarios atacados. Los índices de los principales países son similares: casi la mitad de todos los usuarios atacados durante el periodo de investigación (48,27%) se encuentran en Rusia y EE.UU. Una de cada diez víctimas se encuentra en Alemania.
En cuanto a la intensidad de los ataques contra usuarios únicos, los líderes son Brasil y EE.UU.; durante el periodo de estudio, estos países registraron, respectivamente, 5,75 y 4,79 ataques por usuario, cifras significativamente por encima del promedio de otros países. Alemania ocupa la tercera posición con 4,04 ataques por usuario e Italia, con 3,82, se encuentra en la cuarta.
El Top 10 de países según la intensidad de los ataques es como sigue:
País | Ataques por usuario | % |
Brasil | 5,75 | 9,01% |
EE.UU. | 4,79 | 9,72% |
Alemania | 4,04 | 11,83% |
Francia | 3,65 | 12,10% |
Canadá | 3,58 | 12,78% |
España | 3,42 | 13,94% |
Inglaterra | 3,39 | 14,22% |
Rusia | 3,32 | 14,47% |
Ucrania | 3,04 | 14,55% |
¿A qué se debe el incremento en la intensidad de ataques? El gran número de vulnerabilidades descubiertas en Java y de usuarios descuidados con la actualización de sus programas crea las condiciones perfectas para que los ciberdelincuentes lancen ataques más intensivos.
Sabiendo ya quiénes fueron los más atacados y dónde, podremos ahora analizar la información sobre las fuentes de estos ataques para comprender mejor el problema.
Fuentes de ataques: Los nuevos actores
Un detalle muy sorprendente sobre la localización geográfica de muchas fuentes de los ataques, servidores para ser más claros y precisos, es que los países que alojan estos servidores suelen estar muy alejados de los países blanco de los ataques.
Entre septiembre y febrero, Kaspersky Security Network detectó 0,41 millones de servidores maliciosos alojados en 86 países.
Top 10 de países fuente de ataques (septiembre 2012-febrero 2013)
Entre marzo y agosto, Kaspersky Security Network detectó 0,8 millones de servidores maliciosos alojados en 78 países. El aumento total del número de fuentes de ataques es del 95,2%.
Top 10 de países fuente de ataques (marzo-agosto 2013)
Sin embargo, lo más interesante aquí no es que la cantidad de fuentes se duplicó en seis meses, sino que el Top 10 de los países cambió dramáticamente. Las cifras registradas en Alemania, una caída espectacular del 36,82% al 10,59%, colocaron a este país en el tercer lugar en el segundo semestre del año. Rusia se mantuvo en el segundo lugar pues sus cifras no variaron notablemente (del 19,57% entre septiembre y marzo al 18,40% entre marzo y agosto).
Alemania y EE.UU. intercambiaron sus posiciones. En el primer semestre, sólo el 12,99% de las fuentes de ataques se encontraban en EE.UU., mientras que en el segundo semestre aumentó al 31,14%.
En total, después de 12 meses de investigación, el Top 10 de los países fuentes de ataques queda así:
Top 10 de países fuente de ataques (2012-2013)
En total, durante el año se detectaron 1,21 millones de fuentes únicas de ataques en 95 países. Casi la mitad (63,06%) se encontraba en EE.UU. Alemania y Rusia. Otras fuentes importantes de los ataques con exploits se encuentran en Holanda (7,48%), Reino Unido (5,1%), República Checa (3,66%), Francia (2,93%), Canadá (2,47%) y Luxemburgo (1,72%). El restante 10% de las fuentes se encuentra en otros 85 países.
Es curioso que varios países se encuentren identificados como “atacantes” pero no figuran entre las principales víctimas de los ataques. Esto podría estar vinculado a que estos países (Holanda, República Checa, Letonia o Luxemburgo, por nombrar algunos), no se consideran como blancos importantes para los ciberdelincuentes, por lo que es menos probable que los proveedores de hosting reciban quejas sobre sitios maliciosos alojados en esos servidores. Por supuesto, estas compañías también pueden encontrarse en muchos otros países, pero las cifras son mayores en los países que hemos mencionado.
Durante el año, la fuentes de ataques cambiaron de la siguiente manera:
Dinámica del Top 5 de países fuente de ataques (2012-2013)
Al inicio del periodo de estudio, Alemania aparecía como un sólido líder, incluso a pesar de que la cantidad de fuentes de ataques cayera, excepto por el pico entre enero y marzo. EE.UU. mostró el más constante y significativo aumento en el número de fuentes de ataques, disparándose en enero hasta alcanzar su pico en julio. En marzo, la cantidad de servidores maliciosos localizados en Rusia aumentó de forma acelerada. Resulta interesante que a fines del periodo de estudio, la cantidad de servidores maliciosos en tres miembros del Top 5 (Rusia, Alemania y Holanda) mostrara cifras negativas, mientras que la de EE.UU. y Reino Unido aumentaba. Sin embargo, como se ve en la siguiente tabla, esto apenas afectó al número total de servidores maliciosos. Tal y como sucedió con la cantidad de ataques y de usuarios atacados, la cantidad de servidores disminuyó durante el verano.
Ataques, Usuarios, Fuentes
Esta tabla muestra la correlación entre el número de ataques, los usuarios atacados y los servidores desde los que se registraron intentos de descarga de exploits.
Durante el año, hubo un promedio de 11,64 intentos de descargas de exploits desde cada una de las más de 1,2 millones de direcciones IP únicas identificadas.
¿Son muchas? En primer lugar, hay que considerar que estos datos sólo reflejan a los usuarios de Kaspersky Lab que han encontrado dichas páginas. Pero en realidad podría haber muchas más descargas desde cada dirección IP. En segundo lugar, los exploits son una forma muy peligrosa de programas maliciosos. Una descarga exitosa puede ocasionar graves daños, incluyendo pérdidas financieras. En otras palabras, los daños que causan los ataques con exploits son desproporcionados en relación a su relativamente reducido número.
En cuanto a los ataques, durante el periodo de estudio sólo se detectaron seis vulnerabilidades críticas en Java. ¿Podrían realmente causar tanto daño a los usuarios desprotegidos? En la siguiente parte de este estudio nos concentraremos en este punto.
Parte 4. Análisis de los exploits que circulan en Internet
Durante el periodo de estudio, los productos de Kaspersky Lab detectaron 2.047 familias maliciosas diferentes categorizadas como exploits. Sin embargo, y esto es habitual, sólo nueve de ellas aparecen en la mayoría de los ataques lanzados.
Top 10 de exploits (2012-2013)
Un 81% de todos los ataques se lanzaron desde sólo nueve familias de exploits que atacaban nueve vulnerabilidades. La firma Exploit.Java.Generic significa que las tecnologías de seguridad en nube de Kaspersky Lab detectaron un comportamiento típico de exploits, pero que al momento en que se preparaban las estadísticas, estas detecciones no se identificaron en cuanto a qué vulnerabilidad de Java atacaban. Durante el periodo de estudio se registraron un poco más de 2 millones de este tipo de detecciones.
El siguiente cuadro es otra ilustración del estado lamentable de la actualización de los programas vulnerables. Más del 50% de las detecciones que las tecnologías de Kaspersky Lab registraron provenían de exploits que atacaban específicamente vulnerabilidades descubiertas en 2012. En 2013, representaban el 13,61% de los ataques.
Top 10 de exploits según el año en que se descubrieron las vulnerabilidades (2012-2013)
Podríamos suponer que las estadísticas agregadas de los últimos doce meses en realidad no aclaran la situación ya que estos exploits estaban diseñados para atacar vulnerabilidades que no se habían reparado en 2012, y tuvieron más tiempo para propagarse. De hecho, si analizamos en profundidad las cifras de agosto de 2013, vemos con claridad que las vulnerabilidades sin reparar en 2013 fueron la causa de más ataques en el último mes del verano que durante el año, en promedio.
Top 10 de exploits Java según el año en que se descubrieron las vulnerabilidades (agosto 2013)
Sin embargo, si observamos el Top 10 de exploits para el mismo mes, la situación es diferente.
Top 10 de exploits (agosto 2013)
CVE-2012-1723 sigue siendo el líder entre los exploits identificados. El primer anuncio público sobre esta vulnerabilidad se publicó en enero de 2012 y Oracle sacó un parche apenas unos días después. Como se puede ver en el gráfico de arriba, más de un año después, el 20% de los ataques sigue involucrando el exploit CVE-2012-1723.
Sin embargo, como hemos mencionado líneas arriba, durante el periodo de estudio se detectaron seis nuevas vulnerabilidades críticas. El siguiente gráfico muestra la modificación del horizonte de los ataques a medida que se detectaban nuevas grietas de seguridad en Java.
“La carrera de relevos” de los nuevos exploits (2012-2013)
Las líneas en el gráfico representan ataques con exploits descubiertos en el transcurso del año
La dinámica de los ataques con exploits que aparecieron durante el periodo de estudio evocan a una carrera de relevos. A medida que la cantidad de ataques contra una determinada vulnerabilidad empieza a disminuir, aparece otra y los exploits que la atacan toman el relevo y se ponen al frente de la carrera. Este cuadro también muestra cómo la vulnerabilidad CVE-2012-4681 estuvo involucrada en los ataques. Ese exploit en particular se detectó apenas tres días antes que comenzara el periodo cubierto por este estudio, y se trataba de una vulnerabilidad del tipo día-cero que representaba una amenaza crítica. Aunque Oracle publicó un parche de emergencia el 30 de agosto de 2012, el cuadro muestra que a pesar de una leve caída en el número de ataques en octubre, volvió a remontar a fines de noviembre.
El exploit que atacaba a la vulnerabilidad CVE-2012-5076 se descubrió a mediados de octubre de 2012 y tomó el relevo de CVE-2012-4681. De inmediato se hizo popular entre los ciberdelincuentes ya que era capaz de infectar a varias versiones de Java. Aunque el parche para la vulnerabilidad se publicó en el mismo mes, marzo de 2013, este exploit seguía en la lista de Blackhole, uno de los paquetes de exploits más comunes en el mercado negro porque podía atacar a una amplia variedad de versiones e infectar eficazmente a sus víctimas.
CVE-2013-0422 es otra vulnerabilidad del tipo día-cero que se descubrió en enero de este año. El respectivo parche se publicó rápidamente, pero la cantidad de ataques aumentó hasta febrero. A partir de ahí la cantidad de ataques comenzó a desacelerarse y se equilibró en un nivel de 25.000 detecciones por mes hasta agosto. Tal como su predecesor, este exploit estaba en la lista de Blackhole junto a otros conocidos paquetes de exploits. CVE-2013-0422 y CVE-2012-1723 se utilizaron en la campaña Icefog, recientemente descubierta por los investigadores de Kaspersky Lab.
La vulnerabilidad CVE-2013-0431, que apareció a principios de febrero, fue muy utilizada por una pandilla de ciberdelincuentes que propagaba Reveton, un troyano scareware. Lo que hace este programa es bloquear el equipo de la víctima y muestra un mensaje, supuestamente del FBI, señalando que el usuario ha violado la ley y tiene que pagar una multa. A principios de febrero de 2013, la policía española arrestó al grupo responsable de estos ataques, aunque esto no detuvo la propagación de este troyano. A mediados de febrero, circulaba información sobre un equipo infectado por Reveton como resultado de un ataque con exploits para la vulnerabilidad CVE-2012-0431.
La vulnerabilidad CVE-2013-1493 que apareció a principios de marzo también fue blanco de ataques con fines de espionaje industrial. Específicamente, según los datos de estudios independientes, un programa malicioso se instalaba después de que el exploit se conectaba con el servidor malicioso en la misma dirección IP que el servidor C&C utilizado en el ataque contra Bit9 en febrero de este año.
Los expertos de Kaspersky Lab encontraron que los exploits que atacan la vulnerabilidad CVE-2013-2423, detectados en junio de 2013, estaban involucrados en los ataques contra usuarios de Apple. Es como si estos ataques se hubiesen lanzado como parte de una campaña contra los usuarios que visitaban el sitio web del gobierno tibetano en el exilio, un tema que Kaspersky Lab analizó anteriormente.
Todos estos datos ilustran una vez más la forma en que los ciberdelincuentes se aprovecharon se las vulnerabilidades que se descubrieron durante el periodo de estudio. En general, hubo seis vulnerabilidades que definieron el flujo de ataques contra Java de septiembre 2012 a agosto 2013.
Seis familias en el número total de ataques con exploits
En términos absolutos, los ataques en los que estas familias estaban involucradas representaron al menos el 47,95% del total de ataques, o casi la mitad de todas las detecciones de exploits para java registradas por los productos de Kaspersky Lab.
Seis familias en el número total de ataques con exploits
Al mismo tiempo, más de la mitad (53,17%) del total de usuarios atacados se encontró al menos con un ataque con un exploit de una de estas seis familias.
Número de usuarios atacados con las seis nuevas familias de exploits del total de usuarios
Y fueron 12 meses de ataques contra Java. Sin embargo, antes de que presentemos los resultados de este estudio, miremos sólo uno de los ataques más peligrosos detectados por los productos de Kaspersky Lab durante el periodo de referencia.
Parte 5. Otros 4,2 millones de ataques neutralizados por la tecnología Automatic Exploit Prevention
El hecho principal en este estudio es que los productos de Kaspersky Lab bloquearon más de 14 millones de ataques con exploits para Java. De hecho, el sistema de seguridad de Kaspersky registró otros 4,2 millones de incidentes. Esta es la cantidad de ataques que neutralizó la tecnología única Automatic Exploit Prevention de Kaspersky Lab. Estos 4,2 millones de ataques habrían afectado a 2,25 millones de usuarios individuales en todo el mundo.
Por qué decidimos analizar por separado los datos de Automatic Exploit Prevention
La lucha contra los ataques con exploits es un proceso de varias etapas en las que intervienen varios subsistemas de seguridad de un producto antivirus. El primer paso se da a nivel de la página web, cuando la solución de seguridad, guiada por una base de datos de sitios web maliciosos, trata de bloquear los intentos de desviar al usuario hacia un sitio infectado con un exploit. Si esta medida no logra detener la amenaza, quizás porque el sitio web es de reciente creación y aún no está incluido en la lista de rechazados, entonces entra en acción el módulo file antivirus. Este módulo analiza la página buscando cualquier rastro de códigos maliciosos, en base a la base de datos de firmas y a las entradas heurísticas. Estas últimas se expanden con firmas que ayudan a detectar códigos maliciosos aún desconocidos en ese momento mediante rastros que son típicos de programas maliciosos conocidos. Si esta segunda alternativa no logra detener el ataque, entonces el software de Kaspersky Lab automáticamente escanea la base de datos de firmas de exploits. Si esta nueva defensa no logra neutralizar la amenaza, entonces se activa la tecnología proactiva de detección de exploits (Automatic Exploit Prevention es uno de los componentes de esta tecnología incorporada en los productos de Kaspersky Lab). Para conocer con mayor detalle el funcionamiento de este módulo, Vyacheslav Zakorzhevsky, líder de Vulnerability Research Group de Kaspersky Lab nos ofrece este artículo.
En este punto, debemos hacer notar que en el proceso de neutralización de exploits que acabamos de describir, Automatic Exploit Prevention, viene a ser una especie de “frontera final”. No es la última frontera de la protección, pues si por alguna razón un código malicioso logra evadir este módulo, lo que es altamente improbable, y descargar un programa malicioso en el equipo del usuario, otros componentes de la solución de seguridad de Kaspersky lab detectarán y bloquearán este programa malicioso. Sin embargo, la particularidad de Automatic Exploit Prevention reside en que disminuye considerablemente la probabilidad de que ocurra este último escenario.
A diferencia de otras tecnologías de seguridad diseñadas para detectar componentes maliciosos de códigos que penetran un equipo desde el exterior, el módulo Automatic Exploit Prevention analiza el comportamiento de los componentes legítimos en lugar de los componentes maliciosos. En el caso de Java, esto se refiere a los componentes del ambiente de programas instalados en el equipo del usuario. En general, el módulo Automatic Exploit Prevention tiene la “idea básica” de cómo uno u otro componente de Java debe o no debe funcionar. En el caso de los sistemas analíticos, las tecnologías detectan las anomalías en el comportamiento de los componentes de Java, y si el programa comienza a operar de una forma para la que no está diseñado, el módulo Automatic Exploit Prevention se activa y bloquea el exploit.
Esta tecnología tiene una importancia crucial para asegurar una protección de máxima calidad para el usuario contra ciberataques por una sencilla razón: los ciberdelincuentes están listos y dispuestos a invertir en el desarrollo de nuevas formas para evadir los sistemas de seguridad instalados en los equipos de sus víctimas potenciales.
Según la información que aparece en cualquier foro de hackers, incluso uno abierto al público, 1000 descargas exitosas de exploits cuestan entre 80 $ y 120 $. Y si el “cliente” de estos servicios quiere potenciar sus “ganancias” en los equipos infectados, con la incorporación de troyanos bancarios o codificadores, entonces el coste sube a 140-160 $.
El alto índice de éxito de este tipo de ataques hace que el desarrollo de paquetes de exploits efectivos sea una actividad lucrativa para los ciberdelincuentes, que están dispuestos a invertir tiempo y recursos en el análisis de soluciones antivirus para encontrar la forma de burlar sus tecnologías de detección.
El siguiente cuadro muestra la dinámica de estos más sofisticados ataques con exploits:
Dinámica de los ataques bloqueados por AEP
La variación en la disminución de la cantidad de detecciones del módulo Automatic Exploit Prevention después de marzo tiene dos factores principales: el constante mejoramiento de las tecnologías de detección en los productos de Kaspersky Lab, y el hecho de que los ciberdelincuentes sencillamente no quisieron sofisticar sus ataques.
Es suficiente volver al cuadro al inicio de este estudio:
Ataques (2012-2013)
Mientras que la cantidad de detecciones del módulo Automatic Exploit Prevention ha disminuido, la cantidad de ataques de otros componentes de seguridad de “nivel superior” de Kaspersky Lab ha aumentado.
Al mismo tiempo, se descubrieron tres vulnerabilidades críticas en Java, y los exploits que apuntaban a ellas tuvieron éxito en sus ataques. En otras palabras, los ciberdelincuentes cuentan con una amplia lista de blancos para atacar, y no necesitan esmerarse en camuflar exploits conocidos o buscar nuevos. Hasta junio, Oracle ya había reparado la mayoría de las fallas de seguridad en su producto, y la situación comenzó a cambiar. No tenemos ninguna razón para creer que todos los 4,2 millones de ataques bloqueados por el módulo Automatic Exploit Prevention eran ataques dirigidos, pero podemos afirmar, con un aceptable grado de certeza, que en comparación a otros, estos ataques fueron preparados con mucha dedicación. Tras los sobresalientes resultados obtenidos por los expertos en las pruebas de laboratorio, el módulo Automatic Exploit Prevention ha hecho lo propio en el campo de batalla.
Conclusiones. La importancia de las tecnologías sofisticadas en una época de ataques sofisticados
La principal conclusión del estudio puede resumirse en una frase: cualquiera que sea la rapidez con la que los desarrolladores publiquen las actualizaciones para reparar vulnerabilidades, eso todavía no resuelve el problema de los ataques con exploits. Oracle ha parchado todas las vulnerabilidades críticas y la información sobre estas reparaciones se divulgó durante el periodo de referencia de este estudio. En algunos casos, los parches se publicaron apenas un par de días después de descubierta la falla. Al mismo tiempo, la cantidad de ataques y de usuarios atacados sigue en alza.
Los usuarios no instalan con la debida rapidez las actualizaciones de seguridad, y los ciberdelincuentes, sabiendo que los programas de Java están instalados en millones de equipos, nunca se cansan de buscar vulnerabilidades en estos programas que les permitan lucrar ilegalmente.
Las soluciones de seguridad que pueden neutralizar eficazmente los ataques con exploits están convirtiéndose en una especie de frontera en el horizonte de la seguridad informática, lo que permite a los desarrolladores de los programas vulnerables contar con más tiempo para diseñar los parches, y a los usuarios de Internet con una protección adicional hasta la publicación de dichos parches. Además, estas soluciones disminuyen la rentabilidad de los esfuerzos de los ciberdelincuentes.
En términos monetarios, los 14,1 millones de ataques desarticulados por Kaspersky Lab significan la pérdida de al menos 1,4 millones de dólares (suponiendo que cada 1.000 descargas exitosas cuestan 100 $) para los ciberdelincuentes que buscan lucrar con la venta de descargas que al final quedan desbaratadas.
Para evitar los ataques con exploits y las pérdidas que pueden ocasionar, los expertos de Kaspersky Lab recomiendan a los usuarios particulares y corporativos seguir las siguientes reglas.
Para los usuarios corporativos:
- Una gran parte de los riesgos relacionados con las vulnerabilidades quedan neutralizados si la infraestructura corporativa incluye una solución para la administración de las estaciones de trabajo del personal de la compañía con funciones Patch Management, como las que se encuentran en Kaspersky Lab Systems Management. La función de gestión de parches, o Patch Management, ayuda a la rápida instalación de las actualizaciones en un sistema centralizado, y mantiene a los administradores al día sobre la condición de los programas que se ejecutan en todas las estaciones de trabajo de la red corporativa.
- La mayoría de los ataques que explotan vulnerabilidades en programas legítimos (incluyendo Java) comienzan con un enlace a un sitio web malicioso. Estos ataques pueden evitarse bloqueando estos enlaces con Web Control, un recurso especializado que ayuda a controlar los accesos de los usuarios.
- Estos recursos pueden ayudar a limitar estrictamente la lista de sitios web que los equipos corporativos están autorizados a visitar.
- La protección de las estaciones de trabajo puede ser mucho más eficaz con Application Control, que permite que sólo una limitada lista de aplicaciones se ejecuten en los equipos corporativos. Si se detecta una vulnerabilidad sin reparar potencialmente peligrosa en un programa muy empleado en la compañía, Application Control puede evitar que ese programa se ejecute en cualquier estación de trabajo de la red corporativa. Las avanzadas funciones Web Control y Application Control se realizan a través de la sólida plataforma para la seguridad de infraestructuras informáticas corporativas incorporada en Kaspersky Endpoint Security for Business.
- Los ciberdelincuentes son capaces de desarrollar exploits dirigidos a vulnerabilidades que llevan un tiempo sin reparar antes de que se publiquen las actualizaciones críticas de seguridad para software corporativo. Es por esto que la protección total de la infraestructura corporativa debe contar con avanzadas soluciones de seguridad con tecnologías capaces de neutralizar los ataques con exploits. La tecnología Automatic Exploit Prevention de Kaspersky Lab, en combinación con otras tecnologías avanzadas incorporadas en Kaspersky Endpoint Security for Business, es altamente efectiva en la neutralización de ataques con exploits.
Para los usuarios particulares:
- Los más modernos programas, como Java, Adobe Reader y Flash Player, contienen un sistema de actualizaciones. Es muy importante utilizarlo y no ignorar los avisos de instalación de actualizaciones, ya que esta es la forma más efectiva de que los programas sigan ejecutándose con sus debidas reparaciones en los equipos de los usuarios.
- Los usuarios pueden encontrar exploits no sólo en sitios web maliciosos. Los ciberdelincuentes suelen detectar fallas en conocidos y legítimos sitios web, como por ejemplo, los de medios de comunicación, redes sociales, tiendas online, y los utilizan para propagar sus exploits. Para protegerse eficazmente contra todo tipo de amenazas potenciales, incluyendo los ataques a través de programas vulnerables, hay que contar con una confiable solución de seguridad para navegar protegido en Internet, como Kaspersky Internet Security que contiene tecnologías especializadas capaces de bloquear virus, troyanos, phishing, spam y otros ataques complejos.
- Java es un software muy popular que permite que un ordenador ejecute contenidos multimedia en Internet. Sin embargo, Java no es requisito indispensable para trabajar con contenidos web. Entonces, si el usuario cuenta con todas las actualizaciones relevantes y con la mejor solución de seguridad posible, pero aún se siente inseguro, lo mejor que puede hacer es desactivar Java en su equipo. Esto puede evitar que se activen determinadas funciones en algunos sitios web; sin embargo, siempre es posible acceder a estos mismos recursos con una alternativa tecnológica más segura.
Informe de Kaspersky Lab: Evolución de los exploits Java en 2012-2013