Sichere Kodierungstechnik: Standardverhalten von Zip-Bibliotheken kann zu Remote Code Execution führen
Diese Woche werden wir über das Standardverhalten von Zip-Bibliotheken sprechen. Wenn Sie ein Anwendungsentwickler sind, ist es sehr wahrscheinlich, dass Sie dies schon einmal verwendet haben. Die meisten Ressourcen, die über das Internet heruntergeladen werden, liegen im Zip-Format vor. Das ist sinnvoll, denn komprimierte Daten sind kleiner, sodass sie schneller heruntergeladen werden und weniger Bandbreite verbrauchen.
Wenn Sie einige konkretere Beispiele wünschen: Texturen für Spiele, Sprachpakete für die Autovervollständigung in Tastaturen, ... Viele Ressourcen werden nicht automatisch mit der Anwendung gebündelt, sondern später heruntergeladen.
Seien Sie jedoch vorsichtig, wenn Sie diese Funktionalität verwenden, denn Dateinamen in Zip-Archiven können Pfadüberquerungsinformationen enthalten. Beim Extrahieren führt dies dazu, dass Dateien außerhalb des vorgesehenen Verzeichnisses erstellt werden. Dies geschieht oft in der Absicht, bestehende Dateien zu überschreiben.

Angenommen, wir haben ein Zip-Archiv, das die folgenden zwei Dateien enthält:
Datei1
../Datei2
Wenn dieses Archiv extrahiert wird, wird Datei1 dort extrahiert, wo wir sie erwarten, nämlich im Unzip-Verzeichnis. Datei2 wurde jedoch ein Verzeichnis höher geschrieben als der Ort, an dem wir die Zip-Bibliothek gebeten haben, das Archiv zu entpacken.
Seien Sie also vorsichtig, wenn Ihre Zip-Bibliothek nicht darauf achtet, diesen Fall richtig zu behandeln, ermöglicht sie einem Angreifer, eine beliebige Datei in das System zu schreiben. Prüfen Sie immer, ob Ihre Bibliothek sicher ist. Diese Faustregel gilt für jede Bibliothek, aber insbesondere wissen Sie, dass Sie das Standardverhalten Ihrer Zip-Bibliothek für diese Dateitypen prüfen sollten.
Lassen Sie uns die Folgen demonstrieren, wenn dieser Fall in Android nicht richtig behandelt wird. In Android wird die Java-Zip-Bibliothek (java.util.zip) verwendet, die standardmäßig Pfad-Traversal wie oben erklärt erlaubt.
Androids Dalvik Executable-Format (.dex) hat Einschränkungen bei der Anzahl der Klassen, die eine einzelne Datei haben kann. Apps, die mehr Klassen benötigen, können die MultiDex-Support-Bibliothek nutzen, die seit API-Level 21 (Android 5.0 Lollipop) hinzugefügt wurde. 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, wenn die .dex-Datei benötigt wird.
Das bedeutet, dass ein Angreifer die .dex-Datei ändern kann, indem er sie mit einem bösartigen Zip-Archiv überschreibt. Im schlimmsten Fall wird diese Datei geladen und ausgeführt, was zu einer Schwachstelle für Remotecodeausführung führt. Dies ist nicht nur ein theoretisches Beispiel, sondern wurde an der App My Talking Tom demonstriert, die über 100 Millionen Downloads im App Store hat. Hier ist ein Video des Exploits, das auf der Black Hat präsentiert wurde.

Überprüfen Sie immer das Verhalten Ihrer Zip-Bibliothek, damit Sie sich über deren Unsicherheiten im Klaren sind. Wenn Sie die Pfadüberquerung in Ihrer Zip-Bibliothek nicht deaktivieren können, stellen Sie sicher, dass Sie den Namen jedes Eintrags überprüfen, bevor Sie ihn extrahieren. Der Name sollte kanonisiert sein und der resultierende Pfad sollte sich in dem Verzeichnis befinden, in das Sie das Archiv extrahieren möchten. Wenn wir schon dabei sind, sollten Sie auch die Gesamtgröße des extrahierten Archivs überprüfen, um Zip-Bomben zu vermeiden, aber das wird ein Beitrag für eine andere Woche.
Wenn Sie ein paar Herausforderungen zum Thema Pfad-Traversal spielen oder Ihre Fähigkeiten im sicheren Kodieren testen möchten, schauen Sie sich unsere Plattform an.
Bis zum nächsten Mal, und denken Sie daran, sicherer Code oder kein Code!
- Wir können eine Datei in eine Zip-Datei injizieren, deren Name eine beliebige Anzahl von " ../ " vorangestellt ist
- Wenn die Zip-Bibliothek nicht darauf achtet, diesen Fall richtig zu behandeln, würde sie uns erlauben, außerhalb des vorgesehenen Extraktionsverzeichnisses zu schreiben
- Wenn die Zip-Datei nicht vertrauenswürdig ist, gibt dies dem Angreifer eine beliebige Schreibschwachstelle


