Définition des attaques par débordement de mémoire tampon & Comment s'en défendre ?

Mis à jour: 02 septembre 2024 Temps de lecture: ~

 

Cet article a été traduit automatiquement.

 

Lors d'un débordement de mémoire tampon, un programme place des données dans une zone de mémoire située en dehors de la mémoire tampon. Cette étape peut corrompre vos données ou faire planter votre programme.

Les pirates informatiques le savent et utilisent parfois votre tampon d'apparence innocente pour prendre le contrôle de votre terminal. 

Essentiellement, une mémoire tampon est une bouée de sauvetage si l'un de vos programmes manque de mémoire et ne veut pas se planter. Le programme peut stocker des données dans cette mémoire tampon et continuer à travailler. Lorsque votre programme a besoin d'une quantité de mémoire supérieure à celle qu'il peut trouver dans une mémoire tampon, il est vulnérable à une attaque par débordement de mémoire tampon.

Les attaques par débordement de mémoire tampon sont à l'origine de certains des exemples de piratage les plus tristement célèbres, du ver Morris en 1998 à Stagefright en 2015. 

Nous allons vous expliquer comment ils fonctionnent et vous aider à comprendre comment vous en protéger.

Qu'est-ce qu'un débordement de mémoire tampon ?

Presque tous les ordinateurs disposent d'une mémoire tampon. Cet espace dédié peut contenir ou transporter des données afin que vous puissiez continuer à travailler sans subir de multiples pannes. Mais même le meilleur tampon a ses limites. Et lorsque vous dépassez l'IT, un débordement se produit. 

Un dépassement de tampon peut être :

  • Accidentelle. Vous essayez de faire trop de choses au sein d'un même programme et vous dépassez l'espace que le programme vous offre. Le programme peut commencer à se comporter de manière erratique et, dans certains cas, il peut cesser de fonctionner.
  • Intentionnel. Quelqu'un envoie des données trop volumineuses pour votre programme. Cet ensemble de données contient du code qui peut remplacer les versions valides. Lorsque le nouveau code s'exécute, l'informatique peut faire faire au programme des choses auxquelles vous ne vous attendez pas. 

Il peut sembler difficile pour hacker d'élaborer un programme qui comprenne parfaitement votre programme et qui puisse changer la façon dont les TI travaillent. Malheureusement, ces attaques sont relativement fréquentes. 

Types d'attaques par débordement de mémoire tampon 

Chaque programme contient une mémoire tampon, mais un attaquant peut suivre l'une des deux méthodes suivantes pour s'en emparer et lancer une attaque. 

Une attaque par débordement de mémoire tampon peut être :

  • Basé sur les piles. Votre agresseur envoie des données à un programme, et cette transmission est stockée dans un tampon de pile trop petit. Votre hacker pourrait choisir une fonction "push" et stocker de nouveaux éléments au sommet de la pile. Ou bien le hacker peut choisir une fonction "pop" et retirer l'élément supérieur pour le remplacer. Cela signifie que le site hacker a officiellement inséré un code malveillant et pris le contrôle. 
  • Basé sur le tas. Votre site hacker corrompt les données dans le tas, et cette modification du code oblige votre système à écraser des données importantes. 

En tant qu'utilisateur, vous ne verrez peut-être pas ces changements se produire. Mais si vous n'arrêtez pas la progression, votre programme peut commencer à s'essouffler. À terme, l'informatique pourrait s'effondrer.

Comme les débordements de mémoire tampon visent souvent des programmes importants, tels que les systèmes d'exploitation, un piratage peut vous laisser avec un terminal que vous ne pouvez pas contrôler.

Connaissez vos vulnérabilités en matière de débordement de mémoire tampon 

Il est plus facile de prévenir une attaque que de s'en remettre. Heureusement, il y a beaucoup de choses que vous pouvez faire pour assurer la sécurité de votre entreprise. 

Commencez par examiner le code que vous utilisez pendant le développement. Les langages de programmation vulnérables aux attaques par débordement de mémoire tampon sont les suivants :

  • Assemblée 
  • C/C++
  • Fortran

Ces langages ne sont pas dotés d'une protection intégrée et ne permettent pas d'effectuer des contrôles de routine pour détecter les débordements. 

Examinez ensuite votre code. Il est plus facile pour hacker de lancer une attaque lorsque vos programmes sont en panne :

  • Compliqué. Vous avez du mal à prévoir le comportement de votre programme ?
  • Externe. Avez-vous besoin de données tierces ou externes pour contrôler les actions au sein du programme ? Les propriétés des données font-elles l'objet d'un contrôle externe ?
  • Plus âgés. Avez-vous utilisé des éléments d'héritages pour construire le programme ?

Presque toutes les entreprises disposent d'un programme ancien et personnalisé que chaque employé utilise tous les jours. Vous pouvez hésiter à remplacer ce système puisqu'il a été conçu spécialement pour vous. Mais il est clair que les systèmes d'héritages comportent des risques qu'il est difficile d'atténuer ou d'éliminer.

Votre contre-mesure de dépassement de tampon & Plan de prévention 

Les hackers s'appuient sur les tampons depuis des années, mais de nouvelles opportunités apparaissent pour leur travail. Par exemple, les experts affirment que les terminaux connectés (y compris les éléments de l'internet des objets tels que les réfrigérateurs et les sonnettes) pourraient être sensibles à ces attaques. 

Protégez votre entreprise en suivant ces quelques conseils de bon sens :

  • Utilisez de nouveaux systèmes d'exploitation. Il est temps de se débarrasser des programmes hérités dont les systèmes support sont périmés. Les codes plus récents sont assortis de plus de protections. 
  • Surveillez votre langage. Les programmes écrits en COBOL, Python et Java sont probablement plus sûrs que les autres. 
  • Ajoutez de l'espace. Certains programmes permettent de protéger l'espace exécutable. Lorsque cette option est activée, hacker ne peut pas exécuter le code inséré via une attaque par débordement. 
  • Lean on Developer. Les administrateurs de systèmes se plaignent souvent que les développeurs ignorent leurs rapports de bogues. Soyez persévérant. Lorsque vous repérez un problème menant à un débordement de mémoire tampon, continuez à parler d'informatique jusqu'à ce que quelqu'un la corrige. 
  • Appliquez votre correctif. Lorsque les développeurs découvrent des problèmes de débordement de mémoire tampon, ils les corrigent à l'aide de code. En février 2021, par exemple, Sudo Developer a publié un correctif similaire et a encouragé les gens à utiliser l'informatique. 

Surveiller votre code, analyser le comportement et tester fréquemment sont autant de bonnes idées. Mais pour assurer la sécurité de votre entreprise, vous devrez faire encore plus. 

Travaillez avec Okta pour entourer vos ressources les plus importantes d'un système d'authentification forte. Découvrez comment nous pouvons aider des organisations comme la vôtre.

Références

Attaque par débordement de mémoire tampon. Sécurité globale : Une approche pratique. 

Débordement de mémoire tampon. OWASP. 

Attaque par débordement de mémoire tampon. Université de Santa Clara. 

Qu'est-ce qu'un débordement de mémoire tampon ? Et comment les pirates exploitent ces vulnérabilités. (janvier 2020). RSI. 

L'espace du noyau : Les développeurs de Linux ignorent-ils les rapports de bogues ? (septembre 2007). Networkworld. 

Vulnérabilité de débordement de tampon basée sur le tas de Sudo. (Février 2021). Agence pour la cybersécurité et la sécurité des infrastructures. 

Continuez votre parcours dans l‘univers de l’identité