Google osoittaa Spectre-haavoittuvuuksien hyödyntämisen selaimella käyttämällä JavaScriptiä

Google paljasti useita päiviä sitten erilaisia ​​prototyyppejä jotka osoittavat mahdollisuuden hyödyntää haavoittuvuuksia Spectre-luokan suoritettaessa JavaScript-koodia selaimessa, käymättä läpi yllä olevia turvallisuusmenetelmiä.

Hyödynnöillä voidaan käyttää prosessin muistia joka käsittelee verkkosisältöä nykyisessä välilehdessä. Hyödyntämisen testaamiseksi käynnistettiin vuotavan sivun verkkosivusto ja operaation logiikkaa kuvaava koodi lähetetään GitHubiin.

Ehdotettu prototyyppi on suunniteltu hyökätä järjestelmiin Intel Core i7-6500U -prosessorit Linux- ja Chrome 88 -ympäristöissä, vaikka tämä ei sulje pois sitä, että hyödyntämistä voidaan muuttaa muissa ympäristöissä.

Toimintatapa ei ole erityinen prosessorit Intel: asianmukaisen sopeutumisen jälkeen Hyödyntämisen on vahvistettu toimivan järjestelmissä, joissa on kolmansien osapuolien suorittimia, mukaan lukien ARM-arkkitehtuuriin perustuva Apple M1. Pienien muutosten jälkeen hyödyntäminen toimii myös muissa käyttöjärjestelmissä ja muissa Chromium-moottoriin perustuvissa selaimissa.

Tavallisissa Chrome 88- ja Intel Skylake -prosessoreissa perustuvassa ympäristössä saavutimme tietovuodon prosessista, joka on vastuussa verkkosisällön renderoinnista nykyisessä Chrome-välilehdessä (renderöintiprosessi) 1 kilotavun sekunnin nopeudella. Lisäksi kehitettiin vaihtoehtoisia prototyyppejä, esimerkiksi hyödyntäminen, joka sallii alentuneen vakauden kustannuksella vuotonopeuden 8 kt / s käytettäessä suorituskykyä. Now () ajastin 5 mikrosekunnin (0.005 millisekunnin) tarkkuudella ). Valmistettiin myös variantti, joka toimi yhden millisekunnin ajastintarkkuudella, jota voitiin käyttää järjestämään pääsy toisen prosessin muistiin nopeudella noin 60 tavua sekunnissa.

Julkaistu demokoodi koostuu kolmesta osasta:

  • Ensimmäinen osa kalibroi ajastin ajoajan arvioimiseksi prosessorin välimuistiin jäävien tietojen noutamiseen tarvittavista toiminnoista suorittimen ohjeiden spekulatiivisen suorittamisen seurauksena.
  • Toinen osa Määrittää muistin asettelun, jota käytetään jakamalla JavaScript-taulukko.
  • Kolmas osa hyödyntää suoraan Spectre-haavoittuvuutta muistisisällön määrittämiseksi nykyisen prosessin seurauksena tiettyjen toimintojen spekulatiiviselle suorittamiselle olosuhteiden luomisen seurauksena, jonka prosessori hylkää tuloksen epäonnistuneen ennusteen määrityksen jälkeen, mutta suoritusjäljet ​​ratkaistaan ​​jaetussa välimuistissa ja voidaan palauttaa käyttämällä menetelmät välimuistin sisällön määrittämiseksi käyttämällä kolmansien osapuolten kanavia, jotka analysoivat välimuistiin tallennettujen ja välimuistissa olevien tietojen käyttöajan muutoksen.

Ehdotettu hyödyntämistekniikka eliminoi tarkat ajastimet saatavilla performance.now () -sovellusliittymän kautta ja ilman tukea SharedArrayBuffer-tyypille, jonka avulla voit luoda taulukoita jaettuun muistiin.

Hyödyntäminen sisältää Spectre-laitteen, joka aiheuttaa hallitun spekulatiivisen koodin suorittamisen, ja sivukanavan vuotoanalysaattorin, joka määrittää, mitä tietoja välimuistiin on tallennettu spekulatiivisen suorituksen aikana.

Gadget on toteutettu käyttämällä JavaScriptiä, missä alueelle yritetään päästä puskurin rajojen ulkopuolella, joka vaikuttaa haaran ennustuslohkon tilaan kääntäjän lisäämän puskurikoon tarkistuksen läsnäolon vuoksi (prosessori suorittaa spekulatiivisesti pääsyn etukäteen, mutta palauttaa tilan tarkistuksen jälkeen).

Välimuistin sisällön analysoimiseksi riittämättömässä ajastintarkkuudessa ehdotettiin menetelmää, joka huijaa prosessoreissa käytettävää Tree-PLRU-välimuistidatan poiston strategiaa ja jonka avulla jaksojen määrää lisäämällä voidaan lisätä huomattavasti eroaikaa, kun arvo palautetaan välimuistista ja välimuistissa olevan arvon puuttuessa.

Google on julkaissut prototyypin hyödyntämisestä hyökkäysten toteutettavuuden osoittamiseksi käyttämällä Spectre-luokan haavoittuvuuksia ja kannustaa web-kehittäjiä käyttämään tekniikoita, jotka minimoivat tällaisten hyökkäysten riskit.

Samalla Google uskoo, että ilman ehdotetun prototyypin merkittävää tarkistamista on mahdotonta luoda yleishyödyllisiä hyödykkeitä, jotka ovat valmiita paitsi esittelyyn myös laajaan käyttöön.

lähde: https://security.googleblog.com


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.