On Tue, 28 May 2002, Daniel Cordey wrote:
> J'ai vu dans le bouquin "Halte Linux Hackers" qu'il existait un ou deux
> compilateurs C destin�s � mettre des marqueurs sp�ciaux pour emp�cher
> l'exploitation des stacks. Je n'ai pas le bouquin sous la main mais je
> pourrai vous donner les r�f�rences d�s jeudi matin (� moins que Marc ne le
> fasse avant).
On appelle cela des canaris. A plusieurs reprises il a �t� montr� qu'il
est possible de passer outre ces s�curit�s. Elles permettent cependant
souvent de rendre la t�che tr�s difficile � l'attaquant, voire impossible
dans les cas pratiques usuels.
Reprenons:
- pile non ex�cutable
-> emp�che les attaques de code, mais pas celles sur des
variables.
De plus, elle n'emp�che en aucun cas l'attaque de code
si toutes les variables attaquables ne sont pas sur la stack.
- canaris
-> en g�n�ral limit� � la pile, donc cf plus haut
- canaris dans chaque structure de donn�es, v�rification � l'ex�cution
-> p�nalit� tr�s forte, mais protection assez bonne ... sauf si
le buffer overflow est con�u pour maintenir le canari et
�craser une variable plus loin, p.ex.
*La* solution est d'utiliser un langage avec `boundary checking' �
l'ex�cution (Perl, Ada, ...). Ou d'auditer le code C.
> Aussi, il existe une librairie qui v�rifie la conformit� du "format" d'un
> *printf et de ses arguments. L� aussi, je ne pourrai pas vous en donner le
gcc le fait d'une mani�re assez simpliste � la compilation.
--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se d�sabonner aussi.