En annan sårbarhet har identifierats i AMD-processorer som tillåter Meltdown-attacker

Ett team av forskare från Technical University of Graz (Österrike) och Helmholtz Center for Information Security (CISPA) har avslöjat information om en sårbarhet (CVE-2021-26318) i alla AMD-processorer som gör det möjligt att utföra Meltdown-klass sidokanalattacker (inledningsvis antogs det att AMD-processorer inte påverkas av Meltdown-sårbarheten). Rent praktiskt kan attacken användas för att etablera hemliga kommunikationskanaler, övervaka aktiviteten i kärnan eller få information om adresser i kärnminnet för att kringgå KASLR-skydd samtidigt som sårbarheter i kärnan utnyttjas.

AMD anser att det är olämpligt att vidta särskilda åtgärder för att blockera problemet, eftersom sårbarheten, liksom en liknande attack som upptäcktes i augusti, är till liten nytta i verkliga förhållanden, begränsas av de nuvarande gränserna för processadressutrymmet och kräver närvaron av vissa färdiga sekvenser av instruktioner (prylar) i kärnan. För att demonstrera attacken laddade forskarna sin egen kärnmodul med en artificiellt tillagd gadget. Under verkliga förhållanden kan angripare till exempel använda regelbundna sårbarheter i eBPF-undersystemet för att ersätta de nödvändiga sekvenserna.

För att skydda mot denna nya typ av attack rekommenderade AMD att använda säkra kodningstekniker som hjälper till att blockera Meltdown-attacker, som att använda LFENCE-instruktioner. Forskarna som identifierade problemet rekommenderar att man aktiverar striktare minnessidatabellsisolering (KPTI), som tidigare bara användes för Intel-processorer.

Under experimentet lyckades forskarna läcka information från kärnan till en process i användarutrymmet med en hastighet av 52 byte per sekund, givet närvaron av en gadget i kärnan som utför operationen "if (offset < data_len) tmp = LUT[data[offset] * 4096];” . Flera metoder har föreslagits för att hämta information via sidokanaler som hamnar i cachen under spekulativ exekvering. Den första metoden är baserad på att analysera avvikelser i exekveringstiden för processorinstruktionen "PREFETCH" (Prefetch+Time), och den andra på att ändra förändringen i energiförbrukning vid exekvering av "PREFETCH" (Prefetch+Power).

Kom ihåg att den klassiska Meltdown-sårbarheten är baserad på det faktum att under spekulativ exekvering av instruktioner kan processorn komma åt ett privat dataområde och sedan kassera resultatet, eftersom de inställda privilegierna förbjuder sådan åtkomst från användarprocessen. I programmet separeras det spekulativt exekverade blocket från huvudkoden av en villkorlig gren, som i verkliga förhållanden alltid avfyras, men på grund av att den villkorliga satsen använder ett beräknat värde som processorn inte känner till under den förebyggande exekveringen av koden utförs alla filialoptioner spekulativt.

Eftersom spekulativt exekverade operationer använder samma cache som normalt exekverade instruktioner, är det möjligt under spekulativ exekvering att sätta markörer i cachen som reflekterar innehållet i enskilda bitar i ett privat minnesområde, och sedan i normalt exekverad kod för att bestämma deras värde genom timing analysåtkomster till cachad och icke-cachad data.

Källa: opennet.ru

Lägg en kommentar