Mājas lapa » » Kas ir ASLR, un kā tas saglabā jūsu datoru drošu?

    Kas ir ASLR, un kā tas saglabā jūsu datoru drošu?

    Adrese Space Layout Randomization (ASLR) ir drošības metode, ko izmanto operētājsistēmās, ko pirmo reizi ieviesa 2001. gadā. Visu galveno operētājsistēmu (iOS, Android, Windows, MacOS un Linux) pašreizējās versijas nodrošina ASLR aizsardzību. Bet pagājušajā nedēļā ir atrasta jauna metode, kā apiet ASLR. Tātad, ja jums ir jāuztraucas?

    Tiem, kuriem nav zema līmeņa programmēšanas fona, ASLR var būt mulsinoši. Lai to saprastu, vispirms ir jāsaprot virtuālā atmiņa.

    Kas ir virtuālā atmiņa?

    Virtuālā atmiņa ir atmiņas pārvaldības tehnika ar daudzām priekšrocībām, bet tā galvenokārt tika izveidota, lai atvieglotu programmēšanu. Iedomājieties, ka datorā, kurā ir 4 GB RAM, ir atvērtas Google Chrome, Microsoft Word un vairākas citas programmas. Kopumā programmas šajā datorā izmanto daudz vairāk nekā 4 GB RAM. Tomēr ne visas programmas būs aktīvas visu laiku, vai vienlaicīga piekļuve šai RAM.

    Operētājsistēma iezīmē atmiņā esošās programmas lapas. Ja nav pietiekami daudz RAM, lai vienlaicīgi saglabātu visas lapas, lapas, kas visticamāk ir nepieciešamas, tiek glabātas lēnākā (bet plašākā) cietajā diskā. Kad ir nepieciešamas saglabātas lapas, tās pārslēgs atstarpes, kurās pašlaik ir mazāk nepieciešamo lapu. Šis process tiek saukts par peidžeri un aizdod savu nosaukumu lapā pagefile.sys.

    Virtuālā atmiņa ļauj programmām pārvaldīt savu atmiņu, kā arī padara tās drošākas. Programmām nav jāuztraucas par to, kur citas programmas glabā datus, vai cik daudz RAM ir palicis. Viņi var vienkārši pieprasīt operētājsistēmai papildu atmiņu (vai atgriezt neizmantoto atmiņu). Visa programma redz, ka tā ir viena nepārtraukta atmiņas adrešu daļa, kas paredzēta tās ekskluzīvai izmantošanai, ko sauc par virtuālajām adresēm. Programmai nav atļauts aplūkot citas programmas atmiņu.

    Kad programmai ir nepieciešama piekļuve atmiņai, tā operētājsistēmai piešķir virtuālu adresi. Operētājsistēma sazinās ar CPU atmiņas pārvaldības vienību (MMU). MMU pārvērš virtuālās un fiziskās adreses, atgriežot šo informāciju operētājsistēmā. Programma nekādā gadījumā tieši neattiecas uz RAM.

    Kas ir ASLR?

    Adreses vietas izkārtojums Randomizācija (ASLR) galvenokārt tiek izmantota, lai aizsargātu pret bufera pārpildes uzbrukumiem. Bufera pārpildes gadījumā uzbrucēji baro funkciju tik daudz junk datu, kā to var apstrādāt, kam seko ļaunprātīga krava. Lietderīgā slodze pārrakstīs datus, kurus programma plāno piekļūt. Norādījumi, kā pāriet uz citu koda punktu, ir kopēja slodze. Slavenā JailbreakMe metode, piemēram, iOS 4, izmantoja bufera pārpildes uzbrukumu, liekot Apple pievienot ASLR uz iOS 4.3..

    Buferu pārpildes pieprasa, lai uzbrucējs zinātu, kur katra programmas daļa atrodas atmiņā. Parasti tas ir sarežģīts izmēģinājumu un kļūdu process. Pēc tam, kad ir noskaidrots, ka viņiem ir jāatrod kravas un jāatrod piemērota vieta, kur to injicēt. Ja uzbrucējs nezina, kur atrodas viņu mērķa kods, to var būt grūti vai neiespējami izmantot.

    ASLR darbojas kopā ar virtuālās atmiņas pārvaldību, lai izlases veidā atlasītu dažādu programmas daļu atrašanās vietas atmiņā. Katru reizi, kad programma tiek palaista, komponenti (tostarp kaudze, kaudze un bibliotēkas) tiek pārvietoti uz citu adresi virtuālajā atmiņā. Uzbrucēji vairs nevar iemācīties, kur viņu mērķis ir izmēģinājuma un kļūdu dēļ, jo adrese katru reizi būs atšķirīga. Parasti lietojumprogrammas ir jāapkopo ar ASLR atbalstu, bet tas kļūst par noklusējuma iestatījumu, un tas ir nepieciešams arī operētājsistēmā Android 5.0 un jaunākā versijā.

    Tātad, vai ASLR joprojām aizsargā jūs?

    Pagājušajā otrdienā pētnieki no SUNY Binghamton un Kalifornijas Universitātes Riverside iepazīstināja ar dokumentu "Pārlēkt uz ASLR: uzbrukuma filiāles prognozētāji apvedceļa ASLR. Dokumentā ir aprakstīts veids, kā uzbrukt filiāles mērķa buferim (BTB). BTB ir daļa no procesora, kas paātrina, ja paziņojumi tiek prognozēti. Izmantojot autoru metodi, ir iespējams noteikt zināmo filiāles norādījumu atrašanās vietas darbojošajā programmā. Minētais uzbrukums tika veikts Linux datorā ar Intel Haswell procesoru (pirmo reizi tika izlaists 2013. gadā), taču, iespējams, to varētu piemērot jebkurai mūsdienu operētājsistēmai un procesoram..

    Tas nozīmē, ka jums nevajadzētu izmisīgi. Papīrs piedāvāja dažus veidus, kā aparatūras un operētājsistēmu izstrādātāji var mazināt šo apdraudējumu. Jaunākas, smalkgraudainas ASLR metodes prasītu vairāk uzbrucēja piepūles, un entropijas (nejaušības) palielināšana var padarīt pārlēkumu uzbrukumu neiespējamu. Visticamāk, jaunākas operētājsistēmas un procesori būs imūni pret šo uzbrukumu.

    Tātad, kas paliek jums darīt? Pārlēkt apvedceļš ir jauns, un tas vēl nav radīts savvaļā. Kad uzbrucēji to izmanto, trūkums palielinās potenciālo kaitējumu, ko uzbrucējs var izraisīt jūsu ierīcē. Šis piekļuves līmenis nav nepieredzēts; Microsoft un Apple īstenoja tikai ASLR to operētājsistēmās, kas tika izlaistas 2007. gadā un vēlāk. Pat ja šis uzbrukuma stils kļūst parastais, jums nebūs sliktāks stāvoklis nekā jums bija Windows XP dienās.

    Paturiet prātā, ka uzbrucējiem joprojām ir jāsaņem kods jūsu ierīcē, lai izdarītu jebkādu kaitējumu. Šī kļūda nesniedz viņiem nekādus papildu veidus, kā inficēt jūs. Kā vienmēr, jums ir jāievēro drošības paraugprakse. Izmantojiet antivīrusu, apturiet prom no skicīgām tīmekļa vietnēm un programmām, kā arī atjauniniet programmatūru. Sekojot šiem soļiem un saglabājot ļaunprātīgus dalībniekus no sava datora, jūs būsiet tik droši, kā esat kādreiz bijis.

    Attēla kredīts: Steve / Flickr