
Sichere Codierungstechnik: Das Standardverhalten von Zip-Bibliotheken kann zur Remotecodeausführung 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, sind im ZIP-Format, das ist sinnvoll. Komprimierte Daten sind kleiner, sodass sie schneller heruntergeladen werden und weniger Bandbreite verbrauchen.
Wenn Sie konkretere Beispiele wünschen: Texturen für Spiele, Sprachpakete für die automatische Vervollständigung in Tastaturen,... Viele Ressourcen werden nicht automatisch mit der Anwendung gebündelt, sondern erst später heruntergeladen.
Seien Sie jedoch vorsichtig, wenn Sie diese Funktion verwenden, da Dateinamen in ZIP-Archiven Pfadinformationen enthalten können. Beim Extrahieren führt dies dazu, dass Dateien außerhalb des vorgesehenen Verzeichnisses erstellt werden. Dies geschieht oft mit der Absicht, vorhandene 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 es erwarten, im Unzip-Verzeichnis. Datei2 wurde jedoch ein Verzeichnis höher geschrieben als dort, wo 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, kann ein Angreifer eine beliebige Datei in das System 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 überprüfen müssen.
Lassen Sie uns die Konsequenzen demonstrieren, wenn dieser Fall in Android nicht richtig behandelt wird. In Android wird die Java-Zip-Bibliothek (java.util.zip) verwendet. Die Bibliothek ermöglicht standardmäßig das Durchlaufen von Pfaden, wie oben erläutert.
Das Dalvik Executable Format (.dex) von Android hat Einschränkungen hinsichtlich 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 mithilfe eines schädlichen ZIP-Archivs überschreibt. Schlimmer noch, diese Datei wird geladen und ausgeführt, was zu einer Sicherheitsanfälligkeit bei der Remotecodeausführung führt. Dies ist nicht nur ein theoretisches Beispiel, sondern wurde in der App My Talking Tom demonstriert, die im App Store über 100 Millionen Mal heruntergeladen wurde. Hier ist ein Video des Exploits, der auf Black Hat vorgestellt wurde.

Überprüfen Sie immer das Verhalten Ihrer Zip-Bibliothek, damit Sie sich ihrer Unsicherheiten bewusst sind. Wenn Sie die Pfaddurchquerung 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 werden und der resultierende Pfad sollte sich in dem Verzeichnis befinden, in dem Sie das Archiv extrahieren möchten. Wenn wir schon dabei sind, solltest du auch die Gesamtgröße des entpackten Archivs überprüfen, um Zip-Bomben zu verhindern, aber das ist ein Beitrag für eine weitere Woche.
Wenn du willst spiele einige Herausforderungen bei der Pfadüberquerung oder wenn Sie Ihre Fähigkeiten zum sicheren Programmieren testen möchten, schauen Sie sich unsere Plattform an.
Bis zum nächsten Mal und denk dran, Sicherheitscode oder kein Code!
- Wir können eine Datei in eine Zip-Datei einfügen, deren Namen eine beliebige Zahl von "../“ vorangestellt ist
- Wenn die Zip-Bibliothek nicht darauf achtet, diesen Fall richtig zu behandeln, können wir außerhalb des vorgesehenen Extraktionsverzeichnisses schreiben
- Wenn die Zip-Datei nicht vertrauenswürdig ist, besteht für den Angreifer eine Schwachstelle beim willkürlichen Schreiben
Forscher für Anwendungssicherheit - Forschungs- und Entwicklungsingenieur - Doktorand

