
Technique de codage sécurisée : le comportement par défaut des bibliothèques Zip peut entraîner l'exécution de code à distance
Cette semaine, nous allons parler du comportement par défaut des bibliothèques Zip. Si vous êtes développeur d'applications, il est fort probable que vous l'ayez déjà utilisé. La plupart des ressources téléchargées sur Internet sont au format zip, ce qui est logique ; les données compressées sont plus petites, elles se téléchargent donc plus rapidement et consomment moins de bande passante.
Si vous voulez des exemples plus concrets : des textures pour les jeux, des modules linguistiques pour la saisie automatique sur les claviers,... De nombreuses ressources ne sont pas automatiquement intégrées à l'application mais téléchargées ultérieurement.
Mais soyez prudent lorsque vous utilisez cette fonctionnalité, car les noms de fichiers des archives zip peuvent contenir des informations de traversée de chemin. Une fois extrait, cela entraînera la création de fichiers en dehors du répertoire prévu. Cela est souvent fait dans le but de remplacer des fichiers existants.

Supposons que nous ayons une archive zip contenant les deux fichiers suivants :
fichier1
.. /fichier2
Lorsque cette archive est extraite, le fichier1 est extrait là où nous nous attendons à ce qu'il soit, dans le répertoire de décompression. Cependant, le fichier 2 a été écrit un répertoire plus haut que celui où nous avons demandé à la bibliothèque zip d'extraire l'archive.
Attention donc, si votre bibliothèque zip ne prend pas soin de gérer correctement ce cas, elle permettra à un attaquant d'écrire un fichier arbitraire dans le système. Vérifiez toujours si votre bibliothèque est sécurisée, cette règle empirique est valable pour toutes les bibliothèques, mais vous devez en particulier vérifier le comportement par défaut de votre bibliothèque zip pour ces types de fichiers.
Démontrons les conséquences lorsque ce cas n'est pas correctement traité sous Android. Sous Android, la bibliothèque Java Zip (java.util.zip) est utilisée, la bibliothèque permet par défaut de parcourir les chemins comme expliqué ci-dessus.
Le format exécutable Dalvik d'Android (.dex) limite le nombre de classes qu'un seul fichier peut avoir. Les applications qui ont besoin de plus de classes peuvent utiliser la bibliothèque MultiDEX Support qui a été ajoutée depuis le niveau d'API 21 (Android 5.0 Lollipop). Cette bibliothèque enregistre les fichiers .dex secondaires dans le répertoire de données de l'application, ce répertoire est accessible en écriture par l'utilisateur de l'application et ce code sera chargé et exécuté lorsque le fichier .dex sera nécessaire.
Cela signifie qu'un attaquant peut modifier le fichier .dex en le remplaçant à l'aide d'une archive zip malveillante et, pire encore, ce fichier sera chargé et exécuté, ce qui entraînera une vulnérabilité d'exécution de code à distance. Il ne s'agit pas simplement d'un exemple théorique, mais cela a été démontré sur l'application My Talking Tom, qui compte plus de 100 millions de téléchargements sur l'App Store. Voici une vidéo de l'exploit qui a été présentée à Black Hat.

Vérifiez toujours le comportement de votre bibliothèque zip afin d'être conscient de ses insécurités. Si vous ne pouvez pas désactiver la traversée de chemin dans votre bibliothèque zip, assurez-vous de valider le nom de chaque entrée avant de l'extraire. Le nom doit être canonique et le chemin obtenu doit se trouver dans le répertoire dans lequel vous souhaitez extraire l'archive. Pendant que nous y sommes, vous devriez également vérifier la taille totale des archives extraites pour éviter les bombes zippées, mais ce billet sera publié pendant encore une semaine.
Si tu veux relever quelques défis lors de la traversée d'un chemin ou si vous souhaitez tester vos compétences en matière de codage sécurisé, consultez notre plateforme.
À la prochaine, et n'oubliez pas, code sécurisé ou pas de code !
- Nous pouvons injecter un fichier dans un zip dont le nom est préfixé par un nombre arbitraire de «../»
- Si la bibliothèque zip ne prend pas soin de gérer correctement ce cas, cela nous permettrait d'écrire en dehors du répertoire d'extraction prévu
- Si le fichier zip n'est pas fiable, cela donne à l'attaquant une vulnérabilité d'écriture arbitraire


