iLeakage estas metodo por ekspluati vundeblecon en la CPU de Apple per retumiloj bazitaj sur la WebKit-motoro.

Esploristoj de la Kartvelia Instituto pri Teknologio, la Universitato de Miĉigano kaj la Ruhr-Universitato evoluigis la atakteknikon iLeakage, kiu ebligas ekspluati vundeblecon en la ARM-procesoroj de Apple A- kaj M-serio malfermante speciale desegnitan paĝon en la retumilo. Ekspluato-prototipoj preparitaj de la esploristoj permesas, kiam oni rulas JavaScript-kodon en retumilo, ekscii la enhavon de retejoj malfermitaj en aliaj langetoj.Ekzemple ili pruvis la kapablon determini la tekston de letero malfermita en Gmail-langeto, vidi Jutubo. historio, kaj retrovu la pasvorton enigitan de la pasvortmanaĝero de LastPass en la ensalutformularon. Instagram. La atako aplikeblas al la Safari-retumilo en sistemoj kun macOS kaj ajnaj retumiloj sur la iOS-platformo (Apple-reguloj postulas, ke ĉiuj iOS-retumiloj uzu nur la sistemmotoron WebKit, kiu estas komuna al Safaro).

Kvankam la atako nur validas por Apple-produktoj, ĝi ja ofertas interesan manieron preterpasi tempigilojn rezoluciajn limigojn en la WebKit-motoro, kiu eble povus esti utila por preteriri similajn restriktojn en aliaj retumiloj. La vundebleco identigita en la blatoj Apple M1 kaj M2 memorigas la klasikan vundeblecon Spectre v1 kaj ankaŭ kondukas al liko de memorenhavo dum farado de operacioj en spekula reĝimo, kiuj, en kazo de malĝusta antaŭdiro, estas forĵetitaj de la procesoro, sed spuroj de ilia ekzekuto estas deponitaj en la procesorkaŝmemoro.

En ĉi tiu atakmetodo, spekula ekzekuto ebligis krei primitivon por legi arbitrajn 64-bitajn montrilojn en la adresspaco de la procezo respondeca pri bildigo de la enhavo de paĝoj en la retumilo. Por akiri aliron al la adrespaco de la procezo en kiu la retejo de aliulo estas prezentita, oni uzis lertaĵon por malfermi la eksterteran paĝon ekzamenantan en ŝprucfenestro uzante la JavaScript window.open() metodo. En ĉi tiu kazo, la retejo estis malfermita ne en aparta procezo, sed en la sama procezo kun la kodo de la atakanto.

Kiel sekureca mezuro, la WebKit-motoro nur permesas al JavaScript funkcii kun plenplenaj 35-bitaj montriloj. Por provizi aliron al la tuta proceza adresspaco kaj preteriri la 35-bitan limon, la esploristoj uzis la Type Confusion-teknikon por devigi la JavaScript-motoron prilabori objekton kun malĝusta tipo. Dum prilaborado de speciale dizajnita JavaScript-objekto en la motoro, kondiĉoj estas kreitaj kiuj kondukas al konjekta plenumo de instrukcioj kiuj aliras la tabelon.

Ĉar la speco de la objekto ne kongruas kun la speco de la prilaborita tabelo, en normalaj kondiĉoj tiaj agoj estas blokitaj, do la kodo por la Type Confusion-atako estas metita en kondiĉan "se" blokon, kiu ne estas aktivigita sub normalaj kondiĉoj. , sed estas efektivigita en konjekta reĝimo se la procesoro neĝuste antaŭdiras plian disbranĉiĝon. Kiel rezulto, la procesoro konjekte aliras la generitan 64-bitan montrilon, sed ruliĝas reen la ŝtaton post determinado de malsukcesa prognozo. En ĉi tiu kazo, spuroj de konjekta ekzekuto estas deponitaj en la komuna kaŝmemoro kaj povas esti restarigitaj uzante metodojn por determini la enhavon de la kaŝmemoro tra flankaj kanaloj.

