ASLR (Address-space Layout Randomization) on ROP-hyökkäystä (Return Oriented Programming) vastaan on kehitetty tekniikka.[1] ROP-hyökkäystä käytetään NX-bitin suojauksen kiertämiseen.[1]

ASLR on käyttöjärjestelmän tekniikka, jolla pyritään varmistamaan osoiteavaruuden olevan tuntematon hyökkääjälle.[2] Tekniikka julkaistiin Linuxissa 2005 ja vuonna 2007 macOS:ssä ja Windowsissa.[2] Tekniikka ei korjaa haavoittuvuuksia, eikä seuraa tai raportoi niitä vaan tekee haavoittuvuuksien hyödyntämisestä vaikeampaa hyökkääjälle.[2]

Linux-ytimen KASLR soveltaa tekniikkaa myös ytimen omiin tietorakenteisiin sijoittaen ne ennalta tuntemattomiin paikkoihin.[3][4]

ROP-hyökkäyksiä ovat esimerkiksi ret2libc, ret2gets ja ret2plt.[5] ROP-hyökkäykset ylikirjoittavat funktion paluuosoitteen hyökkääjän hallitsemaan koodiin.[5] Stack Smashing Protection (SSP) on kehitetty havaitsemaan pinon ylikirjoittaminen.[5]

ASLR lisää satunnaisen offset-arvon jokaisen tietokoneohjelman virtuaalimuistiosoitteeseen tehden hyökkääjälle vaikeammaksi ennakoida muistiosoitteen, johon ohjelman halutaan palaavan.[6] Jos paluuosoite on huono se vähentää hyökkäyksen onnistumisen todennäköisyyttä.[6]

Lähteet

muokkaa
  1. a b On the effectiveness of NX, SSP, RenewSSP and ASLR against stack buffer overflows (PDF) hmarco.org. Viitattu 20.9.2020. (englanniksi) 
  2. a b c How ASLR protects Linux systems from buffer overflow attacks networkworld.com. 8.1.2019. Viitattu 24.9.2020. (englanniksi)
  3. Jake Edge: Kernel address space layout randomization lwn.net. 9.10.2013. Viitattu 24.9.2020. (englanniksi) 
  4. 1.7. Kernel address space randomization kernelnewbies.org. Viitattu 24.9.2020. (englanniksi)
  5. a b c Security Technologies: Stack Smashing Protection (StackGuard) access.redhat.com. 20.8.2018. Viitattu 24.9.2020. (englanniksi)
  6. a b ASLR: How Robust is the Randomness? (PDF) cs.ucdavis.edu. Viitattu 24.9.2020. (englanniksi)