Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door Sander van Voorst

Nieuwsredacteur

Meltdown en Spectre - Q&A

Gegevens uitlezen door cpu-lekken

04-01-2018 • 17:10

167 Linkedin Google+

De belangrijkste vragen

Schreven we eind vorig jaar nog over het nut van branded vulnerabilities, beginnen we dit jaar meteen goed met twee nieuwe varianten met een eigen logo en website. Onderzoekers hebben details over de zogenaamde Meltdown- en Spectre-kwetsbaarheden gepubliceerd, die zich in het geval van het tweede lek voordoen bij moderne processors van Intel, ARM en AMD. De kwetsbaarheden maken het mogelijk om geheugen uit te lezen van de kernel en van andere processen, iets dat eigenlijk niet zou moeten kunnen door geheugenisolatie. Omdat dit wel blijkt te kunnen, behoort toegang tot gevoelige gegevens zoals wachtwoorden en privésleutels tot de mogelijkheden. In dit artikel gaan we kort in op de belangrijkste vragen rond de gepubliceerde lekken. Tweakers sprak daarnaast met Herbert Bos, die hoogleraar Systems and Network Security aan de VU Amsterdam is en aan het hoofd staat van de VUSec-onderzoeksgroep.

Waar hebben de kwetsbaarheden mee te maken?

Volgens Bos hebben alle kwetsbaarheden te maken met een techniek die bekendstaat als out-of-order execution: het berekenen van een resultaat voor het eigenlijk nodig is. Een goed voorbeeld hiervan is
speculative execution, een truc die tot prestatiewinst moet leiden bij het uitvoeren van programma's. Bos legt speculative execution uit met behulp van een voorbeeld. Stel dat een programma de volgende instructies bevat: "Als een waarde in het geheugen, die geheim is en niet zichtbaar behalve voor de kernel, gelijk is aan een waarde n, laad dan uit het geheugen de waarde van het n-de element uit een tabel." Vervolgens legt hij uit hoe de processor hier speculatief aan gaat rekenen en hoe dit tot het lekken van informatie kan leiden.

"Wat een moderne cpu doet om dit sneller te maken, is alvast de waarde uit het n-de element van de tabel te laden, terwijl hij nog aan het bepalen is of de eerste waarde in het geheugen eigenlijk wel gelijk was aan n. Als dat inderdaad zo was, dan heeft hij meteen de juiste waarde te pakken en dat scheelt tijd. Als dat niet zo was, dan heeft hij die waarde voor niks geladen. Maar dat geeft niet, want de cpu gooit die waarde dan gewoon weer weg. We noemen het laden van die waarde een 'speculatieve' operatie. Er is niks aan de hand, tenzij een aanvaller op een of andere manier kan zien welke waarde speculatief werd geladen."

Dat laatste blijkt nu juist het probleem te zijn, vervolgt Bos. "Een slimme (Meltdown-)aanvaller kan zien welk element in de tabel werd geactiveerd. Dit heeft te maken met de manier waarop moderne processoren data die ze net gebruikt hebben tijdelijk in de cache zetten, zodat ze daar in de toekomst heel snel toegang toe hebben. Helaas is juist die extra snelheid een 'side channel' om informatie te lekken voor aanvallers. Door zelf te kijken of element n in de cache zit, bijvoorbeeld door te kijken of toegang tot deze data sneller gaat dan gebruikelijk, weten zij of het programma de waarde n had berekend. Op die manier lekt dus informatie uit het meest beveiligde deel van de kernel."

Wat zijn de verschillen tussen Meltdown en Spectre?

Zoals in het voorgaande nieuwsbericht al is beschreven, laat Meltdown het uitlezen van kernelgeheugen toe, terwijl Spectre dat toelaat voor processen onderling. De onderlinge verschillen worden ook nog eens duidelijk gemaakt door een afbeelding die het werk is van beveiligingsexpert Daniel Miessler. Het patchen van Meltdown is volgens de ontdekkers mogelijk, terwijl het voor Spectre moeilijker is om een omvattende oplossing te bieden en systemen te beveiligen. De onderzoekers stellen dat een oplossing in veel gevallen gezocht moet worden in aanpassingen van processorontwerpen en updates voor isa's. In het Meltdown-paper schrijven de onderzoekers dat ondanks tegenmaatregelen een attack surface overblijft. Zo blijft het mogelijk om pointers te lekken, die gebruikt kunnen worden om de kaslr-beschermingsmaatregel voor kernelgeheugen te omzeilen. De zogenaamde Kaiser-patches zouden echter de beste tegenmaatregel zijn.

