Bombas ZIP ¿Qué son?

Una bomba ZIP es un archivo comprimido usando rutinas y algoritmos especiales que logran ratios de compresión increíblemente reducidos y que una vez descomprimidos pueden alcanzar varios petabytes de espacio en disco, lo que causaría un colapso del equipo.


Y aquí podría morirse el artículo…una bomba zip no es más que eso que se acaba de explicar.

Así que permítanme, por favorcito, engordar un poco este artículo haciendo un poco de historia acerca del formato de archivo ZIP.

A mediados de los 80, antes de nacer Windows, MSDOS era uno de los sistemas operativos en alza.

En ese mundo y ese entorno, nació uno de los primeros compresores de archivos de uso popular que verdaderamente era funcional. SEA (System Enhancement Associates), una empresa familiar de apenas 5 miembros, desarrolló ARC, un extraordinario (para la época) método de compresión de archivos escrito en C y Ensamblador.

Phil Katz, fundador de la empresa (también familiar) PKWARE, famoso por su extraordinaria habilidad como optimizador de código, copió el código C de ARC y lo tradujo hábilmente a código ensamblador. El resultado fue una optimización tremenda de las rutinas de ARC. Como resultado publicó el programa PKXARC como software de extracción freeware. Su gran velocidad de extracción lo hizo rápidamente el preferido del público. Poco después publica PKARC como software shareware. El programa ya era un completo extractor/compresor.

PKARC usaba exactamente los algoritmos del ARC original (había clonado el código a tal punto que incluso mantuvo errores ortográficos y comentarios), pero añadió algoritmos adicionales que hacían que los archivos comprimidos creados con PKARC fuesen incompatibles con el programa ARC original. Aunque usaban la misma extensión de archivo .arc, ARC no podía leerlos.

SEA se dio cuenta de que Phil Katz había no solo copiado su código…sino que prácticamente lo había clonado. SEA en principio pidió a Katz que le diera el código adicional para así poder dar al ARC original las mismas características que PKARC o que al menos lo compartiera con la comunidad. Katz se niega y SEA lo lleva a los tribunales por plagio. Katz y SEA llegan a un acuerdo. Katz debe dejar de distribuir PKARC y no puede seguir usando la extensión de archivo .arc.

Así, Katz retira del mercado PKARC. En su lugar lanza PKPAK, que simplemente es el mismo programa PKARC pero con otro nombre y que usaría una extensión de archivo diferente.

Al poco tiempo, reescribe completamente PKPAK, creando PKZIP, un compresor mucho mejor, más estable, con ratios de compresión mayores, más rápido, aunque básicamente seguía siendo un ARC.

SEA vuelve a hablar con Phil Katz, y aunque sigue considerando al nuevo compresor como un clon de ARC por muchas mejoras que le haya hecho, trata de evitar un regreso a los tribunales y le hace una oferta a Katz para que le venda los derechos de PKZIP. Katz la rechaza y SEA decide volver a demandarlo por plagio. SEA gana la demanda y así PKZIP muere y nace el formato conocido como ZIP.

Katz moriría en el año 2000 de una sobredosis de alcohol a la edad de 37 años.

La comunidad acusa a SEA de abusivo y de tratar de eliminar la competencia mediante estrategias legales. SEA se defendería asegurando que no le importaba que Katz usase su código de ARC, pero que no estaba dispuesta a que se lucrara con ello y que no habría problema si hubiese puesto a disposición de todo el mundo el código, pero lo acusaba de apropiarse de un código que no le pertenecía y que quiso lucrarse.

Y esta es la novela del nacimiento del formato de compresión ZIP.

No está claro si ZIP tiene o no derechos de autor, pero SEA nunca quiso demandar a nadie más, siempre y cuando las mejoras y modificaciones fuesen puestas a disposición libre de la comunidad.

Muchos programas (gratuitos y comerciales) usan los métodos y algoritmos de compresión ZIP, pero cada mejora, modificación y añadido debe ponerse a disposición de la comunidad.

