Kas yra ASLR ir kaip ji saugo jūsų kompiuterį?

Turinys:

Kas yra ASLR ir kaip ji saugo jūsų kompiuterį?
Kas yra ASLR ir kaip ji saugo jūsų kompiuterį?

Video: Kas yra ASLR ir kaip ji saugo jūsų kompiuterį?

Video: Kas yra ASLR ir kaip ji saugo jūsų kompiuterį?
Video: How to Hide Control Panel Items in Windows 10 - YouTube 2024, Balandis
Anonim
Adresų erdvinės išdėstymo randomizavimas (ASLR) - apsaugos sistema, naudojama operacinėse sistemose, kuri pirmą kartą buvo įdiegta 2001 m. Dabartinės visų pagrindinių operacinių sistemų ("iOS", "Android", "Windows", "MacOS" ir "Linux") versijos turi ASLR apsaugą. Tačiau per praeitą savaitę buvo rastas naujas ASLR apeigos būdas. Taigi, ar turėtumėte nerimauti?
Adresų erdvinės išdėstymo randomizavimas (ASLR) - apsaugos sistema, naudojama operacinėse sistemose, kuri pirmą kartą buvo įdiegta 2001 m. Dabartinės visų pagrindinių operacinių sistemų ("iOS", "Android", "Windows", "MacOS" ir "Linux") versijos turi ASLR apsaugą. Tačiau per praeitą savaitę buvo rastas naujas ASLR apeigos būdas. Taigi, ar turėtumėte nerimauti?

Tiems, kurie neturi žemo lygio programavimo fono, ASLR gali būti paini. Norėdami tai suprasti, pirmiausia turite suprasti virtualųjį atmintį.

Kas yra virtualioji atmintis?

Virtuali atmintis yra atminties valdymo metodas, turintis daug naudos, bet pirmiausia sukurtas, kad programavimas būtų lengvesnis. Įsivaizduokite, kad turite "Google Chrome", "Microsoft Word" ir kelias kitas programas, atidarytas kompiuteryje su 4 GB atminties. Apskritai, šiame kompiuteryje naudojamos programos naudoja daug daugiau nei 4 GB atminties. Tačiau ne visos programos bus aktyvios bet kuriuo metu arba reikės vienu metu pasiekti tą RAM.

Operacinė sistema paskirsto atminties dalis programoms, kurioms vadinamos puslapiai. Jei nepakanka RAM, kad visi puslapiai būtų laikomi vienu metu, puslapiai, kurių mažiausiai tikėtina, bus laikomi lėčiau (bet erdvesniame) kietajame diske. Kai reikia saugomų puslapių, jie pakeis tarpus, kuriuose šiuo metu yra RAM mažiau reikalingų puslapių. Šis procesas vadinamas peidžeriu ir pateikia jo pavadinimą į failą pagefile.sys sistemoje "Windows".

Virtuali atmintis palengvina programų valdymą savo atmintyje, taip pat daro jas saugesnes. Programoms nereikia nerimauti, kur kitos programos saugo duomenis, ar kiek RAM lieka. Jie gali paprašyti operacinės sistemos papildomos atminties (arba grąžinti nepanaudotą atmintį), jei reikia. Visa programa mato yra vienintelė nuolatinė atminties adresų dalis, skirta jos išskirtiniam naudojimui, vadinama virtualiais adresais. Programoje neleidžiama pažvelgti į kitos programos atmintį.

Kai programai reikia prieigos prie atminties, ji suteikia operacinei sistemai virtualųjį adresą. Operacinė sistema palaiko centrinio procesoriaus atminties valdymo bloką (MMU). MMU verčia tarp virtualių ir fizinių adresų, grąžindamas tą informaciją operacinei sistemai. Jokiu būdu programa tiesiogiai neveikia su RAM.

Kas yra ASLR?

Adresų erdvės išdėstymo randomizavimas (ASLR) pirmiausia naudojamas apsaugoti nuo buferinių perpildymo išpuolių. Buferio perpildyme užpuolikai maitina tiek daug nepageidaujamų duomenų, kiek gali elgtis, o vėliau kenksminga naudingoji apkrova. Naudingoji apkrova perrašys duomenis, kuriuos programa ketina pasiekti. Instrukcijos pereiti prie kito kodo taško yra įprasta naudingoji apkrova. Pavyzdžiui, garsusis "JailbreakMe" "jailbreaking" "iOS 4" metodas naudojo buferio perpildymo ataką, ragindamas "Apple" pridėti ASLR prie "iOS 4.3".

