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.

Zip 아카이브

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.

Zip 아카이브

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.

Zip 아카이브

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) 또는 보안 관련 업무를 담당하는 분이라면 누구든, 저희는 귀사가 안전하지 않은 코드로 인한 위험을 줄일 수 있도록 돕습니다.

보고서 보기데모 예약하기
리소스 보기
공유하기:
링크드인 브랜드사회적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.

Zip 아카이브

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 로고
자원 허브

시작을 위한 자료

더 많은 글
자원 허브

시작을 위한 자료

더 많은 글