Navorsers van Bitdefender
Die kwesbaarheid behoort aan die Spectre v1-klas en is gebaseer op die idee om data van die verwerkerkas wat oorbly na spekulatiewe uitvoering van instruksies te herstel. Om werkverrigting te verbeter, gebruik takvoorspellingseenhede van moderne SVE's voorkomende uitvoering van sommige instruksies wat waarskynlik uitgevoer sal word, maar sonder om te wag vir die berekening van al die faktore wat hul uitvoering bepaal (byvoorbeeld wanneer taktoestande of toegangsparameters nie nog bereken). As die voorspelling nie bevestig word nie, gooi die verwerker die resultaat van die spekulatiewe uitvoering weg, maar die data wat tydens dit verwerk word, bly in die verwerkerkas en kan herstel word deur metodes te gebruik om die inhoud van die kas deur sykanale te bepaal, en die verandering in toegang te ontleed tyd om gekas en ongekas data.
Die eienaardigheid van die nuwe aanval is die gebruik van 'n lek wat plaasvind tydens die spekulatiewe uitvoering van die SWAPGS-instruksie, wat in bedryfstelsels gebruik word om die waarde van die GS-register te vervang wanneer beheer van gebruikersruimte na die OS-kern (die GS) oorgaan. waarde wat in gebruikersruimte gebruik word, word vervang met die waarde wat tydens bewerkings in die kern gebruik word). In die Linux-kern stoor GS 'n per_cpu-wyser wat gebruik word om toegang tot kerndata te verkry, en gebruikersspasie stoor wysers na TLS (Thread Local Storage).
Om te verhoed dat die SWAPGS-instruksie twee keer geroep word wanneer die kern weer vanaf kernspasie verkry word of wanneer kode uitgevoer word wat nie 'n GS-registerverandering vereis nie, word 'n kontrole en 'n voorwaardelike tak voor die instruksie uitgevoer. Die spekulatiewe uitvoering-enjin gaan proaktief voort om kode uit te voer met die SWAPGS-instruksie sonder om te wag vir die resultaat van die tjek, en as die geselekteerde tak nie bevestig word nie, gooi die resultaat weg. Dus kan 'n situasie ontstaan wanneer 'n tak wat nie SWAPGS uitvoering behels nie spekulatief gekies word, maar tydens spekulatiewe uitvoering sal die waarde van die GS register verander word deur die SWAPGS instruksie en gebruik word in afhanklike geheue bewerkings wat in die SVE kas beland.
Navorsers het twee aanvalscenario's voorgestel waarvoor ontginningsprototipes voorberei is. Die eerste scenario is gebaseer op die situasie waar die SWAPGS-instruksie nie spekulatief uitgevoer word nie, alhoewel dit eintlik in uitvoering gebruik word, en die tweede is die teenoorgestelde, wanneer die SWAPGS-instruksie spekulatief uitgevoer word, hoewel dit nie eintlik uitgevoer moet word nie. Vir elke scenario is daar twee opsies vir uitbuiting: die aanvaller kan die waarde by 'n spesifieke adres in die kerngebied bepaal, en die aanvaller kan na 'n spesifieke waarde by ewekansige adresse in die kern soek. Om 'n aanval uit te voer neem 'n lang tyd en die ontginning kan 'n paar uur neem om die lekkasie te voltooi.
Daar is 'n probleem in die Linux-kern
Die oplossing vereis die installering van 'n kernopdatering op beide die gasheerstelsel en gasomgewings, gevolg deur 'n stelselherlaai. Om beskerming op Linux te deaktiveer, kan die "nospectre_v1" opsie gebruik word, wat ook maatreëls deaktiveer om die SWAPGS kwesbaarheid te blokkeer. Die oplossing is beskikbaar as
Volgens navorsers van Bitdefender is Intel in Augustus verlede jaar van die probleem ingelig. Daar is besluit om die probleem programmaties reg te stel, waarvoor ontwikkelaars van Microsoft, Google en die Linux-kern betrokke was by die gekoördineerde ontwikkeling van 'n oplossing. Ouer Intel-verwerkers, pre-Ivy Bridge, is baie moeiliker om aan te val as gevolg van die gebrek aan ondersteuning vir die WRGSBASE-instruksie wat in die ontginning gebruik word. ARM-, POWER-, SPARC-, MIPS- en RISC-V-stelsels word nie deur die probleem geraak nie omdat hulle nie die SWAPGS-instruksie ondersteun nie.
Die probleem raak hoofsaaklik eienaars van Intel-verwerkers -
Op AMD-stelsels kon slegs die tweede aanvalscenario gereproduseer word, wat beperk is tot spekulatiewe verwerking van die basiswaarde van die GS-register, wat gebruik kan word om spesifieke waardes in ewekansige geheue-areas te soek. Om hierdie aanval opsie te blokkeer
Bron: opennet.ru