Kasper, Linux-ytimen spekulatiivisen koodin laiteskanneri

Ryhmä Amsterdamin vapaan yliopiston tutkijat paljastivat blogikirjoituksen kautta työkalu nimeltä "casper" mikä korostaa sitä suunniteltu tunnistamaan koodinpätkät Linux-ytimessä, jota voidaan käyttää hyväksi Aaveluokan haavoittuvuuksia johtuu prosessorin spekulatiivisesta koodin suorittamisesta.

Niiden, jotka eivät ole tietoisia tämäntyyppisistä hyökkäyksistä, pitäisi tietää se luokan haavoittuvuudet, kuten Spectre v1, antavat mahdollisuuden määrittää muistin sisällön, tietty komentosarja (gadgetit) vaaditaan etuoikeutetussa koodissa, mikä johtaa käskyjen spekulatiiviseen suorittamiseen.

Optimoi, prosessori alkaa käyttää tällaisia ​​laitteita spekulatiivisessa tilassatai sitten määrittää, että haaraennustetta ei ole perusteltu ja palauttaa toiminnot alkuperäiseen tilaan, mutta spekulatiivisen suorituksen aikana käsitelty data on välimuistissa ja mikroarkkitehtuuripuskureissa ja on käytettävissä erilaisten jäännösdatan määritysmenetelmien poimimiseen kolmannen- puolueen kanavat.

Gadgetien skannaustyökalut mallien perusteella aiemmin saatavilla Spectrin haavoittuvuuden vuoksie osoitti erittäin suuren määrän vääriä positiivisia, kun taas monet todelliset vempaimet katosivat (kokeet osoittivat, että 99 % tällaisten työkalujen havaitsemista laitteista ei ollut käytettävissä hyökkäyksiin, ja 33 % toimivista ei ollut havaittuja laitteita, jotka voisivat johtaa hyökkäykseen).

Esittelyssä Kasper, ohimenevä (tai spekulatiivinen) suorituslaitteiden skanneri. Se käyttää korruptioanalyysikäytäntöjä mallintaakseen hyökkääjää, joka pystyy hyödyntämään mielivaltaisia ​​ohjelmisto-/laitteisto-haavoittuvuuksia ohimenevällä polulla. 

Tietoja Casperista

Laadun parantamiseksi ongelmallisten laitteiden tunnistamisesta, Kasper mallintaa haavoittuvuudet, joita hyökkääjä voi käyttää Spectre-luokan hyökkäysten jokaisessa vaiheessa: ongelmat mallinnetaan mahdollistamaan tietojen hallinta (esimerkiksi hyökkääjän tietojen korvaaminen mikroarkkitehtuurirakenteiksi vaikuttamaan myöhempään spekulatiiviseen toteutukseen) käyttämällä LVI-luokan hyökkäyksiä, pääsyn arkaluonteisiin tietoihin (esimerkiksi kun puskuri on rajojen ulkopuolella tai muistia käytetään sen vapauttamisen jälkeen) ja vuotaa arkaluonteisia tietoja (esimerkiksi jäsentämällä prosessorin välimuistin tilaa tai käyttämällä MDS-menetelmää).

Mallinnoi hyökkääjää, joka pystyy hallitsemaan tietoja (esim. muistihieronnan tai LVI-arvon lisäyksen kautta), pääsemään salaisuuksiin (esim. rajojen ulkopuolisella pääsyllä tai käyttämään vapaan jälkeen) ja vuotamaan näitä salaisuuksia (esim. välimuistipohjaisen, MDS- tai porttikiistaan ​​perustuvia salaisia ​​kanavia). 

Kun suoritat testin, ydin ottaa yhteyttä ajonaikaisiin kirjastoihin kirjoittanut Kasper ja varmista, että ne toimivat LLVM-tasolla. Tarkistuksen aikana tarkistuspisteen palautusmekanismi emuloi spekulatiivista koodin suoritusta, joka suorittaa nimenomaan väärin ennustetun koodihaaran, jonka jälkeen se palaa alkuperäiseen tilaan ennen haarukan alkamista.

Kasper yrittää myös mallintaa erilaisia ​​ohjelmisto- ja laitteistohaavoittuvuuksia, analysoi arkkitehtonisten ja mikroarkkitehtonisten vaikutusten vaikutusta ja tekee sumeita testejä mahdollisista hyökkääjän toimista. Suoritusvirtojen analysointiin käytetään Linux-ytimen DataFlowSanitizer-porttia ja fuzzing-testeihin syzkaller-paketin muokattua versiota.

Tuloksena Kasper löysi 1.379 XNUMX aiemmin tuntematonta laitetta voimakkaasti karkaistusta Linux-ytimestä. Vahvistimme havaintomme osoittamalla, että yhdelle löydetylle laitteelle toteutettiin täydellinen konseptitodistus.

Kun Linux-ydintä skannattiin Kasperilla, tunnistettiin 1379 XNUMX aiemmin tuntematonta laitetta, jotka voivat johtaa tietovuotoon käskyjen spekulatiivisen suorittamisen aikana.

On huomattava, että ehkä vain osa niistä voi aiheuttaa todellisia ongelmia, mutta osoittaakseen, että vaara on todellinen, ei vain teoreettinen, yhdelle ongelmallisista koodinpätkistä kehitettiin toimiva prototyyppi hyväksikäytöstä, mikä johti ytimen muistitietojen vuoto.

Vihdoin jos olet kiinnostunut tietämään siitä lisää Kasperista, sinun pitäisi tietää se lähdekoodi Sitä jaetaan Apache 2.0 -lisenssillä.

lähde: https://www.vusec.net


Jätä kommentti

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

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  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.