Ar įmanoma, kad būtent procesoriaus greitis kelia grėsmę jūsų saugumui? Norėdami suprasti, kaip procesoriai pasiekia tokį greitį , turime atsižvelgti į tai, kad jie veikia „numatydami ateitį“... Ne, jie nėra magiški ir neturi mažyčio krištolo rutulio...
Procesoriai veikia taip, kad užuot laukę, kuriuo keliu programa pasuks, lustas numato tikėtiną maršrutą ir jį numato. Jei prognozė neteisinga, darbas atmetamas, tačiau pėdsakai lieka atmintyje. Čia ir praverčia „Spectre“ – viena reikšmingiausių pastaraisiais metais atrastų pažeidžiamumų. Nuo jos atradimo užpuolikai išmoko skaityti šiuos pėdsakus, kurdami vis sudėtingesnius variantus; TONTOU yra viena iš šių naujų pažeidžiamumų.
MIT tyrėjai atrado TONTOU (angl. Time-of-Neutralization to Time-of-Use) – sudėtingą naują techniką, skirtą išnaudoti „Spectre v2“ pažeidžiamumus , leidžiančią skaityti branduolio atmintį iš vartotojo erdvės.
Nors gamintojai ir kūrėjai jau daugelį metų kuria įvairius apsaugos mechanizmus nuo nuspėjamųjų atakų, užpuolikams pavyko atrasti naujų maršrutų, o šis naujas CSAIL tyrimas parodo, kaip apeiti šias apsaugos priemones.
Tyrėjai atrado, kad tarp buferio išvalymo ir prognozių panaudojimo momento yra neišvengiamas laiko tarpas , ir būtent per šį nedidelį tarpą per sistemos pertraukimus įterpiamas kodas (kartais vos kelios instrukcijos), leidžiantis iš naujo užteršti aparatinę įrangą ir išgauti svarbius duomenis.
Dėl atakos: sutrikimai ir „Safe-RET“ sistemos pažeidimas
AMD turi apsaugą nuo SRSO (spekuliatyvaus grąžinimo kampo perpildymo) pažeidžiamumų, vadinamą „Saferet“, kuris išvalo prognozavimo mechanizmą prieš kiekvieną naudojimą. Tai palieka pažeidžiamumo langą , kurį galima išnaudoti per kelias dešimtis nanosekundžių. Norėdami atakuoti tokį mažą langą, tyrėjai sukūrė techniką, vadinamą pertraukimo injekcija.
Procesoriai nuolat pristabdo savo užduotis, kad apdorotų pertraukimus, ir įprastos programos gali konfigūruoti šiuos laikmačius . Turėdami tai omenyje, tyrėjai tiksliai sureguliavo laikmatį ir, naudodami procesoriaus sulėtinimo techniką, privertė procesoriaus darbą būti pertrauktam netinkamu momentu . Šio pertraukimo metu užpuolikas gali priversti vykdyti daug iškvietimų, perpildydamas adresų steką. Kai klaidingas vykdymas baigiasi, procesorius atmeta procesą, tačiau pasiekti duomenys lieka bendrose talpyklose , iš kur juos galima išgauti analizuojant prieigos laiką.
Slaptažodžių išgavimas ir testavimas realiose sistemose
Siekdama pademonstruoti TONTOU pavojingumą, komanda sukūrė veikiantį spragą AMD sistemoje, kurioje veikia naujausias „Linux“ branduolys. Pirmoji kliūtis buvo apeiti apsaugą, kuri atsitiktinai nustato operacinės sistemos vietą atmintyje, ką jiems pavyko padaryti per dešimt bandymų, kiekvienam bandymui trunkant apie devynias minutes.
Vėliau jie pademonstravo vietinę ataką, vykdomą iš neprivilegijuoto vartotojo , siekiant nustatyti root slaptažodžio maišą, sėkmingai išgavę duomenis 5.47 baito per sekundę greičiu ir 91.97 % tikslumu. 50 % bandymų (kurie vidutiniškai truko 18 minučių) jie sėkmingai aptiko ir išgavo slaptažodžio failo turinį. Nors tai lėtas greitis, to daugiau nei pakanka, kad serveris būtų kritiškai pažeistas.
Poveikis „Intel“, AMD ir švelninimo pataisai
Komanda išbandė keturias „Intel“ ir AMD procesorių kartas ir abiejose architektūrose pasiekė prognozavimo klaidų. Nors technika pasirodė esanti veiksminga AMD „Zen 1“–„Zen 4“ šeimose , „Intel“ lustuose ataka apėjo dvi skirtingas apsaugos priemones , nors tarp skirtingų „Intel“ kartų buvo pastebėtas nenuoseklus elgesys , o tai rodo, kad nominalios apsaugos priemonės aparatinėje įrangoje įdiegtos skirtingai.
Kaip sprendimą tyrėjai siūlo antrą kartą išvalyti prognozavimo mechanizmą pasibaigus pertraukimui. Nors ši priemonė atrodo tinkama AMD, ji gali būti neproduktyvi „Intel“, nes ataka priklauso nuo to, ar pertraukimas palieka nuoseklią būseną, ir tai gali padaryti ataką patikimesnę.
Tyrėjai vasario pradžioje pranešė AMD ir „Intel“, o kovo mėnesį – „Linux“ branduolio prižiūrėtojams. Todėl rugpjūčio 5 d. į „Linux“ branduolį buvo integruotas kodo blokavimas, skirtas pažeidžiamumui sušvelninti.
Galiausiai, jei norite sužinoti daugiau, išsamią informaciją galite rasti šioje nuorodoje.