Nous pouvons injecter un fichier dans un zip dont le nom est préfixé par un
Chercheur en sécurité des applications - Ingénieur R&D - Candidat au doctorat

Secure Code Warrior Ihr Unternehmen dabei, den Code während des gesamten Softwareentwicklungszyklus zu sichern und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Ganz gleich, ob Sie für die Anwendungssicherheit verantwortlich sind, Entwickler, IT-Sicherheitsbeauftragter oder in einer anderen Funktion im Bereich Sicherheit tätig sind – wir können Ihrem Unternehmen dabei helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Demo buchenChercheur en sécurité des applications - Ingénieur R&D - Candidat au doctorat


Cette semaine, nous allons parler du comportement par défaut des bibliothèques Zip. Si vous êtes développeur d'applications, il est fort probable que vous l'ayez déjà utilisé. La plupart des ressources téléchargées sur Internet sont au format zip, ce qui est logique ; les données compressées sont plus petites, elles se téléchargent donc plus rapidement et consomment moins de bande passante.
Si vous voulez des exemples plus concrets : des textures pour les jeux, des modules linguistiques pour la saisie automatique sur les claviers,... De nombreuses ressources ne sont pas automatiquement intégrées à l'application mais téléchargées ultérieurement.
Mais soyez prudent lorsque vous utilisez cette fonctionnalité, car les noms de fichiers des archives zip peuvent contenir des informations de traversée de chemin. Une fois extrait, cela entraînera la création de fichiers en dehors du répertoire prévu. Cela est souvent fait dans le but de remplacer des fichiers existants.

Supposons que nous ayons une archive zip contenant les deux fichiers suivants :
fichier1
.. /fichier2
Lorsque cette archive est extraite, le fichier1 est extrait là où nous nous attendons à ce qu'il soit, dans le répertoire de décompression. Cependant, le fichier 2 a été écrit un répertoire plus haut que celui où nous avons demandé à la bibliothèque zip d'extraire l'archive.
Attention donc, si votre bibliothèque zip ne prend pas soin de gérer correctement ce cas, elle permettra à un attaquant d'écrire un fichier arbitraire dans le système. Vérifiez toujours si votre bibliothèque est sécurisée, cette règle empirique est valable pour toutes les bibliothèques, mais vous devez en particulier vérifier le comportement par défaut de votre bibliothèque zip pour ces types de fichiers.
Démontrons les conséquences lorsque ce cas n'est pas correctement traité sous Android. Sous Android, la bibliothèque Java Zip (java.util.zip) est utilisée, la bibliothèque permet par défaut de parcourir les chemins comme expliqué ci-dessus.
Le format exécutable Dalvik d'Android (.dex) limite le nombre de classes qu'un seul fichier peut avoir. Les applications qui ont besoin de plus de classes peuvent utiliser la bibliothèque MultiDEX Support qui a été ajoutée depuis le niveau d'API 21 (Android 5.0 Lollipop). Cette bibliothèque enregistre les fichiers .dex secondaires dans le répertoire de données de l'application, ce répertoire est accessible en écriture par l'utilisateur de l'application et ce code sera chargé et exécuté lorsque le fichier .dex sera nécessaire.
Cela signifie qu'un attaquant peut modifier le fichier .dex en le remplaçant à l'aide d'une archive zip malveillante et, pire encore, ce fichier sera chargé et exécuté, ce qui entraînera une vulnérabilité d'exécution de code à distance. Il ne s'agit pas simplement d'un exemple théorique, mais cela a été démontré sur l'application My Talking Tom, qui compte plus de 100 millions de téléchargements sur l'App Store. Voici une vidéo de l'exploit qui a été présentée à Black Hat.

Vérifiez toujours le comportement de votre bibliothèque zip afin d'être conscient de ses insécurités. Si vous ne pouvez pas désactiver la traversée de chemin dans votre bibliothèque zip, assurez-vous de valider le nom de chaque entrée avant de l'extraire. Le nom doit être canonique et le chemin obtenu doit se trouver dans le répertoire dans lequel vous souhaitez extraire l'archive. Pendant que nous y sommes, vous devriez également vérifier la taille totale des archives extraites pour éviter les bombes zippées, mais ce billet sera publié pendant encore une semaine.
Si tu veux relever quelques défis lors de la traversée d'un chemin ou si vous souhaitez tester vos compétences en matière de codage sécurisé, consultez notre plateforme.
À la prochaine, et n'oubliez pas, code sécurisé ou pas de code !
- Nous pouvons injecter un fichier dans un zip dont le nom est préfixé par un nombre arbitraire de «../»
- Si la bibliothèque zip ne prend pas soin de gérer correctement ce cas, cela nous permettrait d'écrire en dehors du répertoire d'extraction prévu
- Si le fichier zip n'est pas fiable, cela donne à l'attaquant une vulnérabilité d'écriture arbitraire

Cette semaine, nous allons parler du comportement par défaut des bibliothèques Zip. Si vous êtes développeur d'applications, il est fort probable que vous l'ayez déjà utilisé. La plupart des ressources téléchargées sur Internet sont au format zip, ce qui est logique ; les données compressées sont plus petites, elles se téléchargent donc plus rapidement et consomment moins de bande passante.
Si vous voulez des exemples plus concrets : des textures pour les jeux, des modules linguistiques pour la saisie automatique sur les claviers,... De nombreuses ressources ne sont pas automatiquement intégrées à l'application mais téléchargées ultérieurement.
Mais soyez prudent lorsque vous utilisez cette fonctionnalité, car les noms de fichiers des archives zip peuvent contenir des informations de traversée de chemin. Une fois extrait, cela entraînera la création de fichiers en dehors du répertoire prévu. Cela est souvent fait dans le but de remplacer des fichiers existants.

Supposons que nous ayons une archive zip contenant les deux fichiers suivants :
fichier1
.. /fichier2
Lorsque cette archive est extraite, le fichier1 est extrait là où nous nous attendons à ce qu'il soit, dans le répertoire de décompression. Cependant, le fichier 2 a été écrit un répertoire plus haut que celui où nous avons demandé à la bibliothèque zip d'extraire l'archive.
Attention donc, si votre bibliothèque zip ne prend pas soin de gérer correctement ce cas, elle permettra à un attaquant d'écrire un fichier arbitraire dans le système. Vérifiez toujours si votre bibliothèque est sécurisée, cette règle empirique est valable pour toutes les bibliothèques, mais vous devez en particulier vérifier le comportement par défaut de votre bibliothèque zip pour ces types de fichiers.
Démontrons les conséquences lorsque ce cas n'est pas correctement traité sous Android. Sous Android, la bibliothèque Java Zip (java.util.zip) est utilisée, la bibliothèque permet par défaut de parcourir les chemins comme expliqué ci-dessus.
Le format exécutable Dalvik d'Android (.dex) limite le nombre de classes qu'un seul fichier peut avoir. Les applications qui ont besoin de plus de classes peuvent utiliser la bibliothèque MultiDEX Support qui a été ajoutée depuis le niveau d'API 21 (Android 5.0 Lollipop). Cette bibliothèque enregistre les fichiers .dex secondaires dans le répertoire de données de l'application, ce répertoire est accessible en écriture par l'utilisateur de l'application et ce code sera chargé et exécuté lorsque le fichier .dex sera nécessaire.
Cela signifie qu'un attaquant peut modifier le fichier .dex en le remplaçant à l'aide d'une archive zip malveillante et, pire encore, ce fichier sera chargé et exécuté, ce qui entraînera une vulnérabilité d'exécution de code à distance. Il ne s'agit pas simplement d'un exemple théorique, mais cela a été démontré sur l'application My Talking Tom, qui compte plus de 100 millions de téléchargements sur l'App Store. Voici une vidéo de l'exploit qui a été présentée à Black Hat.

