Ir identificēts jauns Zombieload uzbrukuma variants Intel procesoriem

Grācas Tehniskās universitātes (Austrija) pētnieki bez pārklājuma informācija par jaunu uzbrukuma metodi, izmantojot trešo pušu kanālus Zombie Load 2.0 (CVE-2019-11135), kas ļauj iegūt konfidenciālu informāciju no citiem procesiem, operētājsistēmas, virtuālajām mašīnām un aizsargātajiem anklāviem (TEE, Trusted Execution Environment). Problēma skar tikai Intel procesorus. Komponenti problēmas bloķēšanai ierosināts vakardienā mikrokoda atjauninājums.

Problēma pieder MDS (Microarchitectural Data Sampling) klasei un ir modernizēta versija publiskots maijā ZombieLoad uzbrukumi. ZombieLoad 2.0, tāpat kā citi MDS uzbrukumi, balstās uz sānu kanālu analīzes metožu izmantošanu datiem mikroarhitektūras struktūrās (piemēram, Line Fill Buffer un Store Buffer), kas īslaicīgi glabā procesā izmantotos datus. Veicot ielādes un glabāšanas darbības) .

Jauns Zombieload uzbrukuma variants pamatā par noplūdi, kas rodas operāciju asinhronās pārtraukšanas mehānisma (TAA, TSX Asynchronous Abort) darbības laikā, kas ieviests TSX (Transactional Synchronization Extensions) paplašinājumā, kas nodrošina rīkus darbam ar transakciju atmiņu, kas ļauj palielināt operāciju veiktspēju. daudzpavedienu lietojumprogrammas, dinamiski novēršot nevajadzīgas sinhronizācijas darbības (atbalstītas atomu transakcijas, kuras var pieņemt vai pārtraukt). Ja tas tiek pārtraukts, operācijas, kas veiktas transakciju atmiņas apgabalā, tiek atgrieztas atpakaļ.

Darījuma pārtraukšana notiek asinhroni, un šajā laikā citi pavedieni var piekļūt kešatmiņai, kas tiek izmantota arī izmestajā darījumu atmiņas reģionā. Laikā no asinhronā darījuma pārtraukšanas sākuma līdz faktiskai pabeigšanai, iespējams, var rasties situācijas, kad procesors spekulatīvas operācijas izpildes laikā var nolasīt datus no iekšējiem mikroarhitektūras buferiem un pārsūtīt tos uz spekulatīvo darbību. Pēc tam konflikts tiks atklāts un spekulatīvā darbība atmesta, bet dati paliks kešatmiņā un tos var izgūt, izmantojot sānu kanālu kešatmiņas atkopšanas metodes.

Uzbrukums ir saistīts ar TSX darījumu atvēršanu un apstākļu radīšanu to asinhronam pārtraukumam, kura laikā rodas apstākļi iekšējo buferu satura noplūdei, kas spekulatīvi piepildīti ar datiem no atmiņas lasīšanas darbībām, kas veiktas tajā pašā CPU kodolā. Noplūde ir ierobežota līdz pašreizējam fiziskajam CPU kodolam (kurā darbojas uzbrucēja kods), taču, tā kā mikroarhitektūras buferi tiek dalīti starp dažādiem pavedieniem Hyper-Threading režīmā, ir iespējama atmiņas operāciju noplūde, kas tiek veikta citos CPU pavedienos.

Uzbrukums pakļauts daži Intel Core procesoru astotās, devītās un desmitās paaudzes modeļi, kā arī Intel Pentium Gold, Intel Celeron 5000, Intel Xeon E, Intel Xeon W un otrās paaudzes Intel Xeon Scalable. Jaunie Intel procesori, kuru pamatā ir aprīlī ieviestā Cascade Lake mikroarhitektūra, kas sākotnēji nebija uzņēmīgi pret RIDL un Fallout uzbrukumiem, arī ir pakļauti uzbrukumiem. Papildus Zombieload 2.0 pētnieki atklāja arī iespēju apiet iepriekš piedāvātās aizsardzības metodes pret MDS uzbrukumiem, pamatojoties uz VERW instrukcijas izmantošanu, lai notīrītu mikroarhitektūras buferu saturu, atgriežoties no kodola lietotāja telpā vai nododot kontroli uz viesu sistēma.

Intel ziņojumā teikts, ka sistēmās ar neviendabīgu slodzi iespēja veikt uzbrukumu ir apgrūtināta, jo noplūde no mikroarhitektūras struktūrām aptver visas sistēmas darbības un uzbrucējs nevar ietekmēt izvilkto datu avotu, t.i. var tikai uzkrāt informāciju, kas rodas noplūdes rezultātā, un mēģināt starp šiem datiem identificēt noderīgu informāciju, bez iespējas mērķtiecīgi pārtvert datus, kas saistīti ar konkrētām atmiņas adresēm. Tomēr pētnieki publicēja izmantot prototipu, kas darbojas operētājsistēmās Linux un Windows, un demonstrēja spēju izmantot uzbrukumu, lai noteiktu saknes lietotāja paroles jaucējkodu.
Varbūt viesa sistēmas uzbrukuma veikšana, lai uzkrātu datus, kas parādās citu viesu sistēmu darbībā, resursdatora vidē, hipervizorā un Intel SGX anklāvos.

Labojumi, lai bloķētu ievainojamību iekļauts iekļauts Linux kodola kodu bāzē un iekļauts laidienos 5.3.11., 4.19.84., 4.14.154., 4.9.201. un 4.4.201.. Kodola un mikrokoda atjauninājumi jau ir izlaisti arī lielākajiem izplatījumiem (Debian, SUSE/openSUSE, Ubuntu, RHEL, Fedora, FreeBSD). Problēma tika konstatēta aprīlī, un Intel un operētājsistēmas izstrādātāju starpā tika saskaņots tās risinājums.

Vienkāršākā Zombieload 2.0 bloķēšanas metode ir atspējot TSX atbalstu CPU. Ierosinātais Linux kodola labojums ietver vairākas aizsardzības iespējas. Pirmā opcija piedāvā parametru “tsx=on/off/auto”, lai kontrolētu, vai centrālajam procesoram ir iespējots TSX paplašinājums (automātiskā vērtība atspējo TSX tikai neaizsargātiem CPU). Otro aizsardzības opciju iespējo parametrs “tsx_async_abort=off/full/full,nosmt”, un tās pamatā ir mikroarhitektūras buferu dzēšana konteksta pārslēgšanas laikā (nosmt karodziņš papildus atspējo SMT/Hyper-Threads). Lai pārbaudītu, vai sistēma ir jutīga pret ievainojamībām, sysfs nodrošina parametru “/sys/devices/system/cpu/vulnerabilities/tsx_async_abort”.

Arī iekšā atjaunināt mikrokods likvidēta Vēl viens ievainojamība (CVE-2018-12207) Intel procesoros, kas arī ir bloķēts jaunākajos atjaunināt Linux kodoli. Neaizsargātība pieļauj Nepriviliģēts uzbrucējs, lai uzsāktu pakalpojuma atteikumu, izraisot sistēmas darbības pārtraukšanu stāvoklī “Machine Check Error”.
Uzbrukums, tostarp var būt apņēmusies no viesu sistēmas.

Avots: opennet.ru

Pievieno komentāru