Retbleed jẹ ikọlu tuntun lori ẹrọ ipaniyan akiyesi ti Intel ati AMD CPUs

Ẹgbẹ kan ti awọn oniwadi lati ETH Zurich ti ṣe idanimọ ikọlu tuntun lori ẹrọ ti ipaniyan akiyesi ti awọn iyipada aiṣe-taara ni Sipiyu, eyiti o jẹ ki o ṣee ṣe lati yọ alaye jade lati iranti ekuro tabi ṣeto ikọlu lori eto agbalejo lati awọn ẹrọ foju. Awọn ailagbara naa jẹ orukọ Retbleed (CVE-2022-29900, CVE-2022-29901) ati pe o sunmọ ni iseda si awọn ikọlu Specter-v2. Iyatọ naa wa si iṣeto ti ipaniyan akiyesi ti koodu lainidii nigbati o ba n ṣiṣẹ ilana “ret” (pada), eyiti o mu adirẹsi naa lati fo lati akopọ, dipo fifo aiṣe-taara nipa lilo itọnisọna “jmp”, ikojọpọ adirẹsi lati ọdọ. iranti tabi Sipiyu Forukọsilẹ.

Olukọni le ṣẹda awọn ipo fun asọtẹlẹ iyipada ti ko tọ ati ṣeto ifọkansi kan, iyipada arosọ si bulọọki koodu ti ko pese fun nipasẹ ọgbọn ipaniyan eto naa. Ni ipari, ero isise naa yoo pinnu pe asọtẹlẹ ẹka ko ni idalare ati pe yoo yi iṣẹ naa pada si ipo atilẹba rẹ, ṣugbọn data ti a ṣe ilana lakoko ipaniyan arosọ yoo pari ni kaṣe ati awọn buffers microarchitectural. Ti bulọọki ti a ṣe ni aṣiṣe ba wọle si iranti, lẹhinna ipaniyan arosọ rẹ yoo yorisi data kika lati iranti ti a fi sii sinu kaṣe pinpin.

Lati pinnu data ti o ku ninu kaṣe lẹhin awọn iṣẹ akiyesi, ikọlu le lo awọn imọ-ẹrọ ikanni ẹgbẹ lati pinnu data to ku, gẹgẹbi itupalẹ awọn ayipada ni awọn akoko wiwọle si cache ati data aiṣi. Lati yọkuro alaye ni ipinnu lati awọn agbegbe ni ipele anfani miiran (fun apẹẹrẹ, lati iranti ekuro), “awọn ohun elo” ni a lo - awọn ilana ti awọn aṣẹ ti o wa ninu ekuro ti o dara fun kika alaye akiyesi lati iranti ti o da lori awọn ipo ita ti o le ni ipa nipasẹ akolu.

Lati daabobo lodi si awọn ikọlu kilasi Specter Ayebaye ti o lo awọn ilana fo ni majemu ati aiṣe-taara, pupọ julọ awọn ọna ṣiṣe lo ilana “retpoline”, eyiti o da lori rirọpo awọn iṣẹ fifo aiṣe-taara pẹlu itọnisọna “ret”, eyiti awọn olutọsọna lo ipin asọtẹlẹ ipinlẹ akopọ lọtọ. kii ṣe lilo bulọọki asọtẹlẹ ẹka kan. Nigbati a ṣe agbekalẹ retpoline ni ọdun 2018, o gbagbọ pe awọn ifọwọyi adirẹsi Specter-like ko wulo fun ẹka ti o ni akiyesi nipa lilo itọnisọna “ret”.

Awọn oniwadi ti o ni idagbasoke ọna ikọlu Retbleed ṣe afihan iṣeeṣe ti ṣiṣẹda awọn ipo microarchitectural fun ipilẹṣẹ iyipada arosọ nipa lilo ilana “ret” ati awọn irinṣẹ ti a ṣejade lati ṣe idanimọ awọn ilana ilana (awọn ohun elo) ti o dara fun ilokulo ailagbara ninu ekuro Linux, ninu eyi ti iru awọn ipo farahan ara wọn.

