Qu'est-ce qu'une injection de commande?
Une injection de commande est un exploit d'une faiblesse du système pour y accéder afin d'exécuter du code malveillant, de collecter des données utilisateur et de se livrer à d'autres activités. Bien qu’il soit possible que l’injection de commande soit de nature bénigne, ce n’est généralement pas le cas et elle peut représenter une menace importante pour la sécurité. Un certain nombre de solutions de contournement sont conçues pour empêcher cette activité dans les systèmes informatiques.
L'un des points les plus courants de vulnérabilité pour une injection de commande est un formulaire, sur une page Web ou dans un système informatique. Les formulaires permettent aux personnes de saisir des données et sont ensuite traités par le système. S'il n'y a pas de contrainte sur le type de données entrées dans le formulaire, il est possible de saisir un code informatique que le système lira et exécutera. Les formulaires sur les pages Web peuvent également convertir l'entrée à afficher pour d'autres utilisateurs, exposant également d'autres personnes au code; Par exemple, quelqu'un pourrait laisser un script malveillant dans les commentaires d'un site Web.
Lorsque le code est exécuté, il peut notamment permettre aux utilisateurs d’avoir accès au back-end d’un système informatique, y compris un accès administratif, et également installer des virus et des logiciels malveillants sur un système informatique. Les injections de commandes peuvent être conçues pour se propager, les ordinateurs infectés interagissant avec des ordinateurs non infectés sur un réseau. Ils peuvent se propager très rapidement et peuvent causer des dommages importants en cours de route.
Une façon d'éviter une injection de commande consiste à concevoir des formulaires et d'autres entrées de manière à limiter l'accès des utilisateurs. Sur les commentaires Internet, par exemple, il n'y aurait probablement aucune raison légitime pour les utilisateurs de saisir des scripts, et le formulaire de commentaire pourrait tout simplement rejeter le script, tout en autorisant le code HTML pour le balisage et le style. De même, dans un programme informatique, les formulaires de saisie pourraient refuser la saisie de certains caractères, empêchant ainsi des personnes d’exécuter du code dans le formulaire.
Le risque potentiel présenté par l'injection de commande a été noté pour la première fois dans les années 90. De nombreux concepteurs se sont attaqués au problème et ont mis au point différentes méthodes pour prévenir ou arrêter les attaques par injection de commandes. Les pirates ont également tenté de développer leurs propres solutions de contournement, en développant de nouvelles manières créatives d'exécuter du code par les points faibles d'un système informatique. Certaines personnes développent de nouvelles techniques par intérêt purement académique et occasionnellement occasionnent des ravages accidentels lorsque leurs recherches s'échappent pour ainsi dire dans la nature.