? Datasikkerhet blir esoteriske når håndtere sikkerhetsproblemer på hardware nivå . Selv den grunnleggende gjennomføring struktur av datamaskiner har hull som hackere kan utnytte. Ingeniører må stadig utvikle teknikker for å omgå hackerangrep . For å adressere minne manipulasjon utnytter som bufferoverløpene , ingeniører utviklet stack eller adresse plass layout , randomisering . Denne teknikken gjør tradisjonelle og repeterbare angrep mindre effektive , og beskytter datamaskiner mot grunnleggende sikkerhetshull . The Call Stack
generiske data struktur definert som en " stack " representerer en grunnleggende liste over elementer der hver ekstra element føyer til slutten av listen , og hvert fjernet element kommer fra slutten av listen i en siste - inn, først ut ordre . Samtalen stabel av et kjørende program fungerer mye på samme måte . I stedet for enkle dataelementer , men organiserer samtalen stabelen referanser i minnet til utførelse av funksjoner i programmet .
Bufferoverløpene og Memory Sårbarhet
En av ulempene ved hjelp av stabelen datastruktur for å organisere programmer er relatert til hvordan minnet er organisert. Mens hver løpende funksjon i et program sitter i Kallstakken , de ofte sitte side -ved-side i fysisk minne . Følgelig, hvis en angriper overskridelser en variabel buffer ved å gi for mye data for en datastruktur å håndtere, for eksempel, så den ekstra informasjonen kan overskrive data i tilstøtende fysiske minneplasser , påvirker flyten av programmet kjøres .
stack randomisering
som et sikkerhetstiltak har ingeniørene utviklet et minne tildeling teknikk kjent som stakk randomisering , eller adresse plass layout randomisering . Vanligvis er minnebruken sekvensielt under kjøring av programmet . Når et program starter, er det tildelt den neste tilgjengelige minnet plass i minnet . Ved bruk av stabelen randomisering , avgjør datamaskinen en pseudo- tilfeldig sted basert på en forhåndsbestemt forskyvning . Rammen tips om stabelen er lagt inn av dette utlignet også. Forskyvningen fastsettes ved oppstart av operativsystemet .
Stack Randomisering og sikkerhet
grunn av stabelen randomisering , betyr programdata ikke ligge helt fortløpende i systemets minne . Dette utgjør et problem for hackere som prøver å bruke et angrep som en buffer overkjørt . Mens en buffer overkjørt kan oppstå effektene kunne ikke være forhåndsbestemt . Før stack randomisering , hvis en hacker visste hvor mye data å bruke i en buffer overkjørt , kunne han bruke samme utnytte på samme program , flere ganger . Med randomisering , er ingen buffer angrep garantert suksess mellom hver kjørende forekomst av et program , selv på samme datamaskin .