Meltdown

**Meltdown** on riistvaraline turvanõrkus, mis mõjutab Intel x86, IBM POWER ja mõnesid ARM-arhitektuuril põhinevaid protsessoreid. See võimaldab pahatahtlikul rakendusel lugeda kogu arvuti operatiivmälu ka siis, kui tal ei ole selleks vajalikke õigusi.

Meltdown mõjutab väga paljusid infosüsteeme. Avaldamise ajal olid mõjutatud kõik vastava arhitektuuriga seadmed, välja arvatud need, millel kasutati hiljuti uuendatud ja parandatud iOS, Linux, macOS ja Windowsi operatsioonisüsteeme. Samuti olid mõjutatud serverid, pilveteenused, nutiseadmed, manussüsteemid ja võrguseadmed.

2018. aasta jaanuaris anti Meltdowni turvanõrkusele kood CVE-2017-5754. See avaldati koos Spectre turvanõrkusega, kuna mõlemad kasutavad ära külgkanalrünnet eesmärgiga lugeda mälu sisu. Turvaanalüütikud on hinnanud neid kahte katastroofiliseks. Esialgu hinnati neid vale informatsiooniks, kuna need on niivõrd tõsised.

Puhtalt tarkvaraline leevendus turvaaugu ära kasutamise takistamiseks on näidanud 5–30% jõudluse kaotust väga kindlatel töökoormustel.

## Ülevaade
Meltdown kasutab ära olukorda, kus elektroonika osade väljund sõltub teiste sündmuste ajastusest. Mälust andmete küsimise ja õiguste kontrolli vahel rakendatakse külgkanalirünnakut, mis lubab pahatahtlikul protsessil minna mööda tavapärastest õiguste kontrollidest, mis peaks blokeerima protsessi ligipääsu operatsioonisüsteemi ja teiste rakenduste andmetele. Selle tulemusel saab pahatahtlik protsess lugeda mälu sisu ükskõik millisel aadressil, mis on määratud sellele protsessile. Mõjutatud protsessorid kasutavad käskude toru, seetõttu laetakse andmed keelatud piirkonnast peaaegu alati protsessori vahemällu, kust saab siis andmed kätte.

Meltdowni tüüpi rünnakut ei ole võimalik tuvastada ning see ei jäta jälgi süsteemi.

## Parandused
Kuna turvanõrkus on riistvaraline, siis saab seda täielikult parandada ainult riistvaraliste uuenduste kaudu. Samas on võimalik teha muudatused operatsioonisüsteemi kernelis, mille tulemusel isoleeritakse kasutaja protsessid kerneli mälust põhjalikumalt. Need takistavad nõrkuse ära kasutamist operatsioonisüsteemi tasemel, kuid ei paranda seda.

Linuxi kerneli arendajad on sellele andnud nime *kernel page-table isolation (KPTI)*. Uuendused on ehitatud Linuxi kerneli versioonidele 4.15 ning tahaporditud 4.14.11 ja 4.9.75 versioonidele.

Apple uuendas macOS 10.13.2, iOS 11.2 ja tvOS 11.2 operatsioonisüsteeme kuu aega peale turvanõrkuste avalikustamist, et leevendada turvanõrkuse ära kasutamist. Samuti lisas Apple macOS 10.13 ja iOS 11.2.2 uuendustega Safari brauserile täiendavad piirangud, mis takistavad Meltdowni ja Spectre turvanõrkuste ära kasutamist.

Microsoft avaldas kriitilised uuendused Windows 10, 8.1, 7 SP1, Windows Server 2008 R2, 2012 R2 ja 2016 operatsioonisüsteemidele 3. jaanuaril 2018. Veidi hiljem hakati takistama nende uuenduste installeerimist AMD-põhistele süsteemidele, sest nende seadete Windows ei käivitunud peale paigaldust.

Väidetavalt toob KPTI implementeerimine kaasa CPU jõudluse vähenemise kuni 30%. Uuematel Inteli protsessoritel on olemas *Process-Context Identifier (PCID) erisus*, mis aitab vähendada jõudluse kadu. Inteli sõnade kohaselt sõltub jõudlusekadu töökoormuse tüübist ning ei tohiks tavakasutajale mõjuda märgatavalt. Tehnoloogiasait Phoronix katsetas erinevaid arvutimänge Linuxi operatsioonisüsteemil kasutades Inteli i7-8700k protsessorit koos KPTI parandustega ning tulemused näitasid, et jõudlusekadu oli peaaegu märkamatu. Suurem kadu oli sünteetilistes testides ja andmebaaside, näiteks PostgreSQL ja Redis, kasutamisel.

## Viited

## Välislingid
* Ametlik Meltdown ja Spectre veebileht 
* Google Project Zero blogipostitus
* CVE-2017-5754 ametlikus turvaaukude registris
* Am I Affected by Meltdown - Meltdown turvaaugu test Linuxile, looja Raphael S. Carvalho
* InSpectre - Gibson Research Corporation arendatud Meltdown ja Spectre test Windowsile