Foreshadow: hoe speculatieve uitvoering Intel hoofdpijn blijft bezorgen

Computerwetenschappers van de KU Leuven hebben een nieuwe kwetsbaarheid ontdekt die misbruik maakt van speculatieve uitvoering. Het lek krijgt de naam ‘Foreshadow’ en treft – opnieuw – alleen moderne processors van Intel. Hoe verschilt Foreshadow van Meltdown en Spectre?

Nadat Meltdown en Spectre Intel al een heel jaar hoofdpijn bezorgen, kwam deze week een nieuwe kwetsbaarheid aan het licht. Foreshadow past in dezelfde familie als voorgenoemde kwetsbaarheden en werd onafhankelijk ontdekt door een onderzoeksteam van de KU Leuven en een team van Technion, University of Michigan en University of Adelaide.

Speculatieve uitvoering

Bron van de problemen is speculatieve uitvoering. Om even op te frissen: speculatieve uitvoering is een techniek waarbij een cpu probeert te voorspellen welke instructie als volgende moet worden uitgevoerd. Data voor die instructie wordt alvast in de cache ingeladen, nog voordat de vorige instructie is afgerond. Heeft de cpu juist gegokt, dan kan hij meteen verder met de volgende instructie. Is de speculatie toch fout, dan wordt al het werk ongedaan gemaakt en een nieuwe instructie ingeladen.

Speculatieve uitvoering is doorheen de jaren zo goed geworden dat het in 95 procent van de gevallen de volgende instructie correct voorspelt. Moderne cpu’s hebben een groot deel van hun snelheid aan deze techniek te danken. Lange tijd werd gedacht dat het systeem waterdicht was, tot begin dit jaar het tegendeel werd bewezen met de ontdekking van Meltdown en Spectre.


Lees dit: De vloek van Spectre: waarom blijft het jou en Intel achtervolgen?


Het probleem ligt niet zozeer bij de techniek van speculatieve uitvoering op zich, maar wel bij de manier waarop Intel het in zijn processors implementeert.

“Speculatieve uitvoering op zich is nooit genoeg om een aanval te lanceren”, zegt professor Frank Piessens van het DistriNet-onderzoeksteam aan de KU Leuven. “Het is perfect mogelijk om een veilige processor te maken die speculatieve uitvoering ondersteunt. Er is dus ergens een bijkomende zwakheid nodig in de processor.”

Bij Meltdown zit die kwetsbaarheid in de toegangscontrole tot het kernel-geheugen, bij Spectre in het feit dat de branch predictor niet gescheiden is tussen verschillende processen. Ook Foreshadow steunt op speculatieve uitvoering, maar misbruikt nog een ander lek, waardoor de kwetsbaarheid volgens de onderzoekers zijn eigen naam verdient.

“Foreshadow is het nauwst verwant aan Meltdown, in de zin dat Foreshadow ook een zwakheid in de toegangscontrole uitbuit”, legt professor Piessens uit. “Maar het gaat om een andere zwakheid, waardoor ook andere beveiligingsmechanismen kunnen worden omzeild.”

Intel SGX

In het geval van Foreshadow situeert de kwetsbaarheid zich in Intels Software Guard eXtensions (SGX). De processorfabrikant introduceerde deze technologie in 2015 om zijn chips beter te beveiligen. SGX creëert geïsoleerde omgevingen in het geheugen, zogenaamde enclaves, waar gegevens en programma’s op een veilige manier kunnen worden gebruikt. Zelfs wanneer een computer onder de controle van een aanvaller valt, is de informatie in die enclaves in principe veilig.

“Als je een computersysteem bekijkt als een wolkenkrabber, dan vormen de enclaves een brandkast. Zelfs wanneer het gebouw instort, zou de brandkast haar geheimen nog altijd niet mogen prijsgeven”, legt onderzoeker Jo Van Bulck uit. “In die brandkast kan je persoonlijke informatie bewaren, maar er zijn nog meer mogelijkheden. Streamingdiensten zoals Netflix kunnen enclaves gebruiken om auteursrechten te beschermen. Zo kunnen klanten wel films bekijken, maar raken ze niet aan de data om er zelf een kopie van te maken.”

