ClickCease Identifier, atténuer et prévenir les attaques par dépassement de tampon sur vos systèmes.

Rejoignez notre populaire bulletin d'information

Rejoignez 4 500+ professionnels de Linux et de l'Open Source !

2 fois par mois. Pas de spam.

Identifier, atténuer et prévenir les attaques par dépassement de tampon sur vos systèmes.

Le 21 mars 2023 - L'équipe de relations publiques de TuxCare

Les vulnérabilités par débordement de mémoire tampon restent un moyen courant pour les cybercriminels d'accéder illégalement aux systèmes informatiques. Il s'agit également d'un problème croissant, car on observe une augmentation constante, d'année en année, des vulnérabilités de type "buffer overflow" (débordement de mémoire tampon).

Il s'agit également d'un problème ancien. Vous ne le savez peut-être pas, mais les attaques par débordement de mémoire tampon sont l'un des plus anciens vecteurs d'attaque. des plus anciens vecteurs d'attaque - Les débordements de mémoire tampon ont été identifiés pour la première fois comme un risque de violation de la sécurité en 1972..

Avec des dizaines de milliers de vulnérabilités connues en matière de débordement de mémoire tampon, y compris des cas graves tels que Heartbleed, les développeurs et les administrateurs système doivent avoir une bonne maîtrise de la manière de détecter, d'atténuer et de prévenir les attaques par débordement de mémoire tampon.

Lisez la suite pour savoir ce qu'est une attaque par débordement de mémoire tampon et ce que votre organisation peut faire pour contrer ces menaces.

 

Qu'est-ce qu'une attaque par débordement de mémoire tampon ?

 

Tout d'abord, vous devez comprendre ce qu'est une mémoire tampon en termes de logiciel informatique. Les tampons sont des zones de stockage de données : des zones de stockage temporaire où les données sont conservées pendant l'exécution d'un programme. Les tampons sont nécessaires parce que les systèmes interconnectés, y compris les applications, ne sont pas toujours synchronisés.

En d'autres termes, lorsqu'une information est envoyée d'un point à un autre, il arrive que le destinataire ne soit pas prêt et que l'information doive attendre quelque part. C'est à cela que sert une mémoire tampon : les tampons favorisent la coordination. Cela peut être dû au fait que les deux points fonctionnent à des vitesses différentes ou avec des priorités différentes.

 

Comprendre un dépassement de tampon

 

La mémoire des ordinateurs étant limitée, les programmeurs doivent définir des espaces de stockage de taille limitée, y compris la taille d'une mémoire tampon. Par exemple, un programmeur définira une mémoire tampon pour stocker un mot de passe de 8 caractères sous la forme de 8 octets. Lorsque le mot de passe est écrit et envoyé à la mémoire tampon, on suppose que le mot de passe ne dépasse pas 8 caractères et qu'il tient donc dans la mémoire tampon.

Un débordement de la mémoire tampon se produit lorsque, au lieu d'un mot de passe de 8 caractères, c'est un mot de passe de 10 caractères qui est envoyé dans la mémoire tampon. Dans ce cas, le programme informatique est obligé de conserver les données quelque part et, par conséquent, les données excédentaires sont stockées dans une autre mémoire tampon. Dans certains cas, les deux caractères supplémentaires peuvent finir par être stockés à un endroit où ils écrasent des données importantes ou même le code du programme.

Bien entendu, les programmeurs doivent empêcher cela en concevant leur code de manière à vérifier les entrées qui dépassent la longueur de la mémoire tampon, ou en utilisant une série d'autres outils d'atténuation. Toutefois, si le programmeur se contente de supposer que l'entrée correspondra toujours à la taille de la mémoire tampon, une vulnérabilité de débordement de mémoire tampon peut apparaître, ce qui peut conduire à une attaque par débordement de mémoire tampon.

 

Comment fonctionne une attaque par dépassement de tampon

 

En termes simples, dans une attaque par débordement de mémoire tampon, un pirate informatique écrit intentionnellement des données qui dépassent la taille de la mémoire tampon. qui dépassent la taille de la mémoire tampon dans une mémoire tampon - déclenchant un débordement de la mémoire tampon. L'intention peut être de faire planter l'application ou d'écrire des données malveillantes (y compris du code exécutable) dans un espace de stockage de données désiré.

Par exemple, si un attaquant coordonne correctement le dépassement de la mémoire tampon, il peut écrire du code malveillant dans un espace ciblé qui contient du code exécutable, puis exécuter son propre code. De même, le pirate peut utiliser un débordement de mémoire tampon pour écraser les données de la mémoire tampon afin de modifier le comportement d'un programme. 