Secure Code Warrior 您的Secure Code Warrior 帮助您在整个软件开发周期中保障代码安全,并建立将网络安全置于首位的企业文化。无论您是应用安全经理、开发人员、首席信息安全官,还是其他从事安全工作的人员,我们都能协助您的企业降低不安全代码带来的风险。
预约演示Forscher für Anwendungssicherheit - Forschungs- und Entwicklungsingenieur - Doktorand


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, sind im ZIP-Format, das ist sinnvoll. Komprimierte Daten sind kleiner, sodass sie schneller heruntergeladen werden und weniger Bandbreite verbrauchen.
Wenn Sie konkretere Beispiele wünschen: Texturen für Spiele, Sprachpakete für die automatische Vervollständigung in Tastaturen,... Viele Ressourcen werden nicht automatisch mit der Anwendung gebündelt, sondern erst später heruntergeladen.
Seien Sie jedoch vorsichtig, wenn Sie diese Funktion verwenden, da Dateinamen in ZIP-Archiven Pfadinformationen enthalten können. Beim Extrahieren führt dies dazu, dass Dateien außerhalb des vorgesehenen Verzeichnisses erstellt werden. Dies geschieht oft mit der Absicht, vorhandene 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 es erwarten, im Unzip-Verzeichnis. Datei2 wurde jedoch ein Verzeichnis höher geschrieben als dort, wo 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, kann ein Angreifer eine beliebige Datei in das System 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 überprüfen müssen.
Lassen Sie uns die Konsequenzen demonstrieren, wenn dieser Fall in Android nicht richtig behandelt wird. In Android wird die Java-Zip-Bibliothek (java.util.zip) verwendet. Die Bibliothek ermöglicht standardmäßig das Durchlaufen von Pfaden, wie oben erläutert.
Das Dalvik Executable Format (.dex) von Android hat Einschränkungen hinsichtlich 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 mithilfe eines schädlichen ZIP-Archivs überschreibt. Schlimmer noch, diese Datei wird geladen und ausgeführt, was zu einer Sicherheitsanfälligkeit bei der Remotecodeausführung führt. Dies ist nicht nur ein theoretisches Beispiel, sondern wurde in der App My Talking Tom demonstriert, die im App Store über 100 Millionen Mal heruntergeladen wurde. Hier ist ein Video des Exploits, der auf Black Hat vorgestellt wurde.

Überprüfen Sie immer das Verhalten Ihrer Zip-Bibliothek, damit Sie sich ihrer Unsicherheiten bewusst sind. Wenn Sie die Pfaddurchquerung 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 werden und der resultierende Pfad sollte sich in dem Verzeichnis befinden, in dem Sie das Archiv extrahieren möchten. Wenn wir schon dabei sind, solltest du auch die Gesamtgröße des entpackten Archivs überprüfen, um Zip-Bomben zu verhindern, aber das ist ein Beitrag für eine weitere Woche.
Wenn du willst spiele einige Herausforderungen bei der Pfadüberquerung oder wenn Sie Ihre Fähigkeiten zum sicheren Programmieren testen möchten, schauen Sie sich unsere Plattform an.
Bis zum nächsten Mal und denk dran, Sicherheitscode oder kein Code!
- Wir können eine Datei in eine Zip-Datei einfügen, deren Namen eine beliebige Zahl von "../“ vorangestellt ist
- Wenn die Zip-Bibliothek nicht darauf achtet, diesen Fall richtig zu behandeln, können wir außerhalb des vorgesehenen Extraktionsverzeichnisses schreiben
- Wenn die Zip-Datei nicht vertrauenswürdig ist, besteht für den Angreifer eine Schwachstelle beim willkürlichen Schreiben

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, sind im ZIP-Format, das ist sinnvoll. Komprimierte Daten sind kleiner, sodass sie schneller heruntergeladen werden und weniger Bandbreite verbrauchen.
Wenn Sie konkretere Beispiele wünschen: Texturen für Spiele, Sprachpakete für die automatische Vervollständigung in Tastaturen,... Viele Ressourcen werden nicht automatisch mit der Anwendung gebündelt, sondern erst später heruntergeladen.
Seien Sie jedoch vorsichtig, wenn Sie diese Funktion verwenden, da Dateinamen in ZIP-Archiven Pfadinformationen enthalten können. Beim Extrahieren führt dies dazu, dass Dateien außerhalb des vorgesehenen Verzeichnisses erstellt werden. Dies geschieht oft mit der Absicht, vorhandene 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 es erwarten, im Unzip-Verzeichnis. Datei2 wurde jedoch ein Verzeichnis höher geschrieben als dort, wo 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, kann ein Angreifer eine beliebige Datei in das System 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 überprüfen müssen.
Lassen Sie uns die Konsequenzen demonstrieren, wenn dieser Fall in Android nicht richtig behandelt wird. In Android wird die Java-Zip-Bibliothek (java.util.zip) verwendet. Die Bibliothek ermöglicht standardmäßig das Durchlaufen von Pfaden, wie oben erläutert.
Das Dalvik Executable Format (.dex) von Android hat Einschränkungen hinsichtlich 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 mithilfe eines schädlichen ZIP-Archivs überschreibt. Schlimmer noch, diese Datei wird geladen und ausgeführt, was zu einer Sicherheitsanfälligkeit bei der Remotecodeausführung führt. Dies ist nicht nur ein theoretisches Beispiel, sondern wurde in der App My Talking Tom demonstriert, die im App Store über 100 Millionen Mal heruntergeladen wurde. Hier ist ein Video des Exploits, der auf Black Hat vorgestellt wurde.

