Google demostra l'explotació de les vulnerabilitats de Spectre usant JavaScript en un navegador

Google va donar a conèixer fa ja diversos dies diversos prototips de gestes que demostren la possibilitat d'explotar les vulnerabilitats de la classe Spectre a l'executar codi JavaScript en un navegador, sense passar pels mètodes de seguretat afegits anteriorment.

Els gestes es poden utilitzar per accedir a la memòria d'un procés que està processant contingut web a la pestanya actual. Per provar el funcionament de l'exploit, es va llançar el lloc web de la pàgina amb fuites i el codi que descriu la lògica de l'operació es publica en GitHub.

El prototip proposat està dissenyat per atacar sistemes amb processadors Intel Core i7-6500U en un entorn amb Linux i Chrome 88, tot i que això no deixa de costat que es poden realitzar canvis per utilitzar l'exploit en altres entorns.

El mètode d'operació no és específic per a els processadors Intel: després de l'adaptació adequada, es va confirmar que l'exploit funciona en sistemes amb CPU d'altres fabricants, inclòs l'Apple M1 basat en l'arquitectura ARM. Després de petits ajustos, l'exploit també funciona en altres sistemes operatius i altres navegadors basats en el motor Chromium.

En un entorn basat en processadors estàndard Chrome 88 i Intel Skylake, vam aconseguir una fuga de dades de l'procés responsable de processar el contingut web a la pestanya actual de Chrome (procés de renderitzat) a una velocitat d'1 kilobyte per segon. A més, es van desenvolupar prototips alternatius, per exemple, un exploit que permet, a costa d'una estabilitat reduïda, augmentar la taxa de fugida a 8KB / s quan es fa servir el temporitzador performance.now () amb una precisió de 5 microsegons (0.005 mil·lisegons ). També es va preparar una variant que funcionava amb una precisió de temporitzador d'un mil·lisegon, que podia usar-se per organitzar l'accés a la memòria d'un altre procés a una velocitat d'uns 60 bytes per segon.

El codi de demostració publicat consta de tres parts:

  • La primera part calibra el temporitzador per estimar el temps d'execució de les operacions necessàries per recuperar les dades que queden a la memòria cau de l'processador com a resultat de l'execució especulativa de les instruccions de la CPU.
  • La segona part defineix el disseny de memòria utilitzat a l'assignar la matriu de JavaScript.
  • La tercera part explota directament la vulnerabilitat Spectre per determinar el contingut de la memòria de el procés actual com a resultat de la creació de condicions per a l'execució especulativa de certes operacions, el resultat és descartat pel processador després de determinar un pronòstic fallit, però els rastres d'execució s'assenten en la memòria cau compartida i es poden restaurar utilitzant mètodes per determinar el contingut de la memòria cau mitjançant canals de tercers que analitzen el canvi en el temps d'accés a les dades emmagatzemades a la memòria cau i no emmagatzemats en memòria cau.

La tècnica d'explotació proposta permet prescindir dels temporitzadors d'alta precisió disponibles a través de l'API performance.now () i sense suport per al tipus SharedArrayBuffer, que permet crear arranjaments en memòria compartida.

L'exploit inclou el dispositiu Spectre, que provoca l'execució de codi especulatiu controlat, i un analitzador de fuites de canal lateral, que determina les dades que s'han introduït a la memòria cau durant l'execució especulativa.

El gadget s'implementa utilitzant una matriu de JavaScript, en la qual s'intenta accedir a una àrea fora dels límits de la memòria intermèdia, El que afecta l'estat de l'bloc de predicció de la branca causa de la presència d'una verificació de la mida de la memòria intermèdia agregada pel compilador (el processador realitza especulativament un accés abans d'hora, però reverteix l'estat després de verificar).

Per analitzar el contingut de la memòria cau en condicions de precisió de temporitzador insuficient, es va proposar un mètode que enganya l'estratègia de desallotjament de dades de la memòria cau Tree-PLRU utilitzada en processadors i permet, a l'augmentar el nombre de cicles, augmentar significativament la diferència de temps quan el valor es retorna de la memòria cau i en absència d'un valor en la memòria cau.

Google ha publicat un prototip de l'exploit per mostrar la viabilitat dels atacs utilitzant vulnerabilitats de classe Spectre i incentivar als desenvolupadors web a utilitzar tècniques que minimitzin els riscos de tals atacs.

A el mateix temps, Google creu que sense una revisió significativa de l'prototip proposat, és impossible crear gestes universals que estiguin preparats no solament per demostració, sinó també per a ús generalitzat.

font: https://security.googleblog.com


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.