Condexatedenbay.com


Comment faire pour empêcher les attaques par débordement de tampon

Comment faire pour empêcher les attaques par débordement de tampon


Attaques par débordement de tampon constituent une forme commune d'attaque pour un hacker provoquer le chaos dans un système. Il y a des attaques basées sur les tas de dépassement de capacité, qui sont rares, et les attaques basées sur la pile, qui réinitialiser par erreur la limite de mémoire pour une pile, amenant à déborder. Les données de débordement se déplace dans les autres tampons, corrompre ou d'écraser les données valides, causant potentiellement une cascade de tampons corrompus, comme une cascade de débordement des verres de champagne. Pour empêcher les attaques par débordement de tampon, vous aurez besoin d'avoir connaissance de la programmation informatique, l'accès au code en question et le temps et la patience au peigne fin par des pages et des pages de code permettant d'implémenter les changements nécessaires pour protéger vos systèmes.

Instructions



Écrire du code sécurisé pour empêcher les attaques par débordement. En C, il y a un certain nombre de fonctions vulnérables dont les pirates peuvent exploiter à remplir des tampons. Minimiser l'utilisation de () de strcpy, strcat (), sprintf () et vsprintf (), qui n'effectuent pas de vérification de limites. Si possible, évitez d'utiliser obtient (), qui ne précise pas combien de caractères doivent être lues et laisse donc votre code vulnérable. Si vous utilisez scanf (), veillez à spécifier une largeur pour le format %s éviter les dépassements.



Vérifiez si vous pouvez utiliser les trampolines pour empêcher le débordement de tampon. Étant donné que le débordement de tampon se produit dans les piles de mémoire et pas dans le code, la solution la plus simple semble être empêchant vos piles d'exécuter un code en insérant un petit bout de code pour interdire ces actions. C'est possible sous Linux mais il est très difficile. Seulement quelques compilateurs utilisent les petits morceaux de code appelé trampolines, qui agissent comme une barrière entre le code appelle une fonction et la fonction elle-même. Ainsi, si un code malveillant essaie de substituer une mémoire tampon, le trampoline peut intercepter et réduire à néant les tentatives du hacker.



Mettre en place des outils de compilateur pour vous donner des avertissements lorsque vous utilisez le code qui vous rend vulnérable aux attaques. Certains de ces outils génèrent un code qui interdisent des étrangers d'accéder à des adresses illégales et seront arrêtera de code qui tente d'exécution. Produits tels que StackShield et StackGuard sont d'une grande aide. StackSheild va contrôler l'adresse de retour d'une fonction et résilier en cas d'irrégularité. StackGuard met un mot canari sur l'adresse de l'expéditeur et vérifie pour voir si ce mot a été altéré, clôturant une fonction lorsqu'il a.



Installer les outils tels que libsafe pour vérifier la sécurité dans un environnement dynamique, moment de l'exécution. Libsafe fonctionne sous Linux et vérifie l'adresse de retour plus proche d'un frame de pile, puis s'assure que l'adresse n'est pas remplacé. Libsafe remplacera également les fonctions non comme gets(), strcpy() et scanf().