viernes, 23 de agosto de 2019

Bombas Zip

Bombas Zip

Existen muchas maneras de atacar un ordenador. A veces nuestro dispositivo sencillamente se encuentra en el lugar y el momento equivocados y es objeto de ataques, y nuestra exitosa defensa depende de que tengamos un buen y actualizado antivirus, un firewall activo y un sistema operativo y aplicaciones actualizadas; en fin, que no haya huecos ni rendijas  (agujeros de seguridad) por donde pasar o introducir nada.
Pero en otras ocasiones la manera de atacar el dispositivo es engañando al usuario para que él mismo abra la puerta.
Generalmente la gente escucha de contaminarse por visitar páginas web infectadas (el primer caso) o por ejecutar un archivo ejecutable (.exe) o dándole click a un enlace (link) que aparentando otra cosa, en realidad pasan a activar un programa malicioso (el segundo caso). Aunque ambas formas necesitan de conocimiento y creatividad, estas últimas acciones, que requieren que el propio usuario apriete el botón que activa la bomba, son las más ingeniosas por su nivel de manipulación psicológica (ingeniería social[1]).
Existen muchos tipos de  malware y aunque la mayoría buscan un fin económico, también existen los que sólo desean dañar el ordenador objetivo.
En esta ocasión hablaré de una de las menos comunes,  la llamada bomba zip[2]
Los archivos comprimidos ya llevan mucho tiempo con nosotros en el mundo informático. Es un archivo que contiene uno o más archivos y/o carpetas y que ocupan un espacio que puede llegar a ser muy inferior al de su contenido en estado normal (descomprimido). Con un algoritmo de compresión estándar se pueden comprimir datos entre 0,5 y 20 veces su tamaño, dependiendo de lo que contenga. Uno de los formatos comprimidos más populares es el zip[3].
Usando ingeniería social el propio usuario activa una bomba cuyo efecto expansivo colapsa el ordenador al ‘descomprimir’ un archivo que crece continuamente de tamaño, más allá de cualquier capacidad en un ordenador. Este efecto no sólo bloquea la aplicación y el sistema (denegación de servicio) al requerir una gran cantidad de tiempo de proceso y demandar ingentes cantidades de espacio de memoria y disco. También puede llegar a impedir el inicio del ordenador, al no tener espacio para poder ejecutar las aplicaciones de arranque del sistema operativo, sino que incluso puede llegar a provocar problemas varios debidos a la alta temperatura que pudieran alcanzar algunos componentes del ordenador.
Hasta ahora las bombas zip utilizaban la recursividad, bucles que se van generando uno dentro de otro, volviendo al punto de partida haciendo así un ciclo infinito. Se tiene constancia de que existen desde 1996.
En el caso de las bombas Zip-Kuin, Cox y Ellingsen el archivo zip contiene una copia de sí mismo, de esa manera generan un círculo recursivo, pudiendo en teoría expandirse indefinidamente.
Se llegó a temer que las bombas zip se enviaran con el fin de colapsar a los antivirus, para después lograr introducir otro tipo de malware[4]. Pero actualmente la mayoría de los antivirus poseen la capacidad de analizar el comportamiento de descompresión de un archivo comprimido, permitiendo la ejecución de sólo algunas capaz de recursividad y deteniendo el proceso antes de que pudieran causar un desbordamiento de búfer, una condición de falta de memoria o un exceso de tiempo de ejecución del programa, de espacio en disco o memoria.
Un ejemplo famoso es el conocido como 42.zip[5], de autor desconocido, que posee una relación de compresión de 106.000 millones a uno; lo que ha sido todo un récord hasta ahora (la mayoría de zips usan el algoritmo de compresión DEFLATE cuyo ratio máximo de compresión está marcado en 1032 a uno). De los 42 kilobytes que ‘pesa’ el archivo comprimido se descomprime expandiendo 16 archivos, cada uno de los cuales alcanza los 4,3 gigabytes, totalizando 68 gigabytes. Pero el 42.zip posee 5 capas, por lo que en total tratará de expandirse hasta los 4,5 petabytes.
El detalle es que en muchas aplicaciones no es compatible o no se activa la recursividad; aún así sólo la primera capa tiene buenas posibilidades de lograr hacer daños. Además los antivirus actuales al detectar diversas capas de recursividad anulan el proceso.
David Fifield ha creado la que ahora se considera la bomba zip con mayor capacidad de expansión: el zbxl.zip. El archivo pesa 46 MB[6] (un tamaño que no se considera grande actualmente) y que puede expandirse hasta los 4,5 Petabytes[7] (si usamos como referencia discos duros de 2 TB, sería el equivalente a 2.200 discos).
Tal vez el aspecto más importante de esta nueva bomba es que no usa el recurso de la recursividad para alcanzar este nuevo récord, por lo que se descomprime en una sola ronda o capa, con el estándar algoritmo DEFLATE, que es compatible con la mayoría de los analizadores zip. En cambio, utiliza una técnica de superponer ficheros unos encima de otros, lo que le hace más difícil de detectar por parte de los actuales antivirus. Y ese es justamente el objetivo que ha tenido el investigador David Fifield, proporcionarle a las empresas creadoras de antivirus la posibilidad de tener material de estudio para que se preparen de forma preventiva, antes de que los ciberdelincuentes usen esta posibilidad.
Como curiosidad, hay quien ha creado bombas zips para defender sitios web  WordPress de las herramientas de escaneo de vulnerabilidades. Puede verse un ejemplo aquí.
Aunque las bombas zip no son una amenaza común, debemos estar concientes de su existencia.

Francisco Javier Castañé Sanz
Técnico Informático
23/08/2019


Fuentes:

#bombaszip, #malware, #zbxl.zip, #42.zip



[1] Ingeniería social, en el ámbito informático, es la práctica maliciosa que se realiza con el fin de obtener información, acceso o privilegios en sistemas informáticos sin que el usuario sea consciente realmente de todas las implicaciones y con fines beneficiosos sólo para quien está realizando la manipulación.
[2] También ha sido llamado el Zip de la muerte.
[3] Creado en 1989 por Phil Katz, pero originalmente sólo era una optimización de la velocidad de ejecución del ARC de Thom Henderson de 1985.
[4] Malware es un término informático que indica cualquier tipo de programa cuyo objetivo sea malintencionado.
[5] Está disponible libremente en la página de su autor (no recomiendo hacerlo, a menos que seas un experto)
[6] Esta versión usa extensiones de 64 bits. La versión de 32 bits (zblg.zip) pesa sólo 10 MB y se expande hasta los 281 TB; suficiente para colapsar a la gran mayoría de los ordenadores.
[7] Petabyte son 1000 Terabytes.

No hay comentarios:

Publicar un comentario