Afbeelding via Daniel Miessler

Wie is getroffen?

Uit het gepubliceerde onderzoek blijkt dat Meltdown zich hoofdzakelijk beperkt tot Intel-cpu's. Een proof-of-concept van Project Zero werkte op een Xeon-cpu van de Haswell-generatie en ook in het Meltdown-paper schrijven de onderzoekers dat ze hun aanval niet werkend konden krijgen op ARM- of AMD-processors. Ze stellen wel dat er een kans bestaat dat een geoptimaliseerde versie van hun techniek alsnog succes kan hebben op deze architecturen. Veel Intel-processors zijn kwetsbaar, volgens onderzoekers gaan getroffen cpu's terug tot 1995.

Spectre werkt zowel op Intel-processors als op die van AMD en ARM. Er zijn verschillende varianten van Spectre, gekenmerkt door CVE-2017-5753 en CVE-2017-5715. Respectievelijk duidt Project Zero deze aan als bounds check bypass en branch target injection. De eerste variant testten de onderzoekers met succes op cpu's van alle drie de fabrikanten. Maar die variant werkt alleen op een AMD Pro-cpu als eBPF om de een of andere reden is ingeschakeld. Dit staat standaard uit. AMD heeft in een eigen bericht geschreven niet of nauwelijks vatbaar te zijn voor de CVE's eindigend op 5754 en 5715, die toebehoren aan Meltdown en een van de Spectre-kwetsbaarheden. Over CVE-2017-5753 zegt AMD alleen dat dit verholpen kan worden met patches.

Inschatting door AMD zelf, waarbij met variant 3 Meltdown wordt bedoeld

Ook ARM heeft een overzicht gepubliceerd. Daaruit is op te maken dat alleen de Cortex-A75 vatbaar is voor Meltdown en Spectre, andere in het overzicht genoemde processors zijn alleen kwetsbaar voor de laatstgenoemde aanval. Er staan nog wel drie exemplaren tussen, de A15, A57 en A72, die vatbaar zijn voor alleen een Meltdown-variant. Die behoeft volgens ARM echter geen patch.

Diensten als AWS hebben inmiddels maatregelen genomen. Hetzelfde geldt voor Google, dat een overzicht heeft gepubliceerd van getroffen diensten. Daarin is ook Android opgenomen, waarvoor deze maand patches zijn uitgekomen. Mozilla heeft eveneens een advisory gepubliceerd, waarin het schrijft dat uit interne experimenten blijkt dat een aanval via webcontent mogelijk is. Daarom heeft het eerste maatregelen genomen in Firefox 57. Chrome ontvangt tegenmaatregelen in versie 64, die op 23 januari moet uitkomen. In de tussentijd kunnen gebruikers site isolation inschakelen.

Wat is het risico?

Het risico van Spectre voor gewone gebruikers is volgens Bos moeilijk in te schatten, omdat de aanval moeilijk uit te voeren is. Meltdown is makkelijker te gebruiken, maar daarvan bestaat er weer geen implementatie in Javascript. Het lijkt hem echter 'triviaal' om een dergelijke implementatie te ontwikkelen. Hij vervolgt: "Het probleem is sowieso dat dit soort kwetsbaarheden alleen maar erger worden. Meer en meer mensen gaan ernaar kijken en ontdekken dan nieuwe manieren om ze te misbruiken. Ondanks dat we deze kwetsbaarheden nog niet door criminelen misbruikt hebben zien worden, denk ik dat het een ernstig risico is."

Ook op de lange termijn kunnen de kwetsbaarheden effect hebben. "Dit soort aanvallen lijken de nieuwe frontlinie van computerbeveiliging. Waren zulke aanvallen tot voor kort nog te scharen onder science fiction, zien we nu elke paar maanden een nieuwe aanval in deze categorie. Het gevolg is dat besturingssystemen nu beduidend anders worden van structuur, dat veel van de aannames die we deden over de veiligheid van hardware opnieuw onderzocht worden en dat, specifiek voor deze kwetsbaarheden, computers significant langzamer worden."

