En anden sårbarhed er blevet identificeret i AMD-processorer, der tillader Meltdown-angreb

Et team af forskere fra det tekniske universitet i Graz (Østrig) og Helmholtz Center for Informationssikkerhed (CISPA) har afsløret information om en sårbarhed (CVE-2021-26318) i alle AMD-processorer, der gør det muligt at udføre Meltdown-klasse sidekanalangreb (oprindeligt blev det antaget, at AMD-processorer ikke er påvirket af Meltdown-sårbarheden). Rent praktisk kan angrebet bruges til at etablere hemmelige kommunikationskanaler, overvåge aktivitet i kernen eller indhente information om adresser i kernehukommelsen for at omgå KASLR-beskyttelse, mens sårbarheder i kernen udnyttes.

AMD anser det for uhensigtsmæssigt at træffe særlige foranstaltninger for at blokere problemet, da sårbarheden, ligesom et lignende angreb opdaget i august, er af ringe nytte under virkelige forhold, er begrænset af de nuværende grænser for processens adresserum og kræver tilstedeværelsen af ​​visse færdige sekvenser af instruktioner (gadgets) i kernen. For at demonstrere angrebet indlæste forskerne deres eget kernemodul med en kunstigt tilføjet gadget. Under virkelige forhold kan angribere f.eks. bruge regelmæssigt dukker sårbarheder op i eBPF-undersystemet til at erstatte de nødvendige sekvenser.

For at beskytte mod denne nye type angreb anbefalede AMD at bruge sikre kodningsteknikker, der hjælper med at blokere Meltdown-angreb, såsom brug af LFENCE-instruktioner. Forskerne, der identificerede problemet, anbefaler at aktivere strengere hukommelsessidetabelisolering (KPTI), som tidligere kun blev brugt til Intel-processorer.

Under eksperimentet lykkedes det forskerne at lække information fra kernen til en proces i brugerrummet med en hastighed på 52 bytes i sekundet, givet tilstedeværelsen af ​​en gadget i kernen, der udfører operationen "if (offset < data_len) tmp = LUT[data[offset] * 4096];” . Der er foreslået flere metoder til at hente information via sidekanaler, der ender i cachen under spekulativ eksekvering. Den første metode er baseret på at analysere afvigelser i udførelsestiden for processorinstruktionen "PREFETCH" (Prefetch+Time), og den anden på at ændre ændringen i energiforbruget, når "PREFETCH" (Prefetch+Power) udføres.

Husk, at den klassiske Meltdown-sårbarhed er baseret på det faktum, at under spekulativ udførelse af instruktioner kan processoren få adgang til et privat dataområde og derefter kassere resultatet, da de indstillede privilegier forbyder sådan adgang fra brugerprocessen. I programmet er den spekulativt udførte blok adskilt fra hovedkoden af ​​en betinget gren, som under reelle forhold altid affyres, men på grund af det faktum, at den betingede sætning bruger en beregnet værdi, som processoren ikke kender under den præventive eksekvering af koden udføres alle filialoptioner spekulativt.

Da spekulativt udførte operationer bruger den samme cache som normalt udførte instruktioner, er det muligt under spekulativ udførelse at sætte markører i cachen, der afspejler indholdet af individuelle bits i et privat hukommelsesområde, og derefter i normalt udført kode for at bestemme deres værdi gennem timing analyseadgange til cachelagrede og ikke-cachelagrede data.

Kilde: opennet.ru

Tilføj en kommentar