Académique Documents
Professionnel Documents
Culture Documents
Nicolas Bernard
Universit du Luxembourg
<n.bernard@lafraze.net>
Janvier 2005
Nicolas Bernard
Maintenir un systme informatique en tat de fonctionner normalement ; Buts : Restreindre laccs certaines informations aux utilisateurs autoriss les consulter.
Nicolas Bernard
Nicolas Bernard
Sommaire
Nicolas Bernard
La scurit est un compromis Scurit par lobscurit Systmes de scurit en parallle Systmes de scurit en srie Htrognit : Darwin et la scurit Compartimenter
Sommaire
1 2
Prsentation Gnrale Quelques grands principes de scurit La scurit est un compromis Scurit par lobscurit Systmes de scurit en parallle Systmes de scurit en srie Htrognit : Darwin et la scurit Compartimenter Problmes logiciels Conclusion
Nicolas Bernard LArt de la Scurit Informatique
3 4
La scurit est un compromis Scurit par lobscurit Systmes de scurit en parallle Systmes de scurit en srie Htrognit : Darwin et la scurit Compartimenter
Principe On ne peut pas tout avoir, il faut faire des choix, la scurit nest quun des choix possibles. Scurit
Efcacit
Nicolas Bernard
Convivialit
LArt de la Scurit Informatique
La scurit est un compromis Scurit par lobscurit Systmes de scurit en parallle Systmes de scurit en srie Htrognit : Darwin et la scurit Compartimenter
Principe La Scurit par lObscurit ne marche pas ! Consquence (Loi de Kerckhoffs, 1883) Un cryptosystme devrait tre sr mme sil est totalement public, lexception de la clef. Consquence La scurit dun systme ne doit pas dpendre du client.
Nicolas Bernard
La scurit est un compromis Scurit par lobscurit Systmes de scurit en parallle Systmes de scurit en srie Htrognit : Darwin et la scurit Compartimenter
Principe La Scurit par lObscurit ne marche pas ! Consquence (Loi de Kerckhoffs, 1883) Un cryptosystme devrait tre sr mme sil est totalement public, lexception de la clef. Consquence La scurit dun systme ne doit pas dpendre du client.
Nicolas Bernard
La scurit est un compromis Scurit par lobscurit Systmes de scurit en parallle Systmes de scurit en srie Htrognit : Darwin et la scurit Compartimenter
Principe La Scurit par lObscurit ne marche pas ! Consquence (Loi de Kerckhoffs, 1883) Un cryptosystme devrait tre sr mme sil est totalement public, lexception de la clef. Consquence La scurit dun systme ne doit pas dpendre du client. Exemple: le systme de protection des DVD-videos
Nicolas Bernard
La scurit est un compromis Scurit par lobscurit Systmes de scurit en parallle Systmes de scurit en srie Htrognit : Darwin et la scurit Compartimenter
Une chane est aussi forte que son maillon le plus faible. sagesse populaire
Principe Si diffrents mcanismes de scurit jouent le mme rle, le systme est aussi sr que le plus faible de ces mcanismes. Exemple Un ordinateur auquel on peut se connecter soit via un mot de passe ; via un lecteur dempreintes digitales.
Nicolas Bernard LArt de la Scurit Informatique
La scurit est un compromis Scurit par lobscurit Systmes de scurit en parallle Systmes de scurit en srie Htrognit : Darwin et la scurit Compartimenter
Une chane est aussi forte que son maillon le plus faible. sagesse populaire
Principe Si diffrents mcanismes de scurit jouent le mme rle, le systme est aussi sr que le plus faible de ces mcanismes. Exemple Un ordinateur auquel on peut se connecter soit via un mot de passe ; via un lecteur dempreintes digitales.
Nicolas Bernard LArt de la Scurit Informatique
La scurit est un compromis Scurit par lobscurit Systmes de scurit en parallle Systmes de scurit en srie Htrognit : Darwin et la scurit Compartimenter
Principe (Dfense en profondeur) Utiliser plusieurs couches de scurit permet lune dchouer sans compromettre tout le systme. Exemple Un rseau protg par un rewall dont chaque machine est sre en elle-mme ; le rseau interne est chiffr ; etc.
Nicolas Bernard LArt de la Scurit Informatique
La scurit est un compromis Scurit par lobscurit Systmes de scurit en parallle Systmes de scurit en srie Htrognit : Darwin et la scurit Compartimenter
Principe (Dfense en profondeur) Utiliser plusieurs couches de scurit permet lune dchouer sans compromettre tout le systme. Exemple Un rseau protg par un rewall dont chaque machine est sre en elle-mme ; le rseau interne est chiffr ; etc.
Nicolas Bernard LArt de la Scurit Informatique
La scurit est un compromis Scurit par lobscurit Systmes de scurit en parallle Systmes de scurit en srie Htrognit : Darwin et la scurit Compartimenter
Principe (diversit) Des systmes identiques sont vulnrables des attaques grande chelle contre leurs caractristiques communes. Exemple Les vers et virus informatiques exploitent ces facteurs.
Nicolas Bernard
La scurit est un compromis Scurit par lobscurit Systmes de scurit en parallle Systmes de scurit en srie Htrognit : Darwin et la scurit Compartimenter
Principe (Sparation des pouvoirs) Une entit (programme, utilisateur, . . . ) devrait avoir accs et uniquement ce dont elle a besoin (informations, pouvoirs, ressources, . . . ) pour accomplir sa tche. Exemple Sparation excutif / lgislatif / judiciaire. Exemple Droits daccs sur un systme dexploitation.
Nicolas Bernard
La scurit est un compromis Scurit par lobscurit Systmes de scurit en parallle Systmes de scurit en srie Htrognit : Darwin et la scurit Compartimenter
Principe (Sparation des pouvoirs) Une entit (programme, utilisateur, . . . ) devrait avoir accs et uniquement ce dont elle a besoin (informations, pouvoirs, ressources, . . . ) pour accomplir sa tche. Exemple Sparation excutif / lgislatif / judiciaire. Exemple Droits daccs sur un systme dexploitation.
Nicolas Bernard
La scurit est un compromis Scurit par lobscurit Systmes de scurit en parallle Systmes de scurit en srie Htrognit : Darwin et la scurit Compartimenter
Principe (Sparation des pouvoirs) Une entit (programme, utilisateur, . . . ) devrait avoir accs et uniquement ce dont elle a besoin (informations, pouvoirs, ressources, . . . ) pour accomplir sa tche. Exemple Sparation excutif / lgislatif / judiciaire. Exemple Droits daccs sur un systme dexploitation.
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Sommaire
1 2 3
Prsentation Gnrale Quelques grands principes de scurit Problmes logiciels Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Conclusion
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Penser la scurit pendant la conception ! La rajouter aprs sera au mieux difcile ! Exemple (e-mail) Condentialit : relativement facile ajouter (OpenPGP, S/MIME) Intimit des relations : beaucoup plus difcile (mixmaster, etc) Protection contre le dni de service et les envois indsirs : impossible ajouter ?
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Penser la scurit pendant la conception ! La rajouter aprs sera au mieux difcile ! Exemple (e-mail) Condentialit : relativement facile ajouter (OpenPGP, S/MIME) Intimit des relations : beaucoup plus difcile (mixmaster, etc) Protection contre le dni de service et les envois indsirs : impossible ajouter ?
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Penser la scurit pendant la conception ! La rajouter aprs sera au mieux difcile ! Exemple (e-mail) Condentialit : relativement facile ajouter (OpenPGP, S/MIME) Intimit des relations : beaucoup plus difcile (mixmaster, etc) Protection contre le dni de service et les envois indsirs : impossible ajouter ?
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Penser la scurit pendant la conception ! La rajouter aprs sera au mieux difcile ! Exemple (e-mail) Condentialit : relativement facile ajouter (OpenPGP, S/MIME) Intimit des relations : beaucoup plus difcile (mixmaster, etc) Protection contre le dni de service et les envois indsirs : impossible ajouter ?
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Penser la scurit pendant la conception ! La rajouter aprs sera au mieux difcile ! Exemple (e-mail) Condentialit : relativement facile ajouter (OpenPGP, S/MIME) Intimit des relations : beaucoup plus difcile (mixmaster, etc) Protection contre le dni de service et les envois indsirs : impossible ajouter ?
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Principe (KISS : Keep It Simple, Stupid) origine dans la philosophie Unix ; un programme fait une seule chose, mais il la fait bien. Limites : hypothse implicite : il est facile de dire si une chose simple est sre ; les interactions entres des choses simples peuvent devenir complexes !
Nicolas Bernard LArt de la Scurit Informatique
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Principe (KISS : Keep It Simple, Stupid) origine dans la philosophie Unix ; un programme fait une seule chose, mais il la fait bien. Limites : hypothse implicite : il est facile de dire si une chose simple est sre ; les interactions entres des choses simples peuvent devenir complexes !
Nicolas Bernard LArt de la Scurit Informatique
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Le buffer-overow
Famille des dbordements de tampons (ou buffer-overows) : sans doute celle ayant provoqu le plus de failles de scurit ; ancienne :
risque peru depuis les annes 1960 ! utilise par lInternet Worm de 1988 ;
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Le buffer-overow
Famille des dbordements de tampons (ou buffer-overows) : sans doute celle ayant provoqu le plus de failles de scurit ; ancienne :
risque peru depuis les annes 1960 ! utilise par lInternet Worm de 1988 ;
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Texte
v
Le segment de texte Il contient les instructions ; Il a gnralement les permissions lecture et excution.
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Texte
Donnes
v
Le segment de donnes Il contient les variables statiques ou globales ; note : lexcutable sur le disque stocke gnralement dans deux segments distincts, data et bss les donnes selon quelles sont initialises ou non.
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Texte
Donnes
Tas
v
Le tas (heap) Cest l que se trouve la place alloue par malloc(3) ; Il grandit vers les adresses plus hautes.
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Texte
Donnes
Tas
Pile
v
La pile (stack) Contient les informations temporaires, les variables automatiques, les paramtres de fonctions, etc ; elle grandit vers le bas, vers le tas.
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
X Y EBP
ESP
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
X Y $52 EBP
ESP
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
ESP
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
ESP
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
ESP
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
ESP
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
ESP
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
ESP
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
ESP
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
ESP
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
ESP
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
ESP
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
ESP
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
X Y EBP
ESP
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Stack Smashing !
Principe : si une fonction contient un tableau automatique local, il est plac sur la pile ;
gestion de la fonction
Adresse de retour
Tableau local
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Stack Smashing !
Principe : si une fonction contient un tableau automatique local, il est plac sur la pile ; si la mme fonction fait une copie dedans sans vrier sa taille (ex : strcpy(3)), on crase le reste de la pile ;
gestion de la fonction
Adresse de retour
Tableau local
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Stack Smashing !
Principe : si une fonction contient un tableau automatique local, il est plac sur la pile ; si la mme fonction fait une copie dedans sans vrier sa taille (ex : strcpy(3)), on crase le reste de la pile ;
gestion de la fonction
Adresse de retour
Tableau local
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Stack Smashing !
Principe : si une fonction contient un tableau automatique local, il est plac sur la pile ; si la mme fonction fait une copie dedans sans vrier sa taille (ex : strcpy(3)), on crase le reste de la pile ;
gestion de la fonction
Adresse de retour
Tableau local
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Stack Smashing !
Principe : si une fonction contient un tableau automatique local, il est plac sur la pile ; si la mme fonction fait une copie dedans sans vrier sa taille (ex : strcpy(3)), on crase le reste de la pile ;
gestion de la fonction
Adresse de retour
Tableau local
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Stack Smashing !
Principe : si une fonction contient un tableau automatique local, il est plac sur la pile ; si la mme fonction fait une copie dedans sans vrier sa taille (ex : strcpy(3)), on crase le reste de la pile ;
gestion de la fonction
Adresse de retour
Tableau local
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Stack Smashing !
Principe : si une fonction contient un tableau automatique local, il est plac sur la pile ; si la mme fonction fait une copie dedans sans vrier sa taille (ex : strcpy(3)), on crase le reste de la pile ;
gestion de la fonction
Adresse de retour
Tableau local
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Stack Smashing !
Principe : si une fonction contient un tableau automatique local, il est plac sur la pile ; si la mme fonction fait une copie dedans sans vrier sa taille (ex : strcpy(3)), on crase le reste de la pile ;
gestion de la fonction
Adresse de retour
Tableau local
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Stack Smashing !
Principe : si une fonction contient un tableau automatique local, il est plac sur la pile ; si la mme fonction fait une copie dedans sans vrier sa taille (ex : strcpy(3)), on crase le reste de la pile ;
gestion de la fonction
Adresse de retour
Tableau local
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Stack Smashing !
Principe : si une fonction contient un tableau automatique local, il est plac sur la pile ; si la mme fonction fait une copie dedans sans vrier sa taille (ex : strcpy(3)), on crase le reste de la pile ;
gestion de la fonction
Adresse de retour
Tableau local
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Stack Smashing !
Principe : si une fonction contient un tableau automatique local, il est plac sur la pile ; si la mme fonction fait une copie dedans sans vrier sa taille (ex : strcpy(3)), on crase le reste de la pile ;
gestion de la fonction
Adresse de retour
Tableau local
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Stack Smashing !
Principe : si une fonction contient un tableau automatique local, il est plac sur la pile ; si la mme fonction fait une copie dedans sans vrier sa taille (ex : strcpy(3)), on crase le reste de la pile ;
gestion de la fonction
Adresse de retour
Tableau local
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Stack Smashing !
Principe : si une fonction contient un tableau automatique local, il est plac sur la pile ; si la mme fonction fait une copie dedans sans vrier sa taille (ex : strcpy(3)), on crase le reste de la pile ;
gestion de la fonction
Adresse de retour
Tableau local
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Stack Smashing !
Principe : si une fonction contient un tableau automatique local, il est plac sur la pile ; si la mme fonction fait une copie dedans sans vrier sa taille (ex : strcpy(3)), on crase le reste de la pile ;
gestion de la fonction
Adresse de retour
Tableau local
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Stack Smashing !
Principe : si une fonction contient un tableau automatique local, il est plac sur la pile ; si la mme fonction fait une copie dedans sans vrier sa taille (ex : strcpy(3)), on crase le reste de la pile ;
gestion de la fonction
Adresse de retour
Tableau local
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Stack Smashing !
Principe : si une fonction contient un tableau automatique local, il est plac sur la pile ; si la mme fonction fait une copie dedans sans vrier sa taille (ex : strcpy(3)), on crase le reste de la pile ;
gestion de la fonction
Adresse de retour
Tableau local
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Stack Smashing !
Principe : si une fonction contient un tableau automatique local, il est plac sur la pile ; si la mme fonction fait une copie dedans sans vrier sa taille (ex : strcpy(3)), on crase le reste de la pile ;
gestion de la fonction
Adresse de retour
Tableau local
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Stack Smashing !
Principe : si une fonction contient un tableau automatique local, il est plac sur la pile ; si la mme fonction fait une copie dedans sans vrier sa taille (ex : strcpy(3)), on crase le reste de la pile ;
gestion de la fonction
Adresse de retour
Tableau local
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Stack Smashing !
Principe : si une fonction contient un tableau automatique local, il est plac sur la pile ; si la mme fonction fait une copie dedans sans vrier sa taille (ex : strcpy(3)), on crase le reste de la pile ;
gestion de la fonction
Adresse de retour
Tableau local
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Stack Smashing !
Principe : si une fonction contient un tableau automatique local, il est plac sur la pile ; si la mme fonction fait une copie dedans sans vrier sa taille (ex : strcpy(3)), on crase le reste de la pile ; on peut donc remplacer ladresse de retour de la fonction par celle dun morceau de code (shellcode) arbitraire.
gestion de la fonction Adresse de retour Tableau local
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Stack Smashing !
Problmes : placer le shellcode dans lespace dadressage du processus ; connatre ladresse o il se trouve.
shellcode pointeurs sur le buffer Adresse de retour landing pad Tableau local gestion de la fonction
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Adresse de retour
variables locales
on utilise le premier strcpy pour faire pointer p sur la position de ladresse de retour; on change ladresse de retour sans toucher au canari avec le second strcpy.
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Adresse de retour
variables locales
on utilise le premier strcpy pour faire pointer p sur la position de ladresse de retour; on change ladresse de retour sans toucher au canari avec le second strcpy.
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Adresse de retour
variables locales
on utilise le premier strcpy pour faire pointer p sur la position de ladresse de retour; on change ladresse de retour sans toucher au canari avec le second strcpy.
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
printf parcourt la chane de gauche droite ; chaque %, on regarde le caractre suivant et on interprte largument suivant sur la pile en consquence.
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
crire en mmoire
Que fait printf (ABCD%08x%08x%n); ? Principe : utiliser des %x pour remonter jusqu lemplacement du dbut de la chane sur la pile ; mettre une adresse ABCD au dbut de la chane ; %n interprte alors cette adresse comme lendroit o il doit crire...
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
crire en mmoire
Que fait printf (ABCD%08x%08x%n); ? Principe : utiliser des %x pour remonter jusqu lemplacement du dbut de la chane sur la pile ; mettre une adresse ABCD au dbut de la chane ; %n interprte alors cette adresse comme lendroit o il doit crire...
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
crire en mmoire
Que fait printf (ABCD%08x%08x%n); ? Principe : utiliser des %x pour remonter jusqu lemplacement du dbut de la chane sur la pile ; mettre une adresse ABCD au dbut de la chane ; %n interprte alors cette adresse comme lendroit o il doit crire...
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
crire en mmoire
Que fait printf (ABCD%08x%08x%n); ? Principe : utiliser des %x pour remonter jusqu lemplacement du dbut de la chane sur la pile ; mettre une adresse ABCD au dbut de la chane ; %n interprte alors cette adresse comme lendroit o il doit crire...
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
SQL Injections
SQL est un langage pour interroger des bases de donnes ; Une application (ex : page web dynamique) peut lutiliser pour accder une base de donnes. Imaginons que la requte soit faite ainsi :
$res = request_sql("SELECT login FROM users WHERE login = $login AND password = $pass");
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
SQL Injections
SQL est un langage pour interroger des bases de donnes ; Une application (ex : page web dynamique) peut lutiliser pour accder une base de donnes. Imaginons que la requte soit faite ainsi :
$res = request_sql("SELECT login FROM users WHERE login = $login AND password = $pass");
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
SQL Injections
SQL est un langage pour interroger des bases de donnes ; Une application (ex : page web dynamique) peut lutiliser pour accder une base de donnes. Imaginons que la requte soit faite ainsi :
$res = request_sql("SELECT login FROM users WHERE login = $login AND password = $pass");
Nicolas Bernard
Erreurs de conception Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation : Erreurs dimplmentation :
SQL Injections
SQL est un langage pour interroger des bases de donnes ; Une application (ex : page web dynamique) peut lutiliser pour accder une base de donnes. Imaginons que la requte soit faite ainsi :
$res = request_sql("SELECT login FROM users WHERE login = $login AND password = $pass");
Un utilisateur malicieux entre comme mot de passe toto OR 1=1 ! Moralit : Ne jamais faire conance aux donnes externes !
Nicolas Bernard
Questions ? Bibliographie
Sommaire
1 2 3 4
Prsentation Gnrale Quelques grands principes de scurit Problmes logiciels Conclusion Questions ? Bibliographie
Nicolas Bernard
Questions ? Bibliographie
Pense dabord, utilise lordinateur ensuite. Ian Stewart Rchir beaucoup lemporte sur rchir peu, et plus encore sur ne pas rchir du tout. Sun Zi
Pas de scurit absolue ; programmes srs : condition ncessaire ; mesures simples = attaques beaucoup plus difciles ;
Se faire battre est excusable, se faire surprendre impardonnable. Napolon
Nicolas Bernard
Questions ? Bibliographie
Pense dabord, utilise lordinateur ensuite. Ian Stewart Rchir beaucoup lemporte sur rchir peu, et plus encore sur ne pas rchir du tout. Sun Zi
Pas de scurit absolue ; programmes srs : condition ncessaire ; mesures simples = attaques beaucoup plus difciles ;
Se faire battre est excusable, se faire surprendre impardonnable. Napolon
Nicolas Bernard
Questions ? Bibliographie
Pense dabord, utilise lordinateur ensuite. Ian Stewart Rchir beaucoup lemporte sur rchir peu, et plus encore sur ne pas rchir du tout. Sun Zi
Pas de scurit absolue ; programmes srs : condition ncessaire ; mesures simples = attaques beaucoup plus difciles ;
Se faire battre est excusable, se faire surprendre impardonnable. Napolon
Nicolas Bernard
Questions ? Bibliographie
Pense dabord, utilise lordinateur ensuite. Ian Stewart Rchir beaucoup lemporte sur rchir peu, et plus encore sur ne pas rchir du tout. Sun Zi
Pas de scurit absolue ; programmes srs : condition ncessaire ; mesures simples = attaques beaucoup plus difciles ;
Se faire battre est excusable, se faire surprendre impardonnable. Napolon
Nicolas Bernard
Questions ? Bibliographie
Des questions ?
Nicolas Bernard
Questions ? Bibliographie
Ross A NDERSON. Security Engineering. Wiley Computer Publishing. John Wiley & Sons, Inc, 2001.
Nicolas Bernard
Questions ? Bibliographie
Aleph1. Smashing the stack for fun and prot. Phrack, 7(49), 1996. Larticle qui a expos au grand jour le Buffer Overow.
Nicolas Bernard
Questions ? Bibliographie
Cyrus P EIKARI and Anton C HUVAKIN. Security Warrior. OReilly, 2004. Couvre superciellement un large panorama de mthodes dattaques.
Nicolas Bernard
Questions ? Bibliographie
Questions ? Bibliographie