Meltdown- ja Spectre -hyökkäykset hyödyntävät prosessorien ongelmia | Traficom

Meltdown- ja Spectre -hyökkäykset hyödyntävät prosessorien ongelmia

31. joulukuuta 2018 klo 8.05, päivitetty 31. joulukuuta 2018 klo 8.32

Meltdown- ja Spectre ovat hyökkäyksiä, jotka hyväksikäyttävät prosessoreiden tapaa ennakoida käskyjen suoritusta. Hyökkäysten avulla voidaan ohittaa prosessoreiden muistinsuojauksia. Haavoittuvuudet vaikuttavat erityisesti palvelinympäristöihin, joissa on useita käyttäjiä. Niissä käyttäjä voi saada haltuunsa toisten käyttäjien luottamuksellisia tietoja.

Päivitys 22.5.2018: Hyökkäyksestä on julkaistu uusia variantteja. Variantti 3A saattaa paljastaa järjestelmästä luottamuksellisia tietoja ja variantti 4 saattaa mahdollistaa tietojen lukemisen muistista.

Modernit prosessorit käyttävät tehokkuussyistä ennakoivaa suoritusta. Siinä prosessori pyrkii koodin haarautuessa ennakoimaan todennäköisempää polkua ja valmistelemaan sen suoritusta. Tällöin myös koodin tarvitsemat muistiviittaukset haetaan valmiiksi.

Meltdown-hyökkäys hyödyntää oikeustarkastusten puutetta muistiviittausten käsittelyssä. Käyttäjän oikeuksin suoritettavasta koodista voidaan viitata käyttöjärjestelmän ytimen muistialueisiin. Tavallisessa suorituksessa nämä viittaukset on estetty, mutta ennakoivan suorituksen aikana muistia käsitellään silti. Tämä mahdollistaa ytimen muistin lukemisen tarkastelemalla, luettiinko muistialue välimuistiin ennakoivan suorituksen aikana. Ytimen muistista voidaan lukea esimerkiksi salasanoja, salausavaimia, tai muita luottamuksellisia tietoja.

Spectre-hyökkäyksessä hyökkääjä pyrkii ajamaan kohdejärjestelmässä täsmälleen samanlaista koodinpätkää kuin jossain kohteeksi valitussa prosessissa. Hyökkääjän koodi pystyy tällöin vaikuttamaan myös kohdeprosessin koodin ennakoivaan suorittamiseen. Ennakoivan suorituksen aikana saatetaan tällöin käsitellä muistialueita, joihin koodi ei tavallisen suorituksen aikana menisi. Hyökkääjä voi tässäkin tapauksessa lukea luottamuksellista muistia tarkastelemalla muistinkäsittelyn ajoituksia, tai käyttäen jotain muuta sivukanavaa. Hyökkäyksen toteuttaminen voi olla hankalaa, sillä ennakoivan suorituksen yksityiskohtainen toteutus vaihtelee eri prosessorimalleissa. Spectre-hyökkäyksen kuvaavassa artikkelissa hyökkäys oli onnistuneesti toteutettu myös selaimessa JavaScript-koodilla.

Linux on julkaissut päivitykset Meltdown-hyökkäystä vastaan Intel- ja ARM-pohjaisille prosessoreille.

Haavoittuvuuden kohde

Meltdown-hyökkäys vaikuttaa ainakin Intelin valmistamiin prosessoreihin.

Spectre-hyökkäys vaikuttaa Intelin lisäksi ainakin AMD- ja ARM-prosessoreihin.

Mistä on kysymys?

Microsoft on julkaissut Out of Band -päivityksen, joka korjaa tai rajoittaa haavoittuvuuksien vaikutuksia.

Linuxiin on julkaistu KPTI-niminen joukko päivityksiä, jotka eri jakeluversiot ottavat käyttöön. KPTI estää Meltdown-hyökkäyksen hyväksikäytön.

