Mae Retbleed yn ymosodiad newydd ar fecanwaith gweithredu hapfasnachol CPUs Intel ac AMD

Mae grŵp o ymchwilwyr o'r ETH Zurich wedi nodi ymosodiad newydd ar fecanwaith gweithredu hapfasnachol o neidiau anuniongyrchol yn y CPU, sy'n eich galluogi i dynnu gwybodaeth o gof cnewyllyn neu drefnu ymosodiad ar y system letyol o beiriannau rhithwir. Rhoddwyd yr enw cod Retbleed (CVE-2022-29900, CVE-2022-29901) ar y gwendidau ac maent yn debyg o ran natur i ymosodiadau Specter-v2. Daw'r gwahaniaeth i lawr i drefnu gweithredu cod mympwyol yn hapfasnachol wrth brosesu'r cyfarwyddyd “ret” (dychwelyd), sy'n adfer y cyfeiriad i neidio o'r pentwr, yn lle neidio'n anuniongyrchol gan ddefnyddio'r cyfarwyddyd “jmp”, gan lwytho'r cyfeiriad o'r cof neu gofrestr CPU.

Gall ymosodwr greu amodau ar gyfer rhagfynegi naid anghywir a threfnu naid hapfasnachol bwrpasol i floc cod na ddarperir ar ei gyfer gan resymeg gweithredu'r rhaglen. Yn y pen draw, bydd y prosesydd yn penderfynu nad oedd cyfiawnhad dros ragfynegiad y gangen ac yn dychwelyd y llawdriniaeth i'w gyflwr gwreiddiol, ond bydd y data a brosesir yn ystod y gweithredu hapfasnachol yn setlo yn y storfa a'r byfferau micro-bensaernïol. Os yw bloc a weithredir yn anghywir yn cyflawni mynediad cof, yna bydd ei weithredu hapfasnachol yn arwain at setlo yn y storfa gyffredinol a darllen data o'r cof.

Er mwyn pennu'r data a adawyd yn y storfa ar ôl cyflawni gweithrediadau hapfasnachol, gall yr ymosodwr ddefnyddio dulliau i bennu'r data gweddilliol trwy sianeli trydydd parti, er enghraifft, dadansoddi newidiadau yn yr amser mynediad i ddata wedi'i storio ac nid ei storio. Ar gyfer echdynnu gwybodaeth yn bwrpasol o feysydd mewn lefel braint wahanol (er enghraifft, o gof cnewyllyn), defnyddir "teclynnau" - dilyniannau o orchmynion sy'n bresennol yn y cnewyllyn, sy'n addas ar gyfer darllen data ar hap o'r cof, yn dibynnu ar amodau allanol a all cael ei ddylanwadu gan ymosodwr.

Er mwyn amddiffyn rhag ymosodiadau clasurol o'r dosbarth Specter, sy'n defnyddio cyfarwyddiadau cangen amodol ac anuniongyrchol, mae'r rhan fwyaf o systemau gweithredu yn defnyddio'r dechneg “retpolin”, yn seiliedig ar ddisodli gweithrediadau cangen anuniongyrchol gyda'r cyfarwyddyd “ret”, y mae bloc rhagfynegi cyflwr stac ar wahân ar ei gyfer. a ddefnyddir mewn proseswyr, nid yw'n defnyddio bloc rhagfynegi cangen. Wrth gyflwyno retpoline yn 2018, credwyd nad oedd trin cyfeiriadau tebyg i Specter yn ymarferol ar gyfer canghennu hapfasnachol gan ddefnyddio'r cyfarwyddyd "ret".

Dangosodd yr ymchwilwyr a ddatblygodd y dull ymosodiad Retbleed y posibilrwydd o greu amodau micro-bensaernïol ar gyfer cychwyn trawsnewidiad hapfasnachol gan ddefnyddio'r cyfarwyddyd “ret” a chyhoeddasant becyn cymorth parod ar gyfer nodi dilyniannau cyfarwyddiadau (teclynnau) sy'n addas ar gyfer manteisio ar y bregusrwydd yn y cnewyllyn Linux, y mae amodau o'r fath yn ymddangos ynddynt.

