ZIP-Bombe neu gedacht

ZIP-Bomben (oder Archivbomben im allgemeinen) sind ZIP-Dateien, welche beim dekomprimieren sehr groß werden. Der bekannteste Vertreter dieser Spezies ist die 42.zip. Bei dieser ZIP-Datei werden rekursiv immer weitere Dateien entpackt. Dies führt dazu das die 42 Kilobyte große Datei am Ende 4,5 Petabyte Speicherplatz auf der Festplatte benötigt. Solche Dateien werden meist benutzt, um Virenscanner in die Knie zu zwingen, da diese versuchen die Datei zu entpacken und dabei in den meisten Fällen scheitern.

David Fifield hat nun eine neue Art von ZIP-Bombe gebaut, welche ohne Rekursion auskommt. Das Problem ist das für die 42.zip alle Dateien entpackt werden müssen und nicht nur die erste Ebene. Er verfolgte zwei Ziele: maximale Kompressionsrate und das Ganze sollte möglichst kompatibel bleiben:

Maximize the compression ratio. We define the compression ratio as the the sum of the sizes of all the files contained the in the zip file, divided by the size of the zip file itself. It does not count filenames or other filesystem metadata, only contents.

Be compatible. Zip is a tricky format and parsers differ, especially around edge cases and optional features. Avoid taking advantage of tricks that only work with certain parsers. We will remark on certain ways to increase the efficiency of the zip bomb that come with some loss of compatibility.

Mit dieser neuen Art der ZIP-Bombe, welche überlappende Dateien innerhalb des ZIP-Container nutzt, kommt er auf folgende Werte:

zbsm.zip	42 kB	→	5.5 GB
zblg.zip	10 MB	→	281 TB
zbxl.zip	46 MB	→	4.5 PB (Zip64, less compatible)

Im Detail wird die neue ZIP-Bombe auf bamsoftware.com erklärt; dort lassen sich auch entsprechende Beispiele herunterladen. Nur entpackt werden sollten die Beispiele natürlich nicht.