If-Koubou

Mikä on ASLR ja miten se pitää tietokoneesi turvallisena?

Mikä on ASLR ja miten se pitää tietokoneesi turvallisena? (Miten)

Osoitekokoonpanon satunnaistoisto (ASLR) on käyttöjärjestelmissä käytetty turvatekniikka, joka otettiin ensimmäisen kerran käyttöön vuonna 2001. Kaikkien tärkeimpien käyttöjärjestelmien (iOS, Android, Windows, macOS ja Linux) nykyiset versiot sisältävät ASLR-suojauksen. Mutta viime viikolla on löydetty uusi menetelmä ASLR: n ohittamiseksi. Joten, sinun pitäisi olla huolissasi?

Niille, joilla ei ole matalan tason ohjelmointitausta, ASLR voi olla hämmentävä. Ymmärtääksesi sen, sinun on ensin ymmärrettävä virtuaalimuisti.

Mikä on virtuaalimuistia?

Virtual Memory on muistinhallintatekniikka, jolla on monia etuja, mutta se luotiin ensisijaisesti ohjelmoinnin helpottamiseksi. Kuvittele, että sinulla on Google Chrome, Microsoft Word ja useat muut ohjelmat, jotka on avattu tietokoneessa, jossa on 4 Gt RAM-muistia. Kokonaisuudessaan tämän tietokoneen ohjelmat käyttävät paljon enemmän kuin 4 Gt RAM-muistia. Kaikki ohjelmat eivät kuitenkaan ole aktiivisia kaikkina aikoina tai ne tarvitsevat samanaikaista pääsyä kyseiseen RAM-muistioon.

Käyttöjärjestelmä jakaa muistin palaset soitettuihin ohjelmiin sivut. Jos ei ole tarpeeksi RAM-muistia tallentaaksesi kaikki sivut kerralla, vähiten todennäköiset sivut tallennetaan hitaammalle (mutta tilavammalle) kiintolevylle. Kun tallennetut sivut ovat tarpeen, ne vaihtavat tiloja, joissa on vähemmän tarpeellisia sivuja RAM-muistissa. Tätä prosessia kutsutaan sivutunnukseksi ja anna sen nimi sivupohjallesi.sys-tiedostona Windowsissa.

Virtuaalimuisti helpottaa ohjelmien hallintaa omaa muistiaan ja tekee niistä myös turvallisempia. Ohjelmien ei tarvitse huolehtia siitä, missä muut ohjelmat tallentavat tietoja tai kuinka paljon RAM-muistia on jäljellä. He voivat vain kysyä käyttöjärjestelmästä lisää muistia (tai palauttaa käyttämättömät muistit) tarpeen mukaan. Kaikki ohjelmat näkee on yksi ainoa jatkuvan muistin osoitteen yksinomaiseen käyttöön, nimeltään virtuaaliset osoitteet. Ohjelmaa ei saa tarkastella toista ohjelmaa muistia.

Kun ohjelma tarvitsee käyttää muistia, se antaa käyttöjärjestelmälle virtuaalisen osoitteen. Käyttöjärjestelmä on yhteydessä CPU: n muistinhallintayksikköön (MMU). MMU kääntää virtuaalisten ja fyysisten osoitteiden välillä palauttaen nämä tiedot käyttöjärjestelmään. Ohjelmisto ei missään vaiheessa toimi suoraan RAM-muistin kanssa.

Mikä on ASLR?

Osoitintilan asettelun satunnaistamista (ASLR) käytetään ensisijaisesti suojaamaan puskurin ylivuoto-hyökkäyksiä vastaan. Puskurin ylivuodossa hyökkääjät syöttävät toiminnon niin paljon roskapostitietoja, kuin se voi käsitellä, ja sen seurauksena on haitallinen hyötykuorma. Hyötykuorma korvaa tiedot, joita ohjelma aikoo käyttää. Ohjeet siirtyä toiseen pisteeseen ovat yhteinen hyötykuorma. Kuuluisa JailbreakMe-menetelmä, esimerkiksi iOS 4: n, käytti puskurin ylivuoto-hyökkäystä ja kehotti Applea lisäämään ASLR: n iOS 4.3: een.

