RCE : comprendre l’exécution de code à distance
Auteur : Rédaction Domeny.ForSale Publié le
En bref : RCE, pour Remote Code Execution, désigne l’exécution de code à distance sur un ordinateur ou un serveur. Dans le cadre d’une attaque, un intrus exploite une faille pour faire exécuter ses instructions par l’appareil sans l’accord de son propriétaire. La menace est sérieuse, mais l’étendue des dégâts dépend notamment des droits du programme attaqué : une RCE n’entraîne pas toujours une prise de contrôle immédiate de tout le système.
Que signifie l’exécution de code à distance en pratique ?
Le code est un ensemble d’instructions exécutées par un ordinateur. En général, vous déclenchez leur exécution volontairement, par exemple en ouvrant un programme. Lors d’une attaque RCE, les instructions viennent de l’attaquant et l’application vulnérable les exécute en dehors de son fonctionnement prévu.
On peut comparer cela à un guichet où l’on dépose des formulaires. L’employé devrait lire les données fournies, mais il se met à exécuter les ordres inscrits sur le formulaire. Un problème similaire survient lorsqu’un programme traite un contenu reçu de l’extérieur comme une instruction plutôt que comme de simples données.
L’expression « faille RCE » désigne un défaut qui permet ce type d’action. Toutefois, RCE décrit la possibilité d’exécuter du code ou le résultat de cette exécution, et non une défaillance particulière. De nombreuses erreurs différentes peuvent aboutir au même résultat.
« À distance » signifie que l’attaquant n’a pas besoin d’être devant l’appareil. L’attaque peut passer par internet, par un réseau local ou par un fichier spécialement conçu. Toutes les failles ne sont pas exploitables sans connexion à un compte ni intervention de l’utilisateur : cela dépend des conditions propres à chacune.
Comment une attaque RCE peut-elle se produire ?
Une RCE peut résulter d’un traitement incorrect des données, d’une gestion non sécurisée des fichiers ou de défauts dans les mécanismes de gestion de la mémoire. La vulnérabilité peut se trouver dans l’application elle-même, mais aussi dans une bibliothèque qu’elle utilise, c’est-à-dire un composant logiciel prêt à l’emploi.
Imaginez une boutique en ligne où les clients envoient des photos pour leur commande. Le serveur en crée automatiquement des miniatures. Si l’outil de traitement des images présente une faille exploitable de cette manière, un fichier spécialement conçu peut déclencher l’exécution du code de l’attaquant au lieu d’un simple redimensionnement de l’image.
Dans ce scénario, le propriétaire de la boutique n’a rien à ouvrir sur son ordinateur portable. C’est le serveur qui traite le fichier qui est attaqué. Le fait que le formulaire n’accepte que des photos ne garantit pas la sécurité : le contenu réel du fichier et la manière dont il est traité comptent aussi.
Une autre voie est l’injection de commandes : l’attaquant transmet des données que l’application incorpore à tort dans une instruction exécutée par le système. Il s’agit d’un des mécanismes pouvant conduire à une RCE, et non d’un synonyme de toutes les vulnérabilités de ce type.
Que peut faire un attaquant après avoir exploité une RCE ?
Le code de l’attaquant s’exécute généralement avec les droits du processus attaqué, c’est-à-dire du programme en cours d’exécution. Si l’application peut lire certains fichiers ou se connecter à une base de données, l’intrus peut obtenir des possibilités similaires.
Les conséquences possibles comprennent :
- la lecture des données clients, des fichiers de configuration et des secrets d’accès ;
- la modification du contenu du site ou du fonctionnement de l’application ;
- l’installation de logiciels malveillants ;
- la suppression ou le chiffrement des données accessibles ;
- l’utilisation du serveur pour mener d’autres attaques.
Une RCE ne donne pas automatiquement des droits d’administrateur. L’isolation de l’application et la limitation de ses droits peuvent réduire les dégâts. L’attaquant peut toutefois tenter d’exploiter d’autres failles pour obtenir un accès plus étendu.
C’est pourquoi les vulnérabilités RCE sont prises très au sérieux. La situation est particulièrement urgente lorsque le service vulnérable est accessible depuis internet et que l’exploitation de la faille ne nécessite aucune authentification. Une évaluation précise doit reposer sur les conditions décrites dans l’avis de l’éditeur, et pas uniquement sur le sigle RCE.
Comment limiter le risque et évaluer une alerte RCE ?
La première mesure consiste à mettre à jour le système, les applications, les extensions et les bibliothèques. La mise à jour d’un élément ne corrige pas automatiquement les vulnérabilités des autres. Le propriétaire d’un site doit aussi savoir quels composants il doit mettre à jour lui-même et lesquels relèvent de l’hébergeur.
Limiter les droits d’une application réduit la portée d’une éventuelle attaque. Le programme qui traite les photos envoyées ne devrait pas avoir accès sans nécessité à toutes les données de la boutique. De même, un panneau d’administration qui n’a pas besoin d’être public peut être rendu accessible uniquement par un accès contrôlé.
Lorsqu’une alerte RCE concerne un produit que vous utilisez :
- Consultez l’avis officiel de l’éditeur pour vérifier les versions et les configurations concernées.
- Déterminez si vous utilisez le composant vulnérable et s’il est accessible à un attaquant potentiel.
- Appliquez le correctif ou la mesure de protection temporaire indiquée par l’éditeur. Si aucun correctif n’est disponible, envisagez de désactiver la fonctionnalité exposée.
- Si une attaque a pu avoir lieu, recherchez des traces d’activité non autorisée. Une mise à jour ne suffit pas à supprimer les conséquences d’une intrusion antérieure.
Les sauvegardes aident à restaurer les données, mais n’empêchent pas leur vol. De même, un pare-feu ou un antivirus ne remplace pas la correction de la vulnérabilité.
Si vous gérez un site sans connaître les versions de ses composants, commencez par les répertorier et par déterminer qui est responsable de leurs mises à jour. Vous pourrez ainsi transformer une alerte générale sur une RCE en décisions concrètes : quoi vérifier, mettre à jour ou désactiver temporairement.
À lire aussi : Qu’est-ce qu’une attaque DDoS ?
