
安全なコーディング手法: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
アプリケーションセキュリティ研究者-研究開発エンジニア-博士候補者

Secure Code Warrior schützt Ihren Code während des gesamten Softwareentwicklungszyklus und hilft Ihnen dabei, eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Ganz gleich, ob Sie Anwendungs-Sicherheitsmanager, Entwickler, CISO oder Sicherheitsbeauftragter sind – wir helfen Ihnen dabei, die mit unsicherem Code verbundenen Risiken zu minimieren.
デモを予約アプリケーションセキュリティ研究者-研究開発エンジニア-博士候補者


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, um die PDF-Datei dieser Ressource herunterzuladen.
Secure Code Warrior schützt Ihren Code während des gesamten Softwareentwicklungszyklus und hilft Ihnen dabei, eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Ganz gleich, ob Sie Anwendungs-Sicherheitsmanager, Entwickler, CISO oder Sicherheitsbeauftragter sind – wir helfen Ihnen dabei, die mit unsicherem Code verbundenen Risiken zu minimieren.
Bericht anzeigenデモを予約アプリケーションセキュリティ研究者-研究開発エンジニア-博士候補者
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
目次
アプリケーションセキュリティ研究者-研究開発エンジニア-博士候補者

Secure Code Warrior schützt Ihren Code während des gesamten Softwareentwicklungszyklus und hilft Ihnen dabei, eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Ganz gleich, ob Sie Anwendungs-Sicherheitsmanager, Entwickler, CISO oder Sicherheitsbeauftragter sind – wir helfen Ihnen dabei, die mit unsicherem Code verbundenen Risiken zu minimieren.
デモを予約[ダウンロード]Ressourcen für den Einstieg
Themen und Inhalte der Secure-Code-Schulung
Unsere branchenführenden Inhalte werden unter Berücksichtigung der Aufgaben unserer Kunden ständig weiterentwickelt, um mit der sich ständig verändernden Softwareentwicklungsumgebung Schritt zu halten. Sie decken alle Themen von KI bis hin zu XQuery-Injection ab und sind für verschiedene Aufgabenbereiche konzipiert, von Architekten und Ingenieuren bis hin zu Produktmanagern und Qualitätssicherungsfachleuten. Werfen Sie einen Blick auf die Inhalte unseres Content-Katalogs, sortiert nach Themen und Aufgabenbereichen.
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 für den Einstieg
Cybermon ist zurück: Die KI-Mission zum Besiegen des Bosses ist jetzt auf Abruf verfügbar.
「Cybermon 2025 Beat the Boss」 kann nun das ganze Jahr über bei SCW gespielt werden. Führen Sie anspruchsvolle AI/LLM-Sicherheitsherausforderungen ein, um die sichere AI-Entwicklung in großem Maßstab zu stärken.
Erläuterung des Cyber-Resilience-Gesetzes: Bedeutung für die Entwicklung sicherer Software
Erfahren Sie, was das EU-Gesetz zur Cyberresilienz (CRA) verlangt, für wen es gilt und wie sich Ingenieurteams auf Secure-by-Design-Praktiken, Schwachstellenprävention und die Kompetenzentwicklung von Entwicklern vorbereiten können.
Enabler 1: Definierte und messbare Erfolgskriterien
Enabler 1 ist der erste Teil der zehnteiligen Reihe „Enablers of Success“ und zeigt, wie sichere Programmierung mit geschäftlichen Ergebnissen wie Risikominderung und Geschwindigkeit verknüpft werden kann, um Programme langfristig zu optimieren.




%20(1).avif)
.avif)
