Mis on ASLR ja kuidas see teie arvuti turvaliseks jääb?
Aadressiruumi paigutus Randomiseerimine (ASLR) on operatsioonisüsteemides kasutatav turvameetod, mis võeti esmakordselt kasutusele 2001. aastal. Kõigi suuremate operatsioonisüsteemide (iOS, Android, Windows, MacOS ja Linux) praegused versioonid sisaldavad ASLRi kaitset. Kuid eelmisel nädalal on leitud uus meetod ASLRi mööda hiilimiseks. Niisiis, kas te peaksite muretsema?
Neile, kellel puudub madala taseme programmeerimise taust, võib ASLR olla segane. Selle mõistmiseks peate kõigepealt mõistma virtuaalset mälu.
Mis on virtuaalne mälu?
Virtuaalne mälu on mälu haldamise tehnika, millel on palju eeliseid, kuid see loodi peamiselt programmeerimise lihtsustamiseks. Kujutage ette, et teil on Google Chrome, Microsoft Word ja mitmed teised programmid, mis on arvutis avatud 4 GB RAM-iga. Tervikuna kasutavad selle arvuti programmid palju rohkem kui 4 GB RAM-i. Kuid kõik programmid ei ole alati aktiivsed ega vaja samaaegset juurdepääsu sellele RAM-ile.
Operatsioonisüsteem eraldab mälu tükkidele, mida nimetatakse lehekülgi. Kui kõigi lehtede korraga salvestamiseks ei ole piisavalt RAM-i, salvestatakse kõige vähem tõenäoliselt vajalikud leheküljed aeglasemale (kuid avaramale) kõvakettale. Kui salvestatud lehekülgi on vaja, lülitatakse need tühikud vähem vajalike lehekülgedega RAM-is. Seda protsessi nimetatakse otsinguks ja annab oma nime lehele pagefile.sys Windowsis.
Virtuaalne mälu lihtsustab programmide enda mälu haldamist ja muudab need turvalisemaks. Programmid ei pea muretsema, kus teised programmid andmeid salvestavad või kui palju RAM on jäänud. Nad võivad lihtsalt küsida operatsioonisüsteemilt täiendavat mälu (või kasutamata mälu), kui see on vajalik. Kogu programm näeb ainsa pideva mälu aadressi, mida nimetatakse virtuaalseks aadressiks. Programmil ei ole lubatud vaadata teise programmi mälu.
Kui programmil on juurdepääs mälule, annab see operatsioonisüsteemile virtuaalse aadressi. Operatsioonisüsteem võtab ühendust CPU mälu haldamise seadmega (MMU). MMU teisendab virtuaalsete ja füüsiliste aadresside vahel, tagades selle teabe operatsioonisüsteemile. Mingil hetkel ei toimu programm otseselt RAM-iga.
Mis on ASLR?
Aadressiruumi paigutus Randomiseerimist (ASLR) kasutatakse peamiselt kaitseks puhvri ülevoolu rünnakute eest. Puhvri ülevoolus söödavad ründajad funktsiooni nii palju rämpsandmeid, mida ta suudab käsitseda, millele järgneb pahatahtlik koormus. Kasulik koormus kirjutab üle andmed, mida programm kavatseb juurde pääseda. Juhised teise koodipunkti hüpata- miseks on tavaline koormus. Näiteks kuulus JailbreakMe meetod iOS 4-i jailbreaking'i puhul kasutas puhvri ülevoolu rünnakut, mis kutsus Apple'it lisama ASLR iOS 4.3-le.
Puhvri ülevool nõuab ründajalt teada, kus iga programmi osa asub mälus. Selle väljakujunemine on tavaliselt keeruline katse- ja veaprotsess. Pärast selle kindlaksmääramist peavad nad kandma kasulikku koormust ja leidma sobiva koha selle süstimiseks. Kui ründaja ei tea, kus nende sihtkood asub, võib selle kasutamine olla raske või võimatu.
ASLR töötab virtuaalse mälu haldamise kõrval, et randomiseerida mälus olevate programmi erinevate osade asukohad. Iga kord, kui programmi käivitatakse, teisaldatakse komponendid (sh virn, hunnik ja raamatukogud) teisele aadressile virtuaalses mälus. Ründajad ei saa enam õppida, kus nende sihtmärk on läbi katse ja eksituse, sest aadress on iga kord erinev. Üldiselt tuleb rakendused kompileerida ASLR-toega, kuid see muutub vaikimisi ja seda nõutakse isegi Android 5.0-s ja hilisemates versioonides.
Nii kas ASLR kaitseb teid endiselt?
Eelmisel teisipäeval esitlesid SUNY Binghamtoni ja California ülikooli Riverside'i teadlased paberit Jump Over ASLR: ründava haru prognoosijad ASLRi möödasõitmiseks. Paber kirjeldab üksikasjalikult, kuidas rünnata filiaali sihtpuhvrit (BTB). BTB on protsessori osa, mis kiirendab, kui avaldused ennustavad tulemust. Autorite meetodit kasutades on võimalik teadaolevate harujuhiste asukohad määrata jooksvas programmis. Kõnealune rünnak tehti Linuxi masinaga, millel oli Intel Haswell-protsessor (esmakordselt avaldati 2013. aastal), kuid seda võidakse tõenäoliselt rakendada mis tahes kaasaegsele operatsioonisüsteemile ja protsessorile..
See tähendab, et sa ei tohiks tingimata meeleheidet. Paber pakkus mõningaid viise, kuidas riistvara ja operatsioonisüsteemide arendajad seda ohtu leevendavad. Uuemad, peeneteralised ASLR-tehnikad nõuaksid ründajalt rohkem pingutusi ja entroopia (juhuslikkuse) suurendamine võib muuta hüpata rünnaku võimatuks. Tõenäoliselt on uuemad operatsioonisüsteemid ja protsessorid selle rünnaku suhtes immuunsed.
Mis siis jääb sina tegema? Jump Over bypass on uus ja seda pole veel looduses märgatud. Kui ründajad seda kasutavad, suurendab viga potentsiaalset kahju, mida ründaja teie seadmele võib põhjustada. See ligipääs ei ole enneolematu; Microsoft ja Apple rakendasid ASLRi ainult oma operatsioonisüsteemides, mis ilmusid 2007. aastal ja hiljem. Isegi kui see rünnaku stiil muutub tavaliseks, siis ei ole te halvem, kui sa olid Windows XP päevil.
Pidage meeles, et ründajad peavad endiselt oma seadmesse oma koodi tegema, et kahju teha. See viga ei anna neile mingeid täiendavaid viise, kuidas teid nakatada. Nagu alati, peaksite järgima turvalisuse parimaid tavasid. Kasutage viirusetõrjet, eemale visandlikest veebisaitidest ja programmidest ning hoidke oma tarkvara ajakohasena. Järgides neid samme ja hoides pahatahtlikke osalejaid arvutist välja, olete nii turvaline kui olete kunagi olnud.
Pildi krediit: Steve / Flickr