Retbleed dia fanafihana vaovao momba ny mekanika famonoana an'i Intel sy AMD CPUs

Vondrona mpikaroka avy ao amin'ny ETH Zurich dia nahita fanafihana vaovao momba ny mekanika famonoana ankolaka ny tetezamita ankolaka ao amin'ny CPU, izay ahafahana maka vaovao avy amin'ny fahatsiarovana kernel na mandamina fanafihana ny rafitra mpampiantrano avy amin'ny milina virtoaly. Ny vulnerabilities dia antsoina hoe Retbleed (CVE-2022-29900, CVE-2022-29901) ary mifanakaiky amin'ny fanafihana Specter-v2. Ny fahasamihafàna dia tonga amin'ny fandaminana ny fanatanterahana tombantombana ny fehezan-dalàna tsy misy dikany rehefa mikarakara ny torolàlana "ret" (miverina), izay maka ny adiresy hitsambikina avy ao amin'ny stack, fa tsy hitsambikina ankolaka mampiasa ny torolàlana "jmp", mampiditra ny adiresy avy amin'ny fahatsiarovana na rejisitra CPU.

Ny mpanafika dia afaka mamorona fepetra ho an'ny vinavinan'ny tetezamita diso ary mandamina fifindrana lasibatra sy tombantombana mankany amin'ny andian-kaody izay tsy omen'ny lojikan'ny fanatanterahana ny programa. Amin'ny farany, ny processeur dia hamaritra fa tsy ara-drariny ny vinavinan'ny sampana ary hamerina ny asa ho amin'ny toerany tany am-boalohany, fa ny angon-drakitra nokarakaraina nandritra ny famonoana vinavina dia hiafara amin'ny cache sy ny buffer microarchitectural. Raha miditra ao amin'ny fitadidiana ny sakana iray natao diso, dia ny famonoana ny tombantombana dia hitarika amin'ny angona novakiana avy amin'ny fitadidiana napetraka ao amin'ny cache iombonana.

Mba hamaritana ny angon-drakitra tavela ao amin'ny cache aorian'ny asa fanombantombanana, ny mpanafika dia afaka mampiasa teknika amin'ny sisiny mba hamaritana ny angona tavela, toy ny famakafakana ny fiovan'ny fotoana fidirana amin'ny angona voatahiry sy tsy voatahiry. Mba hanesorana an-tsaina ny vaovao avy amin'ny faritra amin'ny ambaratongam-tombontsoa hafa (ohatra, avy amin'ny fitadidiana kernel), dia ampiasaina ny "gadgets" - ny filaharan'ny baiko misy ao amin'ny kernel izay mety amin'ny famakiana angon-drakitra avy amin'ny fitadidiana miankina amin'ny fepetra ivelany izay mety ho voataonan'ny. ny mpanafika.

Mba hiarovana amin'ny fanafihana kilasin'ny Spectre mahazatra izay mampiasa toromarika mitsambikina misy fepetra sy ankolaka, ny ankamaroan'ny rafitra miasa dia mampiasa ny teknika "retpoline", izay mifototra amin'ny fanoloana ny asa mitsambikina ankolaka amin'ny toromarika "ret", izay ampiasain'ny processeurs amin'ny rafitra faminavinan'ny fanjakana misaraka. .tsy mampiasa sakana faminaniana sampana. Rehefa nampidirina tamin'ny taona 2018 ny retpoline, dia nino fa ny fanodikodinana adiresy toa an'i Spectre dia tsy azo ampiharina amin'ny sampana tombantombana amin'ny fampiasana ny torolàlana "ret".

Ny mpikaroka izay namolavola ny fomba fanafihana Retbleed dia naneho ny mety hisian'ny fepetra microarchitectural hanombohana ny tetezamita tombantombana amin'ny fampiasana ny torolàlana "ret" ary namoaka fitaovana efa vita mba hamantarana ny filaharan'ny torolàlana (gadgets) mety amin'ny fitrandrahana ny vulnerable ao amin'ny kernel Linux, izay ahitana toe-javatra toy izany.

