Speculatief misbruik
Het probleem ligt bij een ander stuk van de technologie. In het geheugen van pc’s en servers is er een belangrijk onderscheid tussen de user space en de kernel space. De user space bevat data die niet overdreven gevoelig is, terwijl in de normaliter erg goed beschermde kernel space de meest kritieke gegevens worden behandeld. Een normale instructie zonder toegang tot de kernel space zal nooit door de processor raken met toegang tot de data daar. Vraagt een normale user space-instructie toegang tot data in de kernel space, dan zet de processor de instructie stop. Niet zo als het om een speculatieve instructie gaat. De check gebeurt nog steeds, maar pas helemaal op het einde, wanneer blijkt dat de instructie daadwerkelijk moet worden uitgevoerd. De redenering hierachter kan je begrijpen: als de processor fout speculeert, worden alle wijzigingen teruggedraaid, en als de speculatieve instructie terecht wordt uitgevoerd, doorgaat ze een finale privilegecheck voordat de uitvoering wordt afgerond.Lekke pipeline
Het probleem zit in de pipeline. Stel je eenvoudig voor dat een fictieve processor een pipeline van vier stappen heeft. In de eerste stap wordt data van het RAM-geheugen naar de processorcache geschreven, in de volgende stappen gebeuren er bewerkingen, en in de allerlaatste stap kijkt de cpu in het geval van de speculatieve instructie of ze wel moest worden uitgevoerd, en of ze de nodige privileges heeft. Zelfs wanneer het antwoord op één van die vragen nee is, heeft een malafide speculatieve instructie wel wijzigingen kunnen aanbrengen in de processorcache. In die cache is data minder goed beschermd als in de kernel space. Het eerste Spectre-lek maakt van die tekortkoming in Intel-cpu’s gebruik om gevoelige data uit te lezen. Een speculatieve malware-instructie haalt data zoals een wachtwoord uit de kernel space naar de cache, waarna ze terecht wordt stopgezet, maar de cache intussen wel is aangepast. Aan de hand van die aanpassing kan malware vervolgens aan je wachtwoord raken.Lees ook: Gevaarlijke nieuwe Spectre-varianten bezorgen Intel opnieuw hoofdpijn