Yn ystod yr astudiaeth, paratowyd ecsbloetio gweithredol sy'n caniatáu, ar systemau gyda CPUs Intel, o broses ddifreintiedig yng ngofod y defnyddiwr i dynnu data mympwyol o gof cnewyllyn ar gyflymder o 219 bytes yr eiliad a 98% o gywirdeb. Ar broseswyr AMD, mae effeithlonrwydd y camfanteisio yn llawer uwch - y gyfradd gollwng yw 3.9 KB yr eiliad. Fel enghraifft ymarferol, mae'n dangos sut i ddefnyddio'r camfanteisio arfaethedig i bennu cynnwys y ffeil /etc/shadow. Ar systemau gyda CPUs Intel, cynhaliwyd ymosodiad i bennu hash y cyfrinair gwraidd mewn 28 munud, ac ar systemau gyda CPUs AMD, mewn 6 munud.

Cadarnhawyd yr ymosodiad ar gyfer 6-8 cenhedlaeth o broseswyr Intel a ryddhawyd cyn Ch3 2019 (gan gynnwys Skylake), a phroseswyr AMD yn seiliedig ar ficrosaernïaeth Zen 1, Zen 1+ a Zen 2 a ryddhawyd cyn Q2021 3. Mewn modelau proseswyr mwy newydd, megis AMD ZenXNUMX ac Intel Alder Lake, yn ogystal ag mewn proseswyr ARM, mae'r broblem yn cael ei rhwystro gan fecanweithiau amddiffyn presennol. Er enghraifft, mae defnyddio cyfarwyddiadau IBRS (Indirect Branch Restricted Speculation) yn helpu i amddiffyn rhag ymosodiad.

Mae set o newidiadau wedi'u paratoi ar gyfer y cnewyllyn Linux a'r hypervisor Xen, sy'n rhwystro'r broblem yn rhaglennol ar CPUau hŷn. Mae'r darn arfaethedig ar gyfer y cnewyllyn Linux yn addasu 68 o ffeiliau, yn ychwanegu 1783 o linellau, ac yn dileu 387 o linellau. Yn anffodus, mae amddiffyniad yn arwain at gostau gorbenion sylweddol - yn y testunau a wneir ar broseswyr AMD ac Intel, amcangyfrifir dirywiad perfformiad o 14% i 39%. Mae'n well defnyddio amddiffyniad yn seiliedig ar gyfarwyddiadau IBRS, sydd ar gael mewn cenedlaethau newydd o CPUs Intel ac a gefnogir ers cnewyllyn Linux 4.19.

Ar broseswyr Intel, mae amnewid cyfeiriad ar gyfer cangen anuniongyrchol hapfasnachol yn cael ei berfformio oherwydd nodwedd sy'n digwydd pan fydd islif yn digwydd yn y Dychwelyd Stack Buffer. Pan fydd amodau o'r fath yn digwydd, mae'r cyfarwyddyd ret yn dechrau cymhwyso rhesymeg dewis cyfeiriad sy'n debyg i'r hyn a ddefnyddir mewn neidiau anuniongyrchol confensiynol. Mae mwy na mil o leoedd wedi'u canfod yn y cnewyllyn Linux sy'n creu'r amodau ar gyfer cychwyn ôl-lif o'r fath ac sydd ar gael trwy alwadau system.

Ar broseswyr AMD, cyflawnir y cyfarwyddyd “ret” ar hap heb gyfeirio at glustogfa benodol i bentwr (Return Address Stack), ac mae bloc rhagfynegiad y gangen yn ystyried y cyfarwyddyd “ret” nid fel dychweliad rheolaeth, ond fel cangen anuniongyrchol, ac, yn unol â hynny, yn defnyddio'r data ar gyfer rhagfynegi wrth ragfynegi trawsnewidiadau anuniongyrchol. O dan yr amodau hyn, gellir manteisio ar bron unrhyw weithrediad "ret" y gellir ei gyrraedd trwy alwad system.

Yn ogystal, mae gan CPUs AMD broblem arall hefyd (CVE-2022-23825, Dryswch Math Cangen) sy'n ymwneud â gweithredu canghennau ffug - gall amodau ar gyfer rhagfynegi cangen ddigwydd hyd yn oed heb y cyfarwyddiadau cangen angenrheidiol, sy'n eich galluogi i ddylanwadu ar y byffer rhagfynegiad cangen heb cyfarwyddyd "ret". Mae'r nodwedd hon yn cymhlethu'n sylweddol y broses o weithredu amddiffyniad ac mae angen clirio mwy gweithredol o glustogfa rhagfynegiad y gangen. Disgwylir y bydd ychwanegu amddiffyniad llawn at y craidd yn arwain at gynnydd o 209% ar y gorbenion.

Ffynhonnell: opennet.ru

Ychwanegu sylw