Nyheten avslöjade det nyligenEn grupp forskare från ETH Zürich har identifierat en ny attack till den spekulativa exekveringsmekanismen för indirekta hopp i CPU:n, som gör det möjligt att extrahera information från kärnminnet eller organisera en attack mot värdsystemet från virtuella maskiner.
Sårbarheterna fick kodnamnet Retbleed (redan katalogiserad under CVE-2022-29900, CVE-2022-29901) och liknar Spectre-v2-attacker till sin natur.
Skillnaden handlar om att organisera den spekulativa exekveringen av godtycklig kod genom att bearbeta "retur" (retur)-instruktionen, som hämtar adressen för att hoppa från stacken, snarare än att indirekt hoppa med hjälp av "jmp"-instruktionen, ladda adressen från minnet eller ett CPU-register.
Om den nya attacken nämns att en angripare kan skapa förutsättningar för en gaffelförutsägelse felaktiga och organisera ett avsiktligt spekulativt hopp till ett kodblock som inte är avsett med programmets exekveringslogik.
I slutändan, processorn kommer att fastställa att grenförutsägelsen inte var motiverad och kommer att återställa operationen till sitt ursprungliga tillstånd, men de bearbetade uppgifterna Under spekulativt utförande de kommer att sitta i cachen och mikroarkitektoniska buffertar. Om ett felaktigt exekverat block utför en minnesåtkomst, kommer dess spekulativa exekvering att leda till installation i den allmänna cachen och läsning av data från minnet.
För att fastställa vilka data som finns kvar i cachen efter spekulativt genomförande av operationer, kan angriparen använda metoder för att bestämma restdata via tredjepartskanaler, till exempel genom att analysera ändringar i cachad dataåtkomsttid och inte cachad.
För avsiktlig extrahering av information från områden på en annan behörighetsnivå (till exempel från kärnminne) används "enheter": skript som finns i kärnan, lämpliga för spekulativ läsning av data från minnet, beroende på yttre förhållanden kan det påverkas av en angripare.
För att skydda mot klassiska Spectre-klassattacker, som använder indirekta och villkorade greninstruktioner, använder de flesta operativsystem "retpoline"-tekniken, som bygger på att ersätta indirekta grenoperationer med "ret"-instruktionen, för vilken en separat stacktillståndsförutsägelse krävs enheten används i processorer, använder inte ett grenprediktionsblock.
Vid introduktionen av retpoline 2018, ansågs Spectre-liknande adressmanipulation vara opraktisk för spekulativ forking med "ret"-instruktionen.
Forskarna som utvecklade attackmetoden Rebleed visade möjligheten att skapa mikroarkitektoniska förhållanden att initiera en spekulativ övergång med hjälp av "ret"-instruktionen och släppte en färdig verktygslåda för att identifiera lämpliga instruktionssekvenser (prylar) för att utnyttja sårbarheten i Linux-kärnan där sådana förhållanden uppträder.
Under studiens gång, en fungerande bedrift förbereddes som tillåter, på system med Intel-processorer, från en oprivilegierad process i användarutrymmet att extrahera godtyckliga data från kärnminnet med en hastighet av 219 byte per sekund och med 98 % noggrannhet.
En processorerna AMD, effektiviteten av exploateringen är mycket högre, eftersom läckagehastigheten är 3,9 KB per sekund. Som ett praktiskt exempel visas hur man använder den föreslagna exploateringen för att bestämma innehållet i filen /etc/shadow. På system med Intel-processorer utfördes en attack för att fastställa hash för root-lösenordet på 28 minuter och på system med AMD-processorer på 6 minuter.
Attacken bekräftades för 6-8 generationer av Intel-processorer som släpptes före Q2019 1 (inklusive Skylake), och AMD-processorer baserade på Zen 1, Zen 2+ och Zen 2021 mikroarkitekturer som släpptes före QXNUMX XNUMX. På nyare processormodeller, såsom AMD Zen3 och Intel Alder Lake, samt ARM-processorer, problemet blockeras av befintliga skyddsmekanismer. Till exempel hjälper användningen av IBRS-instruktioner (Indirect Branch Restricted Speculation) till att skydda mot en attack.
Förberedde en uppsättning ändringar för Linux-kärnan och Xen-hypervisorn, som blockerar problemet programmatiskt på äldre processorer. Den föreslagna Linux-kärnpatchen ändrar 68 filer, lägger till 1783 rader och tar bort 387 rader.
Tyvärr medför skyddet betydande omkostnader: i texter gjorda på AMD- och Intel-processorer uppskattas prestandaförsämringen till mellan 14 % och 39 %. Det är mer att föredra att använda skydd baserat på IBRS-instruktioner, tillgängligt på nyare generationer av Intel-processorer och stöds sedan Linux-kärnan 4.19.
Slutligen, om du är intresserad av att veta mer om det, kan du konsultera detaljer i följande länk.