4 brandende vragen over Intels nieuwe chipgat

Speculative excution heeft vorig jaar een heel nieuwe klasse aan aanvallen veroorzaakt. Het einde van Meltdown-achtige toestanden is nog lang niet in zicht, zo blijkt uit een nieuwe reeks kwetsbaarheden die deze week werd bekendgemaakt.

Onderzoekers hebben nieuwe kwetsbaarheden ontdekt in processoren van Intel, waardoor aanvallers de beveiligingsmiddelen die door hypervisors, kernels en SGX-enclaves worden afgedwongen kunnen omzeilen, waardoor data op servers en endpoints risico loopt. De nieuwe aanvalstechnieken kunnen gebruikt worden om gevoelige geheime data als wachtwoorden en encryptiesleutels lekken uit beveiligde geheugengebieden en zijn niet opgelost door patches voor eerdere CPU-aanvallen.

Meer dan een jaar geleden kwamen Meltdown- en Spectre-aanvallen vanuit het niets en ze legden een fundamenteel probleem bloot die demonstreerde dat isolatie tussen kernel en applicaties of verschillende virtuele machines op dezelfde servers niet zo strikt was als breed werd aangenomen. Deze aanvallen maakten gebruik van een prestatieverbeterende feature van moderne CPU's genaamd speculative execution door te analyseren hoe data werd benaderd in CPU-caches.

Hoe zat het ook alweer met Meltdown en hoe werkte dat gat? Lees meer in: 5 brandende vragen over gevaarlijk chipgat Meltdown.

Sindsdien hebben onderzoekers meer side channel-technieken gevonden waardoor aanvallers secrets konden reconstrueren, zonder er directe toegang tot te hebben. Ze deden dit door te analyseren hoe data door microarchitecturale componenten van de CPU werden gevoerd met speculative execution.

1. Wat zijn de nieuwe kwetsbaarheden?

Deze week onthulden onderzoekers van verschillende universiteiten in samenwerking met organisaties in de privésector nieuwe aanvallen die dezelfde impact hebben als Meltdown en Spectre. Ze zijn het afgelopen jaar in stilte gemeld aan Intel. Het verschil met de eerdere kwetsbaarheden is dat de nieuwe technieken gebruik maken van de buffers van Intels CPU's in plaats van de caches.

"In tegenstelling tot bestaande aanvallen kunnen onze aanvallen data vanuit interne CPU-buffers (line fill buffers, load ports, store buffers) lekken, inclusief gegevens die niet worden opgeslagen in CPU-caches", schrijven onderzoekers van de Vrije Universiteit Amsterdam op een website over de nieuwe kwetsbaarheden. "We laten zien dat bestaande beveiliging tegen speculative execution-aanvallen niet toereikend zijn en in sommige gevallen het juist erger maken."

Intel noemt deze nieuwe klasse van aanvallen Microarchitectural Data Sampling (MDS) en heeft de gemelde issues opgesplitst in vier kwetsbaarheden met hun eigen CVE's:

  • CVE-2018-12126 – microarchitectural store buffer data sampling (MSBDS)
  • CVE-2018-12127 – microarchitectural load port data sampling (MLPDS)
  • CVE-2018-12130 – microarchitectural fill buffer data sampling (MFBDS)
  • CVE-2019-11091 – microarchitectural data sampling uncacheable memory (MDSUM)

Drie van deze kwetsbaarheden - MLPDS, MFBDS en MDSUM - worden besproken in een onderzoeksrapport (PDF) van de Systems and Network Security Group (VUSec) van de Vrije Universiteit Amsterdam. De onderzoekers van VUSec verwijzen naar hun side channel-aanvalstechniek als Rogue In-Flight Data Load, of RIDL.

De vierde kwetsbaarheid, MSBDS, wordt behandeld in een apart onderzoeksrapport (PDF) van wetenschappers van de niversity of Michigan, Worcester Polytechnic Institute, Graz University of Technology, KU Leuven en de University of Adelaide. Hun techniek gaat over het lekken van data uit opslagbuffers en heet Fallout. Het kan worden ingezet om kernel address space layout randomization (KASLR) te omzeilen. Dat beveiligingsmechanisme is juist bedoeld om het misbruiken van geheugenfouten moeilijker te maken.

