Tutkijaryhmä Grazin teknillisestä yliopistosta (Itävalta) ja Helmholtz-tietoturvakeskuksesta (CISPA) () uusi vektori sivukanavahyökkäysten käyttämiseen (L1TF), jonka avulla tietoja voidaan poimia Intel SGX -enklaavien muistista, SMM:stä (System Management Mode), käyttöjärjestelmän ytimen muistialueilta ja virtualisointijärjestelmien virtuaalikoneista. Toisin kuin vuonna 2018 ehdotettu alkuperäinen hyökkäys Uusi variantti ei ole spesifinen Intel-prosessoreille, ja se vaikuttaa myös muiden valmistajien, kuten ARM:n, IBM:n ja AMD:n, suorittimiin. Lisäksi uusi variantti ei vaadi suurta suorituskykyä, ja hyökkäys voidaan suorittaa jopa suorittamalla JavaScript ja WebAssembly verkkoselaimessa.
Foreshadow-hyökkäys hyödyntää sitä tosiasiaa, että virtuaaliosoitteessa olevaa muistia käytettäessä, mikä johtaa päätesivuvirheeseen, suoritin laskee spekulatiivisesti fyysisen osoitteen ja lataa tiedot, jos niitä on L1-välimuistissa. Spekulatiivinen käyttö tapahtuu ennen sivutaulukon luetteloinnin valmistumista ja sivutaulukkomerkinnän (PTE) tilasta riippumatta, eli ennen kuin tietojen läsnäolo fyysisessä muistissa ja luettavuus on tarkistettu. Jos muistin saatavuustarkistuksen jälkeen PTE:llä ei ole Present-lippua, toiminto hylätään, mutta tiedot jäävät välimuistiin ja ne voidaan hakea sivukanavavälimuistin sisällön määritystekniikoilla (analysoimalla välimuistissa olevien ja välimuistissa olevien tietojen käyttöaikojen vaihtelua).
Tutkijat ovat osoittaneet, että nykyiset menetelmät varjon varjolta suojautumiseksi ovat tehottomia ja väärinymmärrettyjä.
Foreshadowia voidaan hyödyntää riippumatta ytimen aiemmin riittäviksi katsotuista suojausmekanismeista. Tutkijat osoittivat lopulta Foreshadow-hyökkäyksen toteutettavuuden järjestelmissä, joissa on suhteellisen vanhoja ytimiä, joissa kaikki käytettävissä olevat Foreshadow-suojaustilat ovat käytössä, sekä uudemmissa ytimissä, joissa vain Spectre-v2-suojaus on poistettu käytöstä (käyttäen ytimen asetusta Linux nospectre_v2).
Todettiin, että ei liity ohjelmiston esilatausohjeisiin tai laitteistovaikutukseen
Haavoittuvuus ei johdu muistin käytön aikana tapahtuvasta esilatauksesta, vaan se tapahtuu käyttäjätilarekistereiden spekulatiivisen viittauksen poistamisen aikana ytimessä. Tämä haavoittuvuuden syyn väärintulkinta johti aluksi oletukseen, että Foreshadow-tietovuoto voi tapahtua vain L1-välimuistin kautta, kun taas tiettyjen ytimen koodinpätkien (esilatauslaitteiden) läsnäolo voi helpottaa tietovuotoja L1-välimuistin ulkopuolelle, esimerkiksi L3-välimuistiin.
Tunnistettu ominaisuus avaa myös mahdollisuuden luoda uusia hyökkäyksiä, jotka kohdistuvat virtuaalisista fyysisiin osoitteiden muuntamisprosesseihin eristetyissä ympäristöissä ja joilla määritetään CPU-rekistereihin tallennettuja osoitteita ja tietoja. Demonstraatioissa tutkijat osoittivat mahdollisuuden hyödyntää tätä ilmiötä tiedon poimimiseksi prosessista toiseen noin 10 bitin sekunnissa nopeudella järjestelmässä, jossa on Intel Core i7-6500U -suoritin. He osoittivat myös mahdollisuuden vuotaa rekisterien sisältöä Intel SGX -enklaavista (32-bittisen arvon määrittäminen 64-bittiseen rekisteriin kesti 15 minuuttia). Jotkin hyökkäykset olivat mahdollisia JavaScriptissä ja WebAssemblyssä; esimerkiksi he pystyivät määrittämään JavaScript-muuttujan fyysisen osoitteen ja täyttämään 64-bittiset rekisterit hyökkääjän hallitsemalla arvolla.
Retpoline-korjauspaketissa toteutettu Spectre-BTB (Branch Target Buffer) -lievennysmenetelmä estää tehokkaasti Foreshadow-hyökkäyksen L3-välimuistin kautta. Siksi tutkijat uskovat, että retpoline on pidettävä käytössä myös järjestelmissä, joissa on uusia suorittimia, joissa on jo suojaus suorittimen spekulatiivisen käskyjen suoritusmekanismin tunnettuja haavoittuvuuksia vastaan. Intelin edustajat kuitenkin totesivat, etteivät he aio lisätä prosessoreihinsa lisää Foreshadow-lievennysmenetelmiä ja pitävät olemassa olevia suojauksia Spectre V2- ja L1TF (Foreshadow) -hyökkäyksiä vastaan riittävinä.
Lähde: opennet.ru
