? Datasäkerhet blir esoteriska när det handlar om säkerhetsproblem på en hårdvara nivå . Även den grundläggande utförande strukturen av datorer har hål som hackare kan utnyttja . Ingenjörer måste ständigt utveckla tekniker för att kringgå hackerattacker . För att hantera minnet manipulation utnyttjar såsom buffertöverskridningar , ingenjörer utvecklat stack eller adress space layout , randomisering . Denna teknik gör traditionella och repeterbara attacker mindre effektiva , och skyddar datorer från grundläggande säkerhetsbrister . Anropsstacken
generiska datastruktur definieras som en " stack " representerar en grundläggande lista där varje tillagda produkter läggs till i slutet av listan , och varje borttagna posten kommer från slutet av listan i en sist-in , först - ut ordning . Samtalet bunt ett pågående program fungerar ungefär på samma sätt . I stället för enkla dataposter dock organiserar anropsstacken hänvisningar i minne för att utföra funktioner i programmet .
Buffertöverskridningar och Memory sårbarhet
En av nackdelarna med hjälp av den struktur stacken uppgifter att organisera program är relaterad till hur minnet är organiserat . Medan var och en löpande funktion i ett Programmet ligger i anropsstacken , sitter de ofta sida vid sida i det fysiska minnet . Följaktligen , om en angripare överskridanden en variabel buffert genom att ge för mycket data för en datastruktur för att hantera , till exempel, då den extra informationen kan skriva över data i intilliggande fysiska minnesplatser , som påverkar flödet av programmets genomförande .
stack randomization
att hantera säkerhetsfrågor , utvecklade ingenjörerna en teknik minnesallokering kallas stack randomisering eller adress utrymme layout randomisering . Typiskt är minnet tilldelas sekventiellt under programkörning . När ett program startas , fördelas det nästa tillgängliga minnesutrymmet i minnet . När du använder stack randomisering , bestämmer datorn en pseudo - slumpmässig plats baserat på en förskjutning förutbestämt . Ramen pekare på stacken placeras av denna förskjutning också. Förskjutningen bestäms vid uppstart av operativsystemet .
Stack randomisering och säkerhet
grund av stapeln randomisering , är bosatt programdata inte helt varandra i systemets minne . Detta utgör ett problem för hackare som försöker att använda en attack såsom en buffert överskridandet. Medan en buffertöverskridning kan inträffa , kan effekterna inte förutbestämt . Innan stack randomisering , om en hacker visste hur mycket data som ska användas i en buffert genom kunde han använda samma bragd på samma program , flera gånger . Med randomisering , ingen buffert attack garanterad succé mellan varje instans av ett program , även på samma dator .