Bufferoverløbsangreb er en almindelig form for angreb for en hacker at forårsage kaos i et system. Der er heap -baseret overflow angreb, som er sjældne, og stakbaserede angreb, som fejlagtigt nulstille hukommelsen grænse for en stak , får det til overløb. Den overstrømmende data bevæger sig ind i andre buffere , ødelægge eller overskrive de gyldige data der, potentielt forårsage en kaskade af ødelagte buffere , meget gerne en kaskade af overfyldte champagneglas . For at forhindre buffer overflow angreb, bliver du nødt til at have ekspertviden om programmering af computere, adgang til koden i spørgsmål, og den tid og tålmodighed til at finkæmme sider og sider af kode til at gennemføre de nødvendige ændringer for at beskytte dine systemer . Instruktioner
1
Skriv sikkerhedskode for at forhindre overløb angreb. I C er der en række sårbare funktioner, som hackere kan udnytte at overfylde buffere. Minimer din brug af strcpy () , strcat () , sprintf () og vsprintf (), som ikke udfører kontrol af grænser. Hvis det er muligt , undgå at bruge får () , hvilket ikke angive, hvor mange tegn, der skal læses , og dermed efterlader din kode sårbar. Hvis du bruger scanf () , skal du sørge for at angive en bredde for % s format for at undgå budgetoverskridelser .
2
Check at se, om du kan bruge trampoliner til at forhindre buffer overflow . Da buffer overflow forekommer i stakke af hukommelse og ikke i kode , ville den enkleste løsning synes at være at forhindre dine stakke at henrette nogen kode ved at indsætte en lille smule kode til at forbyde disse handlinger . Dette er muligt i Linux , men er meget vanskelig . Kun et par compilere bruge de små stumper af kode kaldet trampoliner , der fungerer som en barriere mellem koden kalder en funktion og selve funktionen . Så hvis skadelig kode forsøger at tilsidesætte en buffer , kan trampolinen opfange og ophæve den hacker forsøg .
3
Implement kompiler værktøjer til at give dig advarsler, når du bruger kode, der efterlader dig sårbar over for angribe. Nogle af disse værktøjer vil generere kode, der forbyder udenforstående i at få adgang ulovlige adresser og vil lukke ned kode, der forsøger sådan udførelse. Produkter såsom StackShield og StackGuard er en stor hjælp . StackSheild vil granske afsenderadressen for en funktion og afslutte i tilfælde af en uregelmæssighed. StackGuard steder en kanariefugl ord om afsenderadressen og kontrol for at se, om det ord er blevet ændret, afslutning af en funktion, når det har.
4
Installer værktøjer såsom libsafe at tjekke sikkerheden i et dynamisk , køre -miljøet . Libsafe kører i Linux og tjekker den nærmeste afsenderadressen fra en stak frame , så sikrer, at adressen ikke overskrives . Libsafe vil også erstatte de usikre funktioner såsom får () , strcpy () og scanf ().