Mikropiirien uusimmat tietototurvavirheet ja -haavoittuvuudet

Parin viime vuoden aikana erityisesti Intelin valmistamien prosessoreiden tieturva-aukoista on kohistu laajasti, mutta vastaavua tietoturva-aukkoja on löydetty muidenkin valmistajien piireistä: prosessoreista, muistipiireistä, ohjelmoitavista logiikoista ja erilaisista liitäntäpiireistä. Tässä kattava elektroniikkasuunnittelijan tietoturvajuttu linkkeineen.

Teksti Tomi Engdahl ja aloituskuva Shutterstock

TIEDOT VUOTAVAT – MUUTTUVAT – SUOJAUKSEN VOI OHITTAA. Tietokoneiden ja monien sulautettujen järjestelmien käyttöjärjestelmien tarjoama tietoturvallisuus perustuu pitkälle muistinsuojauksen käyttöön. Keskusprosessorin muistinhallintayksikön tarjoaman muistinsuojauksen avulla voidaan estää, että sovellukset eivät pääse käsiksi toistensa muistialueisiin tai käyttöjärjestelmän muistialueeseen.

Jos muistinsuojaus pystytään rikkomaan jollain tavoin edes osittain, käyttöjärjestelmistä ja sovellusohjelmista tulee haavoittuvia. Muistin lukusuojauksen ohittaminen voi johtaa salaisten tietojen vuotamiseen ja kirjoitussuojauksen murtuminen mahdollistaisi toisten prosessien toiminnan muuttamisen sekä tietojen vääristämisen.

Valitettavasti prosessorit ja niiden ympärillä olevat komponenteissa eivät ole virheettömiä. Piireissä olevat puutteet tai suunnitteluvirheet voivat johtaa tilanteeseen, jossa prosessoriin tehtyjä suojauksia voidaan ohittaa. Tämän tyypillisesti laitteistohaavoittuvuuden hyväksikäyttö perustuu jonkun tasoisen lievän virhetilanteen tahalliseen tuottamiseen ja näiden virhetilanteiden synnyttämien sivuilmiöiden havaitsemiseen.

Taulukko 1. Yleisimmät viime vuosien suorittimissa ja muissa piireissä havaittuja tietoturvahaavoittuvuuksia. Klikkaa tästä jos haluat taulukon isommassa koossa (LINKKI) The most common security vulnerabilities found in CPUs and other circuits in recent years. Click here  (LINK) for a larger table.

Nykymikrojen prosessorit pystyvät toimimaan hyvin nopeasti, koska ne hyödyntävät rinnakkaisuutta, pitkiä suoritusjonona ja spekulatiivista suoritusta.  Spekulatiivisessa suorituksessa prosessori ennustaa ohjelman haarautumistilanteessa todennäköisimmän suorituspolun, ja väärin ennustaessaan palauttaa suorituksen ennustusta edeltäneeseen tilanteeseen, josta suoritus voi jatkua oikeaa suoritusreittiä.

Väärien ennusteiden palautus ei valitettavasti aina palauta oikein tilannetta takaisin täysin alkuperäiseksi, vaan sivuvaikutuksena väärästä arvauksesta voi olla normaalia hitaamman suorituksen lisäksi, että välimuistiin, haarahistoriaan tai joihinkin rekistereihin voi jäädä jälki tapahtuneesta. Tietoturvatutkijat ovat keksineet, että näitä ominaisuuksia voi yrittää hyödyntää siihen, että suoritettava prosessori voi saada käsiinsä pienissä määrin sellaista tietoa, johon sillä ei pitäisi olla normaalisti mitään pääsyä.

Spectre ja Meltdown toivat haavoittuvuudet julkisuuteen

Useimmat meistä opimme viimeistään tammikuun alussa 2018, että lähes kaikissa Intelin prosessoreissa ja myös monissa AMD- ja ARM-prosessoreissa oli laitteistovirheitä. Näitä Meltdown- ja Specte -nimillä tunnettuja haavoittuvuuksia voitiin käyttää hyödyksi tietokoneen keskusmuistin lukusuojauksen ohittamisessa.

Käytännössä suorittimien haavoittuvuudet tarkoittivat, että tarpeeksi monimutkainen haittaohjelma pystyisi pääsemään käsiksi salassa pidettäväksi tarkoitettuihin salausavaimiin ja muuhun arkaluontoiseen tietoon.

