Cuando descomprimimos un archivo debemos llevar cuidado, ya que el resultado suele ocupar bastante más y puede dejarnos sin espacio en el ordenador. El ratio máximo de compresión de la mayoría de zips está marcado en 1032 a uno, aunque en muchas ocasiones tampoco se alcanza. Sin embargo, desde 1996 se tiene constancia de la existencia de las llamadas "bombas zip" o lo que se conoce popularmente como "el zip de la muerte". Un archivo que sobrepasa este límite de descompresión e inunda nuestro ordenador con miles de millones de bytes.
¿Cómo funcionan estos zips? ¿Por qué explotan a estos niveles y en qué se basan para que haya tanta diferencia? La respuesta la debemos obtener en la recursividad y superposición de archivos.
42.zip, un archivo de aparentemente solo 42 KB
Una bomba zip es un archivo comprimido como cualquier otro. Su potencial peligro está en que es muy fácil de esconder y compartir. Pero al descomprimir es cuando colapsa el ordenador al liberar una gran cantidad de datos.
El zip de la muerte más conocido es 42.zip, un archivo con un récord de compresión de 106.000 millones a uno. Su autor es desconocido, pero el ratio es impresionante. Estamos hablando de un archivo que pesa únicamente 42 kilobytes (de ahí el nombre) y que al descomprimirse puede alcanzar los 4.3 gigabytes. Pero la clave está en que el archivo contiene cinco capas, cada una con 16 archivos. Lo que en total una vez liberados todos ocupan un total de 4.5 petabytes.
Tal que así:
- 16 x 4294967295 = 68.719.476.720 (68GB)
- x 16 = 1.099.511.627.520 (1TB)
- x 16 = 17.592.186.040.320 (17TB)
- x 16 = 281.474.976.645.120 (281TB)
- x 16 = 4.503.599.626.321.920 (4,5PB)
El famoso archivo está disponible para descargar desde la página web del autor. Aunque no recomendamos a nadie que lo haga, salvo que dispongáis de los conocimientos necesarios para tratarlo con seguridad.
El formato zip tiene muchas variantes aunque con el paso del tiempo se ha convertido en habitual en sistemas operativos como Windows o MacOS. Parte de la razón de la existencia de estas bombas zip es debido al algoritmo que rige la descomprensión, que permite cambios tan grandes en el tamaño. Para hacernos una idea: un archivo comprimido sería por ejemplo "LOL x 10^12", pero al descomprimir sería "LOL, LOL, LOL...".
Nuevas bombas zip: de 46MB a 4.5PB
Durante años, estos zips de la muerte se han utilizado básicamente como una forma de malware, como por ejemplo para atacar sitios basados en Wordpress. Pero recientemente hemos visto nuevos estilos, más avanzados. Uno de ellos es la "bomba zip infinita", donde lo que hace el archivo es replicarse y crear copias de sí mismo. Otro de ellos, tal y como informa Vice, ha sido publicado recientemente por David Fifield.
El trabajo de Fifield es interesante porque ha creado un zip de la muerte con una filosofía diferente al de 42.zip. Mientras que el anterior logra un ratio impresionante a base de múltiples capas, en este caso tenemos únicamente un único archivo que al descomprimir explota. Una bomba zip no recursiva que establece el ratio en 28 millones a uno.
El autor nos ofrece tres archivos de ejemplo. El primero donde pasamos de 42kB a 5.5GB, un segundo de 10MB a 281TB y un tercero de 46MB a 4.5 Petabytes, este último únicamente compatible con el formato Zip64.
Pongámonos en el caso que descargamos el archivo de 46MB. Con 42.zip teníamos que descomprimir varias veces, pero aquí es solo una vez. Un simple proceso para colapsar por completo el ordenador. ¿Cuál es la diferencia? Fifield explica que en vez de apostar por la recursividad lo que ha hecho es solapar archivos.
Los antivirus sí las detectan
Afortunadamente para la seguridad de los usuarios, esta técnica de la bomba zip es bastante conocida desde hace muchos años. Pese a que el archivo comprimido pasa desapercibido en el sistema, una vez vamos a descomprimirlo es cuando los antivirus lo detectan como un posible peligro y nos advierten antes de iniciar el proceso.
El zip de la muerte no está catalogado como un malware propiamente dicho. Pese a eso, en el caso de 42.zip detectan que hay múltiples capas por lo que puede ser dañino. Adicionalmente, como explica el investigador de seguridad de Google, Tavis Ormandy, las nuevas bombas zip no recursivas también son detectadas.
Otros ataques que colapsan el sistema con explosiones de datos
La idea detrás del zip de la muerte es similar al de otros ataques. Se trata de colapsar al sistema u ordenador en base a una gran cantidad de datos que no pueden procesar. Algunos ejemplos de este tipo de ataques serían por ejemplo los DDoS (Distributed Denial of Service). Uno muy conocido y similar en concepto sería el de "Mil millones de risas", basado en XML y donde se repite exponencialmente el uso de la palabra "LOL" al cargar el código.
Sin tratarse de ningún gusano o virus, otro ataque similar es la 'bomba fork' o 'wabbit'. En este caso, es un archivo que crea copias de sí mismo (como conejos). Una técnica de la que los usuarios de Linux tampoco se libran, ya que también funciona con archivos TAR.
En Xataka | Cómo evitar que los ZIP se muestren como carpetas en Windows
Ver 25 comentarios