Archiv-Abgründe: ZIP-Malware-Tricks ausgepackt & erklärt
In ZIP als Angriffsvektor steckt mehr als manche glauben – und formatspezifische Eigenarten sorgen immer wieder für böse Überraschungen.

(Bild: erstellt mit Bing Image Creator durch ovw)
ZIP-Archive sind als Bestandteil von Malware- und Phishing-Kampagnen Klassiker im negativsten Sinne. Immer wieder ziehen Hacker neue Tricks aus dem Hut, wie sie damit entweder Schutzfunktionen umgehen oder sogar direkt Angriffe starten können. In den letzten Monaten entdeckten Forscher mehrfach Malware, die sich in ZIP-Dateien gezielt an Antiviren-Software vorbeimogelte.
Deshalb erklären wir die typischen Tricks der Kriminellen anhand aktueller Phishing-Kampagnen mit aneinandergehängten Archiven sowie neu aufgetauchter Varianten erprobter Anti-Analyse-Tricks. Und wir zeigen, dass eine fünf Jahre alte Archivbombe noch heute Zündstoff für Angriffe bietet.
Wann ist ein ZIP ein ZIP?
Will man die Taktiken der Angreifer verstehen, kommt man um ein wenig Theorie zum ZIP-Format nicht herum. 1989 vom Programmierer Phil Katz entwickelt und veröffentlicht, stellt es flexible Container für Dateien beliebigen Typs bereit und kann darüber hinaus auch die zugehörige Verzeichnisstruktur abbilden. Optionale, verlustfreie Kompression hilft, Speicherplatz zu sparen und Daten schneller zu übertragen. Neben diesen offensichtlichen Vorzügen dürfte auch der Public Domain-Status des Archivformats dazu beigetragen haben, dass es sich schnell verbreitete und etablierte.
Heute ist ZIP ganz selbstverständlich – und oft ohne dass wir uns dessen überhaupt bewusst sind – fester Bestandteil verschiedenster Softwareprojekte und -anwendungen. So sind E-Books mit .epub-Endung, moderne Office-Dateien (z.B. .docx, xlsx) sowie Java-Archive und Android-Packages (.jar, .apk) technisch erst einmal ZIP-Archive, deren Inhalt man sich nach Umbenennen in .zip mit einem beliebigen Packprogramm oder auch mit Bordmitteln des Betriebssystems anschauen kann. Erst zusätzliche spezifische Pflichtkomponenten und Strukturvorgaben von außerhalb der ZIP-Spezifikation machen die jeweilige Datei zum Word-Dokument oder zur Android-App.
Damit ein ZIP spezifikationsgemäß ein ZIP ist, bedarf es hingegen nur zweier Elemente am Archivende: eines sogenannten Central Directories als "Inhaltsverzeichnis" sowie eines unmittelbar dahinter folgenden End of Central Directory-Eintrags (EOCD).
(Bild: Wikimedia Commons / Niklaus Aeschbacher / CC BY-SA 3.0)
Klassischerweise analysieren Parser das ZIP-Format von hinten nach vorn. Sie identifizieren zunächst das EOCD anhand einer feststehenden, mit "PK" (für Phil Katz) beginnenden Byte-Signatur und entnehmen ihm unter anderem Informationen zu Größe und Speicheradresse (Offset) des Central Directory. Dieses wiederum widmet jedem einzelnen Element im Archiv einen Eintrag mit Metadaten und den Offsets zu den lokalen, ebenfalls mit "PK" beginnenden Dateiheadern. Jedem Element ist ein solcher Header mit Informationen vorangestellt, die zum korrekten Entpacken nötig sind.
Wer tiefer in die ZIP-Struktur eintauchen will, dem sei das detaillierte "ZIP Archive Walkthrough" von Sicherheitsforscher Corkami empfohlen.
ZIP, ZIP, hurr...aaaaah!
Die Les- und Entpackbarkeit des ZIP-Formats von hinten nach vorn macht es clever mit Dateiformaten kombinierbar, die anhand eines Headers am Dateianfang identifiziert und vereinfacht gesagt "von vorn gelesen" werden. Praktischen Nutzen hat das Anbauen eines ZIPs an ein anderes Format, etwa im Kontext ausführbarer Installationsdateien, die zusätzliche Inhalte zur Laufzeit platzsparend aus dem Archiv extrahieren.
Bösewichte können diese Besonderheit der ZIP-Struktur aber auch missbrauchen, um schädliche Inhalte zu verstecken – so wie in einer recht aktuellen Malware-Kampagne. Die baut zwei ZIP-Dateien aneinander, wie es unter Windows etwa per copy /b und unter Linux mit cat leicht zu bewerkstelligen ist.
Wie ein Forscherteam im Blog der Firma Perception Point erläuterte, flattert das Ergebnis dieser Operation dann als Anhang einer Phishing-Mail in Posteingänge. Das zusammengesetzte Archiv nutzt dabei die Endung ".rar". Von gängigen Packprogrammen wird dies nicht bemängelt, obgleich das RAR- mit dem ZIP-Format technisch nichts zu tun hat. Sie beherrschen beides und verlassen sich nicht auf Dateiendungen.
Lesen Sie auch
Malware: Erkennung entgehen durch angeflanschtes ZIP
Allerdings reagieren nicht alle Programme gleich auf diese Manipulationen. Die Forscher untersuchten den zusammengesetzten Anhang mit den verbreiteten (Ent-)Packprogrammen 7-Zip, WinRAR und dem Windows-Dateiexplorer. Dabei stellten sie fest, dass ersteres lediglich den Inhalt des "vorderen" ZIPs – ein harmloses, zur Phishing-Masche passendes PDF – erkannte und auspackte. Die beiden letzteren enthüllten stattdessen einen gefährlichen Trojaner im zweiten ZIP.
(Bild: Perception Point / Screenshot)
Ursache ist einmal mehr eine Ungenauigkeit der Spezifikation: Gemäß der darf jedes ZIP nur ein einziges Central Directory beinhalten. Wie man das aber findet, lässt sie offen. Weil die Parser-Komponenten der Packprogramme bei dieser Suche unterschiedlich vorgehen, werden sie im konkatenierten ZIP an unterschiedlicher Stelle fündig – und entpacken in der Konsequenz auch unterschiedliche Inhalte.
Die Malware-Autoren wissen um die Tatsache, dass AV-Scanner häufig quelloffene Programmbibliotheken wie die des 7-Zip-Projekts für das ZIP-Handling nutzen. Mittels speziell zugeschnittener Angriffe können Sie die Schadcode-Erkennung also umgehen – und erreichen zielsicher die Opfer der Kampagne, die beim Öffnen wiederum eher auf Bordmittel oder (gerade angesichts der .rar-Endung) auf WinRAR zurückgreifen.
Hinterrücks angegriffen – nicht zum ersten Mal
Der aktuelle Phishing-Feldzug wird mit Sicherheit nicht der letzte dieser Art sein. Denn die Vorgehensweise von 7-Zip beim Parsen ist, wie die Entwickler des Programms gegenüber Perception Point bestätigten, eben kein Bug, sondern dessen beabsichtigte Funktionsweise, an der etwas zu ändern kein Anlass besteht.
Dabei sind Angriffe per angebautem ZIP schon seit Jahrzehnten bekannt. Auf ein recht großes Medienecho stieß eine Variante, die Sicherheitsforscher 2008 im Rahmen eines Proof-of-Concept-Angriffs namens GIFAR präsentierten. Anders als bei der aktuellen Kampagne wurden hier nicht zwei ZIPs konkateniert: Das Kofferwort GIFAR ergibt sich aus der Kombination eines GIF-Bildes mit einer ihm angehängten Java Archiv-Datei (.jar). Wie schon erwähnt, handelt es sich bei letzterer im Grunde um ein ZIP-Archiv – üblicherweise aufgestockt um eine sogenannte Manifest-Datei mit Informationen zum Inhalt. Das von den Forschern erstellte JAR-File enthielt ein Java-Applet zur Ausführung im Browser.
Die aus GIF und JAR zusammengebaute Datei wäre, eingebettet in eine Website, Betrachtern als normales Bild angezeigt worden. Im Hintergrund allerdings hätte die Java-VM des Browsers den verborgenen Applet-Schadcode ausführen können. Die konkrete Angriffsidee des Forscherteams war es, derlei Bilder auf Social Media-Profilen zu platzieren und dorthin gelockten, im sozialen Netzwerk angemeldeten Opfern heimlich Nutzerdaten abzuluchsen.
Mittlerweile ist die Java-Unterstützung gängiger Browser aufgrund massiver Sicherheitsrisiken Geschichte. Doch die grundsätzliche Idee des Aneinanderbauens von ZIP- und anderen Dateitypen lässt Angreifern weiterhin viel Raum für neue Angriffsideen.
Kleine Details mit großer Wirkung
Um über AV-Scanner und Packprogramme hinaus auch Werkzeuge zu verwirren, die Profis zur Analyse verdächtiger ZIP-Strukturen nutzen, bedarf es mitunter nur winziger Manipulationen des Dateiformats.
So brachten ein zusätzliches Byte am Anfang und ein fehlendes am Ende einer Open Office XML-Datei (OOXML, basierend auf ZIP) das frei verfügbare Analysetool zipdump.py ins Straucheln. Wie dessen Autor, der Sicherheitsforscher Didier Stevens, in einem Blogeintrag schilderte, wusste das Werkzeug schlicht nicht, wie es das einzelne Byte direkt vor dem "PK" des ersten lokalen Headers im Archiv interpretieren sollte. Das Fehlen des allerletzten Bytes lief zusätzlich auch noch der Zip-Formatspezifikation zuwider, da es als (wenn auch optionales) Kommentarfeld des EOCD reserviert ist.
Das betreffende Dokument, Bestandteil einer Phishing-Kampagne mit Corona-Bezug, schmetterte Analyseversuche erfolgreich ab: "File is not a zip file", urteilte zipdump.py. Mit dem offenbar robuster parsenden Microsoft Word ließ es sich indes problemlos öffnen.
(Bild: blog.didierstevens.com)
Stevens besserte nach: Mittlerweile kann sein Tool dank speziellem Switch mit solchen "malformed ZIP files" umgehen und übrigens auch konkatenierte ZIP-Dateien als solche identifizieren. Als eines von mehreren neuen Analysewerkzeugen ist zipdump.py Bestandteil von Desinfec't.
Derweil zeigt eine aktuelle Phishing-Angriffswelle, dass sich Virenscanner und Spamfilter weiterhin durch derlei Manipulationen austricksen lassen: Word-Dokumente mit deformierten ZIP-Headern fliegen unter dem Radar einiger Schutzmechanismen.
Außer Kontrolle
Recht verbreitet sind auch Anti-Analyse-Tricks, die auf manipulierten Metadaten basieren. Die ZIP-Archivstruktur speichert manche dieser Daten doppelt: zum einen in den Central Directory-Einträgen und zum anderen in den lokalen Headern der einzelnen Archiv-Elemente. Ein eigentlich sinnvoller Kontrollmechanismus, der jedoch zu Parser-Verwirrungen führen kann, wenn die gedoppelten Informationen durch gezielte Manipulation voneinander abweichen.
Ein aktuelles Beispiel hierfür sind Techniken der Android-Malware Backpack, die ein Blogeintrag des IT-Sicherheitsunternehmens Palo Alto Networks von Juli 2024 beschreibt. Solche Anwendungen liegen als APKs (Android Packages) auf ZIP-Basis vor. Darin enthalten: eine Datei namens AndroidManifest.xml, die wertvolle Informationen zu Komponenten und Struktur der Apps liefert.
Um nun Malware-Analysten speziell am Betrachten dieser Schadcode-Interna zu hindern, änderten die BadPack-Macher einzelne Werte in den lokalen Header-Feldern der AndroidManifest.xml; die redundanten Daten im Central Directory ließen sie hingegen unverändert. Der Plan ging auf: Reverse-Engineering-Werkzeuge wie Apktool und Jadx, aber auch 7-ZIP sowie das offizielle JAR-Tool des Java Development Kit scheiterten aufgrund der Datenabweichungen zwischen Header und Central Directory-Eintrag am korrekten Lesen und Extrahieren der Datei.
Die Schadcodeausführung auf den Endgeräten beeinträchtigte dies nicht. Denn die Android-Laufzeitumgebung stützt sich laut Palo Alto primär auf die Informationen im Central Directory – und weil die stimmen, treten beim Verarbeiten derart manipulierter APKs keine Probleme auf.
Booom!
Ein bekannter Klassiker unter den ZIP-Tricks darf in diesem Artikel natürlich nicht fehlen – nämlich jene besonders clevere Archivbombe, die der Sicherheitsforscher David Fifield 2019 konzipierte und vorstellte. Solche "Bomben" basieren auf der Idee, Inhalte so stark zu komprimieren, dass sie nach dem Entpacken ein Vielfaches der ursprünglichen Archivgröße aufweisen. Dies kann RAM, Festplatte und System überfordern und letzteres zum Absturz bringen.
Häufiger jedoch beabsichtigen die Bombenbauer, Anti-Virensoftware in endlose Scanschleifen zu versetzen und damit außer Gefecht zu setzen. Um dies zu erreichen, setzen sie gern auf eine tiefe Verschachtelung mehrfach gepackter Inhalte. Prominentes Beispiel dieses rekursiven Ansatzes: das rund 42 Kbyte große Archiv "42.zip", das ausgepackt auf 4,3 GByte anwächst.
Fifields Bombe hingegen enthält nur eine einzige, zugunsten einer geringen Archivgröße klein gewählte Datei. Der "Explosionseffekt" beim Entpacken entsteht dadurch, dass Packprogramme die Datei ("Kernel") dank der speziell konzipierten Archivstruktur mehrfach auspacken und so letztlich eine große Datenmenge auf dem System erzeugen.
(Bild: bamsoftware.com)
Um diesen Effekt zu erreichen, stellte Fifield dem Kernel statt nur einem gleich mehrere lokale Dateiheader voran, die er dann nacheinander über das Central Directory referenzierte. Jeder Central Directory-Eintrag wie auch der jeweils zugehörige lokale Header enthält Angaben zum Dateinamen und zur komprimierten Größe des jeweiligen Elements. Indem der Forscher fortlaufende Dateinamen (nach dem Muster "0", "1" ... "Z") generierte, verhinderte er, dass sich die entpackten Kernel-Instanzen auf dem System gegenseitig überschrieben.
Bei den Größengaben berücksichtigte er immer die noch nachfolgenden Dateiköpfe. So erreichte er, dass der verwendete DEFLATE-Kompressionsalgorithmus diese als Teil des Datenstroms interpretierte und beim Entpacken der Datei-Instanzen "mitnahm". Durch Optimierung dieses – hier sehr vereinfacht dargestellten – Verfahrens konnte Fifield letztlich stolze 281 TByte in einer 10-MByte-Bombe verstauen.
Derzeit sind Archivbomben kein brandheißes Thema. Das kann sich jedoch auch schnell wieder ändern: VirusTotal-Scanergebnisse zu Fifields Kreation belegen, dass mancher AV-Scanner bis heute nicht gut mit dem nicht-rekursiven Ansatz zurechtkommt. In seiner eigenen detaillierten Beschreibung der Bombe stellte sich Fifield zudem die Frage, ob die Erkennung wohl wirklich robust sei – oder ob nicht vielleicht schon kleinere Modifikationen des Aufbaus diese wieder aushebeln könnten.
Eine Schachtel ohne Boden
Die Beispiele aus unserem Artikel dürften Ihnen eine Vorstellung von der großen Vielfalt denkbarer Angriffs- und Anti-Analyse-Strategien auf Basis manipulierter ZIP-Strukturen vermittelt haben. Wirkungsvoll sind solche Manipulationen vor allem deshalb, weil verschiedene Programme (teils sogar versionsabhängig) völlig unterschiedlich auf sie reagieren und Cyberkriminelle dies clever auszunutzen wissen.
Zu den endlos variierbaren Format-Anomalien, die Parser abfangen müssen, gesellen sich zu allem Überfluss noch weitere Angriffsmöglichkeiten. Dazu zählt etwa der 2018 vom Snyk-Team vorgestellte "Zip Slip"-Exploit, der zahlreiche Programmbibliotheken betraf und noch heute immer wieder einmal betrifft.
Zip Slip fußt auf der Tatsache, dass ZIP, aber auch andere Archivformate wie .rar oder .7z keine Einschränkungen bezüglich des Formats von Dateinamen vorgeben. Der Dateiname "../../evil.sh" beispielsweise ist innerhalb eines solchen Archivs zulässig. Das kann zum Problem werden, wenn es auch den fürs Extrahieren zuständigen Programmbibliotheken an Kontrollmechanismen mangelt. Fehlen Zugriffsbeschränkungen für Dateien und Verzeichnisse, sind auf dem Zielsystem sogenannte Path Traversal-Angriffe möglich, bei denen die ausgepackte Datei entsprechend ihrer Namensstruktur außerhalb des ursprünglichen Zielverzeichnisses landet.
Mit immer neuen und unerwarteten Archiv-Abgründen ist auch künftig zu rechnen. Ein guter Grund, das ZIP-Format nicht zu unterschätzen und nicht nur dem offensichtlichen Inhalt verdächtiger Archive mit gesundem Misstrauen zu begegnen.
(ju)