Kiihtyy SoC-tietoturvan validointiin. Innovaatio todentamisessa

Lähdesolmu: 1853830

Fuzzing tarkoittaa ohjelmiston todentamisessa, mitä satunnaistaminen on laitteistovarmennusta. Voiko sumea lähestymistapa parantaa laitteiston tietoturvatestausta? Paul Cunningham (GM, Verification at Cadence), Raúl Camposano (Silicon Catalyst, yrittäjä, entinen Synopsys CTO) ja minä jatkamme tutkimusideoiden sarjaamme. Kuten aina, palaute on tervetullutta.

Kiihtyy SoC-tietoturvan validointiin

Innovaatio

Tämän kuukauden valinta on HyperFuzzing SoC-suojauksen validointiin. Kirjoittajat esittelivät tämän artikkelin ICCAD 2020 -tapahtumassa. He ovat IIT Kanpurista.

Tämä on kiehtova lähestymistapa fuzzingiin, joka on mukautettu erityisesti moderniin SoC-suunnitteluun. Se rakentuu hyperkiinteistö dynaamisten simulaatioiden tarkistaminen. Nämä hyperominaisuudet syyttelevät käyttäytymistä sarjaa jälkiä, lähestymistapa, joka sopii hyvin turvatarkastukseen. Kirjoittajat tarjoavat esimerkkeinä tiedonkulun tarkistuksia (etuoikeutettu data ei voi vuotaa paikasta A paikkaan B) ja häiriintymättömyyden tarkistukset (kiistanalaiset toimet eivät saa häiritä laskennan virtausta). Turvallisuus tarkistetaan sitten vertaamalla simulaatiojälkien nippuja peukaloinnin kanssa ja ilman.

Tämän lähestymistavan peukalointi voi mallintaa erilaisia ​​haavoittuvuuksia epäluotettaville lähteille. Satunnaistamalla laiteohjelmiston ohjeet, kirjoita ohjeet komponentista NoC:hen tai bittikäännät muistiin. Kirjoittajat ehdottavat myös useita uusia kattavuusmittareita. Nämä on suunniteltu ohjaamaan iteraatioita peukalointiin tapauksissa, joihin aikaisemmat peukalointiajot ovat eniten vaikuttaneet.

Heidän testikotelonsa on pieni, vaikkakin edustava SoC (lisätietoja löytyy GitHub) laiteohjelmistotestien suorittaminen salauslohkoja vastaan, häiriöttömyyden ja muiden haavoittuvuuksien tarkistaminen. He myös suorittavat suojatun käynnistyksen tietolohkotarkistuksella. He löysivät useita tietoturvarikkomuksia kryptolohkoista, paitsi jos lohko sisältää ECC-suojauksen.

Paavalin näkemys

Turvallisuusvarmennus on niin tärkeä aihe, ja täällä on käynnissä paljon työtä sekä tiedemaailmassa että teollisuudessa. Tämä artikkeli yhdistää hienosti satunnaistetun mutaatiopohjaisen kattavuuden simulaatiojälkijoukkojen "hyperominaisuuksilla" luomaan innovatiivisen ratkaisun, joka on sekä skaalautuva että tehokas tietoturvapuutteiden osoittamisessa.

Jotkut suojausominaisuudet voidaan määrittää muodollisesti vain simulaatiojälkien joukolle. Esimerkiksi "häiriöttömyys" tarkoittaa, että hyökkääjä ei voi häiritä tiettyjä suojattuja laskutoimituksia suunnittelussa. Häiriön osoittamiseksi sinun on verrattava kahta jälkeä, jotka ovat identtisiä syöttöärsykkeessä, paitsi että yhdessä jäljissä on joitain hyökkääjän toimintoja. Jos hyökkäyksen kohteena olevan jäljen suojatut laskelmat poikkeavat kultaisen jäljen laskemista, kyseessä on häiriöitä.