Por ĉerpi datumojn de la CPU L1-kaŝmemoro restanta post konjektaj operacioj, la atako uzas modifon de la metodo pLRU (pseŭdo Malplej Lastatempe Uzita) antaŭe proponita de Guglo. En ĉi tiu kazo, la originala pLRU-metodo baziĝas sur mezurado de prokrastoj dum aliro al datumoj, kies diferenco ebligas juĝi ĉu aŭ ne certa sekvenco estas en la procesora kaŝmemoro (se la datumoj estas konservitaj, la operacio estas farita pli rapide, kaj se ne, pli malrapide). Por protekti kontraŭ procesora kaŝmemoro-sondado en modernaj retumiloj, la precizeco de la tempigilo estas signife reduktita al nivelo kiu ne permesas detekti diferencojn.

Por venki la tempigilo-precizeclimigon en la iLeakage-atako, tekniko estas proponita por determini la ĉeeston aŭ foreston de datenoj en la kaŝmemoro uzante raskondiĉon. La esenco de la metodo estas samtempe lanĉi du fadenojn - la ĉefa kaj la referenco. Referencfadeno inkludas sekvencon de instrukcioj kiuj estas efektivigitaj en specifa referenctempo. Je la komenco mem de la ekzekuto de la referenca fadeno, variablo kunhavita kun la ĉeffadeno estas agordita al 1, kaj post kiam la instrukcioj estas ekzekutitaj, la variablo estas rekomencigita al nulo. Tiel, komuna variablo nur havas la valoron 1 por certa mallonga tempo.

La ĉeffadeno iniciatas ciklon por determini datenojn en la kaŝmemoro uzante la pLRU-metodon. Signo de la ĉeesto aŭ foresto de kontrolitaj datenoj en la kaŝmemoro ne estas la tempomezurado de la tempigilo, sed la stato de la komuna variablo post kontrolado. Se la variablo havas valoron de 1, tiam la operacio kompletigita pli rapide ol la referenca kodo estis efektivigita en paralela fadeno, t.e. la datumoj estis servitaj el la kaŝmemoro. Se la variablo enhavas la valoron 0, tiam la operacio daŭris relative longan tempon por kompletigi pro la manko de datumoj en la kaŝmemoro, kaj la referenca kodo en la paralela fadeno havis tempon por esti plene prilaborita.

iLeakage - metodo por ekspluati vundeblecon en la CPU de Apple per retumiloj bazitaj sur la WebKit-motoro

La precizeco de la proponita metodo por determini kaŝmemorenhavon varias de 90% ĝis 99%, kaj la agado de datumdeterminado estas de 23 ĝis 34 bajtoj sekundo, depende de la procesoro kaj aparato. Antaŭ ol fari la atakon, alĝustigo de la referenca kodo estas postulata, kiu daŭras proksimume kvin minutojn. Post kiam kalibrado estas kompleta por la nuna sistemo, necesas proksimume 64 sekundoj por ĉerpi 30-karakteran ĉenon.

iLeakage - metodo por ekspluati vundeblecon en la CPU de Apple per retumiloj bazitaj sur la WebKit-motoro
iLeakage - metodo por ekspluati vundeblecon en la CPU de Apple per retumiloj bazitaj sur la WebKit-motoro

Aldone, ni povas noti la publikigon de prototipa ekspluato, kiu uzas la vundeblecon Zenbleed en AMD-procesoroj bazitaj sur la mikroarkitekturo Zen2 por ĉerpi datumojn prilaboritajn en aliaj procezoj kiam oni malfermas paĝon kun la ekspluato en Chrome. Aldone al la vundebleco Zenbleed (CVE-2023-20593), la ekspluato ankaŭ implikas la vundeblecon CVE-2023-3079 en la V8-motoro, fiksita en Chrome 115.

fonto: opennet.ru

Aldoni komenton