Inteli protsessorite vastu suunatud Zombieload rünnaku uus variant on tuvastatud

Grazi tehnikaülikooli (Austria) teadlased katmata teave uue ründemeetodi kohta kolmandate osapoolte kanalite kaudu Zombie Load 2.0 (CVE-2019-11135), mis võimaldab hankida konfidentsiaalset teavet teistest protsessidest, operatsioonisüsteemist, virtuaalmasinatest ja kaitstud enklaavidest (TEE, Trusted Execution Environment). Probleem puudutab ainult Inteli protsessoreid. Probleemi blokeerivad komponendid välja pakutud eile mikrokoodi värskendus.

Probleem kuulub MDS (Microarchitectural Data Sampling) klassi ja on moderniseeritud versioon avalikustatud mais ZombieLoadi rünnakud. ZombieLoad 2.0, nagu ka teised MDS-rünnakud, tugineb külgkanalite analüüsimeetodite rakendamisele mikroarhitektuuristruktuuride andmetele (nt Line Fill Buffer ja Store Buffer), mis salvestavad ajutiselt protsessis kasutatavaid andmeid. Laadimis- ja salvestamistoimingute sooritamine .

Uus Zombieload rünnaku variant põhineb lekke kohta, mis ilmneb toimingute asünkroonse katkestamise mehhanismi (TAA, TSX Asynchronous Abort) töötamise ajal, mis on rakendatud laienduses TSX (Transactional Synchronization Extensions), mis pakub tööriistu tehingumäluga töötamiseks, mis võimaldab suurendada mitme lõimega rakendused, välistades dünaamiliselt mittevajalikud sünkroonimistoimingud (toetatud tuumatehingud, mida saab vastu võtta või katkestada). Katkestamise korral tühistatakse tehingumälu piirkonnas tehtud toimingud.

Tehingu katkestamine toimub asünkroonselt ja selle aja jooksul pääsevad teised lõimed ligi vahemällu, mida kasutatakse ka tühistatud tehingumälu piirkonnas. Ajavahemikul asünkroonse tehingu katkestamise algusest kuni tegeliku lõpuleviimiseni võib tekkida olukordi, kus protsessor saab toimingu spekulatiivse sooritamise ajal lugeda andmeid sisemistest mikroarhitektuuripuhvritest ja edastada need spekulatiivsesse operatsiooni. Seejärel tuvastatakse konflikt ja spekulatiivne toiming tühistatakse, kuid andmed jäävad vahemällu ja neid saab külgkanali vahemälu taastamise tehnikate abil alla laadida.

Rünnak taandub TSX-i tehingute avamisele ja tingimuste loomisele nende asünkroonseks katkestuseks, mille käigus tekivad tingimused sisemiste puhvrite sisu lekitamiseks, mis on spekulatiivselt täidetud andmetega samas CPU tuumas tehtud mälu lugemistoimingutest. Leke piirdub praeguse füüsilise protsessori tuumaga (millel töötab ründaja kood), kuid kuna Hyper-Threading režiimis jagatakse mikroarhitektuurseid puhvreid erinevate lõimede vahel, on võimalik lekitada ka teistes CPU lõimedes tehtud mäluoperatsioone.

Rünnak allutatud mõned Intel Core'i protsessorite kaheksanda, üheksanda ja kümnenda põlvkonna mudelid, samuti Intel Pentium Gold, Intel Celeron 5000, Intel Xeon E, Intel Xeon W ja teise põlvkonna Intel Xeon Scalable. Uued Inteli protsessorid, mis põhinevad aprillis tutvustatud Cascade Lake'i mikroarhitektuuril, mis esialgu ei olnud vastuvõtlikud RIDL-i ja Fallout rünnakutele, on samuti vastuvõtlikud rünnakutele. Lisaks Zombieload 2.0-le tuvastasid teadlased ka võimaluse mööda minna varem pakutud kaitsemeetoditest MDS-rünnete vastu, mis põhinevad VERW juhise kasutamisel mikroarhitektuursete puhvrite sisu tühjendamiseks kernelist kasutajaruumi naasmisel või juhtimise üleandmisel külaliste süsteem.

Inteli raportis on kirjas, et heterogeense koormusega süsteemides on ründe läbiviimine keeruline, kuna mikroarhitektuuristruktuuride leke hõlmab kogu süsteemis toimuvat tegevust ning ründaja ei saa mõjutada väljavõetud andmete allikat, s.t. saab ainult koguda teavet, mis ilmneb lekke tagajärjel, ja püüda leida nende andmete hulgast kasulikku teavet, ilma et oleks võimalik sihipäraselt kinni püüda konkreetsete mäluaadressidega seotud andmeid. Teadlased avaldasid aga prototüüpi ära kasutada, mis töötab Linuxis ja Windowsis, ning demonstreeris võimet kasutada rünnakut juurkasutaja parooli räsi määramiseks.
Ehk rünnak külalissüsteemist, et koguda andmeid, mis ilmuvad teiste külalissüsteemide, hostikeskkonna, hüperviisori ja Intel SGX enklaavide töös.

Parandused haavatavuse blokeerimiseks kaasatud Linuxi kerneli koodibaasi ja sisaldub väljalasetes 5.3.11, 4.19.84, 4.14.154, 4.9.201 ja 4.4.201. Kerneli ja mikrokoodi värskendused on juba välja antud ka suuremate distributsioonide jaoks (Debian, SUSE/openSUSE, Ubuntu, RHEL, Fedora, FreeBSD). Probleem tuvastati aprillis ning selle lahendus kooskõlastati Inteli ja operatsioonisüsteemi arendajate vahel.

Lihtsaim viis Zombieload 2.0 blokeerimiseks on TSX-i toe keelamine protsessoris. Linuxi kerneli pakutud parandus sisaldab mitmeid kaitsevõimalusi. Esimene valik pakub parameetrit „tsx=on/off/auto”, et kontrollida, kas TSX-laiendus on CPU-s lubatud (automaatne väärtus keelab TSX-i ainult haavatavate CPU-de puhul). Teise kaitsevaliku lubab parameeter "tsx_async_abort=off/full/full,nosmt" ja see põhineb mikroarhitektuuripuhvrite tühjendamisel konteksti vahetamise ajal (lipp nosmt keelab lisaks SMT/Hyper-Threads). Kontrollimaks, kas süsteem on haavatavustele vastuvõtlik, pakub sysfs parameetrit „/sys/devices/system/cpu/vulnerabilities/tsx_async_abort”.

Ka sisse ajakohastamine mikrokood kõrvaldatud veel üks haavatavus (CVE-2018-12207) Inteli protsessorites, mis on ka viimastes blokeeritud ajakohastamine Linuxi tuumad. Haavatavus võimaldab privilegeeritud ründaja, kes algatab teenuse keelamise, mille tulemusel süsteem hangub olekusse „Machine Check Error”.
Rünnak, sealhulgas võib olla pühendunud külaliste süsteemist.

Allikas: opennet.ru

Lisa kommentaar