Bos omschrijft de kwetsbaarheden als ernstig en stelt: "Zeker op computers waar code draait van meerdere gebruikers kan gevoelige informatie worden gelekt. Dit geldt bijvoorbeeld voor cloudomgevingen waar programma's van verschillende organisaties dezelfde fysieke hardware gebruiken, maar ook voor zoiets alledaags als een webbrowser, waarin voortdurend Javascript-code van websites wordt uitgevoerd."

Zijn er patches voor besturingssystemen?

Vooropstaat dat Meltdown patchbaar lijkt te zijn, terwijl dit voor Spectre moeilijker is. Verschillende fabrikanten hebben inmiddels patches gepubliceerd. Zo heeft Microsoft deze inmiddels beschikbaar gesteld voor Windows 10. Daarbij speelt de aanwezige antivirussoftware een rol, omdat sommige versies van av-suites niet compatibel zijn met de patches en het systeem deze daarom niet ontvangt. Beveiligingsexpert Kevin Beaumont werkt aan een overzicht waarin hij bijhoudt welke informatie door beveiligingsbedrijven naar buiten is gebracht. In de Linux-kernel zijn de patches in versie 4.15 vrijgekomen met backports naar versie 4.14.10. Ontwikkelaars voor de Linux-kernel werkten al een tijd aan zogenoemde Kaiser-patches. Die zijn begin december omgedoopt tot x86/kpti-patches, waarbij kpti staat voor kernel page table isolation. Volgens The Register is macOS gepatcht vanaf versie 10.13.2.

Draait mijn systeem trager door de patches?

Onder meer Phoronix, Hardware Unboxed en Computerbase publiceerden benchmarks na het toepassen van de nodige patches. De tests van Phoronix betroffen Linux en wezen op aanzienlijke prestatievermindering bij toepassingen als FS-Mark-, Compile Bench- en PostgreSQL. Hardware Unboxed ondervond bij i/o-benchmarks op Windows nagenoeg alleen een noemenswaardige prestatievermindering bij 4k reads en acces time reads. Bij gaming zou er bij zowel Windows als Linux geen verschil in prestaties optreden. Vooral het uitvoeren van syscalls zou trager verlopen. Volgens Microsoft gaat 'de meerderheid' van de Azure-klanten geen prestatieverschil merken. Een kleine groep klanten zou lagere netwerkprestaties kunnen ervaren, maar dit zou op te lossen zijn door Azure Accelerated Networking te activeren.

Bos stelt dat er percentages tot 30 procent prestatievermindering worden genoemd, maar dat hijzelf niet gelooft dat het zo hoog zal uitvallen. "Ik geloof zelf niet dat het 30 procent zal zijn, maar zelfs 5 procent vertraging van vrijwel alle computers ter wereld levert een grote schade op. Daarnaast worden er wel veel patches voorgesteld, maar lossen de huidige patches het echte probleem niet op. Ze houden dan enkele varianten van de aanval tegen, maar het probleem blijft. Vooral de Spectre kwetsbaarheid blijft problematisch", aldus Bos.

Wie ontdekten de kwetsbaarheden?

Bij de ontdekking van zowel Spectre als Meltdown was Jann Horn van Googles Project Zero betrokken. In de blogpost van het project is genoemd dat Intel, AMD en ARM op 1 juni van vorig jaar op de hoogte zijn gesteld. Voor Meltdown geldt dat deze kwetsbaarheid daarnaast door Werner Haas en Thomas Prescher van Cyberus is ontdekt, naast een team van de Technische Universiteit van Graz. Spectre werd naast Horn door Paul Kocher in samenwerking met verschillende onderzoekers ontdekt.

Reacties (167)

Wijzig sortering
Je hebt gelijk, het moet in deze exploits een load zijn van een eigen gecontroleerde array, om de betreffende cache line te laden.