Lakoko iwadii naa, a ti pese ilokulo ṣiṣẹ ti o fun laaye, lori awọn eto pẹlu Intel CPUs, lati yọkuro data lainidii lati iranti ekuro lati ilana ti ko ni anfani ni aaye olumulo ni iyara ti awọn baiti 219 fun iṣẹju kan ati deede 98%. Lori awọn ilana AMD, ṣiṣe ilokulo jẹ ga julọ-oṣuwọn jo jẹ 3.9 KB fun iṣẹju kan. Gẹgẹbi apẹẹrẹ ti o wulo, a fihan bi a ṣe le lo ilokulo ti a pinnu lati pinnu awọn akoonu inu faili /etc/shadow. Lori awọn eto pẹlu Intel CPUs, ikọlu lati pinnu elile olumulo olumulo root ni a ṣe ni awọn iṣẹju 28, ati lori awọn eto pẹlu AMD CPUs - ni awọn iṣẹju 6.

Ikọlu naa ti jẹrisi fun awọn iran 6-8 ti awọn ilana Intel ti o tu silẹ ṣaaju Q3 2019 (pẹlu Skylake), ati awọn ilana AMD ti o da lori Zen 1, Zen 1+, ati awọn microarchitectures Zen 2 ti o ti tu silẹ ṣaaju Q2021 3. Ninu awọn awoṣe ero isise tuntun bii AMD ZenXNUMX ati Intel Alder Lake, ati ni awọn ilana ARM, iṣoro naa ti dina nipasẹ awọn ọna aabo to wa. Fun apẹẹrẹ, lilo IBRS (Alaye Ihamọ Ti Ẹka Aiṣe Taara) ṣe iranlọwọ lati daabobo lodi si awọn ikọlu.

Eto awọn ayipada ti pese sile fun ekuro Linux ati hypervisor Xen, eyiti yoo dènà iṣoro naa ni sọfitiwia lori awọn CPUs agbalagba. Patch ti a dabaa fun ekuro Linux yipada awọn faili 68, ṣafikun awọn laini 1783, ati paarẹ awọn laini 387. Laanu, aabo naa nyorisi awọn idiyele ti o ga julọ - ninu awọn ọrọ ti a ṣe lori AMD ati awọn ilana Intel, idinku iṣẹ jẹ ifoju lati 14% si 39%. O dara julọ lati lo aabo ti o da lori awọn ilana IBRS, ti o wa ni awọn iran tuntun ti Intel CPUs ati atilẹyin ti o bẹrẹ pẹlu ekuro Linux 4.19.

Lori awọn olutọsọna Intel, rirọpo adirẹsi fun fofo aiṣe-taara akiyesi ni a ṣe ọpẹ si ẹya kan ti o han nigbati iṣan omi ba waye nipasẹ isunmọ isalẹ (labẹ ṣiṣan) ni Ifipamọ Stack Pada. Nigbati iru awọn ipo ba waye, ilana “ret” bẹrẹ lati lo ọgbọn yiyan adirẹsi ti o jọra ti o lo fun awọn fo aiṣe-taara deede. Diẹ sii ju awọn aaye ẹgbẹrun kan ni a ti rii ni ekuro Linux ti o ṣẹda awọn ipo fun ipilẹṣẹ iru ẹhin ẹhin ati pe o wa nipasẹ awọn ipe eto.

Lori awọn ilana AMD, ipaniyan akiyesi ti ilana “ret” ni a ṣe laisi itọkasi si ifipamọ pato-pato (Ipada Adirẹsi Ipadabọ) ati apakan asọtẹlẹ ti eka ka ilana “ret” kii ṣe bi ipadabọ iṣakoso, ṣugbọn bi ẹka aiṣe-taara , ati, gẹgẹbi, nlo data fun awọn iyipada aiṣe-taara. Labẹ awọn ipo wọnyi, o fẹrẹ jẹ eyikeyi iṣẹ “ret” ti o le de nipasẹ ipe eto le jẹ yanturu.

Ni afikun, ọran miiran tun ti ṣe idanimọ ni AMD CPUs (CVE-2022-23825, Iru Idarudapọ Ẹka) ti o ni ibatan si imuse ti awọn ẹka asanmọ - awọn ipo fun asọtẹlẹ ẹka le waye paapaa laisi awọn itọnisọna ẹka pataki, eyiti o fun laaye ni ipa lori ifipamọ asọtẹlẹ ti ẹka laisi ilana "ret". Ẹya yii ṣe idiju imuse aabo ni pataki ati nilo ṣiṣe itọju diẹ sii ti ifipamọ asọtẹlẹ ẹka. Ṣafikun aabo ni kikun si ekuro ni a nireti lati pọ si oke nipasẹ 209%.

orisun: opennet.ru

Fi ọrọìwòye kun