Il existe essentiellement deux types d'attaques par débordement de mémoire tampon :

  • Les attaques par débordement de la mémoire tampon de la pile sont le type le plus courant d'attaque par débordement de mémoire tampon et impliquent l'écrasement de la mémoire de la pile qui est utilisée pendant l'exécution d'un programme. En écrivant des données excédentaires dans la mémoire tampon, le pirate réussit presque toujours à corrompre les données de la mémoire tampon voisine.
  • Les débordements du tas Il s'agit d'une attaque au cours de laquelle le pirate tente d'inonder l'espace mémoire alloué à un programme au-delà de ce qui est utilisé pour les opérations en cours. Il corrompt les données de telle sorte que l'application en cours d'exécution écrase ses structures internes.

Ces deux stratégies d'attaque peuvent entraîner la compromission des systèmes, la perte de données et l'interruption des services.

 

Quels sont les risques d'une attaque par débordement de mémoire tampon ?

 

Les débordements de mémoire tampon ne sont qu'un des nombreux vecteurs d'attaque existants, et les intentions se recoupent avec de nombreuses autres exploitations de vulnérabilités.

Il convient de noter que, même si l'exécution de code à distance est trop difficile avec une attaque par débordement de mémoire tampon, les pirates peuvent néanmoins causer des dégâts en utilisant les débordements de mémoire tampon pour simplement provoquer des pannes d'application - et un déni de service (DoS) - qui, à son tour, entraînera d'autres conséquences.

En outre, on peut affirmer qu'une attaque par débordement de mémoire tampon n'est souvent que la première étape d'un plan d'attaque beaucoup plus complexe - que l'objectif final soit l'exécution de code à distance, l'escalade des privilèges ou autre chose.

Bien sûr, les attaques par débordement de mémoire tampon ont des caractéristiques uniques, mais nous pouvons généralement suggérer que les pirates utiliseront une attaque par débordement de mémoire tampon pour atteindre l'un des objectifs suivants :

  • Perturbation des services: En utilisant une attaque par débordement de mémoire tampon, un pirate peut provoquer une interruption de service. Il peut être relativement facile d'utiliser une vulnérabilité de débordement de mémoire tampon pour faire planter une application, entraînant l'arrêt des services qu'elle prend en charge.
  • Accès non autorisé: Un acteur malveillant peut utiliser une vulnérabilité de débordement de mémoire tampon pour obtenir un accès illicite à l'infrastructure informatique - ce qui pourrait ouvrir la porte à une gamme infinie de compromissions.
  • Exécution du code: Par le biais d'une attaque par débordement de mémoire tampon, un pirate peut utiliser vos systèmes pour exécuter du code qu'il a écrit à des fins criminelles.
  • Perte de données: Les attaques par débordement de mémoire tampon peuvent être utilisées pour siphonner des données en manipulant le comportement de l'application, puis en redirigeant les sorties et en capturant illégalement des flux de données.

D'une manière générale, les risques liés aux vulnérabilités par débordement de mémoire tampon sont similaires à ceux de la plupart des vulnérabilités et sont certainement tout aussi graves.

 

Exemples concrets de vulnérabilités par dépassement de tampon

 

Au début de cet article, nous avons souligné le fait que les vulnérabilités de type dépassement de tampon ont été identifiées pour la première fois en 1972. Bien que certains cas d'attaques réussies soient apparus peu après, le monde informatique d'il y a 50 ans n'était pas aussi omniprésent ni aussi exposé qu'aujourd'hui.

Le premier exemple clé d'une attaque généralisée par débordement de mémoire tampon est le ver Morris. En 1988, ce ver a traversé l'internet naissant pour mettre hors service 10 % de ce qui était alors "l'internet" en deux jours seulement. En deux ans, ce ver informatique a touché 60 000 ordinateurs.

La vulnérabilité de débordement de mémoire tampon la plus connue est sans doute Heartbleed. Elle est apparue en 2014 comme une vulnérabilité critique dans un logiciel largement utilisé : OpenSSL. D'innombrables serveurs Internet gérés par des entreprises de premier plan, telles que Yahoo, utilisent la bibliothèque de cryptographie OpenSSL pour mettre en œuvre le protocole TLS (sécurité de la couche transport).

Cette vulnérabilité par débordement de la mémoire tampon a été causée par une simple erreur. Il s'agissait d'un manque classique de vérification des limites dans le code informatique d'OpenSSL. Bien entendu, OpenSSL a fini par être corrigé par un correctif mais pas avant que la vulnérabilité n'ait suscité une grande inquiétude - et des dégâts.

