Attaque par injection XXE : qu'est-ce que c'est et comment la prévenir

(Pour Francesco Rugolo)
29/04/24

Lorsque vous parlez Injection XXE nous faisons référence à une vulnérabilité web très répandue qui permet à un pirate informatique de prendre possession de données sur nos serveurs ou de procéder à ce qu'on appelle une « escalade » de l'attaque qui pourrait compromettre le serveur attaqué et les autres infrastructures qui y sont connectées.

Tout d’abord, voyons ce que signifie XXEi Injection d'entité externe XML. Cependant, pour expliquer son fonctionnement, il faut savoir ce qu'est XML, acronyme de Langage de balisage extensible.

Bref, en informatique, XML est un langage utilisé pour définir des éléments et leur signification au sein d'un texte. XML est extensible, c'est-à-dire qu'il vous permet de définir des balises personnalisées, des balises qui organisent et définissent ce qui se trouve dans notre document.

Dans le document XML, un objet peut être représenté par une « entité » au lieu d'utiliser l'objet lui-même.

Dans le fichier DTD (document type definition) se trouvent toutes les spécifications qui définissent les types de données que notre document XML peut contenir, les valeurs qui peuvent lui être attribuées et plus encore.

XML permet la création d'entités ou la possibilité d'en importer des externes, et nous voici à la définition de entités externes.

Le entités externes ce sont des entités non définies par notre DTD mais totalement externes à celle-ci et sont spécifiées via une URL à partir de laquelle elles sont chargées dans l'application.

Il n'est désormais pas difficile de comprendre les risques que cette procédure pourrait faire peser sur nos systèmes.

Les attaques les plus courantes qui exploitent cette vulnérabilité visent à voler des données et des mots de passe de nos bases de données, mais le scénario le plus grave se produit lorsque cette vulnérabilité est utilisée pour mener une attaque Server-Side Request Forgery ou SSRF.

SSRF est une attaque dans laquelle une application appartenant au serveur peut être utilisée par le pirate informatique pour lancer des requêtes vers n'importe quelle adresse Web et conduire à une compromission initialement du serveur attaqué et ensuite de toute infrastructure qui y est connectée et potentiellement vulnérable.

Le XXEi cible principalement les applications qui effectuent le analyse (c'est-à-dire une analyse des composants) de XML qui ont une configuration faible, des applications qui acceptent le XML provenant de sources non fiables et des applications qui ne désactivent pas l'utilisation de entités externes.

Pour parer la plupart des attaques, il existe toute une série de les meilleures pratiques parmi lesquels on peut citer :

- la procédure liste blanche au niveau du serveur, qui vise à bloquer toute entrée non conforme à nos normes de sécurité ;

- effectuer une validation des données XML ;

- bloquer l'option évidente mais souvent inutilisée des analyseurs XML d'accepter des entités externes.

Grâce à ces mesures simples, il est possible de prévenir un grand pourcentage d’attaques de type XXE.

Pour trouver des vulnérabilités de ce type, nous pouvons dans tous les cas utiliser un outil très utile et puissant, appelé Suite Burp, un logiciel capable de cartographier les vulnérabilités d'une application web et d'analyser ses caractéristiques.

Dans tous les cas, il est toujours utile de rappeler que la majorité des attaques sont dues à la présence de vulnérabilités dans le logiciel, imputables à des erreurs de programmeurs qui ne sont pas toujours suffisamment préparés pour un développement sécurisé, c'est pourquoi on entend de plus en plus souvent sur les formations au DevOps et au DevSecOps, des concepts étroitement liés au développement logiciel et à la sécurité.

Sitographie:

https://owasp.org/www-community/vulnerabilities/XML_External_Entity_(XXE)_Traitement

https://portswigger.net/burp/documentation

https://www.redhat.com/it/topics/devops

https://www.pluribus-one.it/it/servizi/formazione/offerta-formativa-2

https://owasp.org/www-project-devsecops-guideline

https://abu-talha.medium.com/xml-external-entity-xxe-attacks-understandi... (site d'où l'image a été prise)