"ironisch genoeg maken de nieuwe hardwaremaatregelen die Intel introuceerde in Coffee Lake Refresh i9-CPU's om Meltdown te voorkomen ze juist kwetsbaarder voor Fallout in vergelijking met oudere hardware", schrijven de onderzoekers.

IDG-collega en professionele beveiliger Roger A. Grimes legde nog ruim vóór Meltdown uit aan de hand van een firmwaregat van Intel waarom hij vermoedde dat chiphacks de nieuwe norm zouden worden: 6 redenen waarom chiphackes enorm zullen groeien.

Het afgelopen jaar zijn soortgelijke fouten onafhankelijk gevonden door onderzoekers en in stilte gemeld aan Intel, inclusief door Giorgi Maisuradze van CISPA - Helmholtz Center for Information Security in Duitsland, die toen een stagiair was bij Microsoft Research, een team onder leiding van Daniel Gruss aan Graz University of Technology, en een team van Dan Horea Lutas van Bitdefender, Volodymyr Pikhur van Oracle en Lei Shi van QiHoo 360.

Het onderstreept de interesse van de onderzoeksgemeenschap in CPU- en hardwaregerelateerde kwetsbaarheden en bewijst eens te meer dat researchers onafhankelijk van elkaar op dezelfde issues stuiten - wat betekent dat aanvallers dat ook kunnen doen.

2. Wat is kwetsbaar?

De kwetsbaarheid treft moderne Intel-CPU's in servers, pc's en laptops. Intel heeft een lijst gepubliceerd van potentieel kwetsbare CPU's en een whitepaper gemaakt voor ontwikkelaars. Volgens VUSec hebben AMD en ARM gesteld na het doornemen van het rapport dat ze niet worden getroffen door deze issues.

3. Hoe werkt de aanval?

De kwetsbaarheden kunnen worden gebruikt door een malafide proces, zoals applicaties met lage rechten of zelfs JavaScript in een browser om geheugenisolerende grenzen te overschrijden en data te bemachtigen van andere processen. De VUSec-onderzoekers hebben een proof-of-concept waarbij ze een VM inzetten om de content van <code>/etc/shadow</code> dat wordt gedeeld met een VM op dezelfde CPU-core te lezen. Dat is een configuratie die je in menig cloudomgeving aantreft. In een andere PoC gebeurt hetzelfde met informatie van de Linux-kernel via een proces zonder hoge rechten.

Omdat dit side channel-aanvallen zijn, worden datawaardes niet direct gelezen, maar afgeleid uit hoe ze worden ingeladen in buffers gedurende het speculative execution-proces. Dat CPU-proces is ontworpen om instructies te kunnen uitvoeren nog voordat ze expliciet worden gegeven, om rekenoperaties sneller uit te voeren.

Het is gebaseerd op een algoritme dat in feite probeert te raden hoe een programma wil uitvoeren, voordat het daadwerkelijk uitvoert. Als de aanname niet klopt, wordt de aangemaakte data verwijderd en verloopt de uitvoer via zijn correcte pad. Maar dit zorgt er ook voor dat een lokale aanvaller informatie kan verzamelen over data dat in caches - of in dit geval: buffers - wordt bewaard.

"RIDL wordt veroorzaakt door micro-optimalisaties die ervoor zorgen dat speculative loads worden aangemaakt door de CPU op basis van overvloedige in-flight data", aldus de onderzoekers van VUSec in hun rapport. "In feite zet RIDL een glas tegen de muur die beveiligingsdomeinen scheidt, waardoor een aanvaller de CPU-componenten kan horen praten."

Herbert Bos, informatiebeveiliger aan de VU, vertelt Computerworld's zustersite CSO dat er twee manieren zijn om de data te bemachtigen: door alles te verzamelen en dan uit te pluizen om te zien wat de interessante stukjes zijn, of door het slachtoffer te dwingen de data aan te spreken waar de aanvaller daadwerkelijk in is geïnteresseerd.

In een PoC van een VM-techniek laten de onderzoekers bijvoorbeeld zien dat SSH-verbindingen meerdere malen werden geopend om als root proberen te authenticeren. Deze pogingen zorgden ervoor dat het OS wordt geforceerd om in de virtuele machine <code>/etc/shadow</code> aan te spreken om wachtwoordhashes van de accounts op de systemen te achterhalen.

