Måter å hindre bufferoverløp

Måter å hindre bufferoverløp


Forebygging buffer overflow er avgjørende for å beskytte sikkerheten til datamaskinen og tilkoblet server, og er et resultat av dårlig inndatavalidering. Du kan beskytte systemet fra buffer overflow-angrep ved å følge noen enkle trinn og ta de nødvendige tiltak. Identifisere og delta i saker i systemet ditt C-programmering er hovedfokus å forhindre buffer overflow i fremtiden.

Ved hjelp av en ikke-kjørbar Stack

Denne metoden for overløp forebygging inkluderer en stabel som er konfigurert til ikke å holde noen kjørbar kode. Skaff en kernal patch for Linux og Solaris-systemer for å konfigurere den ikke-kjørbare stabelen. I Windows XP, kan du angi Data Execution Prevention utkant med operativsystemet (OS) til også å beskytte stabelen mot buffer overflow. Den Palisade nettside advarer imidlertid at heap-basert overløp og statiske data segmentet overløp ikke kan forebygges ved denne teknikken.

dynamisk Runtime

Forhindre buffer overflow ved å implementere en dynamisk runtime forebygging prosess på systemet ditt. Buffer overflow forhold og risikoer er oppdaget under driften av selve programmet i denne fremgangsmåten, og dermed hindre en overflyt angrep for å forekomme. Ulike runtime prosesser omfatter "kanarifugl" --- som legger linjen "kanarifuglen" til programmet koding --- og kopierer programmets returadresse. Den siste metoden fungerer som en informasjons backup som et middel til å regenerere program funksjonalitet når en overflow angrep har blitt løst.

Trygge Versjoner av funksjoner

Buffer overflow kan også forebygges ved hjelp av en "tryggere" eller mer stabil versjon av et program funksjon. For eksempel funksjoner strncpy og snprintf er sikrere og mer stabil enn de eldre strcpy og sprint språk. Mens du fortsetter å lage nye applikasjoner i programmet, sikre at alternative, sikrere kode funksjoner er brukt gjennom.

Andre eksempler på Ustabile Funksjoner

Unngå "usikker" eller ustabil funksjonalitet helt kan også hindre buffer overflow. Når det er mulig, unngå å bruke følgende funksjoner når du skriver programmet: strcpy (), strcat (), sprintf (), scanf (), sscanf (), fscanf (), vfscanf (), vsprintf, vscanf (), vsscanf () , streadd (), strecpy () og strtrns ().