Tutkijoiden esittelyvideo (LINKKI) näyttää kuinka Meltdown-haavoittuvuuden avulla voidaan urkkia salasanoja. The researchers’ demo video shows how a Meltdown vulnerability can be used to spy on passwords. Lähde/Source: Meltdown-tukisivusto (LINKKI).

Vaikka Meltdown- ja Specte-haavoittuvuudet tulivat julkisuuteen vuoden 2018 alussa, todellisuudessa ne löy.ettiin jo kesällä 2017. Tarkoitus oli aluksi pitää niiden olemassaolo ja yksityiskohdat vain pienen korjauksia tekevien tiedossa, jotta korjaukset olisi ehditty jaella tietokoneisiin seuraavien käyttöjärjestelmäpäivitysten mukana.

Haavoittuvuuksien yksityiskohdat tulivat kuitenkin julkisuuteen jo tammikuussa 2018 eli viikkoja suunniteltua virallista julkistusta aikaisemmin. Tosin ensitiedot olivat yksityiskohdiltaan vielä vajavaisia, mutta pian tiedettiin jo, että haavoittuvuudet koskivat PC-prosessien lisäksi myös ARM-piirejä hyödyntäviä mobiililaitteita.

Suorittimien haavoittuvuudet saivat laajalti julkisuutta, sillä kyseessä oli selvästi vakava haavoittuvuus johon aluksi ei ollut vielä kunnollisia korjauksia saatavana.

Yksittäisessä työasemassa haavoittuvuudet tarkoittivat, että salasanat, salausavaimet ja muut salaisuudet voivat paljastua entistä helpommin.  Pilviympäristössä nämä virheet tarkoittivat, että palvelintietokoneissa pyörivät virtuaalikoneet eivät olleet läheskään niin suojassa toisiltaan kuin ennen oli oletettu ja käyttäjille luvattu.

Kun salaisuuksien verho oli raotettu, niiden löytäjät julkaisivat vuorostaan kaikki tekniset yksityiskohdat. Haavoittuvuudet rekisteröitiin haavoittuvuustunnuksille CVE-2018-3639, CVE-2018-3640 ja CVE-2018-3693. Niille julkaistiin verkkosivu, jonka osoite löytyy Uusiteknologia.fi:n linkkipankin kautta.

Meltdown paljastaa suojatun muistin

Meltdown-haavoittuvuus mahdollisti joidenkin käyttöjärjestelmän ytimen tietojen lukemisen normaalista sovellusohjelmasta käsin.  Ensimmäinen hyökkäys esiteltiin Intelin x86_64-prosessoriarkkitehtuurin hyväksikäyttönä, jossa voitiin lukea suojatun muistin sisältöä käyttöjäjestelmän normaalina prosessina.

Meltdown perustui prosessorin kilpailuolosuhteisiin, jotka voivat syntyä käskyjen suorituksen ja etuoikeuksien tarkistuksen välillä. Meltdown-tyyppisten haavoittuvuuksien havaittiin myöhemmin koskevan myös monia muita prosessoreja mukaan lukien ARM:n Cortec-A75 ja IBM:n PowerPC. Ongelman korjaaminen ja lievittäminen vaati muutoksia niin laitteistoon kuin ohjelmistoon.

Käyttöjärjestelmäytimen muisti piti eristää entistä paremmin käyttäjän prosesseista.  Linux-ytimen kehittäjät ovat kutsuneet toimenpidettä ytimen sivutaulukon eristämiseksi (KPTI), ja vastaavat toimet tehtiin pikaisesti myös Microsoftin Windows- ja Applen OS X -käyttöjärjestelmiin. Lisäksi Intel teki korjauksia prosessoriensa päivitettävään mikrokoodiin, sekä huomioi ongelmat tulevien prosessorisukupolvien suunnittelussa.

Spectre oli edellistä laajempi 

Samaan aikaan Meltdownin löytymisen kanssa toinen riippumaton tutkimusryhmä löysi Spectre-haavoittuvuuden, joka tarjosi mahdollisuuden ohjelmien lukea toisten ohjelmien muistin sisältöä. Se perustui siihen, että epäedullisesti toimiva spekulatiivinen suorittaminen voi jättää havaittavia sivuvaikutuksia, jotka voivat paljastaa yksityisiä tietoja hyökkääjille.

