Google huet d'Ausbeutung vu Spectre Schwachstelle bewisen duerch JavaScript Ausféierung am Browser

Google huet e puer Exploit Prototypen publizéiert, déi d'Méiglechkeet weisen, Spectre Klass Schwachstelle beim Ausféieren vun JavaScript Code am Browser auszeüben, déi virdru bäigefüügt Schutzmethoden ëmgoen. Exploit kann benotzt ginn Zougang zu der Erënnerung vun der Prozess Veraarbechtung Web Inhalt an der aktueller Reiter ze kréien. Fir d'Operatioun vum Exploit ze testen, gouf d'Websäit leaky.page gestart, an de Code deen d'Logik vun der Aarbecht beschreift gouf op GitHub gepost.

De proposéierte Prototyp ass entwéckelt fir Systemer mat Intel Core i7-6500U Prozessoren ze attackéieren an engem Ëmfeld mat Linux a Chrome 88. Fir den Ausbeutung fir aner Ëmfeld ze benotzen, sinn Ännerungen erfuerderlech. D'Exploitatiounsmethod ass net spezifesch fir Intel Prozessoren - no passenden Adaptatioun gouf den Ausbeutung bestätegt fir op Systemer mat CPUs vun aneren Hiersteller ze schaffen, dorënner den Apple M1 baséiert op der ARM Architektur. No klengen Upassungen ass d'Exploit och an anere Betribssystemer an an anere Browser baséiert op der Chromium-Moteur.

An engem Ëmfeld baséiert op Standard Chrome 88 an Intel Skylake Prozessoren, war et méiglech Daten aus dem Prozess verantwortlech fir d'Veraarbechtung vum Webinhalt an der aktueller Chrome Tab (Renderer Prozess) mat enger Geschwindegkeet vun 1 Kilobyte pro Sekonn ze lecken. Zousätzlech goufen alternativ Prototypen entwéckelt, zum Beispill en Ausbeutung, deen et erlaabt, op d'Käschte vun der Stabilitéit ze reduzéieren, de Leckquote op 8kB/s ze erhéijen wann Dir de Performance.now() Timer mat enger Genauegkeet vu 5 Mikrosekonnen (0.005 Millisekonnen) benotzt. ). Eng Versioun gouf och virbereet, déi mat enger Timer Genauegkeet vun enger Millisekonnen geschafft huet, déi benotzt ka ginn fir den Zougang zu der Erënnerung vun engem anere Prozess mat enger Geschwindegkeet vu ronn 60 Bytes pro Sekonn ze organiséieren.

De publizéierten Demo Code besteet aus dräi Deeler. Den éischten Deel kalibréiert den Timer fir d'Ausféierungszäit vun den Operatiounen ze schätzen, déi néideg sinn fir Daten ze restauréieren, déi am Prozessor-Cache bleiwen als Resultat vun der spekulativer Ausféierung vun CPU-Instruktiounen. Den zweeten Deel bestëmmt d'Erënnerung Layout benotzt wann der JavaScript Array allocéiert.

Den drëtten Deel exploitéiert direkt d'Spectre Schwachstelle fir d'Erënnerungsinhalt vum aktuellen Prozess ze bestëmmen als Resultat vun der Schafung vun Konditioune fir d'spekulativ Ausféierung vu bestëmmte Operatiounen, d'Resultat vun deem vum Prozessor ofgeschaaft gëtt no der Bestëmmung vun enger net erfollegräicher Prognose, awer Spure vun der D'Ausféierung ginn am allgemenge Cache deposéiert a kënne mat Methoden restauréiert ginn fir den Inhalt vum Cache vun Drëtt-Partei-Kanäl ze bestëmmen, déi Ännerungen an der Zougangszäit zu cachéierten an ongecached Daten analyséieren.

Déi proposéiert Ausbeutungstechnik mécht et méiglech ouni héich Präzisioun Timer ze maachen, déi duerch d'performance.now () API verfügbar sinn, an ouni Ënnerstëtzung fir den SharedArrayBuffer Typ, wat et erlaabt Arrays am gemeinsame Gedächtnis ze kreéieren. Den Exploit enthält de Spectre Gadget, deen kontrolléiert spekulativ Ausféierung vum Code verursaacht, an e Side-Channel Leak Analyser, deen cachedaten erkennt, déi während der spekulativer Ausféierung kritt goufen.

De Gadget gëtt mat engem JavaScript-Array implementéiert, an deem e Versuch gemaach gëtt fir Zougang zu engem Gebitt ausserhalb vun de Puffergrenzen z'erreechen, wat den Zoustand vum Branche-Prognoseblock beaflosst wéinst der Präsenz vun enger Puffergréisst-Check, déi vum Compiler bäigefüügt gëtt (de Prozessor leeft spekulativ aus den Zougang, kuckt no vir, awer rullt de Staat zréck no der Kontroll). Fir den Inhalt vum Cache ënner Bedingungen vun net genuch Timer Genauegkeet ze analyséieren, ass eng Method proposéiert ginn, déi d'Tree-PLRU Cache Eviction Strategie, déi a Prozessoren benotzt gëtt, täuscht an erlaabt, andeems d'Zuel vun den Zyklen eropgeet, den Ënnerscheed an der Zäit wesentlech ze erhéijen wann Dir zréckkënnt. e Wäert aus dem Cache a wann et kee Wäert am Cache ass.

Et gëtt bemierkt datt Google e Prototyp vum Ausbeutung publizéiert huet fir d'Machbarkeet vun Attacken mat Spectre Klass Schwachstelle ze weisen an Webentwéckler ze encouragéieren Techniken ze benotzen déi d'Risiken vun esou Attacken minimiséieren. Zur selwechter Zäit mengt Google datt ouni bedeitend Ëmaarbechtung vum proposéierte Prototyp et onméiglech ass universell Ausnotzen ze kreéieren déi net nëmme fir Demonstratioun prett sinn, awer och fir verbreet Benotzung.

Fir de Risiko ze reduzéieren, sinn Site Besëtzer encouragéiert déi kierzlech implementéiert Header Cross-Origin Opener Policy (COOP), Cross-Origin Embedder Policy (COEP), Cross-Origin Resource Policy (CORP), Fetch Metadata Request, X-Frame- Optiounen, X -Content-Type-Optiounen a SameSite Cookie. Dës Mechanismen schützen net direkt géint Attacken, awer si erlaben Iech Sitedaten aus Leckage a Prozesser ze isoléieren, an deenen de JavaScript Code vum Angreifer ausgefouert ka ginn (de Leck geschitt aus der Erënnerung vum aktuelle Prozess, deen nieft dem Angreifer Code , kann och Daten vun enger anerer Säit veraarbecht, déi an deemselwechte Tab opgemaach ass). D'Haaptidee ass d'Ausféierung vum Site Code a verschiddene Prozesser vun Drëtt-Partei Code ze trennen, deen aus onzouverlässeg Quellen kritt, zum Beispill duerch en iframe abegraff.



Source: opennet.ru

Setzt e Commentaire