Onderzoekers van Google keken in detail naar de Spectre-kwetsbaarheid die processors al meer dan een jaar lang teistert, en kwamen tot de conclusie dat een software-oplossing onmogelijk is, en zelfs mitigatie door nieuwe hardware niet vanzelfsprekend lijkt.
We moeten voorlopig leren leven met Spectre. Daar komen de ietwat pessimistische bevindingen van een team van Google-onderzoekers op neer. In een rapport analyseren ze de impact van Spectre en de mogelijke oplossingen.
Spectre is de naam voor een type kwetsbaarheid dat begin vorig jaar werd ontdekt. De kwetsbaarheid misbruikt speculatieve uitvoering binnen Intelprocessors. Speculatieve uitvoering is een techniek waarbij de cpu de waarde van een parameter zoals een ‘of’ of een ‘en’-conditie gokt voor de instructie die de werkelijke uitkomst moet leveren, is uitgevoerd. Zo probeert de cpu een voorsprong te nemen. Als een instructie is afgewerkt, en de volgende instructie blijkt correct speculatief uitgevoerd, dan wordt het resultaat daarvan als geldig beschouwd. Gokte de cpu toch verkeerd, dan wordt het resultaat van de speculatieve instructie genegeerd.
Onmisbare ontwikkeling
Voorspellingsalgoritmes zijn vandaag zo goed dat speculatieve uitvoering als concept onmisbaar is voor de hoge prestaties van een cpu. In principe is er niets mis met speculatieve uitvoering en de techniek werd lange tijd als waterdicht beschouwd. Vorig jaar ontdekten onderzoekers echter dat hackers de speculatieve uitvoering kunnen misbruiken. In principe weet software niet wat er speculatief wordt uitgevoerd. In de praktijk blijkt dat de uitvoering een meetbare impact heeft op het cachegeheugen van de cpu, ook wanneer de uitgevoerde instructie fout en dus irrelevant blijkt. Door dat op een slimme manier uit te buiten, krijgen hackers toegang tot gevoelige informatie die anders afgeschermd blijft.
Spectre is niet één kwetsbaarheid, maar een verzamelnaam voor alle kwetsbaarheden die de inherente beperkingen van speculatieve uitvoering misbruiken. Intussen passeerden er zo al verschillende de revue. De Google-onderzoekers stelden vast dat er niet één software-oplossing bestaat die misbruik door alle varianten van Spectre kan voorkomen. Bovendien legt iedere softwarepatch een beperking op speculatieve uitvoering op, en dat heeft een significante impact op de prestaties. In extreme gevallen vertraagt een patch relevante processen met drie tot vijf keer, in optimistische scenario’s blijft de impact op de prestaties beperkt tot ‘amper’ tien procent.
Geen duidelijke oplossing
Volgens Google moeten we dus niet hopen op een softwarepatch waarmee Spectre uit de wereld wordt geholpen. De enige oplossing is mitigatie op hardwareniveau, en ook dat wordt moeilijk. Speculatieve uitvoering afvoeren is immers geen optie: daarvoor is dat zou betekenen dat cpu’s een stap terug moeten zetten in rekenkracht. De vraag is dan maar of het wel mogelijk is om de techniek zodanig te beveiligen dat misbruik onmogelijk wordt. Bij Google hebben ze daarover hun twijfels, omdat minuscule wijzigingen aan de cache een niet te vermijden kwaad lijken.
Dat wil natuurlijk niet zeggen dat we allemaal per definitie kwetsbaar blijven voor Spectre. Slimme antivirussoftware kan Spectre-aanvallen detecteren en stoppen, en zo een schild bieden. Het betekent wel dat processors voor op z’n minst de nabije toekomst de hulp zullen nodig hebben van zo’n schild om helemaal veilig te functioneren.
Gerelateerd: De vloek van Spectre: waarom blijft het jou en Intel achtervolgen?