SlideShare une entreprise Scribd logo
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'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.
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.
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.
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.
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.

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.
Prochainement

Partie pratique : Remote Buffer Overflow.

Exploiter une faille buffer Overflow pour
contrôler un système complét.
____________________________ A suivre ...

Contenu connexe

En vedette

6 buffer overflows
6   buffer overflows6   buffer overflows
6 buffer overflows
drewz lin
 
Buffer Overflows
Buffer OverflowsBuffer Overflows
Buffer Overflows
Sumit Kumar
 
Presentation buffer overflow attacks and theircountermeasures
Presentation buffer overflow attacks and theircountermeasuresPresentation buffer overflow attacks and theircountermeasures
Presentation buffer overflow attacks and theircountermeasures
tharindunew
 

En vedette (20)

Buffer overflow attacks
Buffer overflow attacksBuffer overflow attacks
Buffer overflow attacks
 
Buffer overflow
Buffer overflowBuffer overflow
Buffer overflow
 
6 buffer overflows
6   buffer overflows6   buffer overflows
6 buffer overflows
 
Javascript 2.0
Javascript 2.0 Javascript 2.0
Javascript 2.0
 
Owasp webgoat
Owasp webgoatOwasp webgoat
Owasp webgoat
 
Sécurisation des Web Services SOAP contre les attaques par injection par la m...
Sécurisation des Web Services SOAP contre les attaques par injection par la m...Sécurisation des Web Services SOAP contre les attaques par injection par la m...
Sécurisation des Web Services SOAP contre les attaques par injection par la m...
 
Bootstrap 3
Bootstrap 3Bootstrap 3
Bootstrap 3
 
Formation python micro club.net
Formation python micro club.netFormation python micro club.net
Formation python micro club.net
 
Buffer overflow attacks
Buffer overflow attacksBuffer overflow attacks
Buffer overflow attacks
 
Sécurité des web services soap
Sécurité des web services soapSécurité des web services soap
Sécurité des web services soap
 
workshop initiation ssh
workshop initiation sshworkshop initiation ssh
workshop initiation ssh
 
Buffer Overflows
Buffer OverflowsBuffer Overflows
Buffer Overflows
 
Guide d'utilisation de nmap par smahi zakaria
Guide d'utilisation de nmap par smahi zakariaGuide d'utilisation de nmap par smahi zakaria
Guide d'utilisation de nmap par smahi zakaria
 
Javascript 1.0
Javascript 1.0 Javascript 1.0
Javascript 1.0
 
تجربتي مع المساهمة في المشاريع الحرة - اليوم الحر
تجربتي مع المساهمة  في المشاريع الحرة - اليوم الحر تجربتي مع المساهمة  في المشاريع الحرة - اليوم الحر
تجربتي مع المساهمة في المشاريع الحرة - اليوم الحر
 
Anatomy of a Buffer Overflow Attack
Anatomy of a Buffer Overflow AttackAnatomy of a Buffer Overflow Attack
Anatomy of a Buffer Overflow Attack
 
JQuery
JQueryJQuery
JQuery
 
Presentation buffer overflow attacks and theircountermeasures
Presentation buffer overflow attacks and theircountermeasuresPresentation buffer overflow attacks and theircountermeasures
Presentation buffer overflow attacks and theircountermeasures
 
An Introduction of SQL Injection, Buffer Overflow & Wireless Attack
An Introduction of SQL Injection, Buffer Overflow & Wireless AttackAn Introduction of SQL Injection, Buffer Overflow & Wireless Attack
An Introduction of SQL Injection, Buffer Overflow & Wireless Attack
 
Problem tree analysis
Problem tree analysisProblem tree analysis
Problem tree analysis
 

Similaire à Buffer Overflow exploitation

Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------
NasriMohsen2
 
Chapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dspChapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dsp
gharbisalah
 
Gestion-des-parcs-informatiques Windows et Linux.pptx
Gestion-des-parcs-informatiques Windows et Linux.pptxGestion-des-parcs-informatiques Windows et Linux.pptx
Gestion-des-parcs-informatiques Windows et Linux.pptx
ssusercbaa22
 
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
mohamedsaidi212001
 
Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le Microprocesseur
TheCrazyMan
 

Similaire à Buffer Overflow exploitation (20)

Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseur
 
Chapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dspChapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dsp
 
Assembleur i8086
Assembleur i8086Assembleur i8086
Assembleur i8086
 
Cours de PIC Généralités.pdf
Cours de PIC Généralités.pdfCours de PIC Généralités.pdf
Cours de PIC Généralités.pdf
 
