Buffer overflow -aanvallen zijn een veel voorkomende vorm van aanval voor een hacker om chaos in een systeem veroorzaken . Er zijn heap - based overflow aanvallen , die zeldzaam en stack - gebaseerde aanvallen , die ten onrechte het geheugen te resetten voor een stapel , waardoor het overloop zijn . De overvolle gegevens verhuist naar andere buffers , corrumperen of overschrijven van de geldige gegevens daar , waardoor het gevaar ontstaat een cascade van corrupte buffers , net als een cascade van overlopen champagneglazen . Om buffer overflow -aanvallen te voorkomen , moet u deskundige kennis van computer programmering hebben , de toegang tot de code in kwestie en de tijd en geduld om kam door pagina's en pagina's van code om de veranderingen die nodig zijn om uw systemen te beschermen implementeren . Instructies 1 Schrijf secure code om overflow -aanvallen te voorkomen . In C , zijn er een aantal kwetsbare functies die hackers kunnen misbruiken om overvulling buffers . Minimaliseer het gebruik van strcpy ( ) , strcat ( ) , sprintf ( ) en vsprintf ( ) , die niet presteren bounds checking . Indien mogelijk , vermijd het gebruik van krijgt ( ) , die geeft niet aan hoeveel tekens moeten worden gelezen en laat dus uw code kwetsbaar . Als je scanf ( ) te gebruiken , moet u een breedte voor de % s formaat opgeven om overschrijdingen te voorkomen . Kopen van 2 Controleer om te zien of u trampolines kunt gebruiken om buffer overflow te voorkomen . Sinds buffer overflow optreedt in de stapels van het geheugen en niet in de code , zou de eenvoudigste oplossing lijkt te zijn het voorkomen van uw stacks uit het uitvoeren van een code door het invoegen van een klein stukje code om deze acties te verbieden . Dit is mogelijk in Linux maar erg moeilijk . Slechts enkele compilers gebruiken de kleine stukjes code genaamd trampolines , die fungeren als een barrière tussen de code aanroepen van een functie en de functie zelf . Dus, als kwaadaardige code probeert een buffer overschrijven , kan de trampoline onderscheppen en neutraliseren pogingen van de hacker . 3 Implementeer compiler tools om u waarschuwingen geven wanneer u code gebruiken dat laat je kwetsbaar voor vallen . Sommige van deze tools zal code die buitenstaanders ontoegankelijk illegale adressen en wordt afgesloten code dat een dergelijke executie probeert te genereren . Producten zoals StackShield en StackGuard zijn een grote hulp . StackSheild zal het retouradres van een functie te onderzoeken en te beëindigen in geval van een onregelmatigheid . StackGuard plaatsen een kanarie woord op het retouradres en controles om te zien of dat woord is veranderd , het beëindigen van een functie wanneer het heeft . 4 Installeer tools zoals libsafe om de veiligheid te controleren in een dynamische , run - time omgeving . Libsafe draait op Linux en controleert het dichtstbijzijnde adres van de afzender van een stapel frame, zorgt er dan voor dat het adres niet overschreven . Libsafe vervangt ook de onveilige functies zoals gets ( ) , strcpy ( ) en scanf ( ) .
|