Les risques ne se limitent pas aux recoins techniques d'internet. Les applications populaires sont également exposées au risque d'exploitation des débordements de mémoire tampon : l'application de chat populaire WhatsApp souffre d'une vulnérabilité de débordement de mémoire tampon, qui a été classée comme CVE-2019-3568 en mai 2019. Dans ce cas, les attaquants ont pu utiliser la vulnérabilité pour exécuter du code malveillant sur l'appareil mobile d'un utilisateur en manipulant des paquets juste au début d'un appel vocal.

Voici quelques autres exemples :

  • Le ver Stuxnet en 2010: Ciblant le programme nucléaire iranien, l'attaque a exploité une vulnérabilité de débordement de mémoire tampon dans le système d'exploitation Windows.
  • Le piratage de Sony Pictures en 2014: Les attaquants ont utilisé un débordement de mémoire tampon dans le réseau de l'entreprise pour accéder à des informations sensibles et provoquer une perturbation généralisée.
  • L'attaque du ransomware WannaCry en mai 2017: Cette attaque a touché plus de 200 000 ordinateurs dans 150 pays en exploitant une vulnérabilité de débordement de mémoire tampon dans Microsoft Windows.
  • L'attaque de la chaîne d'approvisionnement de SolarWinds en décembre 2020: Les attaquants ont utilisé un débordement de mémoire tampon dans le logiciel de gestion de réseau SolarWinds Orion, accédant ainsi aux réseaux de plusieurs organisations.
  • L'exploit Zero-Day de Zscaler en novembre 2021: Cette attaque a impacté les services de sécurité en nuage de Zscaler en utilisant une vulnérabilité de débordement de mémoire tampon pour exécuter du code arbitraire.

 

Atténuation et prévention des attaques par débordement de tampon

 

Le paysage des débordements de tampon a quelque peu changé au fil du temps : d'une certaine manière, les risques de débordement de tampon les plus élémentaires sont désormais automatiquement atténués. Les fournisseurs de systèmes d'exploitation et de logiciels ainsi que les programmeurs ont tendance à mettre en œuvre des pratiques qui limitent les débordements de tampon, même lorsqu'il existe une vulnérabilité sous-jacente.

Tant les éditeurs de logiciels que les utilisateurs de leurs logiciels doivent rester conscients des risques de débordement de la mémoire tampon - et les atténuer en conséquence. Cela dit, les utilisateurs ne peuvent pas faire grand-chose pour sécuriser leur environnement contre les attaques par débordement de mémoire tampon. C'est au vendeur qu'il incombe de programmer les logiciels en toute sécurité et de les corriger rapidement si nécessaire.

 

Prévention du côté des fournisseurs

 

Les éditeurs de logiciels sont en fin de compte responsables de la prévention des vulnérabilités par débordement de mémoire tampon. L'existence de possibilités d'exploiter les contraintes de la mémoire tampon dépend souvent des éléments suivants caractéristiques du logiciel.

Il peut s'agir simplement de rester conscient des limites du langage de programmation utilisé et des risques implicites de ce langage : C et C++ n'ont pas de protection intégrée contre les débordements de mémoire tampon, alors que Java, PERL et C# disposent de certains mécanismes de sécurité. 

Voici quelques approches spécifiques que les vendeurs peuvent adopter :

  • Attention aux hypothèses : Les programmeurs peuvent souvent supposer certains faits concernant les opérations d'une application, mais les attaquants peuvent exploiter ces suppositions. Au lieu de cela, les programmeurs devraient coder en tenant compte du fait que les hypothèses peuvent être violées. Le contrôle des limites, qui consiste à vérifier qu'une entrée ne dépasse pas la taille de la mémoire tampon, en est un exemple clé.
  • Randomisation de la disposition de l'espace d'adressage (ASLR): De nombreuses attaques par débordement de mémoire tampon reposent sur la connaissance de l'emplacement de l'espace d'adressage. En randomisant la disposition de l'espace d'adressage, il est plus difficile de coordonner un débordement de mémoire tampon, car l'emplacement de la cible se déplace continuellement et de manière aléatoire.
  • Exécution des limites: Configurer les piles comme non exécutables signifie que les attaquants ne peuvent pas utiliser les débordements de mémoire tampon pour exécuter un code malveillant dans une pile.
  • Éviter les erreurs de programmation : Les possibilités de débordement de mémoire tampon sont, le plus souvent, dues à un code informatique spécifique. Les programmeurs doivent se comporter consciencieusement et éviter de commettre des erreurs susceptibles d'être exploitées par les attaquants.

Les points ci-dessus peuvent atténuer les risques d'attaques par débordement de mémoire tampon, mais en fin de compte, des erreurs seront inévitablement commises.

 