Chapitre 05 architecture microprocesseur (2).pptx
Chapitre 05 architecture microprocesseur (2).pptxChapitre 05 architecture microprocesseur (2).pptx
Chapitre 05 architecture microprocesseur (2).pptx
 
Systeme d’exploitation embarqué eCOS
Systeme d’exploitation embarqué eCOSSysteme d’exploitation embarqué eCOS
Systeme d’exploitation embarqué eCOS
 
Scripting Linux avec Python partie1.pptx
Scripting Linux avec Python partie1.pptxScripting Linux avec Python partie1.pptx
Scripting Linux avec Python partie1.pptx
 
Les secrets de la JVM pour les algos à haute fréquence
Les secrets de la JVM pour les algos à haute fréquenceLes secrets de la JVM pour les algos à haute fréquence
Les secrets de la JVM pour les algos à haute fréquence
 
Gestion-des-parcs-informatiques Windows et Linux.pptx
Gestion-des-parcs-informatiques Windows et Linux.pptxGestion-des-parcs-informatiques Windows et Linux.pptx
Gestion-des-parcs-informatiques Windows et Linux.pptx
 
Chapitre 1 l'ordinateur
Chapitre 1 l'ordinateurChapitre 1 l'ordinateur
Chapitre 1 l'ordinateur
 
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
 
Architecture ordinateur-2-architecture-de-base
Architecture ordinateur-2-architecture-de-baseArchitecture ordinateur-2-architecture-de-base
Architecture ordinateur-2-architecture-de-base
 
Ch8 architecture
Ch8 architectureCh8 architecture
Ch8 architecture
 
ch8_architecture.ppt
ch8_architecture.pptch8_architecture.ppt
ch8_architecture.ppt
 
Architecture des ordinateurs : microprocesseur
Architecture des ordinateurs : microprocesseurArchitecture des ordinateurs : microprocesseur
Architecture des ordinateurs : microprocesseur
 
Tp n 5 linux
Tp n 5 linuxTp n 5 linux
Tp n 5 linux
 
Chapitre1 introduction-aux-systemes-d-exploitation
Chapitre1 introduction-aux-systemes-d-exploitationChapitre1 introduction-aux-systemes-d-exploitation
Chapitre1 introduction-aux-systemes-d-exploitation
 
Base des systèmes à microprocesseur
Base des systèmes à microprocesseurBase des systèmes à microprocesseur
Base des systèmes à microprocesseur
 
Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le Microprocesseur
 

Dernier

Dernier (6)

Contrôle d’accès et Gestion des identités: Terminologies et Protocoles d’auth...
Contrôle d’accès et Gestion des identités: Terminologies et Protocoles d’auth...Contrôle d’accès et Gestion des identités: Terminologies et Protocoles d’auth...
Contrôle d’accès et Gestion des identités: Terminologies et Protocoles d’auth...
 
Augmentez vos conversions en ligne : les techniques et outils qui marchent vr...
Augmentez vos conversions en ligne : les techniques et outils qui marchent vr...Augmentez vos conversions en ligne : les techniques et outils qui marchent vr...
Augmentez vos conversions en ligne : les techniques et outils qui marchent vr...
 
Protéger l'intégrité de son environnement numérique
Protéger l'intégrité de son environnement numériqueProtéger l'intégrité de son environnement numérique
Protéger l'intégrité de son environnement numérique
 
Slides du webinaire de l'Infopole sur l'IA
Slides du webinaire de l'Infopole sur l'IASlides du webinaire de l'Infopole sur l'IA
Slides du webinaire de l'Infopole sur l'IA
 
cours Systèmes de Gestion des Identités.pdf
cours Systèmes de Gestion des Identités.pdfcours Systèmes de Gestion des Identités.pdf
cours Systèmes de Gestion des Identités.pdf
 
Modèles de contrôle d accès_ RBAC (Role Based Access Control).pdf
Modèles de contrôle d accès_ RBAC (Role Based Access Control).pdfModèles de contrôle d accès_ RBAC (Role Based Access Control).pdf
Modèles de contrôle d accès_ RBAC (Role Based Access Control).pdf
 

Buffer Overflow exploitation

  • 1. CSE-Section Sécurité Buffer Overflow Exploitation The Basics SMAHI Zakaria <z_smahi@esi.dz>
  • 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. 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. 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. 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.
  • 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. Exploit the BufferOverflow  « Talk is Cheap, Show me the Code ». Linus Torvalds
  • 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. Prochainement  Partie pratique : Remote Buffer Overflow.  Exploiter une faille buffer Overflow pour contrôler un système complét. ____________________________ A suivre ...