Attaque
Exécution de code à distance
Aussi appeléRCERemote Code Execution
En résumé
Une vulnérabilité qui permet à un attaquant d’exécuter ses propres commandes ou son propre code sur un système distant, sans y avoir d’accès légitime. Elle donne en général le niveau de droits du service exploité et constitue l’un des impacts les plus graves qu’un défaut puisse avoir.
Exécution de code à distance, en détail
RCE signifie Remote Code Execution. Elle peut résulter de causes très différentes : une injection de commandes dans une fonction qui appelle le système, une désérialisation non sécurisée : définition, un téléversement de fichier exécutable accepté par le serveur, un défaut de gestion mémoire dans un composant, ou une bibliothèque tierce vulnérable. Le point commun est le résultat : l’attaquant fait travailler la machine pour lui.
Une RCE n’est pas toujours exploitable sans condition. Elle peut exiger une authentification préalable, un accès réseau particulier ou une interaction de la victime ; ces conditions pèsent sur la criticité réelle. Une RCE sans authentification sur un service exposé à Internet est le cas le plus grave, car elle peut être exploitée automatiquement et à grande échelle dès la publication du défaut. Une fois le code exécuté, l’attaquant cherche en général à obtenir un accès interactif, à voler des identifiants stockés sur la machine, puis à progresser vers d’autres systèmes. La limitation de l’impact passe par des services exécutés avec des droits réduits, des conteneurs cloisonnés, le filtrage du trafic sortant, et une détection des comportements anormaux de processus sur le serveur.
Qu’est-ce que cela change pour vous ?
Une exécution de code sur un serveur exposé est le plus souvent le début d’une intrusion complète, pas sa fin. La rapidité de correction des composants exposés et le cloisonnement du serveur déterminent l’ampleur de ce qui suit.
Exemple illustratif (fictif)
Prenons un module de conversion de documents, sur un portail client, qui passe le nom du fichier téléversé à une commande système sans l’assainir. En choisissant un nom de fichier particulier, un analyste pourrait obtenir l’exécution de commandes avec les droits du service web.
La confusion fréquente
Supposer qu’une RCE nécessite un défaut exotique dans un logiciel complexe. Elle provient souvent d’une fonction banale, comme l’envoi d’un fichier ou l’appel d’un utilitaire système, mal protégée dans une application sur mesure.
Comment le détecter chez vous ?
- Pentest web : la prestationSavoir ce qu’un attaquant obtiendrait sur votre application.
- Audit de code : la prestationRetrouver la ligne de code responsable et la raison pour laquelle elle a été écrite.
Aller plus loin
- ArticleIDOR et BOLA : une faille coûteuse pour les plateformes SaaSPourquoi un simple identifiant modifiable figure en tête de l’OWASP API Security Top 10, pourquoi aucun scanner ne la trouve, et comment la supprimer par conception.
- ArticleLire un rapport de scan de vulnérabilités : ce qu’il prouve et ce qu’il rateUn rapport de scan est une liste de candidats, pas de faits : faux positifs, gravité hors contexte, zones non atteintes. Comment le lire et le vérifier.
- ComparatifTest d’intrusion ou bug bounty : faut-il ouvrir un programme de primes ?Une mission cadrée et un programme de primes ont des modèles économiques opposés et des couvertures différentes. Ce que chacun apporte, ce qu’il suppose en interne, et quand l’un ne se justifie pas encore.
Termes liés
- AttaqueDésérialisation non sécurisée : définitionUne vulnérabilité où une application reconstruit des objets à partir de données fournies par l’utilisateur sans en vérifier le contenu.
- AttaqueInjection SQL : définitionUne vulnérabilité où des données saisies par l’utilisateur sont interprétées comme du code SQL par la base de données, faute de séparation entre la requête et ses paramètres.
- AttaqueSSRF : définitionUne vulnérabilité où l’attaquant amène un serveur à émettre une requête vers une destination qu’il choisit.
- AttaqueMouvement latéral : définitionL’ensemble des techniques qu’un attaquant utilise, une fois entré dans un réseau, pour passer d’une machine ou d’un compte à d’autres afin d’atteindre ses objectifs.
Réponse à toute demande sous 24 h ouvrées
Un périmètre à faire tester ?
Le cadrage est gratuit et sans engagement. Trente minutes suffisent à savoir si une mission est pertinente, laquelle, et ce qu’elle coûterait.
- Accord de confidentialité systématique
- Cadrage gratuit et sans engagement
- Périmètre et prix écrits avant le début