Wir können eine Datei in ein Zip einfügen, deren Name mit einem vorangestellten
Anwendungssicherheitsforscher - F&E-Ingenieur - PhD-Kandidat

Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Demo buchenAnwendungssicherheitsforscher - F&E-Ingenieur - PhD-Kandidat


Diese Woche werden wir über das Standardverhalten von Zip-Bibliotheken sprechen. Wenn Sie ein Anwendungsentwickler sind, ist es sehr wahrscheinlich, dass Sie dies schon einmal verwendet haben. Die meisten Ressourcen, die über das Internet heruntergeladen werden, liegen im Zip-Format vor. Das ist sinnvoll, denn komprimierte Daten sind kleiner, sodass sie schneller heruntergeladen werden und weniger Bandbreite verbrauchen.
Wenn Sie einige konkretere Beispiele wünschen: Texturen für Spiele, Sprachpakete für die Autovervollständigung in Tastaturen, ... Viele Ressourcen werden nicht automatisch mit der Anwendung gebündelt, sondern später heruntergeladen.
Seien Sie jedoch vorsichtig, wenn Sie diese Funktionalität verwenden, denn Dateinamen in Zip-Archiven können Pfadüberquerungsinformationen enthalten. Beim Extrahieren führt dies dazu, dass Dateien außerhalb des vorgesehenen Verzeichnisses erstellt werden. Dies geschieht oft in der Absicht, bestehende Dateien zu überschreiben.

Angenommen, wir haben ein Zip-Archiv, das die folgenden zwei Dateien enthält:
Datei1
../Datei2
Wenn dieses Archiv extrahiert wird, wird Datei1 dort extrahiert, wo wir sie erwarten, nämlich im Unzip-Verzeichnis. Datei2 wurde jedoch ein Verzeichnis höher geschrieben als der Ort, an dem wir die Zip-Bibliothek gebeten haben, das Archiv zu entpacken.
Seien Sie also vorsichtig, wenn Ihre Zip-Bibliothek nicht darauf achtet, diesen Fall richtig zu behandeln, ermöglicht sie einem Angreifer, eine beliebige Datei in das System zu schreiben. Prüfen Sie immer, ob Ihre Bibliothek sicher ist. Diese Faustregel gilt für jede Bibliothek, aber insbesondere wissen Sie, dass Sie das Standardverhalten Ihrer Zip-Bibliothek für diese Dateitypen prüfen sollten.
Lassen Sie uns die Folgen demonstrieren, wenn dieser Fall in Android nicht richtig behandelt wird. In Android wird die Java-Zip-Bibliothek (java.util.zip) verwendet, die standardmäßig Pfad-Traversal wie oben erklärt erlaubt.
Androids Dalvik Executable-Format (.dex) hat Einschränkungen bei der Anzahl der Klassen, die eine einzelne Datei haben kann. Apps, die mehr Klassen benötigen, können die MultiDex-Support-Bibliothek nutzen, die seit API-Level 21 (Android 5.0 Lollipop) hinzugefügt wurde. 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, wenn die .dex-Datei benötigt wird.
Das bedeutet, dass ein Angreifer die .dex-Datei ändern kann, indem er sie mit einem bösartigen Zip-Archiv überschreibt. Im schlimmsten Fall wird diese Datei geladen und ausgeführt, was zu einer Schwachstelle für Remotecodeausführung führt. Dies ist nicht nur ein theoretisches Beispiel, sondern wurde an der App My Talking Tom demonstriert, die über 100 Millionen Downloads im App Store hat. Hier ist ein Video des Exploits, das auf der Black Hat präsentiert wurde.

