Définition dépassement de tampon ?

videoimg

Définition dépassement de tampon ?

369 lecteurs
Sommaire de l'article

Débordement de tampon

Un dépassement de tampon se produit lorsqu’une application qui écrit des données dans un tampon est capable de dépasser la capacité de ce dernier. C’est comme verser 12 onces de lait dans un verre de 8 onces.

Qu’est-ce qu’un dépassement de tampon ?

Le débordement de la mémoire tampon est un problème qui se produit lorsqu’un logiciel qui écrit des données dans une mémoire tampon dépasse la capacité de stockage de cette dernière, ce qui a pour effet d’inonder de données la mémoire des emplacements adjacents. Dans ce cas, les données sont transférées dans des conteneurs qui ne contiennent pas suffisamment d’espace. Les données sont ensuite remplacées par des données dans les conteneurs qui leur sont adjacents.

Les débordements de tampon sont exploités par des attaquants pour modifier la mémoire d’un ordinateur afin de miner ou de prendre le contrôle de l’exécution du programme.

Qu’est-ce qu’un tampon ?

Un tampon, également connu sous le nom de tampon de données, est un espace physique dans la mémoire qui peut stocker temporairement des données lors de leur transfert d’un emplacement à un autre. Ils sont généralement stockés dans la mémoire vive. Les ordinateurs utilisent souvent les tampons pour améliorer leurs performances. La majorité des disques durs modernes utilisent la mise en mémoire tampon pour accéder aux données plus efficacement et de nombreux services en ligne utilisent également les tampons. Par exemple, les tampons sont souvent utilisés pour la diffusion de vidéos en ligne afin d’éviter les interruptions. Lors de la diffusion d’une vidéo en continu, le lecteur télécharge et enregistre environ 20 % de la vidéo en une seule fois dans une mémoire tampon, puis la diffuse à partir de cette dernière. De cette façon, les petites interruptions de la vitesse de connexion ou les interruptions de service n’ont pas d’incidence sur la qualité du flux.

Les tampons sont conçus pour stocker des quantités spécifiques d’informations. Si le programme qui utilise la mémoire tampon a des instructions intégrées pour supprimer les données lorsqu’il y a trop de données transférées dans la mémoire tampon, le programme écrira par-dessus les données dans la mémoire à côté de la mémoire tampon.

Voir Aussi  Oze 92 : Connexion à enc.hauts-de-seine.fr

Les débordements de tampon sont utilisés par les attaquants pour provoquer la corruption de logiciels. Bien qu’elles soient bien connues, les attaques par débordement de tampon constituent un problème de sécurité majeur qui affecte les équipes de cybersécurité. En 2014, une vulnérabilité appelée « heartbleed » a exposé des millions d’utilisateurs à des failles de dépassement de tampon au sein du logiciel SSL.

Comment les attaquants peuvent-ils exploiter les débordements de mémoire tampon ?

Un attaquant pourrait introduire délibérément une entrée soigneusement planifiée dans un logiciel, ce qui amène le programme à essayer de stocker l’information dans un tampon qui n’est pas assez grand, puis à écraser les zones de la mémoire qui sont connectées à l’espace tampon. Si la disposition de la mémoire du programme est bien définie, il est possible pour l’attaquant d’effacer délibérément les zones qui contiennent du code exécutable. L’attaquant peut alors modifier le code en utilisant son propre code exécutable, ce qui peut modifier radicalement la façon dont le programme est censé fonctionner.

Par exemple, si une mémoire qui a été écrasée contient le pointeur (un objet qui pointe vers un endroit spécifique de la mémoire), le programme de l’attaquant pourrait être remplacé par un pointeur qui indique une charge utile liée à un exploit. Cela pourrait transférer le contrôle complet du programme au programme de l’attaquant.

Qui est exposé au risque d’attaques par débordement de mémoire tampon ?

Certains langages de codage sont plus sujets aux débordements de tampon que d’autres. Le C et le C++ sont deux langages populaires extrêmement vulnérables, car ils ne disposent pas de protections intégrées pour empêcher l’accès aux données ou la possibilité d’écraser leur mémoire. Windows, Mac OSX et Linux ont tous du code écrit dans l’un ou l’autre de ces langages.

Voir Aussi  Fortuneo accès client : comment me connecter à mon compte

