
安全编码技术:Zip 库的默认行为可能会导致远程代码执行
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
Anwendungssicherheitsforscher - F&E-Ingenieur - PhD-Kandidat

Secure Code Warrior kann Ihrem Unternehmen dabei helfen, Code während des gesamten Softwareentwicklungszyklus zu schützen und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, Chief Information Security Officer oder in einem anderen sicherheitsrelevanten Bereich tätig sind – wir können Ihrem Unternehmen dabei helfen, die mit unsicherem Code verbundenen Risiken zu minimieren.
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 folgenden Link und laden Sie die PDF-Datei dieser Ressource herunter.
Secure Code Warrior kann Ihrem Unternehmen dabei helfen, Code während des gesamten Softwareentwicklungszyklus zu schützen und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, Chief Information Security Officer oder in einem anderen sicherheitsrelevanten Bereich tätig sind – wir können Ihrem Unternehmen dabei helfen, die mit unsicherem Code verbundenen Risiken zu minimieren.
Bericht anzeigenDemo 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
Verzeichnis
Anwendungssicherheitsforscher - F&E-Ingenieur - PhD-Kandidat

Secure Code Warrior kann Ihrem Unternehmen dabei helfen, Code während des gesamten Softwareentwicklungszyklus zu schützen und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, Chief Information Security Officer oder in einem anderen sicherheitsrelevanten Bereich tätig sind – wir können Ihrem Unternehmen dabei helfen, die mit unsicherem Code verbundenen Risiken zu minimieren.
Demo buchen下载Ressourcen, die Ihnen den Einstieg erleichtern
Themen und Inhalte der Sicherheitsschulung
Unsere branchenführenden Inhalte werden ständig weiterentwickelt, um sich an die sich wandelnde Softwareentwicklungslandschaft anzupassen und gleichzeitig Ihre Rolle zu berücksichtigen. Die Themen reichen von KI bis hin zu XQuery-Injection und sind für verschiedene Positionen geeignet, von Architekten und Ingenieuren bis hin zu Produktmanagern und QA-Mitarbeitern. Verschaffen Sie sich einen ersten Überblick nach Themen und Rollen und erfahren Sie, was unser Inhaltsverzeichnis zu bieten hat.
Die Kamer van Koophandel setzt Maßstäbe für entwicklergesteuerte Sicherheit in großem Maßstab
Die Kamer van Koophandel berichtet, wie sie sicheres Codieren durch rollenbasierte Zertifizierungen, Trust Score-Benchmarking und eine Kultur der gemeinsamen Verantwortung für Sicherheit in die tägliche Entwicklungsarbeit integriert hat.
Bedrohungsmodellierung mit KI: So wird jeder Entwickler zum Bedrohungsmodellierer
Sie werden besser gerüstet sein, um Entwicklern dabei zu helfen, Ideen und Techniken zur Bedrohungsmodellierung mit den KI-Tools zu kombinieren, die sie bereits verwenden, um die Sicherheit zu erhöhen, die Zusammenarbeit zu verbessern und von Anfang an widerstandsfähigere Software zu entwickeln.
Ressourcen, die Ihnen den Einstieg erleichtern
Cybermon ist zurück: Die KI-Mission zum Besiegen des Bosses ist jetzt auf Abruf verfügbar.
Cybermon 2025: Der Kampf gegen den Boss hat nun in SCW ganzjährig begonnen. Der Kampf um die Sicherheit von KI/LLM auf Stammesebene, die Entwicklung von Sicherheits-KI wird durch groß angelegte Modelle verstärkt.
Auslegung des Gesetzes zur Netzresilienz: Was bedeutet es, durch die Entwicklung von Design-Software Sicherheit zu erreichen?
Verstehen Sie die Anforderungen des EU-Gesetzes zur Netzresilienz (CRA), für wen es gilt und wie sich Ingenieurteams durch Designpraktiken, Schwachstellenprävention und Kompetenzaufbau für Entwickler darauf vorbereiten können.
Treibende Faktoren 1: Klare und messbare Erfolgskriterien
Enabler 1 ist der Auftakt zu unserer 10-teiligen Reihe über Erfolgsfaktoren. Er zeigt, wie sichere Codierung mit Geschäftsergebnissen wie Risikominderung und schnellerer Reifung langfristiger Pläne in Verbindung gebracht werden kann.




%20(1).avif)
.avif)