Buferio perpildymas reikalauja, kad užpuolikas žinotų, kur kiekviena programos dalis yra atminties atmintyje. Paprastai tai yra sunkus bandymų ir klaidų procesas. Nustačiusi, kad jie turi sukaupti naudingą krovinį ir rasti tinkamą vietą, į kurią ji įšvirkščiama. Jei užpuolikas nežino, kur yra jų paskirties kodas, gali būti sunku arba neįmanoma jį išnaudoti.

ASLR veikia kartu su virtualiosios atminties valdymu, kad atsitiktinai suskirstytų įvairias programos dalis atminties vietoje. Kiekvieną kartą, kai programa paleidžiama, komponentai (įskaitant kaminą, krūvą ir bibliotekas) perkeliami į kitą virtualios atminties adresą. Užpuolikai nebegali mokytis, kur jų tikslas yra per bandymus ir klaidas, nes kiekvieną kartą adresas bus skirtingas. Paprastai programos turi būti sudaromos su ASLR palaikymu, tačiau tai tampa numatytuoju ir netgi reikalinga 5.0 ir naujesnėse versijose.

Ar ASLR vis tiek jus apsaugo?

Praėjusį antradienį mokslininkai iš "SUNY Binghamton" ir Kalifornijos universiteto "Riverside" pristatė straipsnį "Peršokti per ASLR: atakuojančių filialų prognozės, norėdami apeiti ASLR". Šiame dokumente aprašomas būdas atakuoti filialo tikslinę buferį (BTB). BTB yra procesoriaus dalis, kuri paspartina, kai teiginiai prognozuojami. Naudojant autorių metodą, galima nustatyti žinomų filialų instrukcijų vietoves veikiančioje programoje. Aptariama ataka buvo atlikta "Linux" kompiuteryje su "Intel Haswell" procesoriumi (pirmą kartą išleista 2013 m.), Bet gali būti taikomas bet kuriai šiuolaikinei operacinei sistemai ir procesoriams.

Tai sakydama, jūs neturėtumėte būti beviltiška. Straipsnyje siūloma keletas būdų, kaip aparatūros ir operacinės sistemos kūrėjai gali sušvelninti šią grėsmę. Naujausiems smulkiagrūdžiams ASLR technologijoms reikės daugiau pastangų iš užpuolikojo, o padidėjusi entropijos (atsitiktinumo) suma gali padaryti "Jump Over" užpuolimą neįgyvendinamu. Labiausiai tikėtina, kad naujesnės operacinės sistemos ir procesoriai bus apsaugoti nuo šios atakos.

Taigi, kas paliekama tu daryti? Peršokti per apvažiavimą yra nauja ir dar nėra pastebėta laukinėje. Kai priepuoliai to išnaudoja, trūkumas padidins galimą žalą, kurią užpuolikas gali sukelti jūsų įrenginyje. Šis prieigos lygis nėra precedento; "Microsoft" ir "Apple" tik įdiegė ASLR savo operacinėse sistemose, išleistas 2007 m. Ir vėliau. Net jei šis ataka taptų įprasta, tu nebūsi blogesnė nei tu buvai dar "Windows XP" dienomis.

Turėkite omenyje, kad užpuolikai vis tiek turi gauti savo kodą savo įrenginyje, kad padarytumėte kokią nors žalą. Šis trūkumas nesuteikia joms papildomų būdų užkrėsti jus.Kaip visada, turėtumėte laikytis geriausios praktikos. Naudokite antivirusinę priemonę, nepasiduokite nuošaliose svetainėse ir programose ir atnaujinkite savo programinę įrangą. Vykdydami šiuos veiksmus ir laikydami kenkėjiškus aktorius iš savo kompiuterio, būsite tokie pat saugūs kaip ir jūs kada nors buvote.

Vaizdo kreditas: Steve / Flickr

Rekomenduojamas: