Wat zijn de Spectre en Meltdown-kwetsbaarheden?

Twee van de meest gepubliceerde kwetsbaarheden in de jaren 2010 waren nauw met elkaar verbonden. Spectre en Meltdown zijn geen beveiligingsproblemen in software, maar kwetsbaarheden in het fundamentele ontwerp van CPU's, waardoor het probleem moeilijker op te lossen is. De problemen zelf zijn bijzonder ernstig, waardoor geheugen vrijgave van andere applicaties en het besturingssysteem mogelijk is.

Overzicht

CPU's gebruiken ongelooflijk geavanceerde ontwerpen om de hoogste prestaties te bereiken, inclusief technieken zoals speculatieve uitvoering en vertakkingsvoorspelling. Bij speculatieve uitvoering begint de CPU een proces uit te voeren voordat het weet of het moet, in een poging tijd te besparen wanneer het bepaalt dat het moet. Vertakkingsvoorspelling is een subset van speculatieve uitvoering die probeert de uitkomst van een proces te voorspellen en vervolgens begint de volgende stap te berekenen op basis van die voorspelde waarde, waardoor de CPU een reeks instructies kan uitvoeren uit volgorde.

De Spectre-kwetsbaarheid komt voort uit de implementatie van deze twee functies. Het stelt een toepassing in staat om de geheugenisolatietechnieken te doorbreken die zijn ingebouwd in de meeste moderne software, waardoor het geheugen kan worden vrijgegeven, inclusief geheimen zoals wachtwoorden en coderingssleutels. Een van de problemen met Spectre is dat gegevens toegankelijk kunnen zijn vanuit applicaties die geen beveiligingsproblemen hebben, omdat er alleen een kwaadaardig programma nodig is.

De Meltdown-kwetsbaarheid is gebaseerd op enkele geheugentechnieken, evenals op het hierboven genoemde speculatieve uitvoeringssysteem. Het maakt gebruik van een "race-conditie" tussen de procesuitvoering en de privilegecontrole en geeft een kwaadaardig programma toegang tot het geheugen van andere applicaties en het besturingssysteem.

Tip: Een "race-conditie" is een probleem waarbij de ene taak op een andere moet vertrouwen, maar de juiste uitvoeringsvolgorde niet wordt gehandhaafd. Dit kan ertoe leiden dat het "tweede" proces als eerste wordt uitgevoerd en niet-geïnitialiseerd geheugen gebruikt dat het resultaat van het "eerste" proces had moeten bevatten, waardoor de vorige inhoud van dat geheugen lekt. In dit specifieke geval zou het proces niet moeten worden uitgevoerd totdat een machtigingscontrole heeft geverifieerd dat dit is toegestaan, maar de machtigingscontrole kan als tweede plaatsvinden vanwege prestatie-optimalisaties.

Effecten

Medio 2017 ontdekten meerdere teams onafhankelijk van elkaar zowel Meltdown als Spectre en rapporteerden ze privé aan CPU-fabrikanten die patches ontwikkelden. Vanwege de patches die gericht waren op prestatie-optimalisaties, verminderden ze uiteindelijk de prestaties van CPU's met maximaal 30% in het slechtste geval, waarbij een prestatievermindering van 2-14% meer representatief is voor die van mensen ervaringen.

De kwetsbaarheden waren van invloed op veel x86-CPU's, IBM POWER-CPU's en sommige op ARM gebaseerde CPU's. Meltdown is van invloed op de hardware die doorgaans wordt aangetroffen in pc's en cloudservers. Spectre is van invloed op pc's, cloudservers en mobiele apparaten. Alle Intel-CPU's van 1995 tot medio 2018 waren kwetsbaar voor de problemen (met uitsluiting van de Itanium- en Atom-lijnen vóór 2013). AMD-CPU's werden niet beïnvloed door Meltdown, maar waren kwetsbaar voor Spectre.

Patches voor softwarebeperking zijn ontwikkeld en uitgebracht door leveranciers van besturingssystemen die de meeste problemen oplossen. Sinds medio 2018 heeft Intel hun CPU-ontwerp bijgewerkt met hardwarematige oplossingen voor de problemen.

Beide problemen kunnen worden misbruikt via kwaadaardige webpagina's met bewerkt JavaScript, dus het is erg belangrijk om: zorg ervoor dat de beveiligingspatches op elk systeem zijn geïnstalleerd, zelfs als het prestatieverlies zal zijn streng. Helaas kunnen de problemen niet worden opgelost met een enkele patch, omdat het extreem complexe problemen zijn met diepgaande integratie in de hardware, beveiligingspatches zullen in de loop van de tijd worden uitgerold naarmate nieuwere varianten zijn ontdekt.