Gwendidau mewn eBPF a allai osgoi amddiffyniad rhag ymosodiad Specter 4

Mae dau wendid wedi'u nodi yn y cnewyllyn Linux sy'n caniatΓ‘u i'r is-system eBPF gael ei ddefnyddio i osgoi amddiffyniad yn erbyn ymosodiad Specter v4 (SSB, Ffordd Osgoi Siop Sbectol). Gan ddefnyddio rhaglen BPF di-freintiedig, gall ymosodwr greu amodau ar gyfer cyflawni rhai gweithrediadau ar hap a phennu cynnwys meysydd mympwyol o gof cnewyllyn. Derbyniodd cynhalwyr yr is-systemau eBPF yn y cnewyllyn fynediad at ecsbloetio prototeip sy'n dangos y gallu i gyflawni ymosodiadau yn ymarferol. Mae'r problemau wedi'u trwsio ar ffurf clytiau (1, 2), a fydd yn cael eu cynnwys yn y diweddariad cnewyllyn Linux nesaf. Nid yw diweddariadau mewn citiau dosbarthu wedi'u creu eto (Debian, RHEL, SUSE, Arch, Fedora, Ubuntu).

Mae dull ymosod Specter 4 yn seiliedig ar adfer data sydd wedi'i storio yn storfa'r prosesydd ar Γ΄l cael gwared ar ganlyniad gweithredu hapfasnachol wrth brosesu gweithrediadau ysgrifennu a darllen am yn ail gan ddefnyddio cyfeiriadau anuniongyrchol. Pan fydd gweithrediad darllen yn dilyn gweithrediad ysgrifennu (e.e., mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), mae'n bosibl bod gwrthbwyso'r cyfeiriad darllen eisoes yn hysbys oherwydd bod gweithrediadau tebyg yn cael eu cyflawni (gweithrediadau darllen yw perfformio'n llawer amlach a gellir darllen o'r storfa) a gall y prosesydd berfformio darlleniadau ar hap cyn ysgrifennu heb aros i wrthbwyso cyfeiriadedd yr ysgrifennu gael ei gyfrifo.

Ar Γ΄l cyfrifo'r gwrthbwyso, os canfyddir croestoriad o ardaloedd cof ar gyfer ysgrifennu a darllen, bydd y prosesydd yn syml yn taflu'r canlyniad darllen a gafwyd yn hapfasnachol ac yn ailadrodd y llawdriniaeth hon. Mae'r nodwedd hon yn caniatΓ‘u cyfarwyddyd darllen i gael mynediad at hen werth mewn rhyw gyfeiriad tra nad yw gweithrediad y storfa wedi'i gwblhau eto. Ar Γ΄l cael gwared ar weithrediad hapfasnachol aflwyddiannus, mae olion ei weithrediad yn aros yn y storfa, ac ar Γ΄l hynny gellir defnyddio un o'r dulliau ar gyfer pennu cynnwys y storfa i'w adfer yn seiliedig ar ddadansoddiad o newidiadau mewn amser mynediad i ddata wedi'i storio a heb ei storio.

Mae'r bregusrwydd cyntaf (CVE-2021-35477) yn cael ei achosi gan ddiffyg ym mecanwaith dilysu rhaglen BPF. Er mwyn amddiffyn rhag ymosodiad Specter 4, mae'r dilysydd yn ychwanegu cyfarwyddyd ychwanegol ar Γ΄l storfeydd a allai fod yn broblemus i'r cof sy'n storio gwerth null i ddadleoli olion y llawdriniaeth flaenorol. Disgwyliwyd i'r gweithrediad ysgrifennu null fod yn gyflym iawn ac yn rhwystro gweithrediad hapfasnachol oherwydd ei fod yn dibynnu ar bwyntydd i ffrΓ’m stac BPF yn unig. Ond mewn gwirionedd, daeth yn bosibl creu amodau lle mae cyfarwyddyd sy'n arwain at gyflawni hapfasnachol yn llwyddo i gael ei weithredu cyn gweithrediad y storfa ragataliol.

Mae'r ail fregusrwydd (CVE-2021-3455) oherwydd y ffaith, pan fydd y dilysydd BPF yn nodi gweithrediadau arbed cof a allai fod yn beryglus, nid yw'n ystyried ardaloedd anghyfarwyddol y pentwr BPF, nad yw'r llawdriniaeth ysgrifennu gyntaf wedi'i diogelu. Mae'r nodwedd hon yn arwain at y posibilrwydd o berfformio gweithrediad darllen hapfasnachol, yn dibynnu ar ardal cof anghychwynnol, cyn gweithredu'r cyfarwyddyd siop. Dyrennir cof newydd ar gyfer y pentwr BPF heb wirio'r cynnwys sydd eisoes yn y cof a neilltuwyd, ac mae ffordd cyn i'r rhaglen BPF redeg i drin cynnwys y rhanbarth cof a fydd wedyn yn cael ei ddyrannu ar gyfer y pentwr BPF.

Ffynhonnell: opennet.ru

Ychwanegu sylw