Spectre-haavoittuvuus mittasi erilaisten operaatioiden suoritusnopeutta, joka voi vaihdella sen mukaan saadaanko tieto välimuistista vai joudutaanko se hakemaan keskusmuistista. Sopivalla koodilla ja tarkalla ajan mittaamisella on madollista kerätä tietoa toisen prosessin salaisuuksista.

Yhden haavoittuvuuden sijaan Spectre-nimen takaa löytyy joukko erilaisia ja jopa potentiaalisia haavoittuvuuksia.  Ne kaikki perustuivat spekulatiivisen suorituksen sivuvaikutusten hyödyntämiseen.

Spectre-haavoittuvuutta voitiin helpoiten hyödyntää paikallisella ohjelmalla, mutta sitä oli mahdollista hyödyntää myös verkkosivun mukana tulevasta JavaScript-koodista. Spectre-luokkaan kuuluvia haavoittuvuuksia oli hankalampi hyväksikäyttää kuin Meltdownia, mutta siltä oli myös hankalampi suojautua, koska niitä oli useita erilaisia.

Spectre edusti kokonaista hyökkäysluokkaa ja useita eri prosessoriperheitä, joten sitä ei voinut korjata vain yhdellä korjauksella. Intel julkaisi kevään 2018 aikana mikrokoodikorjauksia Meltdown- ja Spectre-V2-haavoittuvuuksille. Huolimatta sirujätin pyrkimyksistä puuttua myös aiempien suoritinsukupolvien spekulatiivisiin toteutushyökkäyksiin, suorittimet ovat edelleenkin vaarassa. Hyökkääjät voivat käyttää näitä haavoittuvuuksia herkkien tietojen vuotamiseksi.

Nettijätti Google julkaisi myös oman ”Retpoline” tekniikan, jolla voitiin rajoittaa ohjelmallisesti Spectre-haavoittuvuuden vaikutusta sovelluksiinsa.  Koska Spectreä voitiin käyttää verkkosivustoihin upotetun JavaScriptin kautta, piti kaikkiin tärkeimpiin selaimiin tehdä myös muutoksia, joilla hyväksikäyttötapa voitiin estää.

Lisää Spectre-tyyppisia haavoittuvuuksia

Spectre- ja Meltdown-haavoittuvuudet aktivoivat tietoturvatutkijoita etsimään myös muita saman tyyppisiä haavoittuvuuksia. Reilun kahden vuoden aikana on löydettiinkin useita Spectren muunnelmia ja niihin verrattavissa olevia uusia haavoittuvuuksia. Niitä olivat muun muassa Foreshadow, Zombieload, RIDL, Fallout, and LazyFP.

Suomesta Tampereen teknillisen yliopiston tutkijat olivat mukana löytämässä marraskuussa 2018 esiteltyä PortMash-haavoittuvuutta (CVE-2018-5407). Se käytti hyväkseen Intelin prosessorien Simultaneous Multi Threading (SMT) -osuutta, jolla voidaan suorittaa rinnakkaisesti kahta eri ohjelmaa yhdellä fyysisellä prosessoriytimellä.

Ratkaisussa rinnakkaisessa suorituksessa prosessoriytimen suoritusresurssien ruuhka voi aiheuttaa mitattavia muutoksia käskyjen suorituksen ajoitukseen ja kerätä tietoa toisesta samassa ytimessä pyörivästä prosessista.

PortSmash-haavoittuvuus on ongelmallinen erityisesti virtualisoiduissa järjestelmissä, joissa yhdessä tietokoneessa ajetaan useita tietoturvakriittisiä sovelluksia sisältäviä virtuaalikoneita. Vastaavaa hyper-säikeistystekniikkaa käytetään myös AMD:n, IBM:n Power- ja Sunin UltraSparc-prosessoriperheissä.

Haavoituvuusongelmalta voi tutkijoiden mukaan suojautua, kytkemällä SMT-ominaisuus pois päältä laitteistoasetuksista, mutta se hidastaa samalla prosessorin toimintaa jonkin verran. Tutkijaryhmän mukaan, laitteisto ei voi olla samaan aikaan täysin turvallinen ja tukea SMT-teknologiaa.

Kesäkuussa 2019 Intel Core -pohjaisesta Sandy Bridge -suoritinarkkitehtuurista löydettiin Lazy FP State Restore CPU Bug (CVE-2018-3665) -niminen haavoittuvuus. Siinä Core-prosessorin liukulukurekisterin sisältö saattoi vuotaa prosessista toiseen.