Vérifiez toujours le comportement de votre bibliothèque zip afin d'être conscient de ses insécurités. Si vous ne pouvez pas désactiver la traversée de chemin dans votre bibliothèque zip, assurez-vous de valider le nom de chaque entrée avant de l'extraire. Le nom doit être canonique et le chemin obtenu doit se trouver dans le répertoire dans lequel vous souhaitez extraire l'archive. Pendant que nous y sommes, vous devriez également vérifier la taille totale des archives extraites pour éviter les bombes zippées, mais ce billet sera publié pendant encore une semaine.
Si tu veux relever quelques défis lors de la traversée d'un chemin ou si vous souhaitez tester vos compétences en matière de codage sécurisé, consultez notre plateforme.
À la prochaine, et n'oubliez pas, code sécurisé ou pas de code !
- Nous pouvons injecter un fichier dans un zip dont le nom est préfixé par un nombre arbitraire de «../»
- Si la bibliothèque zip ne prend pas soin de gérer correctement ce cas, cela nous permettrait d'écrire en dehors du répertoire d'extraction prévu
- Si le fichier zip n'est pas fiable, cela donne à l'attaquant une vulnérabilité d'écriture arbitraire

Klicken Sie auf den untenstehenden Link und laden Sie das PDF dieser Ressource herunter.
Secure Code Warrior Ihr Unternehmen dabei, den Code während des gesamten Softwareentwicklungszyklus zu sichern und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Ganz gleich, ob Sie für die Anwendungssicherheit verantwortlich sind, Entwickler, IT-Sicherheitsbeauftragter oder in einer anderen Funktion im Bereich Sicherheit tätig sind – wir können Ihrem Unternehmen dabei helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Bericht anzeigenDemo buchenChercheur en sécurité des applications - Ingénieur R&D - Candidat au doctorat
Cette semaine, nous allons parler du comportement par défaut des bibliothèques Zip. Si vous êtes développeur d'applications, il est fort probable que vous l'ayez déjà utilisé. La plupart des ressources téléchargées sur Internet sont au format zip, ce qui est logique ; les données compressées sont plus petites, elles se téléchargent donc plus rapidement et consomment moins de bande passante.
Si vous voulez des exemples plus concrets : des textures pour les jeux, des modules linguistiques pour la saisie automatique sur les claviers,... De nombreuses ressources ne sont pas automatiquement intégrées à l'application mais téléchargées ultérieurement.
Mais soyez prudent lorsque vous utilisez cette fonctionnalité, car les noms de fichiers des archives zip peuvent contenir des informations de traversée de chemin. Une fois extrait, cela entraînera la création de fichiers en dehors du répertoire prévu. Cela est souvent fait dans le but de remplacer des fichiers existants.

Supposons que nous ayons une archive zip contenant les deux fichiers suivants :
fichier1
.. /fichier2
Lorsque cette archive est extraite, le fichier1 est extrait là où nous nous attendons à ce qu'il soit, dans le répertoire de décompression. Cependant, le fichier 2 a été écrit un répertoire plus haut que celui où nous avons demandé à la bibliothèque zip d'extraire l'archive.
Attention donc, si votre bibliothèque zip ne prend pas soin de gérer correctement ce cas, elle permettra à un attaquant d'écrire un fichier arbitraire dans le système. Vérifiez toujours si votre bibliothèque est sécurisée, cette règle empirique est valable pour toutes les bibliothèques, mais vous devez en particulier vérifier le comportement par défaut de votre bibliothèque zip pour ces types de fichiers.
Démontrons les conséquences lorsque ce cas n'est pas correctement traité sous Android. Sous Android, la bibliothèque Java Zip (java.util.zip) est utilisée, la bibliothèque permet par défaut de parcourir les chemins comme expliqué ci-dessus.
Le format exécutable Dalvik d'Android (.dex) limite le nombre de classes qu'un seul fichier peut avoir. Les applications qui ont besoin de plus de classes peuvent utiliser la bibliothèque MultiDEX Support qui a été ajoutée depuis le niveau d'API 21 (Android 5.0 Lollipop). Cette bibliothèque enregistre les fichiers .dex secondaires dans le répertoire de données de l'application, ce répertoire est accessible en écriture par l'utilisateur de l'application et ce code sera chargé et exécuté lorsque le fichier .dex sera nécessaire.
Cela signifie qu'un attaquant peut modifier le fichier .dex en le remplaçant à l'aide d'une archive zip malveillante et, pire encore, ce fichier sera chargé et exécuté, ce qui entraînera une vulnérabilité d'exécution de code à distance. Il ne s'agit pas simplement d'un exemple théorique, mais cela a été démontré sur l'application My Talking Tom, qui compte plus de 100 millions de téléchargements sur l'App Store. Voici une vidéo de l'exploit qui a été présentée à Black Hat.

