Développement d'applications sécurisées [Partie 2]

Preview:

Citation preview

Securite de bas niveauAppel de fonction et pile : resume

Fonction appelante :

1. Empiler les parametres dans la pile/positionner les parametresdans des registres

2. Empiler l’adresse de l’instruction de retour

3. Faire un saut vers l’adresse de la fonction

Fonction appelee :

4. Empiler l’adresse du pointeur de pile (%ebp)

5. (%ebp) ← (%esp)

6. Empiler les variables locales

Retour a la fonction appelante :

7. Reinitialiser le pointeur de pile et le pointeur de sommet depile

8. Faire un saut vers l’instruction de retour

Securite de bas niveauAppel de fonction et pile : resume (Cont.)

Securite de bas niveauBuffer Overflow

I Buffer : Espace memoire contigu associe a une variable ou aun champ

I Overflow : Ecrire dans le buffer plus de donnees qu’il ne peutsupporter

Securite de bas niveauBuffer Overflow : Exemple 1

Securite de bas niveauBuffer Overflow : Exemple 2

Securite de bas niveauInjection de code

I Il existe deux difficultees pour injecter un codeI Utiliser le programme pour charger un code dans la memoire

I Charger la permiere instruction du code dans le registred’instruction

Securite de bas niveauInjection de code (Cont.)

Caracteristiques de code :

I Ecrit en langage machine

I Ne contient pas des caracteres NULL

I N’utilise pas un chargeur (Loader)

I shellcode : Permet d’avoir un interpreteur de commandes

Securite de bas niveauInjection de code (Cont.)

Exemple de shellcode

Recommended