Gros plan sur les attaques par Buffer Overflow

Tout le monde a déjà entendu parler des attaques par buffer overflow ou "débordement de tampon", mais de quoi s'agit-il au juste ? Comment peut-on parvenir à prendre le contrôle d'une machine par ce biais ?
Nombre d'articles :
5 article(s)
Type de liste de lecture
Parcours pédagogiques
Niveau :
Débutant

Démystification de l'attaque par Buffer Overflow

Magazine
Marque
GNU/Linux Magazine
Numéro
195
Mois de parution
juillet 2016
Spécialité(s)
Résumé

On entend beaucoup parler des buffer overflow (« débordement de tampon » en français) . Il paraît que c'est un problème dans la programmation en C qui entraîne un crash lors de l'exécution et qui peut être utilisé par un hacker… Ok, ça tout le monde le sait :-|. On entend beaucoup parler de ça mais c'est quoi concrètement ? Comment peut-on réussir à prendre le contrôle d'une machine par un « débordement de tampon » ? Et apparemment ça se fait même à distance !

Stack Buffer Overflow

Magazine
Marque
MISC
HS n°
Numéro
21
Mois de parution
juillet 2020
Spécialité(s)
Résumé

Cet article retrace un historique des stack buffer overflow tels qu'ils étaient exploités au début des années 2000 puis passe en détail les protections logicielles et matérielles qui ont été mises en œuvre pour les faire disparaître, ainsi que les mesures créées par les attaquants pour les contourner.

Sûreté mémoire : le temps des cerises

Magazine
Marque
MISC
Numéro
113
Mois de parution
janvier 2021
Spécialité(s)
Résumé

L’étude et la compréhension des buffer overflow datent de 1972, et leurs premiers usages documentés de 1988 [1]. Près de 50 ans plus tard, où en sommes-nous ? Il nous faut bien admettre que la situation est déprimante : Microsoft et Google reconnaissent chacun ([2], [3]) que près de 2/3 des attaques utilisent à un moment ou un autre une vulnérabilité mémoire. Le ver Morris, qui n’était au départ qu’une preuve de concept, avait quand même coûté la bagatelle de quelques millions de dollars à l’époque… Aujourd’hui, les coûts sont abyssaux : sur le plan financier bien sûr, mais aussi pour nos vies privées, voire nos vies tout court. Face à ce problème, de nombreuses approches sont possibles : analyse statique du code, instrumentation et vérification à l’exécution, langages « sûrs »… Je vous propose d’explorer dans cet article un vieux concept remis au goût du jour, les capabilities, et tout ce qu’elles pourraient nous permettre de faire.

Return oriented programming 101

Magazine
Marque
MISC
HS n°
Numéro
22
Mois de parution
octobre 2020
Spécialité(s)
Résumé

Le Returned Oriented Programming (ou ROP) est une technique permettant d'exploiter des programmes disposant de la protection NX (No eXecute) ou DEP (Data Execution Prevention). L'objectif de cet article est de vous présenter les bases du ROP, ainsi que l’exploitation pas-à-pas d’un programme d’entraînement via l'utilisation de la bibliothèque python pwntools [1]. Dans un souci de simplicité, la démonstration sera réalisée sur un programme s'exécutant sur un système Linux 64 bits. Bien entendu, cette démonstration reste applicable sur d'autres architectures (ARM, MIPS, etc.).