Blog

Sichere Programmierung: Das Standardverhalten von Zip-Bibliotheken kann zu Remote Code Execution führen.

November 13, 2017
Pieter De Cremer
Draufsicht auf einen spiralförmigen Stapel verschiedener offener Bücher, die einen tunnelartigen Wirbel bilden.

Diese Woche sprechen wir über das Standardverhalten von Zip-Bibliotheken. Wenn Sie Anwendungsentwickler sind, haben Sie diese höchstwahrscheinlich schon einmal verwendet. Die meisten Ressourcen, die aus dem Internet heruntergeladen werden, liegen im Zip-Format vor. Das ist sinnvoll, da komprimierte Daten kleiner sind, schneller heruntergeladen werden und weniger Bandbreite verbrauchen.

Einige konkrete Beispiele: Texturen für Spiele, Sprachpakete für die Autokorrektur auf Tastaturen, ... Viele Ressourcen werden nicht automatisch mit der Anwendung gebündelt, sondern erst später heruntergeladen.

Seien Sie jedoch vorsichtig bei der Verwendung dieser Funktion, da Dateinamen in Zip-Archiven Pfad-Traversal-Informationen enthalten können. Beim Entpacken führt dies dazu, dass Dateien außerhalb des vorgesehenen Verzeichnisses erstellt werden. Dies geschieht häufig mit der Absicht, bestehende Dateien zu überschreiben.

Zip Archives

Angenommen, wir haben ein Zip-Archiv mit den folgenden zwei Dateien:

file1
  ../file2

Wenn dieses Archiv entpackt wird, landet file1 dort, wo wir es erwarten: im Zielverzeichnis. file2 hingegen wird ein Verzeichnis höher geschrieben, als wir es für die Zip-Bibliothek vorgesehen hatten.

Seien Sie also vorsichtig: Wenn Ihre Zip-Bibliothek diesen Fall nicht ordnungsgemäß behandelt, ermöglicht sie einem Angreifer, eine beliebige Datei auf dem System zu schreiben. Überprüfen Sie immer, ob Ihre Bibliothek sicher ist. Diese Faustregel gilt für jede Bibliothek, aber insbesondere sollten Sie das Standardverhalten Ihrer Zip-Bibliothek für solche Dateitypen kennen.

Lassen Sie uns die Konsequenzen demonstrieren, wenn dieser Fall unter Android nicht ordnungsgemäß behandelt wird. In Android wird die Java-Zip-Bibliothek (java.util.zip) verwendet, die standardmäßig Pfad-Traversal wie oben beschrieben zulässt.

Das Dalvik Executable-Format (.dex) von Android hat Einschränkungen hinsichtlich der Anzahl der Klassen, die eine einzelne Datei enthalten kann. Apps, die mehr Klassen benötigen, können die MultiDex-Support-Bibliothek nutzen, die seit API-Level 21 (Android 5.0 Lollipop) verfügbar ist. Diese Bibliothek speichert sekundäre .dex-Dateien im Datenverzeichnis der Anwendung. Dieses Verzeichnis ist für den App-Benutzer beschreibbar, und dieser Code wird geladen und ausgeführt, sobald die .dex-Datei benötigt wird.

Das bedeutet, dass ein Angreifer die .dex-Datei durch Überschreiben mit einem bösartigen Zip-Archiv modifizieren kann. Noch schlimmer: Diese Datei wird geladen und ausgeführt, was zu einer Schwachstelle für Remote Code Execution führt. Dies ist kein rein theoretisches Beispiel, sondern wurde an der App „My Talking Tom“ demonstriert, die über 100 Millionen Downloads im App Store verzeichnet. Hier ist ein Video des Exploits, der auf der Black Hat präsentiert wurde.

Talking Tom

Überprüfen Sie immer das Verhalten Ihrer Zip-Bibliothek, damit Sie sich ihrer Unsicherheiten bewusst sind. Wenn Sie Pfad-Traversal in Ihrer Zip-Bibliothek nicht deaktivieren können, stellen Sie sicher, dass Sie den Namen jedes Eintrags vor dem Entpacken validieren. Der Name sollte kanonisiert werden und der resultierende Pfad muss innerhalb des Verzeichnisses liegen, in das Sie das Archiv entpacken möchten. Wenn wir schon dabei sind: Sie sollten auch die Gesamtgröße des entpackten Archivs prüfen, um Zip-Bomben zu verhindern, aber das ist ein Thema für eine andere Woche.