Kirjoittajat luovat oman erityisen kielenmakunsa väitteille useiden jälkien yli ja käyttävät sitä muotoilemaan suojausominaisuuksia häiriöttömyyttä ja luottamuksellisuutta varten. He rakentavat mukautetun kulun, jolla voidaan peukaloida simulaatioita satunnaisesti ja tarkistaa niiden suojausominaisuudet peukaloitujen ja peukaloitumattomien simulaatioiden välillä. Heidän satunnaisessa peukalointialgoritmissa on myös tyylikäs peittopohjainen oppimisheuristiikka, joka ohjaa sitä löytämään tehokkaammin tietoturvapuutteita.

Ajatus väitteistä useissa simulaatioissa on erittäin voimakas. Mietin, olisiko mahdollista laajentaa SystemVerilogia puhtaasti tukemaan tällaisia ​​väitteitä. Tämä voisi avata oven houkutteleville alkuperäisille laajennuksille kaupalliseen simulointiin ja muodollisiin työkaluihin. Toinen mahdollisuus voisi olla laajentaa uutta Portable Stimulus Standard (PSS) -standardia sisältämään väitteet, jotka kattavat useita luotuja testejä.

Tämä artikkeli on helppoa ja nautinnollista luettavaa, vaikka toivonkin hieman lisätietoa tuloksista. Kirjoittajat väittävät, että heidän ratkaisunsa löytää tietoturva-aukkoja avoimen lähdekoodin SoC-testikotelossa, mutta ei ole tietoja siitä, mitä nämä reiät ovat tai kuinka heidän lähestymistapaansa verrataan muihin kirjallisuuden lähestymistapoihin, joita voitaisiin soveltaa samojen aukkojen löytämiseen.

Raúlin näkemys

Aion tarkastella tätä ensin tekniikan kypsyyden näkökulmasta. Pidän ideasta yleisesti, erittäin mielenkiintoinen lähestymistapa suunnittelun turvallisuuden luokitteluun. Jokainen malli kuitenkin edellyttää, että suunnittelijat toimittavat siementestit, peukalot ja tietoturvatiedot uudella väitekielellä. Minulle tämä rajaa lähestymistavan toistaiseksi tiukasti akateemiseen alueeseen. Sopii hyvin väitöstöihin ja papereihin, ei vielä lähellä jotain, mikä voisi tehdä hypyn kaupalliseen käyttöön.

Laitan sijoittajahatun päähän toista haastetta varten. Turvallisuus on tärkeä aihe, ei epäilystäkään. Mutta muutamien jo tuntemamme alueiden ulkopuolella – esimerkiksi ilmailu, puolustus, maksujärjestelmät ja prosessorit/palvelimet. Se ei edelleenkään ole eksistentiaalinen ongelma useimmille OEM-valmistajille ja komponenttien valmistajille. He ovat valmiita valitsemaan ruudun, jos yleisesti odotetaan. Mutta vain, jos vaikutus kustannuksiin tai markkinoille tuloaikaan on pieni. Koska heidän asiakkaat eivät yleensä maksa enemmän turvallisuudesta. Tämä jättää turvallisuuden useimmille markkinoille edelleen riippuvaiseksi avaimet käteen -periaatteella toimivasta IP-osoitteesta, kuten laitteiston luottamuksen juuret ja helppokäyttöiset sovellukset. Näillä tavoilla pakatut ratkaisut ovat investoitavia, muuten eivät niin paljoa.

Minun näkökulmani

Paul ja Raúl käsittelivät suurimman osan siitä, mitä olisin voinut ehdottaa. Pidän Paulin ajatuksesta laajentaa SVA:ta, ainakin rohkaistakseen kokeilemaan hyperominaisuuksia. Tämän on avattava uusi mielenkiintoisten testien luokka, joka johtaa lopulta uusiin niputettuihin varmennusmenetelmiin.

Jaa tämä viesti: Lähde: https://semiwiki.com/eda/299391-fuzzing-to-validate-soc-security-innovation-in-verification/

Aikaleima:

Lisää aiheesta Semiwiki