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
KI-Codier-Assistenten: Ein Leitfaden zur sicherheitsgerechten Navigation für die nächste Generation von Entwicklern
Große Sprachmodelle bieten unwiderstehliche Geschwindigkeits- und Produktivitätsvorteile, aber sie bringen auch unbestreitbare Risiken für das Unternehmen mit sich. Herkömmliche Sicherheitsleitplanken reichen nicht aus, um die Flut zu kontrollieren. Entwickler benötigen präzise, geprüfte Sicherheitskenntnisse, um Sicherheitslücken bereits zu Beginn des Softwareentwicklungszyklus zu erkennen und zu verhindern.
Sicher durch Design: Definition von Best Practices, Befähigung von Entwicklern und Benchmarking von präventiven Sicherheitsergebnissen
In diesem Forschungspapier werden die Mitbegründer von Secure Code Warrior , Pieter Danhieux und Dr. Matias Madou, Ph.D., zusammen mit den Experten Chris Inglis, ehemaliger US National Cyber Director (jetzt strategischer Berater der Paladin Capital Group), und Devin Lynch, Senior Director, Paladin Global Institute, die wichtigsten Erkenntnisse aus mehr als zwanzig ausführlichen Interviews mit Sicherheitsverantwortlichen in Unternehmen, darunter CISOs, ein VP of Application Security und Software-Sicherheitsexperten, offenlegen.
Ressourcen für den Einstieg
10.000+ Lernaktivitäten für sicheren Code: Ein Jahrzehnt des Risikomanagements für Entwickler
Wir feiern mehr als 10.000 Aktivitäten zum Erlernen von sicherem Code und ein Jahrzehnt, in dem wir Entwicklern geholfen haben, Risiken zu reduzieren, die Codequalität zu verbessern und die KI-gestützte Entwicklung selbstbewusst anzugehen.
Maßstäbe setzen: SCW veröffentlicht kostenlose Sicherheitsregeln für KI-Codierung auf GitHub
KI-gestützte Entwicklung ist nicht mehr nur Zukunftsmusik – sie ist bereits da und verändert die Art und Weise, wie Software geschrieben wird, rasant. Tools wie GitHub Copilot, Cline, Roo, Cursor, Aider und Windsurf machen Entwickler zu ihren eigenen Co-Piloten, ermöglichen schnellere Iterationen und beschleunigen alles vom Prototyping bis hin zu großen Refactoring-Projekten.
Schließen Sie den Kreis zu Schwachstellen mit Secure Code Warrior + HackerOne
Secure Code Warrior freut sich, unsere neue Integration mit HackerOne, einem führenden Anbieter von offensiven Sicherheitslösungen, bekannt zu geben. Gemeinsam bauen wir ein leistungsstarkes, integriertes Ökosystem auf. HackerOne zeigt auf, wo Schwachstellen in realen Umgebungen tatsächlich auftreten, und deckt das "Was" und "Wo" von Sicherheitsproblemen auf.