Liukulukurekisterin tietovuoto osoittautui myös erittäin haitalliseksi, sillä esimerkiksi kun AES-salausta haluttiin laskea mahdollisimman tehokkaasti, talletettiin salainen AES-avain usein Streaming SIMD Extensions (SSE) -rekistereihin.

Ongelmaa korjattiin myöhemmin kahdella tapaa. Salauskirjastojen tekijät pyrkivät muuttamaan koodiaan niin, että salaiset avaimet säilytetään turvallisemmin. Käyttöjärjestelmien tekijät taas lisäsivät koodia, joilla mahdollisesti tietoa vuotavissa rekistereissä olevat tiedot nollataan aina kun ajettavaa prosessia vaihdetaan.

Foreshadow-haavoittuvuus toteutti Intel-prosessoreihin spekulatiivisen suoritushyökkäyksen, jonka avulla hyökkääjä pystyi varastamaan kohdelaitteen muistitietoja. Siitä oli kaksi eri versiota, joista alkuperäinen hyökkäys oli suunniteltu lukemaan tietoja SGX-suojatusta muistista. Uuden sukupolven versio Foreshadow-NG pääsi vaikuttamaan myös virtuaalikoneisiin (VM), hypervisoreihin (VMM), käyttöjärjestelmän (OS) ytimen muistiin ja järjestelmän hallintatilaan (SMM).

Vuonna 2018 havaittu Zombieload oli paketti erilaisia menetelmiä tietokoneiden arkaluontoisten tietojen ja avainten varastamisen. Haittaohjelma hyödyntää esimerkiksi suorittimen sisäisiä CPU-puskureita saadakseen salaisuuksia, joita muut käynnissä olevat ohjelmat käsittelevät.

Uusin Zombieload v2-versio antaa haittaohjelmille tai haittaohjelmille mahdollisuuden poimia prosessorin sisällä käsiteltyjä tietoja, joihin normaalisti ei pitäisi olla pääsyä nykyisten suorittimien suojamuurien takia. Haavoittuvuus voidaan kuitenkin tukkia Windows- ja Linux-käyttöjärjestelmissä kytkemällä prosessorin Transactional Synchronization Extensions (TSX) -ominaisuudet pois päältä.

Salattu muisti vuotaa

Intel julkaisi viisi vuotta sitten muutamiin suoritinmalleihin uudet Software Guard (Intel SGX) -tietoturvalaajennukset, jotka tarjosivat laitteistopohjaisen muistin salauksen. Tekniikan avulla voitiin eristää sovelluskoodin ja muistin tiedot muusta järjestelmistä. Intel SGX salli myös käyttäjätason koodin allokoida yksityisiä suojattuja muistialueita, nimeltään enklaveja.

Intelin SGX luvattiin pystyvän tarjoamaan lisäsuojaa erityisesti arkaluontoisille tiedoille, mutta sitäkin vastaan on onnistuneesti jo hyökätty.  Ensimmäinen merkittävä SGX-hyökkäys oli vuonna 2018 julkaistu Foreshadow, joka oli suunniteltu lukemaan tietoja suorittimen SGX-enklaveista. Onneksi haavoittuvuus voitiin korjata mikrokoodin ja ohjelmiston päivityksellä.

Viime vuoden lopussa esiteltiin Plundervolt-tekniikka, joka antoi hyökkääjille pääsyn Intelin suorittimien SGX-muistiin talletettuihin tietoihin.

Tutkijat havaitsivat, että pudottamalla prosessorin käyttöjännitettä 25 tai 30 prosenttia tiettyyn aikaan niin piiri saatiin tekemään virheitä ja paljastamaan salatun muistinsa sisällön.  Intel päivitti korjauksena suorittimen mikrokoodin, joka emolevyjen BIOS-päivityksen kanssa mahdollisti haavoittuvan lisäominaisuuden kytkemisen pois päältä.

Keväällä 2020 tui esille Load Value Injection (LVI) (CVE-2020-0551)-niminen haavoittuvuus, joka koostui isosta joukosta hyökkäyskeinoja Intel-suorittimien Software Guard Extensions (SGX) tekniikkaa vastaan. Vaikka LVI-hyökkäyksiä pidettiin vain teoreettisena uhkana, Intel julkaisi nykyisille suorittimille  laiteohjelmistokorjauksia.

