Cascade-verktøysettet ble introdusert, som gjorde det mulig å identifisere 29 sårbarheter i RISC-V-prosessorer

Forskere fra ETH Zürich har utviklet et uklart testsystem kalt Cascade, rettet mot å identifisere feil og sårbarheter i prosessorer basert på RISC-V-arkitekturen. Verktøyene har allerede identifisert 37 feil i prosessorer, hvorav 29 ble klassifisert som tidligere ukjente sårbarheter.

Cascade-utviklere prøvde å ta hensyn til manglene ved tidligere eksisterende prosessorfuzzing-testsystemer, som var begrenset til å utføre bare korte deler av koden, som dekker en liten del av instruksjonssettet og et begrenset antall kombinasjoner av kommandoutførelse. Cascade er rettet mot å generere store og komplekse programmer som spenner over ikke-trivielle instruksjonsflyter og resulterer i atypiske CPU-tilstander. I Cascade, ved å bruke den eksisterende referansemodellen til RISC-V-instruksjonssettet (RISC-V ISA), dannes initialt store randomiserte og sammenkoblede utførelsesstrømmer (kontrollflyt) og datastrømmer.

Utførelsen og dataflytene i det genererte programmet er tett sammenvevd, så hvis det oppstår en feil i dataflyten under utførelse, vil den fosse inn i den videre fremdriften av utførelse og vil mest sannsynlig endre utførelsesflyten, noe som vil føre til ufullstendig fullføring av programmet. For å identifisere problematiske instruksjoner i uferdige programmer, beskjærer Cascade automatisk det kjørende programmet over tid til det finner minimumssettet med instruksjoner som forårsaker feilen. Denne tilnærmingen er mye enklere å implementere og raskere enn klassiske feildeteksjonsmetoder basert på avstemmingstilstander etter hver utførte instruksjon etter faktisk utførelse på CPU og etter utførelse ved bruk av en referansemodell.

Cascade-verktøysettet ble introdusert, som gjorde det mulig å identifisere 29 sårbarheter i RISC-V-prosessorer

Ved hjelp av Cascade ble fem prosessorer basert på RISC-V-arkitekturen testet – Kronos, PicoRV32, VexRiscv, CVA6 og BOOM, der totalt 37 feil ble identifisert. De fleste feilene resulterte i sikkerhetsproblemer, for eksempel forårsaket noen problemer tjenestenekt eller informasjonslekkasje på grunn av spekulativ utførelse av instruksjoner av en uprivilegert bruker.

  • 12 feil førte til et brudd på integriteten til datastrømmen, som kan brukes til å endre resultatet av visse beregninger i en annen brukers kode når angriperen dannet en viss tilstand av mikroarkitektoniske strukturer. For eksempel tillot en dynamisk avrundingsfeil i CPU BOOM en angriper å tvinge offerprosessen til å bruke en annen flytepunktsavrundingsmodus.
  • 18 feil førte til informasjonslekkasje, som for eksempel tillot en angriper å få sidekanaltilgang til tilstanden til FPU-flagg og -registre.
  • 9 feil gjorde det mulig å avskjære kjøringen, noe som gjorde det mulig for en angriper å påvirke kjøringen av et annet program. For eksempel førte en feil i CVA6-prosessoren til å sette feil flagg som påvirket resultatet av beregninger eller påvisning av overløp, og en feil i VexRiscv-prosessorer under visse forhold førte til feil utførelse av registersammenligningsoperasjoner.
  • 9 feil var relatert til generering av falske unntak, som kan brukes av angripere for å omgå isolasjonsmoduser brukt i TEE-miljøer (Trusted Execution Environment). For eksempel førte lesing av noen CSR-registre (Control and Status Register) til et unntak, som tillot angriperen å simulere interaksjon med miljøet.
  • 4 feil ble forårsaket av mangel på riktige kontroller og tillot en angriper å omgå sikkerhetsrelaterte kontroller (for eksempel sjekker for FPU-bruk av andre kjerner), feilrepresentere tilgjengelige CPU-funksjoner eller lure analysatorer.
  • Tre feil førte til at prosessoren fryste når han utførte visse manipulasjoner på et hvilket som helst rettighetsnivå.
  • En feil er klassifisert som muligheten for å bygge inn skjult logikk på chipdesignstadiet. Problemet er tilstede i Yosys-pakken med åpen kildekode, designet for syntese av registeroverføringsnivå (RTL) og brukt i CPU-design og -emulering. Feilen førte til syntesen av feil logikk i FPU-en til CVA6-prosessoren. En ondsinnet utvikler kan bruke dette problemet til å introdusere en skjult feil i et design som bruker Yosys for logisk syntese ved å sende en tilsynelatende uskyldig Register Transfer Layer (RTL) beskrivelse.
  • Ikke-sikkerhetsrelaterte feil inkluderer problemer med ytelsestellere i Kronos-, VexRiscv- og BOOM-prosessorer, som fører til forvrengninger ved telleinstruksjoner.

Cascade-verktøysettet ble introdusert, som gjorde det mulig å identifisere 29 sårbarheter i RISC-V-prosessorer


Kilde: opennet.ru

Legg til en kommentar