CSE-Section Sécurité
Buffer Overflow
Exploitation
The Basics
SMAHI Zakaria <z_smahi@esi.dz>
Système et CPU
CPU

Unité de contôle: Charger et décoder les instructions, charger
et stocker les données.

Unité de traitement: l'endr...
C'est quoi un
Buffer Overflow ?
 Buffer : un buffer est un espace de donnée
temporaire dans la mémoire.
 Buffer Overflow...
Les registres

EIP (Instruction Pointer): C'est un pointeur
contenant l'offset de la prochaine instruction à
exécuter.

...
Mémoire virtuelle

Chaque processus est aménagé dans le même
espace de mémoire virtuelle indépendamment
de l'emplacemnt d...
Programme
Programme en assembleur
Stack et
Passage de paramétres

Int Add (int a, intb)
{
int c ;
c = a+b ;
return c ;
}

Main()
{
Add(10,20) ;
print() ;
}
Exploit the BufferOverflow

« Talk is Cheap, Show me the Code ».
Linus Torvalds
Comment se protéger ?

Bon sens: Ecrire un code sécurisé en controlant la taille
des arguments que le programme accepte.
...
Prochainement

Partie pratique : Remote Buffer Overflow.

Exploiter une faille buffer Overflow pour
contrôler un système...
Prochain SlideShare
Chargement dans…5
×

"Introduction aux exploits et à la faille BufferOverflow"

737 vues

Publié le

exploiter une faille de type buffer overflow dans une application pour avoir accès au système complet. by SMAHI Zakaria

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
737
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
13
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

"Introduction aux exploits et à la faille BufferOverflow"

  1. 1. CSE-Section Sécurité Buffer Overflow Exploitation The Basics SMAHI Zakaria <z_smahi@esi.dz>
  2. 2. Système et CPU
  3. 3. CPU  Unité de contôle: Charger et décoder les instructions, charger et stocker les données.  Unité de traitement: l'endroit d'exécution des instructions.  Les registres: cases mémoires internes au processeur.  Les flags : indicateur d'une panoplie d'évènement lors de l'éxcution.
  4. 4. C'est quoi un Buffer Overflow ?  Buffer : un buffer est un espace de donnée temporaire dans la mémoire.  Buffer Overflow : un buffer overflow ou dépassement du tampon survient lorsque la taille de la donnée stockée dans le buffer dépasse l'espace du buffer lui-même.  Ce phénomème agit sur les cases mémoires adjacentes.
  5. 5. Les registres  EIP (Instruction Pointer): C'est un pointeur contenant l'offset de la prochaine instruction à exécuter.  ESP (Stack Pointer): Pointeur sur le sommet de la pile.  EBP (Base Pointer): Sert à pointer sur une donnée dans la pile.
  6. 6. Mémoire virtuelle  Chaque processus est aménagé dans le même espace de mémoire virtuelle indépendamment de l'emplacemnt de mémoire physique.  Chaque processus estime qu'il est seul dans le système ; qu'il jouit de toute la mémoire et qu'aucun autre processus n'existe.  L'OS et le CPU maintiennent cette abstraction.
  7. 7. Programme
  8. 8. Programme en assembleur
  9. 9. Stack et Passage de paramétres  Int Add (int a, intb) { int c ; c = a+b ; return c ; }  Main() { Add(10,20) ; print() ; }
  10. 10. Exploit the BufferOverflow  « Talk is Cheap, Show me the Code ». Linus Torvalds
  11. 11. Comment se protéger ?  Bon sens: Ecrire un code sécurisé en controlant la taille des arguments que le programme accepte.  NX(Non Executable Memory): Les instructions contenues dans la mémoire ne peuvent pas être exécutée.  ASLR(Address Space Layout Randomize) : A chaque exécution, les zones mémoires allouées pour le programme changent d'une façon aléatoire.  Stack Canaries: placer un int avant l'adresse RET ainsi pour changer le RET(EIP) on doit changer la valeur de ce int, une fois cette valeur est changée, le programme s'arrétera.
  12. 12. Prochainement  Partie pratique : Remote Buffer Overflow.  Exploiter une faille buffer Overflow pour contrôler un système complét. ____________________________ A suivre ...

×