Wenn Sie einige Pfad-Traversal-Herausforderungen spielen oder Ihre Fähigkeiten im sicheren Programmieren testen möchten, besuchen Sie unsere Plattform.

Bis zum nächsten Mal, und denken Sie daran: Sicherer Code oder gar kein Code!

- Wir können eine Datei in ein Zip-Archiv einschleusen, deren Name mit einer beliebigen Anzahl von " ../ " beginnt.
- Wenn die Zip-Bibliothek diesen Fall nicht ordnungsgemäß behandelt, ermöglicht uns dies, außerhalb des vorgesehenen Zielverzeichnisses zu schreiben.
- Wenn die Zip-Datei nicht vertrauenswürdig ist, erhält der Angreifer eine Schwachstelle für beliebige Schreibzugriffe.

https://www.blackhat.com/docs/ldn-15/materials/london-15-Welton-Abusing-Android-Apps-And-Gaining-Remote-Code-Execution.pdf

Slogan

Kontrollieren Sie KI-gestützte Entwicklung, bevor sie in Produktion geht

Bewerten Sie KI-gestützte Risiken, setzen Sie Richtlinien für sicheren Code direkt beim Commit durch und beschleunigen Sie die sichere Bereitstellung über Ihren gesamten SDLC hinweg.

Demo buchen
Ressourcenbibliothek

Weitere Blogs entdecken

Erhalten Sie Zugang zu Experteninhalten über sichere Programmierung, KI-Governance und Software-Risikomanagement.

alle anzeigen
Fallstudie
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Mehr erfahren
Fallstudie
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

Mehr erfahren
Fallstudie
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Eine Sicherheitskultur: Wie Sage sein Champions-Programm aufgebaut hat

Erfahren Sie, wie Sage die Sicherheit durch einen flexiblen, beziehungsorientierten Ansatz gestärkt, über 200 Security Champions ausgebildet und eine messbare Risikoreduzierung erzielt hat.

Mehr erfahren
Blog
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Cybersecurity Awareness Month 2026: Das Verständnis von KI-Sicherheit ist entscheidend für die Unternehmensverteidigung

Wir haben einen Punkt erreicht, an dem die meisten führenden KI-Unternehmen öffentlich eine weltweite Verlangsamung der KI-Entwicklung gefordert haben, damit die Sicherheitsvorkehrungen Schritt halten können. Doch die Wahrheit ist: Ernsthafte Sicherheitsprobleme sind bereits Realität geworden. Dies bringt unzählige Sicherheitsverantwortliche und Führungsteams in eine dringliche Lage, da die finanziellen Kosten und Risiken durch die Implementierung von KI stetig steigen.

Mehr erfahren
Blog
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Enabler 8: Branding für Ihr Programm

Ein Programm für sicheres Programmieren braucht mehr als nur großartige Inhalte, um erfolgreich zu sein. Enabler 8 zeigt, wie Branding die Teilnahme zu einem begehrten, statusorientierten Erlebnis macht.

Mehr erfahren
Blog
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Jeder Mitarbeiter steht jetzt an vorderster Front der KI-Cybersicherheit

Die Unternehmenslandschaft wandelt sich mit einer Geschwindigkeit, die kaum jemand vorhergesehen hat, bis es zu spät war. Wir haben offiziell die Schwelle von handgeschriebenem Code und einfacher Copilot-Unterstützung hin zur Ära des Agentic Development Lifecycle (ADLC) überschritten. Während autonome KI-Agenten eine beispiellose Effizienz in vielen Bereichen versprechen, bringen sie auch eine völlig neue Klasse von Sicherheits- und Regulierungsrisiken mit sich.

Mehr erfahren

Sichere KI-gestützte Entwicklung vor dem Release

Erkennen Sie Entwicklerrisiken, setzen Sie Richtlinien durch und verhindern Sie Schwachstellen über den gesamten Softwareentwicklungszyklus hinweg.

Demo buchen
Keine Elemente gefunden.