Überprüfen Sie immer das Verhalten Ihrer Zip-Bibliothek, damit Sie sich über deren Unsicherheiten im Klaren sind. Wenn Sie die Pfadüberquerung in Ihrer Zip-Bibliothek nicht deaktivieren können, stellen Sie sicher, dass Sie den Namen jedes Eintrags überprüfen, bevor Sie ihn extrahieren. Der Name sollte kanonisiert sein und der resultierende Pfad sollte sich in dem Verzeichnis befinden, in das Sie das Archiv extrahieren möchten. Wenn wir schon dabei sind, sollten Sie auch die Gesamtgröße des extrahierten Archivs überprüfen, um Zip-Bomben zu vermeiden, aber das wird ein Beitrag für eine andere Woche.
Wenn Sie ein paar Herausforderungen zum Thema Pfad-Traversal spielen oder Ihre Fähigkeiten im sicheren Kodieren testen möchten, schauen Sie sich unsere Plattform an.
Bis zum nächsten Mal, und denken Sie daran, sicherer Code oder kein Code!
- Wir können eine Datei in eine Zip-Datei injizieren, deren Name eine beliebige Anzahl von " ../ " vorangestellt ist
- Wenn die Zip-Bibliothek nicht darauf achtet, diesen Fall richtig zu behandeln, würde sie uns erlauben, außerhalb des vorgesehenen Extraktionsverzeichnisses zu schreiben
- Wenn die Zip-Datei nicht vertrauenswürdig ist, gibt dies dem Angreifer eine beliebige Schreibschwachstelle

Diese Woche werden wir über das Standardverhalten von Zip-Bibliotheken sprechen. Wenn Sie ein Anwendungsentwickler sind, ist es sehr wahrscheinlich, dass Sie dies schon einmal verwendet haben. Die meisten Ressourcen, die über das Internet heruntergeladen werden, liegen im Zip-Format vor. Das ist sinnvoll, denn komprimierte Daten sind kleiner, sodass sie schneller heruntergeladen werden und weniger Bandbreite verbrauchen.
Wenn Sie einige konkretere Beispiele wünschen: Texturen für Spiele, Sprachpakete für die Autovervollständigung in Tastaturen, ... Viele Ressourcen werden nicht automatisch mit der Anwendung gebündelt, sondern später heruntergeladen.
Seien Sie jedoch vorsichtig, wenn Sie diese Funktionalität verwenden, denn Dateinamen in Zip-Archiven können Pfadüberquerungsinformationen enthalten. Beim Extrahieren führt dies dazu, dass Dateien außerhalb des vorgesehenen Verzeichnisses erstellt werden. Dies geschieht oft in der Absicht, bestehende Dateien zu überschreiben.

Angenommen, wir haben ein Zip-Archiv, das die folgenden zwei Dateien enthält:
Datei1
../Datei2
Wenn dieses Archiv extrahiert wird, wird Datei1 dort extrahiert, wo wir sie erwarten, nämlich im Unzip-Verzeichnis. Datei2 wurde jedoch ein Verzeichnis höher geschrieben als der Ort, an dem wir die Zip-Bibliothek gebeten haben, das Archiv zu entpacken.
Seien Sie also vorsichtig, wenn Ihre Zip-Bibliothek nicht darauf achtet, diesen Fall richtig zu behandeln, ermöglicht sie einem Angreifer, eine beliebige Datei in das System zu schreiben. Prüfen Sie immer, ob Ihre Bibliothek sicher ist. Diese Faustregel gilt für jede Bibliothek, aber insbesondere wissen Sie, dass Sie das Standardverhalten Ihrer Zip-Bibliothek für diese Dateitypen prüfen sollten.
Lassen Sie uns die Folgen demonstrieren, wenn dieser Fall in Android nicht richtig behandelt wird. In Android wird die Java-Zip-Bibliothek (java.util.zip) verwendet, die standardmäßig Pfad-Traversal wie oben erklärt erlaubt.
Androids Dalvik Executable-Format (.dex) hat Einschränkungen bei der Anzahl der Klassen, die eine einzelne Datei haben kann. Apps, die mehr Klassen benötigen, können die MultiDex-Support-Bibliothek nutzen, die seit API-Level 21 (Android 5.0 Lollipop) hinzugefügt wurde. 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, wenn die .dex-Datei benötigt wird.
Das bedeutet, dass ein Angreifer die .dex-Datei ändern kann, indem er sie mit einem bösartigen Zip-Archiv überschreibt. Im schlimmsten Fall wird diese Datei geladen und ausgeführt, was zu einer Schwachstelle für Remotecodeausführung führt. Dies ist nicht nur ein theoretisches Beispiel, sondern wurde an der App My Talking Tom demonstriert, die über 100 Millionen Downloads im App Store hat. Hier ist ein Video des Exploits, das auf der Black Hat präsentiert wurde.