Puskurin ylivuotot edellyttävät, että hyökkääjä tietää, mistä jokaisen ohjelman osa sijaitsee muistissa. Tämän ilmaiseminen on yleensä vaikea oikeudenkäynti- ja virheprosessi. Sen määrittämisen jälkeen niiden on kuljettava hyötykuorma ja löydettävä sopiva paikka pistää se. Jos hyökkääjä ei tiedä missä kohdekoodi sijaitsee, voi olla vaikeaa tai mahdotonta hyödyntää sitä.

ASLR toimii virtuaalimuistinhallinnan rinnalla satunnaistamaan ohjelman eri osien paikkoja muistiin. Joka kerta kun ohjelma ajetaan, komponentit (mukaan lukien pinot, kasat ja kirjastot) siirretään eri osoitteeseen virtuaalimuistiin. Hyökkääjät eivät enää voi oppia, jos heidän tavoitteensa ovat kokeilun ja virheen kautta, sillä osoite on aina erilainen. Yleensä sovellukset on koottava ASLR-tuki, mutta tämä on tulossa oletusarvo, ja sitä tarvitaan jopa Android 5.0: llä ja uudemmilla.

Joten ASLR suojaa sinua edelleen?

Viime tiistaina SUNY Binghamtonin ja Kalifornian yliopiston Riverside-tutkijat esittivät paperin nimeltään Jump Over ASLR: Attacking Branch Predictors bypass ASLR. Paperissa kuvataan tapaa hyökätä Branch Target Puskurilla (BTB). BTB on osa prosessoria, joka nopeuttaa, jos lausunnot ennustavat tulosta. Kirjoittajamenetelmän avulla on mahdollista määrittää tunnettujen haaroitusohjeiden sijainnit käynnissä olevassa ohjelmassa. Kyseinen hyökkäys tehtiin Linux-koneella Intel Haswell -prosessorilla (julkaistiin ensimmäisen kerran vuonna 2013), mutta sitä voitaisiin todennäköisesti soveltaa mihin tahansa moderniin käyttöjärjestelmään ja prosessoriin.

Se sanoi, sinun ei pitäisi välttämättä epätoivoa. Paperissa tarjoutui muutamia tapoja, joilla laitteisto- ja käyttöjärjestelmän kehittäjät voivat lievittää tätä uhkaa. Uudemmat, hienojakoiset ASLR-tekniikat vaatisivat enemmän ponnistuksia hyökkääjältä ja lisäämällä entropian määrää (satunnaisuus) voi tehdä hypätä hyökkäyksen toteutumattomaksi. Todennäköisesti uudemmat käyttöjärjestelmät ja prosessorit ovat immuuneja tähän hyökkäykseen.

Joten mitä on jäljellä sinä tehdä? Jump Over ohitus on uusi, eikä sitä ole vielä havaittu luonnossa. Kun hyökkääjät hyödyntävät sitä, virhe saattaa lisätä mahdollisia vahinkoja, joita hyökkääjä voi aiheuttaa laitteellesi. Tämä pääsyaste ei ole ennennäkemätön; Microsoft ja Apple asensivat ASLR: n vain niiden käyttöjärjestelmissä, jotka julkaistiin 2007 ja myöhemmin. Vaikka tämä tyyli hyökkäys yleistyi, et ole pahempi kuin olit takaisin Windows XP: n päivinä.

Muista, että hyökkääjät joutuvat edelleen saamaan koodin laitteellasi tekemään haittaa. Tämä virhe ei anna heille mitään muita tapoja tartuttaa sinua. Kuten aina, sinun on noudatettava parhaita käytäntöjä. Käytä virustentorjuntaa, pysy kaukana sketchy-sivustoista ja ohjelmista ja pidä ohjelmistasi ajan tasalla. Seuraamalla näitä ohjeita ja pitämällä haitallisia toimijoita pois tietokoneestasi, olet yhtä turvallinen kuin koskaan.

Kuva: Steve / Flickr