Uusin CacheOut (CVE-2020-0549) on puolestaan spekulatiivinen suoritushyökkäys, joka pystyy vuotamaan tietoja Intelin suorittimilta useiden tietoturvarajojen yli.  CacheOut voi rikkoa melkein kaikkia laitteistopohjaisia tietoturva-alueita, vuotaen tietoja käyttöjärjestelmäytimestä, virtuaalikoneista ja jopa SGX-muistista.

Intel on julkaissut haavoittuvuuteen liittyvää tietoa dokumentissaan L1 Data Eviction Sampling (L1DES) ja suunnittelee lähiaikoina julkaisevansa 1DES haavoittuvuuden vaikutusta lieventävän mikrokoodipäivityksen. Lisää tietoa voit hakea Uusiteknologian linkkipankin kautta.

Muistipiirit ovat haavoittuvia

Vuonna 2014 löydetty Rowhammer eli suomeksi ’’rivivasara’’ rakentui useista hyökkäysmenetelmiä, joiden avulla pystyttiin hyödyntämään mikrojen tai kännyköiden DRAM-muistiosuuksien tahatonta ja ei-toivottua sivutoimintoja.


Rowhammer-hyökkäyksessä nopeasti toistuvat DRAM-muistin rivien aktivoinnit (keltaiset rivit) voivat muuttaa uhririville (violetti rivi) tallennettujen bittien arvoja muistipiirin sisällä. Lähde/Source: Wikipedia (LINKKI) In Rowhammer attack quickly repeating DRAM row activations (yellow rows) may change the values of bits stored in victim row (purple row) inside memory chip.

Vuonna 2015 julkaistiin jo hyökkäysesimerkkejä, kuten x86-64 arkkitehtuuriin suunnattu NaCl (CVE-2015-0565) sekä selaimessa toimiva Rowhammer js. Vuonna 2016 hollantilaisen Vrije Universiteit Amsterdamin tutkijat löysivät Drammer-haavoittuvuusesimerkin Androidiin (CVE-2016-6728).

Rowhammer-hyökkäys toimii kirjoittamalla muistia toistuvasti samoihin osoitteisiin. Nämä nopeasti toistuvat kirjoitukset, kun niitä toistetaan riittävästi, voivat muuttaa fyysisesti lähellä olevien muistisolujen sisältöä muistipiirin sisällä.

Tahatonta vuorovaikutusta voi piireissä tapahtua, koska nykyaikaiset DRAM-piirit ovat hyvin tiheitä ja niien tietoa virkistetään tyypillisesti verraten harvoin piirin toimintanopeuteen nähden. Koska tiedon muuttuminen tapahtuu muistin sisällä niin sitä ei voi estää prosessorin muistinsuojaustekniikoilla.

Tiedon muuttuminen muistissa on luonteeltaan satunnaiseen muistivirheeseen vertautuva tapainen ilmiö, joka ei tapahdu aina, mutta aina jollakin todennäköisyydellä se toteutuu. Ja lisäksi pahimmillaan yhden tai muutaman bitin muutoksella voi olla merkittävä vaikutus ohjelman toimintaa. Samalla voidaan jopa ohittaa järjestelmän suojauksia.

Koska tiedon muuttuminen tapahtuu muistipiirin sisällä, sitä on vaikea ohjelmallisesti estää. Tarjolla on tosin tuotu menetelmiä hyökkäysohjelman havaitsemiseksi, estämiseksi, korjaamiseksi tai lieventämiseksi. Tosin niiden toimintavarmuus ei ole sataprosenttista.

Palvelintietokoneissa hyödynnettävä virheenkorjaava muisti (ECC) auttaa jonkin verran paremmin kuin perinteinen DRAM-muistiratkaisu, mutta ei sekään pysty kokonaan estämään hyökkäystä.  Tehokkain korjaus on normaalia tiheämpi muistin virkistysnopeus, joka rajoittaa osin muistin kaistaleveyttä sekä lisää tehonkulutusta.

Suoran muistiosoituksen DMA voi pettää

DMA-hyökkäys on tietoturvan sivukanavahyökkäys, jossa hyökkääjä voi tunkeutua tietokoneeseen tai muuhun laitteeseen liitäntöjen kautta. DMA-hyökkäyksen avulla on mahdollista päästä käsiksi joko osaan tai koko PC-koneen muistin sisältöön. Sen avulla voidaan keskusmuistin kautta ohittaa kaikki käyttöjärjestelmän suojausmekanismit ja lukitusnäytöt.