Überprüfen Sie immer das Verhalten Ihrer Zip-Bibliothek, damit Sie sich ihrer Unsicherheiten bewusst sind. Wenn Sie die Pfaddurchquerung 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 werden und der resultierende Pfad sollte sich in dem Verzeichnis befinden, in dem Sie das Archiv extrahieren möchten. Wenn wir schon dabei sind, solltest du auch die Gesamtgröße des entpackten Archivs überprüfen, um Zip-Bomben zu verhindern, aber das ist ein Beitrag für eine weitere Woche.
Wenn du willst spiele einige Herausforderungen bei der Pfadüberquerung oder wenn Sie Ihre Fähigkeiten zum sicheren Programmieren testen möchten, schauen Sie sich unsere Plattform an.
Bis zum nächsten Mal und denk dran, Sicherheitscode oder kein Code!
- Wir können eine Datei in eine Zip-Datei einfügen, deren Namen eine beliebige Zahl von "../“ vorangestellt ist
- Wenn die Zip-Bibliothek nicht darauf achtet, diesen Fall richtig zu behandeln, können wir außerhalb des vorgesehenen Extraktionsverzeichnisses schreiben
- Wenn die Zip-Datei nicht vertrauenswürdig ist, besteht für den Angreifer eine Schwachstelle beim willkürlichen Schreiben
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, sind im ZIP-Format, das ist sinnvoll. Komprimierte Daten sind kleiner, sodass sie schneller heruntergeladen werden und weniger Bandbreite verbrauchen.
Wenn Sie konkretere Beispiele wünschen: Texturen für Spiele, Sprachpakete für die automatische Vervollständigung in Tastaturen,... Viele Ressourcen werden nicht automatisch mit der Anwendung gebündelt, sondern erst später heruntergeladen.
Seien Sie jedoch vorsichtig, wenn Sie diese Funktion verwenden, da Dateinamen in ZIP-Archiven Pfadinformationen enthalten können. Beim Extrahieren führt dies dazu, dass Dateien außerhalb des vorgesehenen Verzeichnisses erstellt werden. Dies geschieht oft mit der Absicht, vorhandene 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 es erwarten, im Unzip-Verzeichnis. Datei2 wurde jedoch ein Verzeichnis höher geschrieben als dort, wo 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, kann ein Angreifer eine beliebige Datei in das System 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 überprüfen müssen.
Lassen Sie uns die Konsequenzen demonstrieren, wenn dieser Fall in Android nicht richtig behandelt wird. In Android wird die Java-Zip-Bibliothek (java.util.zip) verwendet. Die Bibliothek ermöglicht standardmäßig das Durchlaufen von Pfaden, wie oben erläutert.
Das Dalvik Executable Format (.dex) von Android hat Einschränkungen hinsichtlich 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 mithilfe eines schädlichen ZIP-Archivs überschreibt. Schlimmer noch, diese Datei wird geladen und ausgeführt, was zu einer Sicherheitsanfälligkeit bei der Remotecodeausführung führt. Dies ist nicht nur ein theoretisches Beispiel, sondern wurde in der App My Talking Tom demonstriert, die im App Store über 100 Millionen Mal heruntergeladen wurde. Hier ist ein Video des Exploits, der auf Black Hat vorgestellt wurde.

Überprüfen Sie immer das Verhalten Ihrer Zip-Bibliothek, damit Sie sich ihrer Unsicherheiten bewusst sind. Wenn Sie die Pfaddurchquerung 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 werden und der resultierende Pfad sollte sich in dem Verzeichnis befinden, in dem Sie das Archiv extrahieren möchten. Wenn wir schon dabei sind, solltest du auch die Gesamtgröße des entpackten Archivs überprüfen, um Zip-Bomben zu verhindern, aber das ist ein Beitrag für eine weitere Woche.
Wenn du willst spiele einige Herausforderungen bei der Pfadüberquerung oder wenn Sie Ihre Fähigkeiten zum sicheren Programmieren testen möchten, schauen Sie sich unsere Plattform an.
Bis zum nächsten Mal und denk dran, Sicherheitscode oder kein Code!
- Wir können eine Datei in eine Zip-Datei einfügen, deren Namen eine beliebige Zahl von "../“ vorangestellt ist
- Wenn die Zip-Bibliothek nicht darauf achtet, diesen Fall richtig zu behandeln, können wir außerhalb des vorgesehenen Extraktionsverzeichnisses schreiben
- Wenn die Zip-Datei nicht vertrauenswürdig ist, besteht für den Angreifer eine Schwachstelle beim willkürlichen Schreiben




%20(1).avif)
.avif)