Überprüfen Sie immer das Verhalten Ihrer Zip-Bibliothek, damit Sie sich über deren Unsicherheiten im Klaren sind. Wenn Sie die Pfadüberquerung in Ihrer Zip-Bibliothek nicht deaktivieren können, stellen Sie sicher, dass Sie den Namen jedes Eintrags überprüfen, bevor Sie ihn extrahieren. Der Name sollte kanonisiert sein und der resultierende Pfad sollte sich in dem Verzeichnis befinden, in das Sie das Archiv extrahieren möchten. Wenn wir schon dabei sind, sollten Sie auch die Gesamtgröße des extrahierten Archivs überprüfen, um Zip-Bomben zu vermeiden, aber das wird ein Beitrag für eine andere Woche.
Wenn Sie ein paar Herausforderungen zum Thema Pfad-Traversal spielen oder Ihre Fähigkeiten im sicheren Kodieren testen möchten, schauen Sie sich unsere Plattform an.
Bis zum nächsten Mal, und denken Sie daran, sicherer Code oder kein Code!
- Wir können eine Datei in eine Zip-Datei injizieren, deren Name eine beliebige Anzahl von " ../ " vorangestellt ist
- Wenn die Zip-Bibliothek nicht darauf achtet, diesen Fall richtig zu behandeln, würde sie uns erlauben, außerhalb des vorgesehenen Extraktionsverzeichnisses zu schreiben
- Wenn die Zip-Datei nicht vertrauenswürdig ist, gibt dies dem Angreifer eine beliebige Schreibschwachstelle

Klicken Sie auf den unten stehenden Link und laden Sie die PDF-Datei dieser Ressource herunter.
Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Bericht ansehenDemo buchenAnwendungssicherheitsforscher - F&E-Ingenieur - PhD-Kandidat
Diese Woche werden wir über das Standardverhalten von Zip-Bibliotheken sprechen. Wenn Sie ein Anwendungsentwickler sind, ist es sehr wahrscheinlich, dass Sie dies schon einmal verwendet haben. Die meisten Ressourcen, die über das Internet heruntergeladen werden, liegen im Zip-Format vor. Das ist sinnvoll, denn komprimierte Daten sind kleiner, sodass sie schneller heruntergeladen werden und weniger Bandbreite verbrauchen.
Wenn Sie einige konkretere Beispiele wünschen: Texturen für Spiele, Sprachpakete für die Autovervollständigung in Tastaturen, ... Viele Ressourcen werden nicht automatisch mit der Anwendung gebündelt, sondern später heruntergeladen.
Seien Sie jedoch vorsichtig, wenn Sie diese Funktionalität verwenden, denn Dateinamen in Zip-Archiven können Pfadüberquerungsinformationen enthalten. Beim Extrahieren führt dies dazu, dass Dateien außerhalb des vorgesehenen Verzeichnisses erstellt werden. Dies geschieht oft in der Absicht, bestehende Dateien zu überschreiben.

Angenommen, wir haben ein Zip-Archiv, das die folgenden zwei Dateien enthält:
Datei1
../Datei2
Wenn dieses Archiv extrahiert wird, wird Datei1 dort extrahiert, wo wir sie erwarten, nämlich im Unzip-Verzeichnis. Datei2 wurde jedoch ein Verzeichnis höher geschrieben als der Ort, an dem wir die Zip-Bibliothek gebeten haben, das Archiv zu entpacken.
Seien Sie also vorsichtig, wenn Ihre Zip-Bibliothek nicht darauf achtet, diesen Fall richtig zu behandeln, ermöglicht sie einem Angreifer, eine beliebige Datei in das System zu schreiben. Prüfen Sie immer, ob Ihre Bibliothek sicher ist. Diese Faustregel gilt für jede Bibliothek, aber insbesondere wissen Sie, dass Sie das Standardverhalten Ihrer Zip-Bibliothek für diese Dateitypen prüfen sollten.
Lassen Sie uns die Folgen demonstrieren, wenn dieser Fall in Android nicht richtig behandelt wird. In Android wird die Java-Zip-Bibliothek (java.util.zip) verwendet, die standardmäßig Pfad-Traversal wie oben erklärt erlaubt.
Androids Dalvik Executable-Format (.dex) hat Einschränkungen bei der Anzahl der Klassen, die eine einzelne Datei haben kann. Apps, die mehr Klassen benötigen, können die MultiDex-Support-Bibliothek nutzen, die seit API-Level 21 (Android 5.0 Lollipop) hinzugefügt wurde. 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, wenn die .dex-Datei benötigt wird.
Das bedeutet, dass ein Angreifer die .dex-Datei ändern kann, indem er sie mit einem bösartigen Zip-Archiv überschreibt. Im schlimmsten Fall wird diese Datei geladen und ausgeführt, was zu einer Schwachstelle für Remotecodeausführung führt. Dies ist nicht nur ein theoretisches Beispiel, sondern wurde an der App My Talking Tom demonstriert, die über 100 Millionen Downloads im App Store hat. Hier ist ein Video des Exploits, das auf der Black Hat präsentiert wurde.

