Fanafihana fitrandrahana cache CPU nampiharina tamina mpitety tranonkala tsy misy JavaScript

Nisy ekipa mpikaroka avy amin'ny anjerimanontolo Amerikana, Israeliana ary Aostraliana namolavola fanafihana telo izay mandeha amin'ny mpitety tranonkala mba haka vaovao momba ny votoatin'ny cache processeur. Ny fomba iray dia miasa amin'ny navigateur tsy misy JavaScript, ary ny roa hafa dia mandingana ny fomba fiarovana efa misy amin'ny fanafihana amin'ny sisiny, anisan'izany ireo ampiasaina amin'ny navigateur Tor sy DeterFox. Navoaka ao amin'ny GitHub ny kaody hanehoana ny fanafihana, ary koa ny singa mpizara ilaina amin'ny fanafihana.

Mba hamakafaka ny votoatin'ny cache, ny fanafihana rehetra dia mampiasa ny fomba Prime + Probe, izay misy ny famenoana ny cache miaraka amin'ny soatoavina mahazatra sy ny fitadiavana fiovana amin'ny fandrefesana ny fotoana fidirana amin'izy ireo rehefa mameno azy ireo. Mba hialana amin'ny rafitra fiarovana misy ao amin'ny navigateur izay manelingelina ny fandrefesana ny fotoana marina, amin'ny safidy roa, ny antso dia atao amin'ny mpizara DNS na WebSocket fehezin'ny mpanafika, izay mitazona ny diarin'ny fotoanan'ny fangatahana voaray. Amin'ny endrika iray, ny fotoana famaliana DNS raikitra dia ampiasaina ho fanondroana fotoana.

Ny fandrefesana natao tamin'ny server DNS ivelany na WebSocket, mampiasa rafitra fanasokajiana mifototra amin'ny fianarana milina, dia ampy haminavina ny soatoavina miaraka amin'ny fahitsiana hatramin'ny 98% amin'ny scenario tsara indrindra (80-90%). Ny fomba fanafihana dia nosedraina tamin'ny sehatra hardware isan-karazany (Intel, AMD Ryzen, Apple M1, Samsung Exynos) ary voaporofo fa manerantany.

Fanafihana fitrandrahana cache CPU nampiharina tamina mpitety tranonkala tsy misy JavaScript

Ny variana voalohany amin'ny fanafihana DNS Racing dia mampiasa fampiharana mahazatra ny fomba Prime + Probe amin'ny alΓ lan'ny array JavaScript. Ny tsy fitovian-kevitra dia mipoitra amin'ny fampiasana fameram-potoana mifototra amin'ny DNS ivelany sy mpandrindra onerror, izay mipoitra rehefa misy andrana mametraka sary avy amin'ny sehatra tsy misy. Ny fameram-potoana ivelany dia mamela ny fanafihana Prime+Probe amin'ny navigateur izay mametra na manakana tanteraka ny fidirana amin'ny fameram-potoana JavaScript.

Ho an'ny mpizara DNS iray ao amin'ny tambajotra Ethernet mitovy, ny fahamarinan'ny fameram-potoana dia tombanana ho eo amin'ny 2 ms eo ho eo, izay ampy hanaovana fanafihana amin'ny sisiny (ho fampitahana, ny fahamarinan'ny fameram-potoana JavaScript mahazatra ao amin'ny Tor Browser dia nihena ho 100 ms). Ho an'ny fanafihana dia tsy ilaina ny fanaraha-maso ny mpizara DNS, satria voafantina ny fotoana hanatanterahana ny fandidiana mba ho famantarana ny fahavitan'ny fanamarinana teo aloha ny fotoana famaliana ny DNS (miankina amin'ny hoe nipoitra ny mpandrindra onerror. aloha na aoriana, misy fehin-kevitra raisina momba ny hafainganam-pandehan'ny fisavana amin'ny cache).

Ny fomba fanafihana faharoa, "String and Sock", dia mikendry ny handalo ny teknika fiarovana izay mametra ny fampiasana ny array ambany amin'ny JavaScript. Raha tokony ho array, String sy Sock dia mampiasa asa amin'ny tady lehibe dia lehibe, ny haben'izy ireo no voafidy ka ny fari-piadidiana dia mandrakotra ny cache LLC manontolo (Last level cache). Manaraka, amin'ny fampiasana ny indexOf() asa, dia karohina kely misy tady ao amin'ny tady, izay tsy hita amin'ny voalohany amin'ny tady loharano, izany hoe. ny asa fikarohana dia miteraka famerimberenana ny tady manontolo. Koa satria ny haben'ny tsipika dia mifanandrify amin'ny haben'ny cache LLC, ny scanning dia ahafahanao manao asa fisavana cache nefa tsy manodinkodina ny arrays. Mba handrefesana ny fahatarana, fa tsy DNS, dia misy antso atao amin'ny mpizara WebSocket fehezin'ny mpanafika - alohan'ny sy aorian'ny fahavitan'ny asa fikarohana dia alefa amin'ny tsipika ny fanontaniana, mifototra amin'ny kajy ataon'ny mpizara ny fahatarana ampiasaina amin'ny famakafakana ny cache. votoaty.

Ny karazany fahatelo amin'ny fanafihana "CSS PP0" dia ampiharina amin'ny HTML sy CSS, ary afaka miasa amin'ny navigateur manana JavaScript kilemaina. Ny fomba dia mitovy amin'ny "String and Sock", fa tsy mifamatotra amin'ny JavaScript. Mandritra ny fanafihana dia amboarina amin'ny alalan'ny saron-tava ny andian-tsafidy CSS. Ny tady lehibe voalohany mameno ny cache dia apetraka amin'ny famoronana tag div miaraka amin'ny anarana kilasy lehibe. Ao anatiny dia misy andiana div hafa miaraka amin'ny famantarana azy manokana. Ny tsirairay amin'ireo div misy akany ireo dia manana ny fombany manokana miaraka amin'ny mpifidy izay mikaroka zana-tsipika. Rehefa mandika pejy iray, ny mpitety tranonkala dia manandrana manodina ny div anatiny aloha, izay miteraka asa fikarohana amin'ny laharana lehibe. Ny fikarohana dia atao amin'ny fampiasana saron-tava iniana tsy hita ary mitarika mankany amin'ny famerenana ny tsipika manontolo, aorian'izay dia mipoitra ny toe-javatra "tsia" ary manandrana mametraka sary ambadika manondro sehatra kisendrasendra: #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 ...

Ny subdomains dia omen'ny mpizara DNS an'ny mpanafika, izay afaka mandrefy ny fahatarana amin'ny fandraisana fangatahana. Ny mpizara DNS dia mamoaka NXDOMAIN ho an'ny fangatahana rehetra ary mitahiry ny diarin'ny fotoana marina hanaovana ny fangatahana. Vokatry ny fanodinana andian-div, ny mpizara DNS mpanafika dia mandray andiana fangatahana, ny fahatarana eo anelanelan'izy ireo dia mifandray amin'ny vokatry ny fanamarinana ny atiny cache.

Fanafihana fitrandrahana cache CPU nampiharina tamina mpitety tranonkala tsy misy JavaScript


Source: opennet.ru

Add a comment