Blog

Technique de codage sécurisé : le comportement par défaut des bibliothèques Zip peut mener à une exécution de code à distance.

November 13, 2017
Pieter De Cremer
Vue de dessus d'une pile en spirale de livres ouverts assortis formant un tourbillon en forme de tunnel.

Cette semaine, nous allons aborder le comportement par défaut des bibliothèques Zip. Si vous êtes développeur d'applications, il est fort probable que vous ayez déjà utilisé ce format. La plupart des ressources téléchargées sur Internet sont au format zip, et cela se comprend : les données compressées sont plus légères, ce qui accélère le téléchargement et réduit la consommation de bande passante.

Pour donner des exemples plus concrets : textures de jeux, packs de langue pour la saisie semi-automatique des claviers, etc. De nombreuses ressources ne sont pas intégrées automatiquement à l'application, mais téléchargées ultérieurement.

Soyez toutefois prudent lors de l'utilisation de cette fonctionnalité, car les noms de fichiers dans les archives zip peuvent contenir des informations de traversée de répertoire (path traversal). Lors de l'extraction, cela peut entraîner la création de fichiers en dehors du répertoire prévu. Cette technique est souvent utilisée dans le but de remplacer des fichiers existants.

Zip Archives

Imaginons une archive zip contenant les deux fichiers suivants :

fichier1
  ../fichier2

Lors de l'extraction de cette archive, fichier1 est extrait là où nous l'attendons, dans le répertoire de destination. Cependant, fichier2 est écrit un répertoire au-dessus de celui où nous avions demandé à la bibliothèque zip d'extraire l'archive.

Soyez donc vigilant : si votre bibliothèque zip ne prend pas soin de gérer correctement ce cas, elle permettra à un attaquant d'écrire un fichier arbitraire sur le système. Vérifiez toujours la sécurité de votre bibliothèque. Cette règle est valable pour toute bibliothèque, mais vous devez tout particulièrement vérifier le comportement par défaut de votre bibliothèque zip face à ce type de fichiers.

Démontrons les conséquences d'une mauvaise gestion de ce cas sous Android. Android utilise la bibliothèque Java Zip (java.util.zip), qui autorise par défaut la traversée de répertoire, comme expliqué précédemment.

Le format Dalvik Executable (.dex) d'Android impose des limites sur le nombre de classes qu'un seul fichier peut contenir. Les applications nécessitant davantage de classes peuvent utiliser la bibliothèque de support MultiDex, ajoutée depuis l'API niveau 21 (Android 5.0 Lollipop). Cette bibliothèque enregistre les fichiers .dex secondaires dans le répertoire de données de l'application, lequel est accessible en écriture par l'utilisateur de l'application ; ce code sera chargé et exécuté lorsque le fichier .dex sera requis.

Cela signifie qu'un attaquant peut modifier le fichier .dex en le remplaçant par une archive zip malveillante. Pire encore, ce fichier sera chargé et exécuté, entraînant une vulnérabilité d'exécution de code à distance. Il ne s'agit pas d'un simple exemple théorique, mais d'une faille démontrée 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 présenté à la Black Hat.

Talking Tom

Vérifiez toujours le comportement de votre bibliothèque zip afin d'être conscient de ses failles. Si vous ne pouvez pas désactiver la traversée de répertoire, assurez-vous de valider le nom de chaque entrée avant de l'extraire. Le nom doit être normalisé et le chemin résultant doit se trouver dans le répertoire cible. Tant que nous y sommes, vous devriez également vérifier la taille totale de l'archive extraite pour prévenir les « bombes zip », mais ce sera le sujet d'un prochain article.

Si vous souhaitez relever des défis sur la traversée de répertoire ou tester vos compétences en codage sécurisé, consultez notre plateforme.

À la prochaine, et n'oubliez pas : du code sécurisé ou rien !

- 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 gère pas correctement ce cas, cela nous permet d'écrire en dehors du répertoire d'extraction prévu
- Si le fichier zip n'est pas fiable, cela offre à l'attaquant une vulnérabilité d'écriture arbitraire

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

Slogan

Gouvernez le développement assisté par IA avant la mise en production

Évaluez les risques liés à l'IA, appliquez des politiques de codage sécurisé dès le commit et accélérez la livraison sécurisée tout au long de votre cycle de développement.

Réserver une démo
Bibliothèque de ressources

Explorer plus d'articles

Accédez à du contenu expert sur le codage sécurisé, la gouvernance de l'IA et la gestion des risques logiciels.

tout parcourir
Étude de cas
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

En savoir plus
Étude de cas
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

En savoir plus
Étude de cas
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Une culture de la sécurité : comment Sage a bâti son programme de champions

Découvrez comment Sage a renforcé sa sécurité grâce à une approche flexible axée sur les relations humaines, formant plus de 200 champions de la sécurité et obtenant une réduction mesurable des risques.

En savoir plus
Blog
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Mois de la sensibilisation à la cybersécurité 2026 : comprendre la sécurité de l'IA est essentiel à la défense de l'entreprise

Nous avons atteint un point où la plupart des grandes entreprises d'IA ont publiquement appelé à un ralentissement mondial du développement de l'IA afin de permettre aux garde-fous de sécurité de rattraper leur retard. Pourtant, la réalité est que de graves problèmes de sécurité se sont déjà concrétisés. Cela place d'innombrables responsables de la sécurité et équipes de direction dans une situation d'urgence, alors que les coûts financiers et les risques liés à la mise en œuvre de l'IA ne cessent de s'accumuler.

En savoir plus
Blog
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Levier 8 : Valoriser votre programme

Un programme de codage sécurisé a besoin de plus qu'un contenu de qualité pour réussir. Le levier 8 montre comment l'image de marque transforme la participation en une expérience convoitée, axée sur le statut.

En savoir plus
Blog
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Chaque employé est désormais en première ligne de la cybersécurité IA

Le paysage technologique des entreprises évolue à une vitesse que peu avaient anticipée avant qu'il ne soit trop tard. Nous avons officiellement franchi le cap du code écrit par l'humain et de l'assistance basique par copilote pour entrer dans l'ère du cycle de vie de développement agentique (ADLC). Si les agents IA autonomes promettent une efficacité sans précédent dans de multiples fonctions, ils apportent également une toute nouvelle catégorie de risques en matière de sécurité et de réglementation.

En savoir plus

Sécurisez le développement piloté par l'IA avant le déploiement

Identifiez les risques de développement, appliquez vos politiques et prévenez les vulnérabilités tout au long du cycle de vie de vos logiciels.

Réserver une démo
trust score
Aucun élément trouvé.