Überprüfen Sie immer das Verhalten Ihrer Zip-Bibliothek, damit Sie sich über deren Unsicherheiten im Klaren sind. Wenn Sie die Pfadüberquerung in Ihrer Zip-Bibliothek nicht deaktivieren können, stellen Sie sicher, dass Sie den Namen jedes Eintrags überprüfen, bevor Sie ihn extrahieren. Der Name sollte kanonisiert sein und der resultierende Pfad sollte sich in dem Verzeichnis befinden, in das Sie das Archiv extrahieren möchten. Wenn wir schon dabei sind, sollten Sie auch die Gesamtgröße des extrahierten Archivs überprüfen, um Zip-Bomben zu vermeiden, aber das wird ein Beitrag für eine andere Woche.
Wenn Sie ein paar Herausforderungen zum Thema Pfad-Traversal spielen oder Ihre Fähigkeiten im sicheren Kodieren testen möchten, schauen Sie sich unsere Plattform an.
Bis zum nächsten Mal, und denken Sie daran, sicherer Code oder kein Code!
- Wir können eine Datei in eine Zip-Datei injizieren, deren Name eine beliebige Anzahl von " ../ " vorangestellt ist
- Wenn die Zip-Bibliothek nicht darauf achtet, diesen Fall richtig zu behandeln, würde sie uns erlauben, außerhalb des vorgesehenen Extraktionsverzeichnisses zu schreiben
- Wenn die Zip-Datei nicht vertrauenswürdig ist, gibt dies dem Angreifer eine beliebige Schreibschwachstelle
Inhaltsübersicht
Anwendungssicherheitsforscher - F&E-Ingenieur - PhD-Kandidat

Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Demo buchenHerunterladenRessourcen für den Einstieg
Auf dem Weg zu Gold: Steigende Standards für sicheren Code bei Paysafe
Sehen Sie, wie die Partnerschaft von Paysafe mit Secure Code Warrior die Produktivität der Entwickler um 45 % steigerte und die Zahl der Code-Schwachstellen erheblich reduzierte.
Die Macht der Marke in AppSec DevSec DevSecOps (Was ist in einem Acrynym!?)
Für eine dauerhafte Wirkung von AppSec-Programmen braucht es mehr als nur Technik - es braucht eine starke Marke. Eine starke Identität stellt sicher, dass Ihre Initiativen auf Resonanz stoßen und ein nachhaltiges Engagement innerhalb Ihrer Entwicklergemeinschaft fördern.
Vertrauensagent: AI von Secure Code Warrior
Dieser One-Pager stellt den SCW Trust Agent: AI vor, eine neue Reihe von Funktionen, die tiefgreifende Beobachtbarkeit und Kontrolle über KI-Codierwerkzeuge bieten. Erfahren Sie, wie unsere Lösung die Nutzung von KI-Tools mit den Fähigkeiten von Entwicklern korreliert, um Sie beim Risikomanagement zu unterstützen, Ihren SDLC zu optimieren und sicherzustellen, dass jede Zeile des von KI generierten Codes sicher ist.
Vibe Coding: Praktischer Leitfaden zur Aktualisierung Ihrer AppSec-Strategie für KI
In diesem On-Demand-Video erfahren Sie, wie AppSec-Manager durch einen praktischen Ansatz, bei dem die Schulung im Vordergrund steht, in die Lage versetzt werden, KI zu fördern, anstatt sie zu blockieren. Wir zeigen Ihnen, wie Sie Secure Code Warrior (SCW) nutzen können, um Ihre AppSec-Strategie strategisch für das Zeitalter der KI-Codierassistenten zu aktualisieren.
Ressourcen für den Einstieg
Warum sich das Bewusstsein für Cybersicherheit im Zeitalter der KI weiterentwickeln muss
CISOs können sich nicht auf das gleiche alte Awareness-Handbuch verlassen. Im Zeitalter der KI müssen sie moderne Ansätze verfolgen, um Code, Teams und Unternehmen zu schützen.
Sicheres Coding im Zeitalter der KI: Testen Sie unsere neuen interaktiven KI-Herausforderungen
KI-gestütztes Coding verändert die Entwicklung. Testen Sie unsere neuen KI-Herausforderungen im Copilot-Stil, um Code in realistischen Workflows sicher zu prüfen, zu analysieren und zu korrigieren.