2009-05-12 10 views
6

Après quelques recherches, je n'ai trouvé aucun papier décrivant la méthode pour le faire (pas même un peu fiable). Il semble que SSP (StackSmashing Protection)/PropoliceExiste-t-il un moyen de contourner SSP (StackSmashing Protection)/Propolice?

+0

Même pour votre propre logiciel, je ne peux pas penser à une bonne raison de le faire (performance peut-être?). – Zifre

+5

Peut-être qu'il essaie d'évaluer cette technologie pour l'utiliser dans son propre produit et se demande s'il y a des problèmes connus avec elle. –

+1

Il vous manque la dernière partie de votre dernière phrase. –

Répondre

1

Je suis plus familier avec la protection de pile GS de Microsoft, mais les deux approches seem similar.

Le blog suivant de Microsoft montre un exemple où un attaquant peut toujours prendre le contrôle même lorsque les cookies pile sont en cours d'utilisation (le premier exemple devrait être applicable aux systèmes non-Windows):


Ce post blog parle de quelques-unes des améliorations à venir à pile protection:

0

Si une application a un tableau/tampon sur la pile, et utilise des valeurs d'index contrôlé par l'appelant sans vérification des bornes, puis un appelant sera en mesure d'accéder à des emplacements de mémoire arbitraires, et la pile de protection ne être capable de l'empêcher ou de le détecter.

+0

C'est une attaque valide, désolé, il est en retard. – rook

3

Les canari sont une très bonne mesure de sécurité pour protéger contre certains débordements de tampon. Au fil des années, diverses implémentations canariennes ont été brisées et ensuite sécurisées. Ce qui est important, c'est que malgré la protection avancée de la mémoire, les surcharges de mémoire tampon sont encore exploitées sur Vista, Windows 7 et Fedora 11 ...

Une chose très importante à mentionner est que Canary ne protège que le cadre d'appel de la fonction (qui inclut le puissant EIP!). Un débordement de tampon peut se produire dans un autre segment de mémoire tel que le tas, et un canari n'aurait aucun effet. De plus, une application peut être piratée en utilisant un buffer overflow sans jamais avoir à écraser un EIP. Le contrôle de l'EIP est une méthode très simple et directe pour transformer un buffer overflow en un exploit tueur et c'est pourquoi c'est la méthode d'exploitation la plus courante.

Ces méthodes d'exploitation, ainsi que d'autres sont passées en revue en détail dans Exploiting Software: How to break code. Est-ce pour le piratage, ou pour votre propre logiciel?