Suoraa DMA-muistiosoitusta käytetään esimerkiksi PCI- ja PCI Express -väylissä toimivissa verkkokorteissa sekä lisälaiteliitännöissä kuten FireWire, ExpressCard ja Thunderbolt.  Perinteisessä USB 2;ssa DMA-vaaraa ei ollut, mutta uudemmissa versioissa on vaarapotentiaalia, koska USB 3 toi mukaan PCI Express ominaisuuksia ja USB 4 tuo Thunderbolt-ominaisuudet.

DMA-hyökkäyksessä voidaan hyödyntää ulkopuolista lisälaitetta ja varastaa koneen muistista esimerkiksi salattuja tietoja tai salausavaimia. Koneisiin voidaan DMA:n kautta ujuttaa myös vakoiluohjelmia tai tuoda käyttöjärjestelmään takaportteja ja muita haittaohjelmia.

Onneksi modernit Linux-ytimet sisältävät esimerkiksi mahdollisuuden poistaa DMA käytöstä Firewire-laitteista käytöstä.  Microsoft on tuonut Windows 8.1 ja Windows 10 versioihin mahdollisuuden voi estää pääsyn vartioimattoman koneen DMA-portteihin silloin kun tietokoneen näyttö on lukittu.

Nykyisin USB-C-liitintä käyttävä Thunderbolt-liitäntä tarjoaa monia hienoja ominaisuuksia, mutta se voi toimia myös ei-toivottuna takaporttina tietokoneeseesi. Kuva/Source: Intel.  Thunderbolt interface, which can use a USB-C connector, offers many great features, but it can also act as an unwanted backdoor to your computer.

Uusin ongelma on Intelin Thunderbolt-väylä, jota Apple on käyttänyt laitteissaan ja tulossa myös PC-koneisiin uuden USB4:n mukana. Siitä on löydetty jo haavoittuvuuksia. Pahin niistä on viime vuonna löydetty Thunderclap-haavoittuvuus, joka mahdollisti lukea liitännän DMA-rajapinnan kautta tietokoneen muistisisällön.

Applen MacOS:n lisäksi ongelma on Windows-, Linux- ja FreeBSD-koneissa. Haavoittuvuutta voidaan estää kytkemällä päälle IOMMU for Thunderbolt devices toiminto, joka saatiin viimeisimpiin Windows 10:n 1803- ja Linux-ytimen 5.0-versioihin.

Muutama kuukausi sitten Eindhovenin yliopiston tietoturvatutkija Björn Ruytenberg löysi jälleen seitsemän uutta Thunderbolt-väylään liittyvää haavoittuvuutta. Ongelmia oli muun muassa laitteiden autentikoinnissa ja uusien laiteohjelmistojen päivitysprosessissa.

Hyökkääjä voi päästä tietokoneessa oleviin tietoihin käsiksi ohittamalla lepotilassa tai lukittuna olevien tietokoneiden kirjautumisnäytön.

Esittelyvideon mukaan hyökkäys on mahdollista tehdä vain viidessä minuutissa. Siihen tarvitaan vain ruuvimeisseli emolevyyn käsiksi pääsemistä varten, SPI-väyläisten muistipiirien ohjelmointilaite, sopiva muokattavissa oleva Thunderbolt-lisälaite ja osaamista. Onneksi tutkijat ovat kehittäneet ongelmaa varten Spycheck-työkalun, jolla voi tarkistaa onko oman koneen järjestelmä haavoittuva Thunderspylle.

FPGA-piirien haavoittuvuudet

Vapaasti ohjelmoitavia FPGA-piirejä on tähän asti pidetty erittäin turvallisina komponentteina monissa sovelluksissa, koska FPGA-suunnittelu toteutetaan piirivalmistajan VHDL-kehitystyökaluketjuilla ja piirin ohjelmoiva bittivirta on tyypillisesti vahvasti salattu. Siksi StarBleed-haavoittuvuuden löytyminen oli yllätys koko alalle.

Saksalaistutkijoiden konferenssipaperi on jo luettavissa verkossa Usenix-tietoturvakonferenssin julkaisemana (LINKKII, pdf). The conference paper of German researchers is already available online as published by the Usenix Security Conference.

Saksalaisen Horst Görtz -tietoturvainstituutin ja Max Planckin tutkijat analysoivat alkuvuodesta Xilinxin FPGA-piirejä, ja havaitsivat niissä turvallisuushaavoittuvuuden. Tutkijat pystyivät manipuloimaan salattua bittivirtaa kokoonpanoprosessin aikana ohjaamaan sen AES-CBC-salattua sisältöä WBSTAR-rekisteriin.