Es tan popular que incluso Windows lo usa como una de las funcionalidades del Explorador de archivos desde sus primeras versiones. Office usa compresión ZIP para sus archivos XML. Open XML y OpenDocument (de Apache OpenOffice) usan también Zip en sus archivos. Hasta Mac usa librerías de compresión ZIP de forma integrada en su administrador de archivos Finder.

ZIP con el tiempo ha ido ampliando su funcionalidad y muchos programadores han agregado mejoras y métodos de compresión adicionales. Parece que las mejoras y cambios en ZIP no tienen fin.

Una de las características de ZIP es su forma de comprimir archivos. Muchos archivos ZIP contienen varios archivos almacenados dentro. ZIP comprime de forma independiente cada uno de los archivos que lo integran, por eso es posible descomprimir uno o varios archivos de forma independiente sin necesidad de descomprimir el resto.

Así mismo, un ZIP puede contener así mismo varios archivos igualmente comprimidos en ZIP…a esta característica se la denomina RECURSIVIDAD y SUPERPOSICIÓN DE ARCHIVOS…

Aunque un archivo ZIP tiene un límite de compresión de 1032 a uno, muchos programadores han experimentado y han logrado superar esta barrera de forma espectacular, a tal punto que ya desde mediados de los 90 han aparecido las llamadas "bombas ZIP". Estos archivos se presentan como un archivo comprimido en ZIP normal. Incluso su peso es súper ligero. El más famoso es "42.zip". Un archivo de tan solo 42 kilobytes (de ahí su nombre) que una vez descomprimido en su totalidad consumirá la increíble cantidad de 4.5 Petabytes de espacio en disco. Como se darán cuenta…incluso antes de terminar de descomprimirse totalmente, nuestro PC se verá sobrepasado y colapsará.

¿Cómo es posible que un pequeño archivo de 42 kilobytes logre reventarnos un PC?.

Precisamente la característica comentada antes de Recursividad y Superposición de archivos.

42.zip contiene en su interior 16 carpetas comprimidas en ZIP. Cada una de esas 16 carpetas a su vez contiene otras 16 carpetas comprimidas cada una…y esta estructura se repite al menos 5 veces. Así tenemos un ZIP con 5 capas de 16 archivos cada archivo de cada capa.

Una vez iniciado el proceso de descompresión, nuestro disco duro se irá colapsando hasta que ya no pueda procesar más.

Este tipo de archivos, aunque se pueden usar (y de hecho se usan) como malwares para colapsar equipos (especialmente usados para reventar servidores), se crearon en principio como simples experimentos, curiosidades y para poner a prueba los algoritmos con el propósito de mejorar los sistemas de compresión.

A continuación puedes acceder a la página web del autor (desconocido) de 42.zip para descargar dicha bomba ZIP.

Recuerda que este no es un archivo común y que si inicias el proceso de su descompresión nadie va a responder por las consecuencias….advertido estás

La particularidad de 42.zip es que usa la recursividad y diferentes capas de compresión…esto es…que primero descomprime 16 archivos…a continuación hace lo mismo con cada una de esas carpetas descomprimidas y así hasta 5 veces.

El investigador David Fifield ha logrado un resultado similar y ha desarrollado el archivo 46.zip.

Este archivo de 46 megas es capar de descomprimirse de una sola vez (no usa la recursividad).

Una vez descomprimido, el archivo resultante ocupará 4.5 Petabytes al igual que el anterior archivo comentado…pero en esta ocasión "de un solo viaje"

Como vemos, las bombas zip son archivos realmente dañinos, pero mostrándosenos muy inocentes.

No suelen usarse muy a menudo…la mayoría de antivirus logran detectarlos como objetos maliciosos, pero de vez en cuando alguien trata de usarlos…porque intentarlo cuesta muy poco y el daño puede ser mayúsculo.

Nos vemos en otra ocasión…sean malotes, pero con elegancia…chau.

0 comentarios