SlideShare une entreprise Scribd logo
1  sur  12
Télécharger pour lire hors ligne
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

Tendances

Formation linux temps réel - Rennes 14 octobre 2014
Formation linux temps réel  - Rennes 14 octobre 2014Formation linux temps réel  - Rennes 14 octobre 2014
Formation linux temps réel - Rennes 14 octobre 2014eurogicielgroup
 
Les 10 commandes utiles pour surveiller un système Linux
Les 10 commandes utiles pour surveiller un système LinuxLes 10 commandes utiles pour surveiller un système Linux
Les 10 commandes utiles pour surveiller un système Linuxjean NZONZIDI
 
Installation et configuration du servuer ftp et tftp
Installation et configuration du servuer ftp et tftpInstallation et configuration du servuer ftp et tftp
Installation et configuration du servuer ftp et tftpAmdy Moustapha
 

Tendances (7)

Formation linux temps réel - Rennes 14 octobre 2014
Formation linux temps réel  - Rennes 14 octobre 2014Formation linux temps réel  - Rennes 14 octobre 2014
Formation linux temps réel - Rennes 14 octobre 2014
 
SdE 3 - System de fichiers
SdE 3 - System de fichiersSdE 3 - System de fichiers
SdE 3 - System de fichiers
 
SdE 4: Processus
SdE 4: ProcessusSdE 4: Processus
SdE 4: Processus
 
Les 10 commandes utiles pour surveiller un système Linux
Les 10 commandes utiles pour surveiller un système LinuxLes 10 commandes utiles pour surveiller un système Linux
Les 10 commandes utiles pour surveiller un système Linux
 
SdE 10 - Threads
SdE 10 - ThreadsSdE 10 - Threads
SdE 10 - Threads
 
Installation et configuration du servuer ftp et tftp
Installation et configuration du servuer ftp et tftpInstallation et configuration du servuer ftp et tftp
Installation et configuration du servuer ftp et tftp
 
Assembleur
AssembleurAssembleur
Assembleur
 

En vedette (9)

Natural User Interface - UX Day
Natural User Interface - UX DayNatural User Interface - UX Day
Natural User Interface - UX Day
 
La première partie de la présentation PHP
La première partie de la présentation PHPLa première partie de la présentation PHP
La première partie de la présentation PHP
 
Théorie d’esthétique - UX Day
Théorie d’esthétique - UX DayThéorie d’esthétique - UX Day
Théorie d’esthétique - UX Day
 
Présentation MotivationDay
Présentation MotivationDayPrésentation MotivationDay
Présentation MotivationDay
 
Atelier Section Sécurité
Atelier Section SécuritéAtelier Section Sécurité
Atelier Section Sécurité
 
Introduction au Phishing
Introduction au PhishingIntroduction au Phishing
Introduction au Phishing
 
CSE Welcome Day 2015
CSE Welcome Day 2015CSE Welcome Day 2015
CSE Welcome Day 2015
 
Conférence Virtualisation - Day 1 : Introduction à la vitualisation
Conférence Virtualisation - Day 1 : Introduction à la vitualisationConférence Virtualisation - Day 1 : Introduction à la vitualisation
Conférence Virtualisation - Day 1 : Introduction à la vitualisation
 
La 2ème partie de la présentation PHP
La 2ème partie de la présentation PHPLa 2ème partie de la présentation PHP
La 2ème partie de la présentation PHP
 

Similaire à "Introduction aux exploits et à la faille BufferOverflow"

Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------NasriMohsen2
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseurISIG
 
Chapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dspChapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dspgharbisalah
 
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.pdfAliRami3
 
Chapitre 05 architecture microprocesseur (2).pptx
Chapitre 05 architecture microprocesseur (2).pptxChapitre 05 architecture microprocesseur (2).pptx
Chapitre 05 architecture microprocesseur (2).pptxFazaTabbana1
 
Systeme d’exploitation embarqué eCOS
Systeme d’exploitation embarqué eCOSSysteme d’exploitation embarqué eCOS
Systeme d’exploitation embarqué eCOSAfaf MATOUG
 
Scripting Linux avec Python partie1.pptx
Scripting Linux avec Python partie1.pptxScripting Linux avec Python partie1.pptx
Scripting Linux avec Python partie1.pptxFrancisRUKAN
 
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équenceOCTO Technology
 
Chapitre 1 l'ordinateur
Chapitre 1 l'ordinateurChapitre 1 l'ordinateur
Chapitre 1 l'ordinateurMansour Dieng
 
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDmohamedsaidi212001
 
Architecture ordinateur-2-architecture-de-base
Architecture ordinateur-2-architecture-de-baseArchitecture ordinateur-2-architecture-de-base
Architecture ordinateur-2-architecture-de-baseAbdoulaye Dieng
 
ch8_architecture.ppt
ch8_architecture.pptch8_architecture.ppt
ch8_architecture.pptamine17157
 