Tutkijoiden mukaan hyökkääjät voivat saada haavoittuvuuden avulla täydellisen hallinnan siruista. Täydellinen hallinta mahdollistaa mikä mahdollistaa laitteistotroijalaisten toteuttamisen tai piirin ohjelmoinnissa käytettyjen suunnittelusalaisuuksien paljastumisen.

Uusi haavoittuvuus vaikuttaa Xilinxin 7-sarjan FPGA-piireihin, kuten Spartan, Artix, Kintex ja Virtex, Lisäksi se koskee Virtex-6 piiriperhettä. Haavoittuvuus ei vaikuta kuitenkaan Xilinxin uudempiin UltraScale- ja UltraScale + -piiriperheisiin.

Saksalaistutkijoiden löytämä virhe on integroitu FPGA-piirin toteutukseen, joten tietoturvariski voidaan poistaa vain korvaamalla sirut. Tutkijat ilmoittivat virheestä myös kaikille FPGA-valmistajille. Tutkijat ehdottavat korjaukseksi piirilevymuutosta, jossa RS-nastan avulla nollataan rekisterit hyökkäysyrityksessä.

Xilinx on tutustunut tutkijoiden löytämiin haavoittuvuuksiin ja julkaissut aiheesta teknisen dokumentin AR# 73541 (LINKKI), jossa tunnustaa haavoittuvuuden, mutta mainitsee  haavoittuvuudella olevan vaikutusta vain niille piirin käyttäjille, jotka hyödyntävät kyseisten piirimallien ohjelmoinnissa salausominaisuutta.

Lisäksi jotta haavoittuvuutta voisi Xilinxin mukaan hyödyntää, täytyy hyökkääjällä olla pääsy käsiksi FPGA-piirin JTAG- tai SelectMAP-rajapintoihin. Tämä voi tapahtua pääsemällä käsiksi piirilevyyn tai etäohjelmoitaviksi suunnitelluissa laitteissa rajapintoihin verkon yli.

Haavoittuvuuden löytäneet tutkijat tulevat esittelemään työnsä tulokset otsikolla ’The Unpatchable Silicon: A Full Break of the Bitstream Encryption of Xilinx 7-Series FPGAs’ 29. Usenix-tietoturvakonferenssissa, joka pidetään elokuussa 2020 Bostonissa USA:ssa.  Aiheen saaman julkisuuden ansiosta Usenix konferenssi päätti julkaista tutkijoiden artikkelin saataville etukäteen huhtikuun puolessa välissä 2020.

Saksalaistutkijoidne löytämä Starbleed on eniten yleistäkin julkisuutta saanut Xilixin ohjelmoitavien piirien haavoittuvuus, mutta se ei ole ensimmäinen. F-Securen tietoturvayrityksen Hardware Security team osasto löysi viime vuonna kaksi pienempää haavoittuvuutta Xilinx’s Zynq UltraScale+ SoC-piirien “encrypt only boot” turvallisesta käynnistyksestä.

Artikkelin kirjoittaja Tomi Engdahl toimii Netcontrol Oy:ssä tuotekehitysinsinöörinä. Hänellä on pitkä kokemus sulautettujen ja IoT-ratkaisujen tietoturvaratkaisuista.

Uusiteknologia 1/2020 linkkipankkiin on listattu tässä jutussa mainittujen haavoittuvuuksien tukisivustot sekä joukko korjauksiin ja toimintojen suojaamiseen liittyviä artikkelilinkkejä. Mukan on linkit myös kirjoittajan aiempiin tietoturvatyyppisiin UT-artikkeleihin.

ENGLISH SUMMARY: Micro-circuit errors and vulnerabilities

Over last couple of years, information on security holes in processors made by Intel in particular have become widespread. But security holes have also been found in other manufacturers’ chips: processors, memory circuits, programmable logics and various interface chips. The security provided by the operating systems of computers and many embedded systems is largely based on the use of memory protection. Memory protection provided by the CPU memory management unit can be used to prevent applications from accessing each other’s memory areas or the operating system’s memory area. But this memory protection is not always 100 percent effective in many popular processors. You can find more about this topic in the link bank published online in Uusiteknologia.fi 1/2020 www-magazine (LINKKI).