SCW アイコン
ヒーロー背景(区切りなし)
ブログ

Sichere Codierungstechnik: Das Standardverhalten von Zip-Bibliotheken kann zur Remotecodeausführung führen

ピーテル・デ・クレマー
2017年11月13日 掲載
最終更新日: 2026年3月9日

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

https://www.blackhat.com/docs/ldn-15/materials/london-15-Welton-Abusing-Android-Apps-And-Gaining-Remote-Code-Execution.pdf

リソースを表示
リソースを表示

Wir können eine Datei in eine Zip-Datei einfügen, deren Name mit einem vorangestellt ist

もっと知りたいですか?

Forscher für Anwendungssicherheit - Forschungs- und Entwicklungsingenieur - Doktorand

もっと詳しく

Secure Code Warrior 、ソフトウェア開発サイクル全体を通じてコードの安全性を確保し、サイバーセキュリティを最優先とする文化を構築するため、貴社をSecure Code Warrior 。アプリセキュリティ管理者、開発者、CISO、あるいはセキュリティに関わるあらゆる立場の方々に対し、当社が貴社のビジネスにおける不安全なコードに関連するリスクの低減を支援します。

デモを予約する
共有する:
リンクトインのブランドソーシャルx ロゴ
著者
ピーテル・デ・クレマー
2017年11月13日発行

Forscher für Anwendungssicherheit - Forschungs- und Entwicklungsingenieur - Doktorand

共有する:
リンクトインのブランドソーシャルx ロゴ

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

https://www.blackhat.com/docs/ldn-15/materials/london-15-Welton-Abusing-Android-Apps-And-Gaining-Remote-Code-Execution.pdf

リソースを表示
リソースを表示

以下のフォームに記入してレポートをダウンロードしてください

当社製品および/またはセキュアコーディングに関連する情報について、お客様にご案内させていただくことをお許しください。お客様の個人情報は常に細心の注意をもって取り扱い、マーケティング目的で他社に販売することは一切ありません。

提出
SCW成功アイコン
SCWエラーアイコン
フォームを送信するには、「アナリティクス」クッキーを有効にしてください。完了後、いつでも無効に戻せます。

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

https://www.blackhat.com/docs/ldn-15/materials/london-15-Welton-Abusing-Android-Apps-And-Gaining-Remote-Code-Execution.pdf

ウェビナーを見る
始めましょう
もっと詳しく

以下のリンクをクリックして、このリソースのPDFをダウンロードしてください。

Secure Code Warrior 、ソフトウェア開発サイクル全体を通じてコードの安全性を確保し、サイバーセキュリティを最優先とする文化を構築するため、貴社をSecure Code Warrior 。アプリセキュリティ管理者、開発者、CISO、あるいはセキュリティに関わるあらゆる立場の方々に対し、当社が貴社のビジネスにおける不安全なコードに関連するリスクの低減を支援します。

レポートを見るデモを予約する
PDFをダウンロード
リソースを表示
共有する:
リンクトインのブランドソーシャルx ロゴ
もっと知りたいですか?

共有する:
リンクトインのブランドソーシャルx ロゴ
著者
ピーテル・デ・クレマー
2017年11月13日発行

Forscher für Anwendungssicherheit - Forschungs- und Entwicklungsingenieur - Doktorand

共有する:
リンクトインのブランドソーシャルx ロゴ

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

https://www.blackhat.com/docs/ldn-15/materials/london-15-Welton-Abusing-Android-Apps-And-Gaining-Remote-Code-Execution.pdf

目次

PDFをダウンロード
リソースを表示
もっと知りたいですか?

Forscher für Anwendungssicherheit - Forschungs- und Entwicklungsingenieur - Doktorand

もっと詳しく

Secure Code Warrior 、ソフトウェア開発サイクル全体を通じてコードの安全性を確保し、サイバーセキュリティを最優先とする文化を構築するため、貴社をSecure Code Warrior 。アプリセキュリティ管理者、開発者、CISO、あるいはセキュリティに関わるあらゆる立場の方々に対し、当社が貴社のビジネスにおける不安全なコードに関連するリスクの低減を支援します。

デモを予約するダウンロード
共有する:
リンクトインのブランドソーシャルx ロゴ
リソースハブ

入門リソース

さらに多くの投稿
リソースハブ

入門リソース

さらに多くの投稿