Les langages modernes tels que Java, PERL et C# intègrent des fonctions permettant de réduire les risques de débordement de mémoire tampon, mais ils ne sont pas en mesure de les empêcher totalement.

Comment se protéger des attaques par débordement de mémoire tampon

Heureusement, les systèmes d’exploitation modernes incluent des protections d’exécution qui peuvent aider à prévenir les débordements de tampon et les attaques. Examinons deux mesures de sécurité courantes qui réduisent les possibilités d’exploitation

  • Randomisation de l ‘espace d’adressage – Modifie de manière aléatoire l’emplacement de l’espace d’adressage des éléments de données importants dans un système. Les attaques par dépassement de tampon dépendent généralement de l’emplacement précis du code exécutable crucial, mais la randomisation de l’espace d’adressage rend cela impossible.
  • Prévention de l’exécution des données – Marque des zones spécifiques de la mémoire comme étant soit exécutables, soit non exécutables, empêchant ainsi une attaque d’exécuter du code qui n’est pas exécutable dans la zone.

Les développeurs de logiciels peuvent également se protéger contre la vulnérabilité liée aux débordements de mémoire tampon en écrivant des langages protégés par des dispositifs de protection intégrés ou en utilisant des mesures de sécurité spécifiques dans leurs programmes.

Malgré les mesures prises, les pirates sont toujours capables de trouver de nouvelles vulnérabilités au dépassement de tampon, souvent à la suite d’un exploit qui a réussi. En cas de découverte d’une nouvelle vulnérabilité, les experts en sécurité doivent appliquer un correctif aux logiciels concernés et s’assurer que les utilisateurs de ces logiciels peuvent accéder au correctif.

Quels sont les différents types d’attaques par débordement de mémoire tampon ?

Il existe une grande variété d’attaques par débordement de mémoire tampon qui utilisent diverses stratégies et attaquent divers éléments de code. Voici quelques-unes des attaques les plus connues.

  • Attaque par débordement de pile – Il s’agit du type d’attaque par débordement de pile le plus populaire. Elle implique le débordement d’un tampon sur la pile d’appels.
  • Attaque par débordement de tas Ce type d’attaque vise les données situées dans le pool de mémoire ouvert au public, appelé tas*.
  • Attaque par débordement d’entierDans un débordement d’entier, le résultat d’un calcul arithmétique produit un entier (nombre entier) trop grand pour être le type de nombre qui est censé le stocker. Cela peut entraîner un débordement du tampon.
  • Débordement Unicode – Un débordement Unicode peut provoquer des débordements de tampon lorsque vous insérez des caractères Unicode dans une entrée qui attend impatiemment des caractères ASCII. (L’ASCII et l’Unicode sont des codeurs qui permettent aux ordinateurs d’afficher du texte. Par exemple, la lettre « a » est représentée par le chiffre 97 en ASCII. Bien que les codes ASCII ne puissent être utilisés que pour représenter les caractères des langues occidentales, l’Unicode peut créer des caractères pour presque toutes les langues écrites du monde. Comme il y a beaucoup de caractères disponibles dans Unicode, la majorité des caractères Unicode sont plus grands que le plus grand caractère ASCII).
Voir Aussi  Comment se connecter au webmail Limoges sur mcc.ac-limoges.fr ?

Les ordinateurs sont basés sur deux méthodes différentes d’allocation de la mémoire, appelées le tas et la pile, qui résident toutes deux dans la mémoire vive de l’ordinateur. La pile est organisée de manière ordonnée et stocke les données selon le principe du « dernier entré, premier sorti ». Les données les plus récentes stockées sur la pile sont les premières à en être retirées, tout comme la balle qui a été placée dans le dernier magasin d’un chargeur de munitions est la première à être tirée. Le tas est un stockage chaotique de la mémoire qui ne peut pas y entrer ou en sortir dans un ordre particulier. Étant donné que l’accès à la mémoire via la pile est nettement plus rapide que l’accès via le tas, le tas est généralement réservé aux données plus nombreuses ou aux données qu’un programmeur souhaite gérer de manière explicite.

4.3/5 - (16 votes)
Marine
Marine

Passionnée par l'entreprenariat depuis plus de 10 ans, je suis à la tête d'une société française visant à favoriser la communication des entreprises. Également attiré par la finance, je partage mes conseils et expériences au travers mes articles de blog.

Retour en haut