Nandritra ny fikarohana, nisy fitrandrahana miasa nomanina izay mamela, amin'ny rafitra misy CPU Intel, haka angon-drakitra tsy misy dikany avy amin'ny fitadidiana kernel avy amin'ny dingana tsy misy tombontsoa amin'ny habaka mpampiasa amin'ny hafainganam-pandeha 219 bytes isan-tsegondra ary 98% marina. Amin'ny processeur AMD, ny fahombiazan'ny fitrandrahana dia avo kokoa - ny tahan'ny leak dia 3.9 KB isan-tsegondra. Ho ohatra azo ampiharina, dia asehontsika ny fomba fampiasana ny fanararaotana natolotra mba hamaritana ny votoatin'ny rakitra /etc/shadow. Ao amin'ny rafitra miaraka amin'ny Intel CPU, ny fanafihana hamaritana ny tenimiafina mpampiasa root dia natao tao anatin'ny 28 minitra, ary tamin'ny rafitra misy CPU AMD - tao anatin'ny 6 minitra.

Ny fanafihana dia nohamafisina ho an'ny taranaka 6-8 amin'ny processeur Intel izay navoaka talohan'ny Q3 2019 (anisan'izany ny Skylake), ary ny processeur AMD miorina amin'ny Zen 1, Zen 1+ ary Zen 2 microarchitectures izay navoaka talohan'ny Q2021 3. Ao amin'ny modely processeur vaovao toy ny AMD ZenXNUMX sy Intel Alder Lake, ary koa amin'ny processeur ARM, ny olana dia voasakana amin'ny rafitra fiarovana efa misy. Ohatra, ny fampiasana ny toromarika IBRS (Indirect Branch Restricted Speculation) dia manampy amin'ny fiarovana amin'ny fanafihana.

Nisy fanovana nomanina ho an'ny kernel Linux sy ny Xen hypervisor, izay hanakana ny olana amin'ny rindrambaiko amin'ny CPU taloha. Ny patch natolotra ho an'ny kernel Linux dia manova rakitra 68, manampy andalana 1783, ary mamafa andalana 387. Indrisy anefa, ny fiarovana dia mitarika ho amin'ny vidiny ambony indrindra - ao amin'ny lahatsoratra natao tamin'ny AMD sy Intel processeur, ny fihenan'ny fampisehoana dia tombanana amin'ny 14% ka hatramin'ny 39%. Aleo kokoa ny mampiasa fiarovana mifototra amin'ny toromarika IBRS, azo alaina amin'ny taranaka vaovaon'ny CPU Intel ary tohanana manomboka amin'ny Linux kernel 4.19.

Ao amin'ny processeur Intel, ny fanoloana adiresy ho an'ny fitsambikina ankolaka fanombantombanana dia tanterahina noho ny endri-javatra iray izay miseho rehefa misy fihoaram-pefy amin'ny alàlan'ny fetra ambany (underflow) ao amin'ny Return Stack Buffer. Rehefa mitranga ny toe-javatra toy izany, ny torolalana "ret" dia manomboka mampihatra ny lojika mifantina adiresy mitovy amin'ny ampiasaina amin'ny fitsambikinana ankolaka mahazatra. Toerana maherin'ny arivo no hita ao amin'ny kernel Linux izay mamorona fepetra hanombohana ny fiverenana toy izany ary azo idirana amin'ny alàlan'ny antso an-tariby.

Ao amin'ny processeur AMD, ny famonoana tombantombana ny torolàlana "ret" dia atao tsy misy firesahana amin'ny buffer manokana stack (Return Address Stack) ary ny sampana mpamantatra ny sampana dia mihevitra ny torolàlana "ret" fa tsy toy ny fiverenana fanaraha-maso, fa ho sampana ankolaka. , ary, araka izany, dia mampiasa ny angona ho an'ny faminaniany ny fifindrana ankolaka. Ao anatin'ireo fepetra ireo, saika azo trandrahana avokoa ny hetsika "ret" azo trandrahana amin'ny alàlan'ny antso an-tariby.

Fanampin'izany, misy olana hafa koa hita ao amin'ny AMD CPUs (CVE-2022-23825, Branch Type Confusion) mifandraika amin'ny fampiharana ny sampana noforonina - mety hitranga ny fepetra amin'ny faminavinan'ny sampana na dia tsy misy toromarika ilaina amin'ny sampana aza, izay mamela ny fiantraikany amin'ny buffer faminaniana sampana. tsy misy toromarika "ret". Ity endri-javatra ity dia manasarotra ny fampiharana ny fiarovana ary mitaky fanadiovana mavitrika kokoa ny buffer faminaniana sampana. Ny fampidirana fiarovana feno amin'ny kernel dia antenaina hampitombo ny overhead amin'ny 209%.

Source: opennet.ru

Add a comment