Hoewel aanvankelijk werd gedacht dat SGX bestand was tegen een aanval via speculatieve uitvoering, bewijst Foreshadow het tegendeel. De onderzoekers demonstreren hoe een aanvaller het systeem kan forceren om een schaduwkopie van de beveiligde data uit de enclave te lichten en naar een onbeveiligde locatie in de cache te verplaatsen. Door speculatieve uitvoering te misbruiken, kan die informatie vervolgens onrechtmatig worden uitgelezen zonder dat daarvoor specifieke privileges vereist zijn.

In hun paper beschrijven de onderzoekers hoe de aanval technisch in zijn werk gaat. Onderstaande video biedt de lekenuitleg.

Intel werd begin januari – omstreeks de bekendmaking van Spectre en Meltdown – door de KU Leuven op de hoogte gesteld van de kwetsbaarheid. Op basis van het werk van de onderzoekers ontdekte Intel nog twee gerelateerde aanvallen die potentieel kunnen worden gebruikt om alle data uit de L1-cache uit te lezen, inclusief informatie van de System Management Mode (SMM), de kernel of de hypervisor.

Deze varianten werden Foreshadow Next Generation (NG) gedoopt en vormen een grote bedreiging voor cloudplatformen. Ze stellen een aanvaller namelijk in staat om informatie uit te lezen uit andere virtual machines die in dezelfde cloudomgeving draaien. Amazon, Microsoft en Google lieten alvast weten dat ze voor hun respectieve cloudplatformen het probleem hebben verholpen.

Miljoenen processors

SGX en speculatieve uitvoering worden in nagenoeg alle Intel-processoren gebruikt, waardoor miljoenen chips kwetsbaar zijn. Intel stelde volgende lijst op met getroffen cpu-reeksen:

 

  • Intel Core i3, i5, i7, M (45nm en 32nm)
  • 2de, 3de, 4de, 5de, 6de, 7de en 8ste generatie Intel Core
  • Intel Core X voor X99 en X299
  • Intel Xeon 3400, 3600, 5500, 5600, 6500 en 7500
  • Intel Xeon E3 v1, v2, v3, v4, v5 en v6
  • Intel Xeon E5 v1, v2, v3 en v4
  • Intel Xeon E7 v1, v2, v3, v4
  • Intel Xeon Scalable
  • Intel Xeon D 1500 en 2100

 

Omdat de verdedigingen die werken tegen Meltdown en Spectre geen bescherming bieden tegen Foreshadow, zijn nieuwe patches nodig voor al deze processors. Intel is deze week gestart met het uitrollen van microcode-updates, maar ook besturingssystemen en hypervisors zullen een update moeten krijgen.

Met deze nieuw ontdekte kwetsbaarheid bovenop de aanslepende uitdagingen van Spectre en Meltdown, lijken de problemen nog niet meteen van de baan voor Intel. Nu duidelijk is dat cpu’s kwetsbaar zijn via speculatieve uitvoering, zoeken hackers en beveiligingsonderzoekers naarstig naar nieuwe manieren om de techniek te misbruiken.

“Ik vrees een beetje dat we het einde van deze klasse van aanvallen nog niet hebben gezien, en dat er in de toekomst nog varianten kunnen opduiken”, zegt ook professor Piessens.

Intel zal dus kop van jut blijven, niet alleen met de huidige processors, maar ook met de volgende generaties. De cpu’s die Intel op de planning heeft staan, hebben de kwetsbaarheid ingebakken. Intel moet van de grond af beginnen en zijn architectuur volledig opnieuw bouwen. Dat kost tijd. Wellicht nog enkele generaties.