Het duurde 24 uur van activiteit om genoeg data te lekken om dat hele bestand op te bouwen, maar in ander MDS-aanvalssecnario's duurde het slechts milliseconden. Het hangt er vanaf wat de aanvaller probeert te bereiken en hoe hij of zij dat doel wil behalen, legt Bos uit.

4. Hoe beperk je de schade van MDS-aanvallen?

"Microarchitectural Data Sampling (MDS) wordt op hardwareniveau aangepakt in veel van onze achtste- en negende generatie Intel Core-processoren en tweede generatie Intel Xeon Scalable Processor", verklaart Intel in een e-mail. "Voor andere getroffen producten zijn microcode-updates beschikbaar, gekoppeld aan updates voor besturingssystemen en hypervisor software, en deze zijn vanaf heden verkrijgbaar. We geven meer informatie op onze website en verzoeken iedereen om de systemen up-to-date te houden, omdat dit een van de beste manieren is om beveiligd te blijven."

De microcode-updates geven nieuwe instructies die OS- en software-ontwikkelaars kunnen gebruiken om buffers te overschrijven en te voorkomen dat gegevens worden blootgelegd. Net als met de oplossingen voor Spectre kunnen de microcode-updates worden uitgebracht als onderdeel van UEFI/BIOS-updates, wat persistent wijzigingen zou doorvoeren, of via uitgaves van OS-leveranciers die dan zouden worden toegepast op de kernel bij elke boot.

Zonder microcode-oplossingen, kunnen software- en OS-ontwikkelaars bepaalde instructies schrijven om de buffers op dezelfde manier te overschrijven. Dit staat gedocumenteerd in Intels whitepaper en kan verschillen per processorfamilie.

Volgens Bos lijden prestaties zwaarder onder softwaregebaseerde oplossingen tegenover microcode-patches, maar in beide gevallen moeten software- en OS-makers ervoor zorgen dat de bufferoverschrijvende instructies daadwerkelijk worden gebruikt. Ook moeten gebruikers op zoek naar patches van hun OS- en hypervisor-leveranciers.

Een andere aanbeveling van VUSec is het uitschakelen van Simultaneous Multi-Threading (SMT), ook bekend als Intels Hyper-Threading. Dit lost niet alle aanvallen op, maar voorkomt de meeste en maakt het moeilijker om ze uit te voeren. Het nadeel is dat de performance voor sommige workloads ook negatief wordt beïnvloed. Intel heeft aanbevelingen voor omgevingen die SMT gebruiken opgenomen in zijn whitepaper.

Het is misschien ook belangrijk op te merken dat de ontwikkelaars van OpenBSD vorig jaar hebben besloten om SMT standaard uit te schakelen in hun kernel-scheduler, nadat vorig jaar een andere kwetsbaarheid over de CPU-buffers werd onthuld. "Aangezien veel moderne machines niet langer de mogelijkheid hebben om hyper-threading uit te schakelen in de BIOS-setup hebben we de mogelijkheid toegevoegd om het gebruik van aanvullende processorthreads uit te schakelen in onze scheduler", aldus de OpenBSD-ontwikkelaars destijds. "En aangezien we vermoeden dat er serieuze risico's zijn, schakelen we ze standaard uit."

Ook zeggen de VUSec-onderzoekers dat het aanstippen van specifieke varianten van side channel-aanvallen van speculative execution geen langetermijnoplossingen zijn, omdat nieuwe aanvallen deze zullen omzeilen. "De les die we hebben geleerd is dat het niet eenvoudig is om RIDL-achtige aanvallen te beperken met software-oplossingen en we een fundamentelere manier nodig hebben om een einde te maken aan speculative exection-aanvallen", aldus de onderzoekers.

Het probleem is dat de architecturale wijzigingen die wellicht vereist zijn om de risico's van speculative execution uit te sluiten inhouden dat we de CPU-prestatieverbeteringen die we gewend zijn - die naar we nu ontdekken ten koste gaan van beveiliging - moeten inleveren.

Related:

Copyright © 2019 IDG Communications, Inc.

 
Shop Tech Products at Amazon