Het is echter niet zo dat een store niet speculatief uitgevoerd kan worden. Meeste moderne procerssoren hebben namelijk een store buffer, en kunnen dus ook geheugen schrijf acties speculatief uitvoeren. Maar dat maakt in dit geval niet uit, want het heeft inderdaad geen cache effect.
Komt nog bovenop dat als we de CPU architectuur aan gaan passen de bovenliggende operating systemen ook weer van de nodige aanpassingen en vernieuwingen moeten worden voorzien! |:(
Goede aanvulling. Maar wel met veel speculatie.

Met de juiste paar honderd bytes heb je iemand anders zijn wallet in handen.
En zoek die juiste paar honderd bytes maar eens op die servers met software die je niet eens kent. Is een super specifieke en dure aanval.

deze aanvallen lijken gewoon op legitieme code
Elke nieuwe virus / ransom code lijkt in eerste instantie op legitieme code. Er zijn altijd mensen die dat gewoon niet zien en gebruiken. Of op een link klikken. Of een attachment openen en uitvoeren.

Zit misschien straks wel verborgen in de volgende versie van OpenCandy die je bij de Incredimail icoontjes krijgt. Ja dus? Daar kan nu ook al vanalles inzitten. OpenCandy is een draak van een applicatie die nu al heel veel van de gebruiker verzamelt en doorstuurt. Misschien stuurt het nu al wachtwoorden door weet jij veel?

Grootste probleem is nog dat er nu pas echt naar gekeken gaat worden door een breed publiek.
Ja dat is waar het is nog nieuw en het geeft nieuwe mogelijkeheden om aanvallen te ontwikkelen. Maar wat we wel weten is dat je zelf code moet uitvoeren op je systeem. Dat is mijn punt. Dat is te voorkomen. En dat het ontwikkelen van een echte aanval via deze weg (het uitlezen van cache data van andere processen en daar chocola van maken) veel moeilijker lijkt dan de vele mogelijkheden die er nu al zijn voor trojans en virussen.
kwestie van een malifide whatsapp klone op play zetten. zodoende heeft ook iemand miljoenen aan reclame inkonsten binnengehengeld. easy
Dat is precies wat ik bedoel - het is te vergelijken met ransom ware of andere malware. Iets moet eerst via de mail of via een andere weg binnenkomen en je moet het uitvoeren op je PC voordat er iets aan de hand is. Het is niet zo dat alle PC's opeens nu open staan voor de wereld en iedereen bij je binnen kan komen.

Of is dat niet wat jij bedoelde toen je mij naief noemde?
Het proof of concept is in javascript een besmette website bezoeken is dus al genoeg.
Naief omdat je denkt dat het wel mee valt en denk je niet dat het in combinatie met een andere exploit de wereld in geslingerd kan worden. Als je full-access toegang combineerd met een exploit die niet full-access heeft maar wel voor distrubutie kan zorgen dan hang je. Aangezien updaten nog steeds niet bij iedereen de regel is, is dit ook zeer gevaarlijk voor de normale user.

[Reactie gewijzigd door citegrene op 5 januari 2018 12:33]

Ik denk helemaal niet dat het mee valt, ik probeer op internet objectief de menigen van experts te verzamelen om in te schatten hoe erg het nu eigenlijk is. Mij naďef noemen is flauw. Kom met feiten. Mijn inschatting is nu op basis daarvan vooralsnog: voor de thuisgebruiker niet erger dan andere malware.

Uit het artikel samengevat:
  • Het risico van Spectre voor gewone gebruikers is volgens Bos moeilijk in te schatten, omdat de aanval moeilijk uit te voeren is.
  • Meltdown is makkelijker te gebruiken, maar daarvan bestaat er weer geen implementatie in Javascript.
  • Vooropstaat dat Meltdown patchbaar lijkt te zijn, terwijl dit voor Spectre moeilijker is.
En dan nog steeds heb je user access nodig tot de PC.
1 2 3 ... 6

Op dit item kan niet meer gereageerd worden.


Apple iPhone XS Red Dead Redemption 2 LG W7 Google Pixel 3 XL OnePlus 6T (6GB ram) FIFA 19 Samsung Galaxy S10 Google Pixel 3

Tweakers vormt samen met Tweakers Elect, Hardware.Info, Autotrack, Nationale Vacaturebank en Intermediair de Persgroep Online Services B.V.
Alle rechten voorbehouden © 1998 - 2018 Hosting door True