ASLR (Address Space Layout Randomization) er en sentral sikkerhetsmekanisme i moderne datamaskiner som gjør det vanskeligere for angripere å utnytte sårbarheter i programvare, fordi minneposisjonene som brukes av både kjørbar kode og data, er vilkårlig valgt og dermed varierer fra gang til gang.
Men nå har forskere ved VUSec i Nederland avdekket en grunnleggende svakhet i mange prosessorer som ikke bare gjør det mulig å omgå ASLR-beskyttelsen ved hjelp av lokalt installert programvare, men også ved hjelp av JavaScript på websider som vises i en nettleser.
I et angrep som forskerne har kalt for ASLR⊕Cache (forkortet AnC), utnyttes måten MMU-er (Memory Management Unit) bruker cache-hierarkiet til prosessoren, til raskt å redusere entropien til datapekere – det vil si antallet vilkårlige bits i adressene – slik at stort sett bare kjente entropibits gjenstår.
Les også: Intel-prosessorer har alvorlig feil i helt sentral sikkerhetsmekanisme
Berører trolig de fleste prosessorer
Angrepene har fungert med alle de 22 ulike prosessorene forskerne har testet det med. Dette inkluderer både x86-64, ARMv7-A and ARMv8-A-baserte prosessorer, de nyeste fra 2015 eller 2016.
Dette betyr at dersom angripere greier å trenge gjennom både nettlesersikkerheten og operativsystemsikkerheten, kan de få full tilgang til å kompromittere systemet, bare ved å få brukeren til åpne en ondsinnet eller infisert webside i nettleseren.
Forskerne har lagd to utgaver av angrepskode. Den ene er C-basert og beregnet for kjøring lokalt på systemet. Det andre er som nevnt JavaScript-basert.
Kildekoden til den C-baserte utgaven er tilgjengelig her. Forskerne har ingen planer om å utgi den JavaScript-basert utgaven, men regner med at forskningsartikkelen de har utgitt vil gjøre det mulig for tilstrekkelig avanserte motstandere å replikere resultatene i løpet av noen uker.
Les også: Utviklere mener antivirus gjør PC-en mer usikker
Varslet i høst
Forskerne varslet allerede i oktober en rekke leverandører av både CPU-er, operativsystemer og nettlesere om funnene, for å gi dem mulighet til å gjøre det vanskeligere å utnytte sårbarhetene.
For CPU-leverandørene er det ingen løsning på kort sikt. Men for nettleser- og operativsystemleverandørene er det mulig å innføre endringer som gjør angrepene langt mindre gjennomførbare. Dette inkluderer å øke antallet entropi-bits.
I alle fall Apple skal nylig ha forsterket WebKit-motoren til Safari-nettleseren mot AnC-angrep. Det er uklart hva de andre leverandørene eventuelt har gjort. Inntil dette er klart, er det sikreste alternativet å deaktivere JavaScript i nettleseren. Men slik deaktivering vil ofte innebære store konsekvenser for brukeropplevelsen, siden mange nettsteder avhenger av JavaScript for å fungere. Derfor kan det være fornuftig å benytte en løsning hvor man kan opprette en hviteliste med «trygge» nettsteder.
En grundigere innføring i hvordan ASLR kan omgås gjennom ASLR⊕Cache-angrepet, finnes på denne siden.
Tidligere oppdaget av VUSec: Ondsinnede kan få root-aksess i Android ved hjelp av «bit-flipping»