Buffer overflow angrep er en vanlig form for angrep for en hacker å forårsake kaos i et system . Det er heap -basert overflow angrep , som er sjeldne , og stack - baserte angrep, som feilaktig nullstille minnet grensen for en stabel , forårsaker den til å renne over . Den overfylte dataflyttinger i andre buffere , ødelegge eller overskrive gyldige data der, potensielt forårsake en kaskade av korrupte buffere , mye som en kaskade av overfylte champagneglass . For å hindre buffer overflow angrep , må du ha ekspert kunnskap om programmering , få tilgang til koden i spørsmålet og tid og tålmodighet til å gre gjennom sider og sider med kode for å gjennomføre de endringer som er nødvendige for å beskytte dine systemer. Instruksjoner
en
Skriv sikkerhetskode for å hindre overflow angrep . I C , er det en rekke av sårbare funksjoner som hackere kan utnytte til renner over buffere . Minimer bruken av strcpy ( ) , strcat ( ) , sprintf () og vsprintf (), som ikke utfører grensekontroll. Hvis det er mulig , unngå å bruke gets ( ) , som ikke angir hvor mange tegn som skal leses og dermed forlater koden sårbare. Hvis du bruker scanf ( ) , må du angi en bredde for % s format for å unngå overskridelser.
2
Sjekk om du kan bruke trampoliner for å hindre buffer overflow . Siden buffer overflow oppstår i stabler av minnet og ikke i koden , ville den enkleste løsningen synes å være å hindre dine stabler fra å kjøre noen kode ved å sette inn en liten bit med kode for å forby disse handlingene . Dette er mulig i Linux , men er meget vanskelig. Bare noen få kompilatorer bruke de små biter av kode kalt nedstigning , som fungerer som en barriere mellom den kode kalle en funksjon og selve funksjonen . Så , hvis ondsinnet kode prøver å overstyre en buffer , kan trampolinen fange opp og opphever hacker forsøk .
3
Implementere kompilatoren for å gi deg advarsler når du bruker koden som etterlater deg sårbar for angripe. Noen av disse verktøyene vil generere kode som forbyr utenforstående får tilgang ulovlige adresser og vil stenge kode som forsøker slik gjennomføring . Produkter som StackShield og StackGuard er en stor hjelp . StackSheild vil granske avsenderadressen til en funksjon og avslutte i tilfelle en uregelmessighet . StackGuard steder en kanarifugl ord på avsenderadressen og kontroller for å se om det ordet har blitt endret , avslutter en funksjon når den har.
4
Installer verktøy som libsafe å sjekke sikkerheten i en dynamisk, kjøre - time miljø . Libsafe kjører i Linux og sjekker nærmeste returadresse fra en stabel ramme sikrer da at adressen ikke er overskrevet. Libsafe vil også erstatte de usikre funksjoner som gets ( ) , strcpy () og scanf ( ) .