Ch8 architecture
Ch8 architectureCh8 architecture
Ch8 architecturemickel iron
 
Architecture des ordinateurs : microprocesseur
Architecture des ordinateurs : microprocesseurArchitecture des ordinateurs : microprocesseur
Architecture des ordinateurs : microprocesseurAbdoulaye Dieng
 
Chapitre1 introduction-aux-systemes-d-exploitation
Chapitre1 introduction-aux-systemes-d-exploitationChapitre1 introduction-aux-systemes-d-exploitation
Chapitre1 introduction-aux-systemes-d-exploitationToumi Hicham
 
Base des systèmes à microprocesseur
Base des systèmes à microprocesseurBase des systèmes à microprocesseur
Base des systèmes à microprocesseurPeronnin Eric
 
Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le MicroprocesseurTheCrazyMan
 
11-Concurrence-Section critiques.pdf
11-Concurrence-Section critiques.pdf11-Concurrence-Section critiques.pdf
11-Concurrence-Section critiques.pdfPatiento Del Mar
 

Similaire à "Introduction aux exploits et à la faille BufferOverflow" (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
 
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
 
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.ppt
ch8_architecture.pptch8_architecture.ppt
ch8_architecture.ppt
 
Ch8 architecture
Ch8 architectureCh8 architecture
Ch8 architecture
 
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
 
Multi-Threading Et Cocoa
Multi-Threading Et CocoaMulti-Threading Et Cocoa
Multi-Threading Et Cocoa
 
11-Concurrence-Section critiques.pdf
11-Concurrence-Section critiques.pdf11-Concurrence-Section critiques.pdf
11-Concurrence-Section critiques.pdf
 

Plus de Club Scientifique de l'ESI - CSE

Généralités sur les réseaux informatiques – Protocoles ip
Généralités sur les réseaux informatiques – Protocoles ipGénéralités sur les réseaux informatiques – Protocoles ip
Généralités sur les réseaux informatiques – Protocoles ipClub Scientifique de l'ESI - CSE
 

Plus de Club Scientifique de l'ESI - CSE (17)

Gazette de l'ESI #5
Gazette de l'ESI #5Gazette de l'ESI #5
Gazette de l'ESI #5
 
Atelier 1 Introduction aux Réseaux Informatiques
Atelier 1 Introduction aux Réseaux InformatiquesAtelier 1 Introduction aux Réseaux Informatiques
Atelier 1 Introduction aux Réseaux Informatiques
 
Gazette De L'ESI - N°3
Gazette De L'ESI - N°3Gazette De L'ESI - N°3
Gazette De L'ESI - N°3
 
Introduction à unity 3D
Introduction à unity 3DIntroduction à unity 3D
Introduction à unity 3D
 
Jeux video
Jeux videoJeux video
Jeux video
 
Gazette de l'ESI - Edition 2, Décembre 2013
Gazette de l'ESI - Edition 2, Décembre 2013Gazette de l'ESI - Edition 2, Décembre 2013
Gazette de l'ESI - Edition 2, Décembre 2013
 
Section Developpement Mobile Atelier #1
Section Developpement Mobile Atelier #1Section Developpement Mobile Atelier #1
Section Developpement Mobile Atelier #1
 
Gazette de l'ESI - Edition 1, Novembre 2013.
Gazette de l'ESI - Edition 1, Novembre 2013.Gazette de l'ESI - Edition 1, Novembre 2013.
Gazette de l'ESI - Edition 1, Novembre 2013.
 
Apprenez le jQuery
Apprenez le jQueryApprenez le jQuery
Apprenez le jQuery
 
Faire un scan du réseau avec NMAP
Faire un scan du réseau avec NMAPFaire un scan du réseau avec NMAP
Faire un scan du réseau avec NMAP
 
Neutraliser un Virus/Worm ‘RECYCLER’ manuellement
Neutraliser un Virus/Worm ‘RECYCLER’ manuellementNeutraliser un Virus/Worm ‘RECYCLER’ manuellement
Neutraliser un Virus/Worm ‘RECYCLER’ manuellement
 
Casser un mot de passe Windows
Casser un mot de passe WindowsCasser un mot de passe Windows
Casser un mot de passe Windows
 
NMAP
NMAPNMAP
NMAP
 
Google APIs
Google APIsGoogle APIs
Google APIs
 
Google Agenda - CSE
Google Agenda - CSEGoogle Agenda - CSE
Google Agenda - CSE
 
Généralités sur les réseaux informatiques – Protocoles ip
Généralités sur les réseaux informatiques – Protocoles ipGénéralités sur les réseaux informatiques – Protocoles ip
Généralités sur les réseaux informatiques – Protocoles ip
 
Startup Weekend Algiers presentation
Startup Weekend Algiers presentationStartup Weekend Algiers presentation
Startup Weekend Algiers presentation
 

"Introduction aux exploits et à la faille BufferOverflow"

  • 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 ...