Myös useat muut valmistajat, kuten VMWare, Citrix, Google, Mozilla ja F5 ovat julkaisseet päivityksiä.

Päivitykset kannattaa asentaa sitä mukaa, kun niitä tulee saataville.

Päivityksillä voi olla vaikutuksia suorituskykyyn riippuen käytetystä prosessorista ja työkuorman luonteesta.

Mitä voin tehdä?

Variantit 1-3

Variantit 3A ja 4

Työasemat ja loppukäyttäjäsovellukset

Työasemien ja tavallisten käyttäjien sovellusten haavoittuvuudet koskevat usein monia käyttäjiä. Kohteena voi olla esimerkiksi Windows-käyttöjärjestelmä tai tekstinkäsittelyohjelma. Ero palvelinsovellusten ja loppukäyttäjäsovellusten välillä on joskus häilyvä, esimerkiksi samaa käyttöjärjestelmää voidaan käyttää sekä palvelimessa että työasemassa.

Palvelimet ja palvelinsovellukset

Palvelinten ja palvelinohjelmistojen haavoittuvuudet koskevat esimerkiksi sähköisten asiointipalvelujen tarjoajia. Tyypillisiä kohteita ovat palvelinten käyttöjärjestelmät ja www- tai sähköpostipalvelinohjelmistot kuten esimerkiksi SunOS, Linux, Apache, IIS tai Sendmail.

Etäkäyttö

Etäkäyttöisesti tehtävän hyökkäyksen voi tehdä tietoverkkoyhteyden tai vastaavan kautta ilman että pääsee itse kohteena olevan järjestelmän luokse.

Paikallisesti

Paikallisesti tapahtuvan hyökkäyksen voi tehdä vain pääsemällä hyökkäyksen kohteena olevan laitteen luokse ja käyttämällä sitä paikallisesti. Paikallista hyökkäystä ei voi tehdä verkkoyhteyden kautta.

Suojauksen ohittaminen

Suojauksen ohittamisella tarkoitetaan sitä, että haavoittuvuutta hyväksikäyttämällä ohitetaan järjestelmän käytön rajoittamiseksi tehty suojaus esimerkiksi liikennöimällä palomuurin ohi suojattuun verkkoon.

Luottamuksellisen tiedon hankkiminen

Luottamuksellisten tietojen hankkiminen kohdejärjestelmästä edellyttää sitä, että sen tietosisältöä, esimerkiksi kiintolevylle talletettuja tiedostoja, pääsee lukemaan luvatta ja välittämään edelleen.

Korjaava ohjelmistopäivitys

Ohjelmisto- tai laitevalmistaja julkaisee tavallisesti pian uuden version tai osittaisen päivityksen ohjelmistoon tai käyttöjärjestelmään sen jälkeen kun haavoittuvuus on tullut julki. Päivitys voi olla saatavilla samalla kun haavoittuvuuskin julkaistaan, mutta usein sitä joudutaan odottelemaan jonkin aikaa.

Ongelman rajoittaminen

Vaikka varsinaista korjausta haavoittuvuuteen ei aina ole saatavilla, sen vaikutuksia voidaan useimmiten rajoittaa esimerkiksi pidättäytymällä tilapäisesti jonkin ominaisuuden käytöstä tai rajoittamalla verkkoliikennettä kohdejärjestelmään sopivasti.

Ei päivitystä

Haavoittuvuuden tultua julki ei korjausta siihen ole välttämättä heti saatavilla. Kohdejärjestelmät ovat alttiita haavoittuvuuden hyväksikäytölle jos niiden suojaamiseksi ei ryhdytä toimenpiteisiin.


31. joulukuuta 2018 klo 8.32 Julkaistu Viestintäviraston sivulla 4.1.2018 04.01.2018 klo 13:21 Julkaistu 04.01.2018 klo 13:36 Lisätty linkki AMD:n tiedotteeseen 22.05.2018 klo 16:30 Lisätty tiedot varianteista 3A ja 4