Atténuation du côté de l'utilisateur

 

En discutant des options que les fournisseurs peuvent exploiter pour renforcer leurs logiciels contre les attaques par débordement de mémoire tampon, nous avons laissé de côté un point essentiel : les vulnérabilités de débordement de mémoire tampon ne sont souvent découvertes qu'une fois que le logiciel a déjà été mis en circulation dans la nature.

Ce scénario n'est pas inhabituel et reflète ce qui se passe généralement lors de la découverte de vulnérabilités. La solution est simple : le fournisseur publie un correctif qui comble la vulnérabilité du débordement de la mémoire tampon, et l'utilisateur final installe le correctif pour atténuer la vulnérabilité.

Lorsque les utilisateurs finaux sont motivés pour sécuriser leurs charges de travail contre les vulnérabilités de débordement de mémoire tampon, l'option la plus efficace, et de loin, sera toujours l'application régulière et cohérente de correctifs. Toutefois, il est plus facile de dire que de faire, car l'application de correctifs peut être perturbante et nécessiter beaucoup de ressources.

L'application automatisée de correctifs sans redémarrage grâce à des outils tels que KernelCare permet de réduire les besoins en ressources et d'éviter les interruptions de service. Néanmoins, il arrive que les vulnérabilités de débordement de mémoire tampon soient inconnues ou qu'il n'y ait tout simplement pas de correctif efficace. Voici quelques options auxquelles les utilisateurs peuvent avoir recours :

  • Surveillez les comportements inhabituels : Surveillez de près les performances et les journaux de votre serveur et de votre réseau pour repérer les activités des intrus, comme vous le feriez pour n'importe quel autre exploit.
  • Gérer les privilèges : Les attaquants s'appuient souvent sur des autorisations et des privilèges mal gérés. Veillez à ce que vos applications et vos utilisateurs fonctionnent avec un minimum d'autorisations d'accès afin que les attaquants n'aient pas la possibilité d'escalader les privilèges.
  • Outils de prévention des menaces : Les vulnérabilités du jour zéro peuvent être rapidement exploitées, mais des outils automatisés, tels que les pare-feu d'application web, peuvent arrêter certaines attaques en surveillant les modèles de comportement suspects et en arrêtant simplement le trafic provenant de sources suspectes.

Enfin, nous suggérons aux utilisateurs finaux de protéger leurs charges de travail en choisissant soigneusement leurs fournisseurs de systèmes d'exploitation et de logiciels. Posez des questions clés : quelle est la réputation du fournisseur en matière de sécurité des logiciels ? Le fournisseur publie-t-il rapidement des correctifs lorsqu'une vulnérabilité est identifiée ?

Les vulnérabilités de débordement de mémoire tampon étant essentiellement un problème de programmation, il revient aux fournisseurs de gérer la vulnérabilité et, en tant qu'utilisateur final, vous pouvez vous protéger en vérifiant soigneusement les fournisseurs avec lesquels vous travaillez.

 

La conclusion

Les fournisseurs de logiciels sont en fin de compte responsables de l'atténuation des vulnérabilités liées aux dépassements de tampon. C'est le code de l'application qui est en cause, après tout. Heureusement, les éditeurs réagissent généralement en publiant des correctifs qui suppriment les possibilités d'exploitation des dépassements de tampon.

Pour les entreprises, l'introduction rapide de nouveaux correctifs est essentielle. Des outils automatisés tels que KernelCare Enterprise permettent d'éliminer les frictions liées à l'application des correctifs. Néanmoins, comme pour toute autre cybermenace, les entreprises devraient également mettre en œuvre des mesures d'hygiène informatique plus larges afin de limiter les risques de vulnérabilités par débordement de mémoire tampon - et les vulnérabilités en général.

Résumé
Identifier, atténuer et prévenir les attaques par dépassement de tampon sur vos systèmes.
Nom de l'article
Identifier, atténuer et prévenir les attaques par dépassement de tampon sur vos systèmes.
Description
Lisez la suite pour savoir ce que sont essentiellement les deux types d'attaques par débordement de mémoire tampon et ce que votre organisation peut faire pour contrer ces menaces.
Auteur
Nom de l'éditeur
TuxCare
Logo de l'éditeur

Vous cherchez à automatiser la correction des vulnérabilités sans redémarrage du noyau, temps d'arrêt du système ou fenêtres de maintenance programmées ?

Découvrez le Live Patching avec TuxCare

Devenez rédacteur invité de TuxCare

Commencer

Courrier

Rejoindre

4,500

Professionnels de Linux et de l'Open Source
!

S'abonner à
notre lettre d'information