Support de cours
Filière: Mastère professionnel Audit et Sécurité Informatique
Niveau: 2
Etablissement: Faculté des Sciences Economiques et de Gestion de Sfax (FSEGS)
Université de Sfax
Sécurisation des entrepôts de données : Etat de l’art et proposition
Développement d'applications sécurisées [Partie 2]
1. S´ecurit´e de bas niveau
Appel de fonction et pile : r´esum´e
Fonction appelante :
1. Empiler les param`etres dans la pile/positionner les param`etres
dans des registres
2. Empiler l’adresse de l’instruction de retour
3. Faire un saut vers l’adresse de la fonction
Fonction appel´ee :
4. Empiler l’adresse du pointeur de pile (%ebp)
5. (%ebp) ← (%esp)
6. Empiler les variables locales
Retour `a la fonction appelante :
7. R´einitialiser le pointeur de pile et le pointeur de sommet de
pile
8. Faire un saut vers l’instruction de retour
2. S´ecurit´e de bas niveau
Appel de fonction et pile : r´esum´e (Cont.)
3. S´ecurit´e de bas niveau
Buffer Overflow
Buffer : Espace m´emoire contigu associ´e `a une variable ou `a
un champ
Overflow : Ecrire dans le buffer plus de donn´ees qu’il ne peut
supporter
6. S´ecurit´e de bas niveau
Injection de code
Il existe deux difficult´ees pour injecter un code
Utiliser le programme pour charger un code dans la m´emoire
Charger la permiere instruction du code dans le registre
d’instruction
7. S´ecurit´e de bas niveau
Injection de code (Cont.)
Caract´eristiques de code :
Ecrit en langage machine
Ne contient pas des caract´eres NULL
N’utilise pas un chargeur (Loader)
shellcode : Permet d’avoir un interpreteur de commandes
8. S´ecurit´e de bas niveau
Injection de code (Cont.)
Exemple de shellcode