Liens connexes

Dépêche modérée par

: Exec Shield: protection contre les débordements de tampons

Posté par bmc (). Modéré le 04 mai 2003.
0
Ingo Molnar, célèbre développeur du noyau Linux et actuellement employé par Red Hat, a présenté Exec Shield, une méthode implémentée dans le noyau (actuellement disponible sous forme de patch pour le 2.4.21-rc1) pour réduire fortement sous x86 les risques de débordement de tampon (buffer overflows et associés) de façon transparente pour les applications, c'est-à-dire sans recompilation. Rappelons que les débordements de tampons permettent de faire exécuter sur la machine victime un code arbitraire, sous les droits de l'application victime.

> Lire la suite (27 commentaires, moyenne: 5,6).   [dépêche : 911 caractères]

Comme nous en parlions récemment dans la news OpenBsd 3.3 qui intègre ce type de protection, l'architecture x86 de Intel présente une limitation matérielle pour la protection des pages mémoire, les pages ne pouvant être marquées en lecture seule; elles sont donc marquées également en exécution, ce qui permet, lorsqu'une application est mal codée, de passer du code exécutable qui sera écrit dans ces pages à la suite des données légitimes et qu'on pourra faire ensuite exécuter par diverses techniques (instructions RET, CALL, sauts, etc)

Pour des raisons de performances, Exec Shield ne protège pas chaque page individuellement, mais utilise la possibilité de séparer en deux segments logiques l'espace d'adressage d'une application, ce qui permet d'empêcher l'exécution dans un des segments et de la permettre dans l'autre. Pour plus de détails, voir l'excellente présentation qu'Ingo fait de son projet.

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

Re: Comme grsecutity ?

Posté par grumly_gg () le 04/05/2003 à 10:37. (lien). Évalué à 14.

Est-ce que c'est la même méthode que GrSecurity http://grsecurity.net/(...) ?

"Segmentation-based implementation of non-executable user page
for i386 with negligible performance hit"

Re: Exec Shield: protection contre les débordements de tampons

Posté par Benjamin G. ( Prae ) (page perso, ) le 04/05/2003 à 11:14. (lien). Évalué à 10.

La différence entre cette protection des buffers overflow et celle présent sur OpenWall ?
http://www.openwall.com/linux/(...)

Rappels aux développeurs...

Posté par AlV () le 04/05/2003 à 12:54. (lien). Évalué à 21.

Toutes ces avancées (pour OpenBSD, comme pour Linux et les Un*x en général) dans le domaine de la sécurisation des applications sont effectivement très intéressantes, mais elles ne constituent qu'une sécurité supplémentaire.

Il est, à mon sens, plus judicieux de programmer avec précaution toutes les parties "interface" des applications afin d'éviter que les données arrivant de l'extérieur "polluent" les applications, plutôt que de se dire que le système va passer surveiller l'exécution.

Les techniques de programmation permettant d'éviter ça sont connues.
(voir, par exemple là : http://www.dwheeler.com/secure-programs/(...) même si la news passée sur dlfp n'avait guère eu de succès http://linuxfr.org/2002/10/12/9949.html(...) )

Je reste persuadé qu'un programme qui contrôle activement les données qui lui sont passées "de l'extérieur" sera toujours plus sûr qu'une passoire tournant dans un environnement aussi hostile aux intrus soit-il....

Un grand pas vers le "zéro intrusion" reste la combinaison des deux, c'est à dire, de bien (pour tout ce que cela peut signifier ;o) programmer et de faire tourner ses programmes sensibles dans un environnement surveillé (et hostiles aux hackers et pirates) comme ce patch, l'utilisation de chroot et de comptes d'exécution différents de "root".

Dans tous les cas, c'est du très bon boulot, une fois de plus, de la part des développeurs de Linux (on a le droit de dire juste "Linux", vu que, là, c'est le noyau ;o) et plus généralement de tous ceux qui nous permettent de travailler dans de meilleures conditions.

Et l'exemple qmail ?

Posté par Matthieu MARC () le 04/05/2003 à 17:52. (lien). Évalué à 8.

Y'a un truc que je ne piges pas.

Qmail se dit ultra-secure, le code a été travaillé pour qu'aucun buffer overflow n'existe. Pour l'instant rien ne démontre le contraire.

Alors qu'elle est la formule magique du code de qmail ? pourquoi est-ce que les développeurs ne s'en inspirent pas ?

Pourrait-il être possible d'éviter des buffers overflow rien qu'en s'inspirant des techniques de programmation utilisées dans qmail ?

Re: Exec Shield: protection contre les débordements de tampons

Posté par hideo () le 05/05/2003 à 12:33. (lien). Évalué à 4.

Un article de Bulba and Kil3r paru dans Phrack n°56 rappelait déjà (2000) que les outils de protection se révélaient 'insuffisants' car pouvant eux même être déjoués (h3h3). Ils concluaient en préconisant leur utilisation en application du principe de précaution et en rappelant que la qualité du code est une Nécessité, tout comme son audit.

----| Conclusion

1) StackGuard/StackShield can save you in case of accidental buffer overflows,
but not against a programmer's stupidity. Erreare humanum est, yeah
right, but security programmers must not only be human, they must be
security-aware-humans.

2) - By auditing your code - you may waste some time but you'll surely
increase the security of the programs you're writing.
- By using StackGuard/StackShield/whatever - you may decrease your system
performance but in turn you gain additional layer of security.
- By doing nothing to protect your program - you risk that someone will
humiliate you by exploiting an overflow in your code, and if it happens,
you deserve it!

So, be perfect, be protected, or let the others laugh at you.

---[ BYPASSING STACKGUARD AND STACKSHIELD ]
Bulba and Kil3r, < http://www.phrack.org/phrack/56/p56-0x05(...) >

non mais 8).

A lire pour atteindre l'éveil 0:)

---[ A Brief History of Hackerdom ]
http://www.l0t3k.org/biblio/hacking/english/hacker-history/(...)

ou cette approche du développement "sécurisé"

---[ Best Practices for Secure Development ]
Razvan Peteanu < http://members.rogers.com/razvan.peteanu/best_prac_for_sec_dev4.pdf(...) >

---[ How to find security holes ]
paulv < http://www.l0t3k.org/biblio/programming/english/security-holes.html(...) >
< http://www.canonical.org/(...) >

---[ Secure Programming for Linux and Unix HOWTO ]
David A. Wheeler < http://www.dwheeler.com/secure-programs/(...) >

---[ Secure UNIX Programming FAQ ]
< http://www.whitefang.com/sup/(...) >

Le vent nous portera...

hideo_nomura

Revenir en haut de page