Teknika e re për shfrytëzimin e vulnerabiliteteve të klasës Spectre në Chrome

Një grup hulumtuesish nga universitetet amerikane, australiane dhe izraelite ka propozuar një teknikë të re sulmi përmes kanaleve anësore për shfrytëzimin e vulnerabiliteteve të klasës Spectre në shfletuesit që bazohen në motorin Chromium. Sulmi, i njohur me emrin Spook.js, mundëson që, përmes ekzekutimit të një kodi JavaScript, të anashkalohet mekanizmi i izolimit të faqeve dhe të lexohet përmbajtja e gjithë hapësirës adresore të procesit aktual, dmth. të arrihet në të dhënat e faqeve të hapura në tab të tjera, por që përpunohen në një proces të vetëm.

Pasi Chrome i ekzekuton faqet e ndryshme në procese të ndryshme, mundësia për realizimin e sulmeve praktike është e kufizuar nga shërbimet që lejojnë përdorues të ndryshëm të publikojnë faqet e tyre. Metoda i lejon sulmuesve, nga një faqe ku ata kanë mundësi të integrojnë kodin e tyre JavaScript, të identifikojnë praninë e faqeve të tjera të hapura nga përdoruesi në të njëjtin website dhe të nxjerrin informacione të ndjeshme nga to, për shembull, kredencialet ose të dhënat bankare, të vendosura nga sistemi i autofill në formularët web. Si demostrim është treguar se si mund të sulmohet një blog tjetër në shërbimin Tumblr, nëse pronari i tij hap një tab tjetër të blogut të sulmuesit të vendosur në të njëjtin shërbim.

Luaj videon

Një variant tjetër i aplikimit të metodës është sulmi ndaj zgjatimeve të shfletuesit, i cili lejon që gjatë instalimit të një zgjatjeje të kontrolluar nga sulmuesit, të nxirren të dhëna nga zgjatje të tjera. Si shembull, është treguar si, duke instaluar një zgjatje të dëmshme, mund të nxirren informacione të ndjeshme nga menaxheri i fjalëkalimeve LastPass.

Luaj videon

Hulumtuesit kanĂ« publikuar njĂ« prototip eksploiti qĂ« funksionon nĂ« Chrome 89 nĂ« sisteme me CPU Intel i7-6700K dhe i7-7600U. NĂ« krijimin e eksploiti janĂ« pĂ«rdorur prototipet e publikuara mĂ« parĂ« nga kompania Google tĂ« kodit JavaScript pĂ«r kryerjen e sulmeve tĂ« klasĂ«s Spectre. ËshtĂ« vĂ«nĂ« re se hulumtuesit kanĂ« arritur tĂ« pĂ«rgatitin eksploita funksionalĂ« pĂ«r sisteme qĂ« bazohen nĂ« procesorĂ«t Intel dhe Apple M1, tĂ« cilĂ«t ofrojnĂ« mundĂ«sinĂ« pĂ«r tĂ« organizuar leximin e memories me shpejtĂ«si 500 byte nĂ« sekondĂ« dhe saktĂ«si 96%. Supozohet se metoda Ă«shtĂ« e aplikueshme edhe pĂ«r procesorĂ«t AMD, por nuk Ă«shtĂ« arritur tĂ« pĂ«rgatitet njĂ« exploit plotĂ«sisht funksional.

Sulmi është i aplikueshëm për çdo shfletues të bazuar në motorin Chromium, duke përfshirë Google Chrome, Microsoft Edge dhe Brave. Studiuesit gjithashtu besojnë se metoda mund të adaptohet për të punuar me Firefox, por meqenëse motori i Firefox-i ndryshon shumë nga Chrome, puna për krijimin e një eksploit të tillë është lënë për në të ardhmen.

Për të mbrojtur nga sulmet që lidhen me ekzekutimin spekulativ të instrukcioneve nëpërmjet shfletuesit, në Chrome është implementuar segmentimi i hapësirës adresuese - izolimi në sandbox lejon punën e JavaScript vetëm me tregues 32-bitësh dhe ndan memorjen e përpunuesve në kupa (heap) 4GB që nuk ndërthuren. Për të organizuar aksesin në të gjithë hapësirën adresuese të procesit dhe për të anashkaluar kufizimin 32-bitësh, studiuesit përfshinë teknikën e Type Confusion, e cila lejon që motorin JavaScript ta përpunojë një objekt me një tip të pasaktë, duke i dhënë mundësinë për të formuar një tregues 64-bitësh bazuar në kombinimin e dy vlerave 32-bitëshe.

Thelbi i sulmit është se gjatë përpunimit të një objekti të dëmshëm të formuar në mënyrë specifike në motorin JavaScript krijohen kushte që çojnë në ekzekutimin spekulativ të instrukcioneve që kryejnë akses në një array. Objekti përzgjidhet në një mënyrë që fushat e kontrolluara nga sulmuesit vendosen në një zonë ku përdoret një tregues 64-bitësh. Duke qenë se tipi i objektit të dëmshëm nuk korrespondon me tipin e array-t që përpunohen, në kushte normale, veprime të tilla bllokohen në Chrome nga mekanizmi i deoptimizimit të kodit, i përdorur për aksesin në array. Për të zgjidhur këtë problem, kodi për sulmin e Type Confusion del në një bllok kushtor 'if', i cili nuk aktivizohet në kushte normale, por ekzekutohet në modin spekulativ, kur procesori bën një parashikim të gabuar të dega tjetër.

Si pasojë, procesori spekule aktivizon një tregues 64-bitësh të formuar dhe rregullon gjendjen pas përcaktimit të parashikimit të dështuar, por gjurmët e ekzekutimit mbesin në cache të përgjithshëm dhe mund të rikuperohen përmes metodave të përcaktimit të përmbajtjes së caches nga kanale të jashtme, duke analizuar ndryshimin e kohës së aksesit në të dhënat e ruajtura dhe të pa ruajtura. Për analizimin e përmbajtjes së caches në kushte të pasaktësisë së mjaftueshme të orës, të disponueshme në JavaScript, përdoret metoda e propozuar nga Google, e cila mashtron strategjinë e përdorur nga procesorët për shkarkimin e të dhënave nga cache Tree-PLRU dhe lejon, përmes rritjes së numrit të cikleve, të rrisë në mënyrë të konsiderueshme diferencën në kohë në prani dhe mungesë të vlerës në cache.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster