Les développeurs à la conquête de la sécurité : Série Partage & Apprentissage - Injection XXE

L'attaque par injection d'entités externes XML, parfois simplement appelée injection XXE, est relativement récente comparée à certaines vulnérabilités classiques qui circulent encore des années après leur apparition. Mais elle est extrêmement populaire au sein des communautés de hackers et gagne du terrain à mesure qu'elle accumule les succès.
En fait, l'OWASP classe désormais l'injection XXE parmi les dix principales vulnérabilités contre lesquelles les sites doivent se protéger activement. Mais ne vous inquiétez pas, l'injection XXE n'est pas plus puissante que les autres exploits utilisés dans les cyberattaques. Elle est simplement un peu plus récente et un peu moins comprise. Elle peut être évitée, et même totalement neutralisée.
Dans cet épisode, nous apprendrons :
- Comment les attaquants utilisent les injections XXE
- Pourquoi l'injection XXE est dangereuse
- Techniques permettant de prévenir cette vulnérabilité.
Comment les attaquants déclenchent-ils une injection XXE ?
La vulnérabilité d'injection XXE peut survenir lorsqu'un utilisateur malveillant a la possibilité de soumettre du code XML. Il utilise cette capacité pour créer une référence à une entité externe. La référence externe et le code sont conçus pour passer outre un analyseur XML aux paramètres par défaut ou mal configurés.
L'attaquant exploite le fait que la norme XML définit le concept d'entité comme une unité de stockage, qu'elle soit externe ou interne. Utilisée correctement, elle permet aux processeurs XML d'accéder à des ressources distantes. Le plus souvent, les attaquants utilisent cette capacité pour sonder la structure interne d'un site web, lancer une attaque par déni de service en déclenchant des processus système lourds tentant d'accéder à des ressources distantes, ou même transférer des données d'un hôte local vers un hôte distant qu'ils contrôlent, ce qui en fait une technique efficace pour exfiltrer des données sensibles comme des mots de passe ou des informations personnelles contenues dans la base de données XML.
Le code utilisé dans l'attaque est souvent assez simpliste, exploitant simplement la fonctionnalité d'entité. Par exemple, cela pourrait permettre à un pirate d'accéder au fichier des mots de passe maîtres :
<!ENTITY hackwithxxe SYSTEM file:///etc/password>
Pourquoi l'injection XXE est-elle dangereuse ?
Il existe plusieurs raisons pour lesquelles les attaques par injection XXE sont si dangereuses et répandues. D'une part, c'est une vulnérabilité encore mal comprise. D'autre part, les gains qu'un attaquant peut obtenir en l'exploitant sont considérables. Elle peut permettre à des attaquants persistants de cartographier lentement tous les chemins d'un réseau interne ou même de scanner des ports. Bien que cela puisse prendre un certain temps, il n'y a pratiquement aucune chance que l'activité du pirate soit détectée par les défenses actives du réseau cible, car il envoie simplement du code XML vers un serveur qui est traité par l'analyseur XML de confiance.
Une fois la cartographie effectuée, les attaquants peuvent utiliser les mêmes techniques d'injection XXE pour capturer les fichiers dont ils ont besoin, soit en volant directement des informations, soit en compromettant des identifiants d'utilisateurs valides pour mener des attaques secondaires. Enfin, les attaquants qui cherchent simplement à nuire peuvent déclencher des attaques par déni de service en ordonnant à l'application de tenter d'accéder à des ressources distantes conçues pour saturer le système.
Éliminer la vulnérabilité d'injection XXE
En raison de l'augmentation rapide des attaques par injection XXE, de nombreux analyseurs XML commencent à désactiver complètement les entités externes, parfois appelées DTD, par défaut. Pour ceux-ci, la clé consiste simplement à ne pas activer cette fonctionnalité.
Mais même les analyseurs qui autorisent les DTD peuvent voir cette fonctionnalité désactivée. En général, une instruction comme la suivante sera nécessaire pour la bloquer complètement, mais consultez la documentation de votre framework local pour obtenir le code exact requis.
factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
En suivant les principes de sécurité, toutes les entrées utilisateur doivent être assainies et validées à l'aide de filtres à l'échelle de l'application. N'oubliez pas d'inclure les paramètres GET et POST, les en-têtes HTTP et les cookies. Vous pouvez également créer une liste blanche des DTD et des commandes spécifiques que vous souhaitez que l'analyseur traite, et interdire tout le reste.
Bien que la mise sur liste blanche et le filtrage soient efficaces, en raison de la recrudescence des attaques par injection XXE, il est recommandé de désactiver complètement la prise en charge des DTD si cette fonctionnalité n'est pas nécessaire.
En savoir plus sur les injections XXE
Pour aller plus loin, vous pouvez consulter les recommandations de l'OWASP concernant les attaques par injection XXE. Vous pouvez également mettre vos nouvelles compétences défensives à l'épreuve avec la démo gratuite de la plateforme Secure Code Warrior, qui forme les équipes de cybersécurité à devenir des experts en la matière. Pour en savoir plus sur la neutralisation de cette vulnérabilité et d'autres menaces, visitez le blog de Secure Code Warrior.
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.
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.
%252520%252520(3).avif)
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.

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

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.

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.

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.
.avif)
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.
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.