Vérifiez toujours le comportement de votre bibliothèque zip afin d'être conscient de ses insécurités. Si vous ne pouvez pas désactiver la traversée de chemin dans votre bibliothèque zip, assurez-vous de valider le nom de chaque entrée avant de l'extraire. Le nom doit être canonique et le chemin obtenu doit se trouver dans le répertoire dans lequel vous souhaitez extraire l'archive. Pendant que nous y sommes, vous devriez également vérifier la taille totale des archives extraites pour éviter les bombes zippées, mais ce billet sera publié pendant encore une semaine.
Si tu veux relever quelques défis lors de la traversée d'un chemin ou si vous souhaitez tester vos compétences en matière de codage sécurisé, consultez notre plateforme.
À la prochaine, et n'oubliez pas, code sécurisé ou pas de code !
- Nous pouvons injecter un fichier dans un zip dont le nom est préfixé par un nombre arbitraire de «../»
- Si la bibliothèque zip ne prend pas soin de gérer correctement ce cas, cela nous permettrait d'écrire en dehors du répertoire d'extraction prévu
- Si le fichier zip n'est pas fiable, cela donne à l'attaquant une vulnérabilité d'écriture arbitraire
Inhaltsverzeichnis
Chercheur en sécurité des applications - Ingénieur R&D - Candidat au doctorat

Secure Code Warrior Ihr Unternehmen dabei, den Code während des gesamten Softwareentwicklungszyklus zu sichern und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Ganz gleich, ob Sie für die Anwendungssicherheit verantwortlich sind, Entwickler, IT-Sicherheitsbeauftragter oder in einer anderen Funktion im Bereich Sicherheit tätig sind – wir können Ihrem Unternehmen dabei helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Demo buchenHerunterladenRessourcen, die Ihnen den Einstieg erleichtern
Themen und Inhalte der Schulung zum sicheren Code
Unsere hochmodernen Inhalte werden ständig weiterentwickelt, um mit den ständigen Veränderungen in der Softwareentwicklungslandschaft Schritt zu halten und gleichzeitig Ihre Rolle zu berücksichtigen. Die Themen reichen von KI bis hin zu XQuery-Injection und sind für eine Vielzahl von Positionen konzipiert, von Architekten über Ingenieure bis hin zu Produktmanagern und Qualitätssicherungsmitarbeitern. Verschaffen Sie sich einen Überblick über die Inhalte unseres Katalogs, sortiert nach Themen und Rollen.
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 missions „Beat the Boss“ sind jetzt auf Abruf verfügbar.
Cybermon 2025 Beat the Boss ist jetzt das ganze Jahr über in SCW verfügbar. Setzen Sie fortschrittliche Sicherheitsherausforderungen im Zusammenhang mit KI und LLM ein, um die sichere Entwicklung von KI in großem Maßstab zu stärken.
Erläuterung des Gesetzes zur Cyberresilienz: Was bedeutet das für die Entwicklung sicherer Software bereits ab der Konzeption?
Entdecken Sie, was das europäische Gesetz zur Cyberresilienz (CRA) verlangt, für wen es gilt und wie sich Ingenieurteams durch Sicherheitsmaßnahmen bereits in der Entwurfsphase, durch die Vermeidung von Schwachstellen und durch die Stärkung der Fähigkeiten der Entwickler darauf vorbereiten können.
Moderator 1: Definierte und messbare Erfolgskriterien
Enabler 1 gibt den Startschuss für unsere 10-teilige Serie mit dem Titel „Enablers of Success“ und zeigt, wie sichere Codierung mit geschäftlichen Ergebnissen wie Risikominderung und Schnelligkeit kombiniert werden kann, um die langfristige Reife von Programmen sicherzustellen.




%20(1).avif)
.avif)
