jueves, 31 de octubre de 2013

Mapa de la Actividad Global sobre Ataques DoS

Hace unos dias atras, Google anuncio la publicacion del Mapa de Ataque Digital, una herramienta que muestra la actividad global de ataques tipo rechazo de servicio (DoS), a nivel de paises. La información presentada, proviene del sistema de monitoreo e inteligencia ATLAS, de la empresa Arbor Networks. Este sistema recoge datos de más de 270 proveedores de servicio Internet (ISP), ubicados alrededor del mundo.

He aquí un vistazo al Mapa de Ataque Digital (si deseas ver el mapa completo, puede visitar el sitio http://www.digitalattackmap.com):




Es interesante ver por medio de este mapa, la cantidad de ataques DoS (así como la duración e intensidad de los mismos) que ocurre diariamente. Usualmente este tipo de ataques no se reportan en las noticias, por lo que se puede tener la impresión de que no ocurren muy a menudo.

Según el mapa, los ataques DoS entre EEUU y China ocurren practicamente de forma diaria. Algo similar se reporta en Brazil, en donde los ataques provenientes de direcciones IP desconocidas ocurren también a diario. Otros países en donde se reportan ataques DoS incluye (aunque en menor escala y frecuencia al caso de Brazil) a Chile, México, Panamá y Colombia. NOTA: Importante recordar que el mapa sólo es una muestra y no representa necesariamente la actividad en todos los países, ya que pueden haber países sin ISPs que reporten a ATLAS.

El mapa también muestra algunas preferencias de quienes lanzan estos ataques. Países que poseen un nivel alto de penetración del Internet, así como acceso a alto ancho de banda, son preferidos como fuentes del tráfico a generar en el ataque DoS. Es esta una de las razones por las que un alto número de las computadoras que forman parte de botnets, están localizadas en estos países.

Revisando el caso de Panamá, el mapa muestra (a la fecha de publicar este artículo) 21 ataques tipo DoS desde el 23 de julio del 2013:

FECHA
DURACION
PAIS FUENTE
Mbps MAX.
TIPO DE ATAQUE
7/23
11 hrs.
EEUU
6,889
Detector/Bandwidth
7/28
1 hr.
desconocido
3,954
Detector/Bandwidth
7/28
1 hr.
desconocido
7,460
Detector/Protocol
8/9
28 min.
EEUU
6,203
Misuse/IP Fragment
8/9
26 min.
EEUU
11,611
Detector/Protocol
8/9
27 min.
EEUU
11,662
Misuse/UDP Misuse
9/1
1 hr.
desconocido
12,491
Misuse/IP Fragment
9/1
1 hr.
desconocido
19,987
Detector/Protocol
9/25
9 min.
desconocido
7,681
Misuse/IP Fragment
10/12
30 min.
EEUU
4,429
Detector/Bandwidth
10/12
15 min.
EEUU
3,055
Detector/Bandwidth
10/12
30 min.
desconocido
2,361
Detector/Bandwidth
10/27
7 min.
desconocido
389
Detector/Protocol
10/27
7 min.
desconocido
354
Detector/Protocol
10/29
8 min.
desconocido
403
Detector/Protocol
11/19
19 min.
EEUU
2,703
Detector/Bandwidth
12/19
9 min.
desconocido
4,558
Detector/Bandwidth
1/26
14 min.
desconocido
316
Detector/Protocol
4/8
1 hr.
desconocido
3,747
Detector/Protocol
4/10
36 min.
desconocido
16,940
Detector/Protocol
4/10
1 hr.
desconocido
15,442
Detector/Bandwidth


De esta tabla, es fácil ver como ataques DoS representan una clara amenaza a las redes y especialmente en países pequeños como Panamá. Por ejemplo, los dos ataques ocurridos el 1 de septiembre de 2013, alcanzaron más de 12 y 19 Gbps. Esto equivale a 20,000 clientes con enlace de 1Mbps. Según estadisticas de la Autoridad de Servicios Públicos de Panamá, existen más de 263 mil usuarios de tipo residencial (año 2012), lo que sugiere un total de 61.2 mil conexiones residenciales. En otras palabras, se requiere un tercio de todos los clientes residenciales en Panamá para llevar a cabo los ataques observados a principios de septiembre, considerando que cada cliente tiene una conexión de al menos 1Mbps.

NOTA: Se actualizó la tabla al 6 de mayo de 2014.

sábado, 19 de octubre de 2013

Java... o cuando la seguridad no determina lo que debemos proteger

Hablando de seguridad, el lenguaje de programación Java (y su correspondiente máquina virtual) ha estado por años en el ojo de la tormenta, con un incremento sustancial en el número de vulnerabilidades reportadas, así como aquellas consideradas de alto riesgo (que reportan un puntaje de 7.0 o mayor, según el sistema CVSS). Bajo este escenario, dos preguntas saltan a la mente de un investigador/especialista de seguridad: (1) es seguro utilizar este lenguaje de programación al desarrollar aplicaciones, especialmente para aquellas que son utilizadas a través de una red o el Internet? (2) es el incremento en vulnerabilidades el resultado del creciente interes de atacantes, debido a la popularidad de Java?

Veamos las estadísticas. Desde 2008, se han encontrado 384 vulnerabilidades al lenguaje Java. En comparación, sólo se reportaron 51 de 2001 a 2007. Aún más preocupante, el número de vulnerabilidades de alto riesgo pasó de 22 (2001 a 2007) a 213 (desde 2008). La situación se ha tornado tan preocupante que US CERT, la entidad de los EEUU encargada de diseminar información sobre problemas de seguridad entre organizaciones no militares, ha recomendado deshabilitar Java en los navegadores web, incluso después de haber instalado la versión más reciente del lenguaje. Y empresas como Apple incluso decidieron deshabilitar Java de forma remota entre todos sus usuarios.

Fuente: cvedetails.com (Octubre 2013)

Las respuestas a las dos preguntas del primer párrafo ciertamente están relacionadas. El incremento en vulnerabilidades reportadas puede atribuirse parcialmente a la creciente popularidad de Java. Y esta situación podría claramente alejar a muchas organizaciones a utilizar el lenguaje, al considerarlo peligroso ...pero la situación es otra.

La popularidad de Java parece estar tan fuerte como nunca. El sitio web langpop.com que estudia diversos sitios relacionados con lenguajes de programación (como portales de anuncios de trabajo para programadores y repositorios de programas/código fuente), coloca a Java como el segundo lenguaje de programación más popular, detras tan sólo del lenguaje C. Curiosamente este último lenguaje también es conocido por sus problemas de seguridad, particularmente por el tema de desbordamiento de pilas o búfers.

El índice TIOBE sobre popularidad de lenguajes de programación, que existe hace más de 30 años y se actualiza mensualmente, también colocó a Java en el segundo lugar en su evaluación de Octubre 2013. De acuerdo a TIOBE, Java sólo ha ocupado las primeras dos posiciones por los últimos 11 años, como se muestra en la figura de abajo.

Fuente: tiobe.com (Octubre, 2013)

En la era del web, redes sociales, miles de millones de usuarios y 'Big Data', Java se ha convertido en un fuerte candidato a la hora de seleccionar un lenguaje de programacion. Su capacidad para producir aplicaciones que cumplan con los requisitos de escalabilidad y rendimiento necesarios en esta era, es difícil de alcanzar con otros lenguajes. La flexibilidad que ofrece por medio de su máquina virtual (JVM) para ejecutar los programas Java en múltiples plataformas y el hecho de que existen versiones código libre de la plataforma Java, hace la decisión aún más sencilla para los programadores a la hora de seleccionar.

Grandes compañías como Google, Facebook, LinkedIn, Twitter y Square, utilizan Java como parte de su estrategia para producir aplicaciones y servicios que les permita crecer y ajustarse a las demandas del creciente mercado que encuentran en Internet. Un reciente artículo de la revista de tecnología Wired, incluso habla de la segunda llegada o advenimiento de Java en la era del web. Aunque esto nos parece un poco exagerado, Java nunca desapareció, si es cierto que el lenguaje está ayudando a que empresas puedan cumplir con los exigentes requisitos de esta era.

Entonces, volviendo al tema de seguridad, que hacer con un lenguaje extremadamente popular y ventajoso pero que se encuentra en el ojo de la tormenta, por sus inherentes problemas de seguridad? La situación con Java es un ejemplo más de las limitaciones con las que contamos los especialistas de seguridad. Es iluso pensar que sólo nosotros debemos definir los requisitos y restricciones sobre las cuales diseñar y construir aplicaciones y sistemas. Somos parte de un conjunto de actores que definen estos requisitos, lo que produce un escenario usualmente complicado y no siempre claro para nuestros objetivos de seguridad. Sin embargo, y es de esperarse, que debemos actuar y ser efectivos bajo este escenario. Porque si algo es claro, es que parte de nuestro trabajo es manejar y asegurar aplicaciones escritas en Java.