Meltdown en Spectre bevestigen het belang van up-to-date low-level security skills
James Lyne, EMEA Director bij SANS Institute en Global Head of Security bij Sophos
Dinsdag zijn er twee nieuwe kwetsbaarheden aan het licht gekomen in de architectuur van processors die gebruikt worden in vrijwel ieder device dat gebruik maakt van CPU’s. En omdat er nu ook publiekelijk code beschikbaar is om deze kwetsbaarheden te exploiteren, is het een kwestie van tijd tot meer capabele en modulaire code wordt vrijgegeven waar kwaadwillenden dankbaar gebruik van maken. Actie is dan ook noodzakelijk.
De CPU-bug bestaat uit twee kwetsbaarheden, omgedoopt tot Meltdown en Spectre. Dit zijn niet per definitie hardware-fouten op het niveau van silicium in een computerprocessor. Ze opereren op het onderliggende niveau van de architectuur van een computer – waar het enorme aantal transistoren en logische poorten zorgen dat een computer complexe (software-gedreven) instructies uit kan voeren. Moderne computers bestaan uit lagen van complexiteit op lagen van complexiteit.
Door de Meltdown-fout kunnen computerprogramma's toegangsbeperkingen en toegang tot beveiligd geheugen schenden. Segregerend geheugen voorkomt dat processen met elkaar knoeien, of met het besturingssysteem van de computer. Maar als deze muren worden afgebroken, kan het ene proces in een ander proces kijken. Dit resulteert in de mogelijkheid van een escalatie van privileges of ernstige datalekken. Gelukkig zijn er al patches voor Meltdown beschikbaar, die een meer robuuste wand om de kernel, het meest gevoelige en cruciale deel van het geheugen van een computer, bouwen. Meltdown is vooral van invloed op Intel-chips, maar is relatief gemakkelijk in te perken als patches tijdig worden toegepast. Het is bovendien goed om te weten dat sommige cloudproviders hun platforms al hebben geüpdatet, zoals de Amazon Cloud Linux-images.
Spectre is helaas gecompliceerder. De bug heeft invloed op een enorm scala aan processoren, Macs en pc’s en mogelijk ook cloudomgevingen en mobiele devices. Het is haast onvoorstelbaar dat wanneer u een programma uitvoert de CPU speculatief de code uitvoert waar u zelf nog niet om gevraagd heeft. De extra capaciteit in een moderne processor verzet werk waar u later in het proces mogelijk een beroep op zal doen en maakt het zo mogelijk om het proces te versnellen. Hier merkt u als gebruiker weinig van en gaat vaak ook voorbij aan de meeste software developers. Deze welkome optimalisatie van prestatie stelt in sommige omstandigheden aanvallers in staat om een programma te misleiden en gevoelig beschermd geheugen bloot te stellen.
Hoewel Spectre extreem laag in de architectuur van de computer opereert is er een proof of concept waaruit blijkt dat het defect wordt geactiveerd door JavaScript, een veelgebruikte programmeertaal die vaak in webbrowsers wordt gebruikt. Er zijn specifieke configuratieopties die de exploitatie door Spectre lastiger maken, zoals de functie 'site-isolatie' in Google Chrome. Deze functie is echter niet standaard ingeschakeld en velen zullen deze niet zelf inschakelen. De komende dagen en weken verwachten we mede daarom een hoop verschillende implementaties en exploit voorbeelden van Spectre te zien verschijnen. Het primaire risico speelt zich lokaal af op apparaat niveau. Indirect, via een netwerk is het risico minder groot. Dit neemt niet weg dat Spectre onderdeel kan uitmaken van een grotere aanval waarbij aanvallers misbruik maken van de verkregen lokale bevoegdheden.
Het patchen ter bescherming tegen Spectre is veel uitdagender dan bij Meltdown. De auteurs van het artikel die de technieken beschrijven, merken op dat er tal van mechanismen, controles en wijzigingen doorgevoerd kunnen worden om Spectre te voorkomen, maar dat de implementatie ervan een enorme impact zouden hebben op de prestatie van een breed scala aan devices en architecturen. Legacy-applicaties zouden ook een grote uitdaging zijn, omdat ze opnieuw moeten worden gebouwd. Het is ook niet voldoende om alleen gevoelige beveiligingsgerelateerde code in applicaties te patchen, omdat andere, ogenschijnlijk niet-kritieke code, als basis voor een aanval kan worden gebruikt.
Hoewel de impact niet van dezelfde omvang zal zijn als bij Wannacry omdat het primair om lokale exploitatiemogelijkheden gaat, zullen Meltdown en Spectre dit jaar nog regelmatig de kop opsteken door de nieuwe implementaties die de komende weken zullen opduiken. Ik verwacht dat de impact tot later in 2018 nog merkbaar zal zijn.
Deze CPU-bug is een uitstekende herinnering dat we ons als security researchers niet moeten blind staren op tekortkomingen op hoger niveau zoals de talloze webapplicatieaanvallen die cybercriminelen op ons afvuren. De kwetsbaarheden kwamen op grote schaal op de radar binnen de IT-industrie nadat er patches voor Meltdown werden geïntroduceerd in open source software. Voornamelijk Linux. Het was zeer onwaarschijnlijk dat het patchen van open source software tegen dergelijke defecten onopgemerkt voorbij was gegaan. Toch is er wat tijd overheen gegaan voordat alle alarmbellen afgingen.
Mijn voornaamste conclusie uit het indrukwekkende onderzoek naar de kwetsbaarheden en het gedetailleerde onderzoeksrapport is dat deze gebeurtenis onderstreept dat security researchers low-level security skills moeten hebben. Daarnaast moeten ze bestuderen hoe processors, geheugen en dergelijke concepten echt werken. SANS-cursussen zoals SEC660 en SEC760 zijn er precies om deze reden. Zodat security professionals geen beveiligingsniveau missen. Om dit soort kwetsbaarheden in de toekomst te voorkomen, is het essentieel dat low-level softwareontwikkeling en hardware zorgvuldig op elkaar worden afgestemd en dat er sprake is van wederzijds begrip. Defecten als Meltdown en Spectre omzeilen de meest fundamentele beveiligingsmodellen van computers op een niveau waar weinig ontwikkelaars en security researchers bij stilstaan. Daar moeten we als industrie mee aan de slag.