Buffertspillattacker är en vanlig form av attack för en hackare att orsaka kaos i ett system . Det finns heap - baserade overflow attacker , som är sällsynta , och stack - baserade attacker , vilket felaktigt nollställa minnet gränsen för en stack , orsakar det att svämma över . Den överfyllda data flyttas till andra buffertar , korrumpera eller skriva över giltiga data där , vilket kan orsaka en kaskad av skadade buffertar , ungefär som en kaskad av överfyllda champagneglas . För att förhindra attacker buffertspill , måste du ha kunskaper om datorprogrammering , tillgång till koden i fråga och den tid och tålamod att kamma igenom sidor och sidor med kod för att genomföra de förändringar som är nödvändiga för att skydda dina system . Instruktioner
1
Skriv säker kod för att förhindra overflow attacker . I C , det finns ett antal sårbara funktioner som hackare kan utnyttja till överfyllnadsskydd buffertar . Minimera din användning av strcpy ( ) , strcat ( ) , sprintf ( ) och vsprintf ( ) , som inte utför gränskontroll. Om möjligt , undvik att använda blir ( ) , anger vilka inte hur många tecken som ska läsas och därmed lämnar din kod sårbar . Om du använder scanf ( ) , se till att ange en bredd för % s format för att undvika överskridanden .
2
Kontrollera om du kan använda trampoliner för att förhindra buffer overflow . Eftersom buffer overflow inträffar i högar av minnet och inte i koden , skulle den enklaste lösningen verkar vara att förhindra att dina stackar från exekvera någon kod genom att sätta in en liten bit kod för att förbjuda dessa åtgärder . Detta är möjligt i Linux men är väldigt svårt . Endast ett fåtal kompilatorer använder de små bitar av kod kallas trampoliner , som fungerar som en barriär mellan koden som anropar en funktion och själva funktionen . Så , om skadlig kod försöker åsidosätta en buffert , kan trampolin fånga och upphäver hacker försök .
3
Genomföra kompilatorn verktyg för att ge dig varningar när du använder kod som lämnar dig sårbar för attackera . Några av dessa verktyg kommer att generera kod som förbjuder utomstående från att komma åt illegala adresser och stängs kod som försöker sådant utförande . Produkter såsom StackShield och StackGuard är en stor hjälp . StackSheild kommer att granska avsändaradressen på en funktion och avslutas i händelse av en oegentlighet . StackGuard ställen en kanariefågel ord på avsändaradressen och kontroller för att se om det ordet har ändrats , avslutar en funktion när den har .
4
Installera verktyg som libsafe att kontrollera säkerheten i ett dynamiskt , kör - time miljö . Libsafe körs i Linux och kontrollerar närmaste returadress från en stapel ramen och sedan säkerställer att adressen är inte över. Libsafe kommer också att ersätta de osäkra funktioner som blir ( ) , strcpy ( ) och scanf ( ) .