Bag-ong Teknik sa Pagpahimulos sa mga Kakulangan sa Klase sa Spectre sa Chrome

Usa ka grupo sa mga tigdukiduki gikan sa American, Australian ug Israeli nga mga unibersidad nagsugyot og usa ka bag-ong side-channel attack technique aron pahimuslan ang Specter-class nga mga kahuyangan sa mga browser base sa Chromium engine. Ang pag-atake, nga gi-codenamed Spook.js, nagtugot kanimo sa paglaktaw sa mekanismo sa pagkahimulag sa site pinaagi sa pagpadagan sa JavaScript code ug pagbasa sa mga sulod sa tibuok address space sa kasamtangan nga proseso, i.e. access data gikan sa mga panid nga nagdagan sa ubang mga tab, apan giproseso sa samang proseso.

Tungod kay ang Chrome nagpadagan sa lainlaing mga site sa lainlaing mga proseso, ang abilidad sa paghimo sa mga praktikal nga pag-atake limitado sa mga serbisyo nga nagtugot sa lainlaing mga tiggamit sa pag-host sa ilang mga panid. Gitugotan sa pamaagi, gikan sa usa ka panid diin ang tig-atake adunay higayon nga ma-embed ang iyang JavaScript code, aron mahibal-an ang presensya sa ubang mga panid nga giablihan sa tiggamit gikan sa parehas nga site ug pagkuha sa kompidensyal nga kasayuran gikan kanila, pananglitan, mga kredensyal o mga detalye sa bangko nga gipuli. pinaagi sa sistema sa auto-filling fields sa web forms. Ingon usa ka demonstrasyon, gipakita kung giunsa nimo pag-atake ang blog sa laing tawo sa serbisyo sa Tumblr kung ang tag-iya niini magbukas sa blog sa mga tig-atake nga gi-host sa parehas nga serbisyo sa lain nga tab.

Ang laing kapilian sa paggamit sa pamaagi mao ang pag-atake sa mga add-on sa browser, nga nagtugot, sa dihang nag-instalar sa usa ka add-on nga kontrolado sa tig-atake, sa pagkuha sa datos gikan sa ubang mga add-on. Isip usa ka pananglitan, gipakita namo kung giunsa pinaagi sa pag-instalar og malisyoso nga add-on nga imong makuha ang kompidensyal nga impormasyon gikan sa LastPass password manager.

Ang mga tigdukiduki nagpatik sa usa ka prototype sa usa ka pagpahimulos nga nagtrabaho sa Chrome 89 sa mga sistema nga adunay CPUIntel i7-6700K ug i7-7600U. Sa paghimo sa pagpahimulos, ang mga prototype sa JavaScript code nga gipatik kaniadto sa Google gigamit sa paghimo sa mga pag-atake sa klase sa Specter. Namatikdan nga ang mga tigdukiduki nakahimo sa pag-andam sa pagtrabaho nga mga pagpahimulos alang sa mga sistema nga gibase sa Intel ug Apple M1 nga mga processor, nga nagpaposible sa pag-organisar sa pagbasa sa memorya sa gikusgon nga 500 bytes kada segundo ug usa ka katukma sa 96%. Gituohan nga ang pamaagi magamit usab sa mga processor sa AMD, apan dili posible ang pag-andam sa usa ka fully functional exploit.

Ang pag-atake magamit sa bisan unsang mga browser nga gibase sa makina sa Chromium, lakip ang Google Chrome, Microsoft Edge ug Brave. Nagtuo usab ang mga tigdukiduki nga ang pamaagi mahimong ipahiangay sa pagtrabaho sa Firefox, apan tungod kay ang makina sa Firefox lahi kaayo sa Chrome, ang trabaho sa paghimo sa ingon nga pagpahimulos nahabilin alang sa umaabot.

Aron mapanalipdan batok sa mga pag-atake nga nakabase sa browser nga may kalabotan sa espekulatibo nga pagpatuman sa mga panudlo, gipatuman sa Chrome ang pagbahinbahin sa wanang sa address - ang pag-inusara sa sandbox nagtugot sa JavaScript nga molihok lamang sa 32-bit nga mga pointer ug gipaambit ang panumduman sa mga tigdumala sa dili managsama nga 4GB nga mga pundok. Aron mahatagan ang access sa tibuuk nga luna sa address sa proseso ug laktawan ang 32-bit nga limitasyon, gigamit sa mga tigdukiduki ang usa ka teknik nga gitawag nga Type Confusion, nga nagpugos sa makina sa JavaScript sa pagproseso sa usa ka butang nga adunay dili husto nga tipo, nga nagpaposible nga maporma ang usa ka 64-bit. pointer base sa kombinasyon sa duha ka 32-bit values.

Ang esensya sa pag-atake mao nga kung ang pagproseso sa usa ka espesyal nga gidisenyo nga malisyoso nga butang sa makina sa JavaScript, gihimo ang mga kondisyon nga mosangput sa espekulatibo nga pagpatuman sa mga panudlo nga nag-access sa array. Ang butang gipili sa paagi nga ang mga field nga kontrolado sa tig-atake gibutang sa lugar diin gigamit ang 64-bit pointer. Tungod kay ang matang sa malisyosong butang dili motakdo sa matang sa array nga giproseso, ubos sa normal nga mga kondisyon ang maong mga aksyon gibabagan sa Chrome pinaagi sa mekanismo sa pag-deoptimize sa code nga gigamit sa pag-access sa mga arrays. Aron masulbad kini nga problema, ang code alang sa pag-atake sa Type Confusion gibutang sa usa ka conditional "kung" block, nga wala gi-activate ubos sa normal nga mga kondisyon, apan gipatuman sa speculative mode, kung ang processor sayop nga nagtagna sa dugang nga branching.

Ingon nga resulta, ang processor espekulatibo nga nag-access sa namugna nga 64-bit pointer ug nag-roll balik sa estado human sa pagtino sa usa ka napakyas nga panagna, apan ang mga pagsubay sa pagpatay nagpabilin sa gipaambit nga cache ug mahimong ibalik gamit ang side-channel cache detection nga mga pamaagi nga nag-analisar sa mga kausaban sa mga oras sa pag-access sa naka-cache ug wala naka-cache nga datos. Aron ma-analisar ang mga sulud sa cache sa mga kondisyon nga dili igo nga katukma sa timer nga magamit sa JavaScript, gigamit ang usa ka pamaagi nga gisugyot sa Google, nga naglimbong sa diskarte sa pagpalayas sa cache sa Tree-PLRU nga gigamit sa mga processor ug gitugotan, pinaagi sa pagdugang sa gidaghanon sa mga siklo, madugangan ang kalainan sa oras kung adunay usa ka kantidad ug wala sa cache. .

Source: opennet.ru

Idugang sa usa ka comment