ASLR

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 31. joulukuuta 2018 tarkistetusta versiosta . tarkastukset vaativat 13 muokkausta .

ASLR ( osoitetilan layout randomization - "  osoiteavaruuden layout randomization  ") on käyttöjärjestelmissä käytetty tekniikka , joka muuttaa satunnaisesti tärkeiden tietorakenteiden prosessin sijaintia osoiteavaruudessa , nimittäin suoritettavia tiedostokuvia , ladattavia kirjastoja , kasoja ja pinoa . .

ASLR on suunniteltu vaikeuttamaan useiden haavoittuvuuksien hyödyntämistä . Jos hyökkääjä esimerkiksi saa mahdollisuuden siirtää hallintaa mielivaltaiseen osoitteeseen käyttämällä puskurin ylivuotoa tai muuta menetelmää, hänen on arvattava, mihin osoitteeseen pino, kasa tai muut tietorakenteet voidaan sijoittaa shellcode -koodiin . Samanlaisia ​​ongelmia ilmenee paluu -libc-hyökkäyksessä: hyökkääjä ei tiedä osoitetta, johon kirjasto on ladattu. Yllä olevissa esimerkeissä tietyt osoitteet piilotetaan hyökkääjältä, ja jos oikeaa osoitetta ei voida arvata, sovellus todennäköisesti kaatuu, mikä estää hyökkääjältä mahdollisuuden hyökätä uudelleen ja kiinnittää järjestelmänvalvojan huomion .

Toteutukset

OpenBSD

OpenBSD - kehittäjät olivat ensimmäisten joukossa, jotka ottivat käyttöön ASLR:n. ASLR on oletuksena käytössä.

Linux

Linux - ytimessä on ollut yksinkertainen ASLR-versio vuodesta 2005 (versiosta 2.6.12 lähtien). Monimutkaisempia ja täydellisempiä ASLR-versioita tarjotaan korjaustiedostoina ( PaX , ExecShield jne.). Jakeluissa, joiden nimissä on sana "kovettu", sekä Ubuntu -jakelun nykyaikaisissa versioissa kovat versiot ovat oletusarvoisesti käytössä.

Jotta ASLR toimisi (suorittavien tiedostojen sijoittamiseksi muistiin satunnaisiin osoitteisiin), suoritettavat tiedostot on käännettävä sijainnista riippumattomassa suoritustilassa (eräänlainen paikasta riippumaton koodi suoritettaville tiedostoille).

Microsoft Windows

Windowsissa ASLR:ää on tuettu Windows Vistasta (2007) [1] lähtien suoritettaville tiedostoille ja kirjastoille , jotka on rakennettu erityisillä lipuilla.

ASLR on tuettu myös uudemmissa Windowsin versioissa , kuten Windows Server 2008 , Windows 7 , Windows Server 2008 R2 , Windows 8 , Windows 8.1 , Windows 10 .

ASLR:ää ei käytetä sovelluksissa, jotka on rakennettu ilman erityisiä lippuja, ja kun niitä käytetään aiempien Windows-versioiden yhteensopivuustilassa.

Windows XP :ssä ja Windows Server 2003 :ssa ASLR voidaan ottaa käyttöön missä tahansa valitussa sovelluksessa käyttämällä Microsoft EMET [2] (Enhanced Mitigation Experience Toolkit) -työkalua.

Mac OS X

Mac OS X 10.5 Leopardissa (2007) lisättiin jonkin verran satunnaisuutta kirjaston lataamiseen [3] . OS X 10.8 Mountain Lion (2012) -käyttöjärjestelmässä ASLR on osa järjestelmän ydintä [4] .

iOS

iOS on käyttänyt ASLR-tekniikkaa versiosta 4.3 lähtien [5] . Ytimelle, käytetty iOS 6:sta lähtien [6] .

ASLR:n vaikutus virtuaalimuistiin

ASLR on kompromissi lisääntyneen turvallisuuden ja rajoitetun käytettävissä olevan 24-bittisen, 31-bittisen ja 64-bittisen yksityisen tallennustilan välillä. 24-bittisen ja 31-bittisen virtuaalisen tallennustilan käyttöönotto pienentää käytettävissä olevan yksityisen tallennustilan 63 sivuun ja 255 sivuun. Pyydetyn työalueen koko on silti täytettävä pienennetystä yksityisestä alueesta, jotta työ voidaan suorittaa. Työt, joiden laajuuden kokoa ei voida täyttää, johtavat hylkäämisvirheeseen 822. Jos työn pyydetty laajuuden koko täyttää, on mahdollista, että pienentynyt yksityisen tallennustilan koko estää työn suorittamisen loppuun, mikä johtaa ABEND-virheeseen 878.

Yksi tapa määrittää, eivätkö työt voi suorittaa 24-bittisen tai 31-bittisen yksityisen tallennustilan kokorajoituksen kanssa, joka tapahtuu, kun ASLR on käytössä, on määrittää CSA-parametrille suurempi arvo parmlibissa. Sekä 24-bittisen että 31-bittisen CSA-koon kasvattaminen 1 miljoonalla pienentää tehokkaasti 24-bittisen ja 31-bittisen yksityisen tallennustilan kokoa 1 miljoonalla, mikä on enemmän kuin ASLR:n maksimivähennys [7] .

Haitat

ASLR:n käyttämiseksi suoritettavat tiedostot on rakennettava erityisillä lipuilla. Tämän seurauksena koodissa ei käytetä pysyviä osoitteita, mutta samalla:

Lisäksi suojaus voidaan ohittaa muistin ehtymisen [8] tai Heap Spray -menetelmien [9] avulla .

Muistiinpanot

  1. Windowsin ISV-ohjelmiston suojaustoiminnot . msdn.microsoft.com. Haettu 10. huhtikuuta 2012. Arkistoitu alkuperäisestä 18. huhtikuuta 2012.
  2. Windowsin sisäosat: Sisältää Windows Server 2008:n ja Windows Vistan, Fifth Edition (PRO-Developer) ISBN 978-0-7356-2530-3
  3. Muistin satunnaistaminen (ASLR) tulossa Mac OS X Leopard | ZDNet . Haettu 5. tammikuuta 2018. Arkistoitu alkuperäisestä 15. elokuuta 2020.
  4. OS X Mountain Lion Core Technologies Overview (kesäkuu 2012). Haettu 25. heinäkuuta 2012. Arkistoitu alkuperäisestä 10. heinäkuuta 2012.
  5. Pwn2Own päivä 2: iPhone, BlackBerry lyöty; Chrome, Firefox no-show . - "iOS 4.3 ottaa käyttöön Address Space Layout Randomization (ASLR)". Haettu 18. syyskuuta 2014. Arkistoitu alkuperäisestä 27. helmikuuta 2017.
  6. Yeongjin Jangin kotisivu . Haettu 5. tammikuuta 2018. Arkistoitu alkuperäisestä 21. syyskuuta 2020.
  7.  Osoitetilan asettelun satunnaistaminen  . www.ibm.com . Haettu: 12.9.2022.
  8. ASLR-suojauksen yksinkertainen ohitus Windows 7/8:ssa . Haettu 2. maaliskuuta 2015. Arkistoitu alkuperäisestä 19. huhtikuuta 2018.
  9. Arkistoitu kopio . Haettu 13. marraskuuta 2016. Arkistoitu alkuperäisestä 20. huhtikuuta 2018.

Kirjallisuus

Linkit