Intel kwetsbaarheden

Intel

Onderzoekers van de Vrije Universiteit Amsterdam en daarna van andere universiteiten (waaronder de KU in Leuven) hebben een serieus lek gevonden in moderne Intel-processors. Die ontdekking is al enige tijd geleden aan het licht gekomen en nu Intel een patch heeft uitgebracht komen de achtergronden naar boven.

Er is inmiddels het nodige te vinden over dit onderwerp. Zo staat er een prima stuk op Tweakers (Onderzoekers vinden nieuwe kritieke lekken in vrijwel alle Intel-cpu’s) en tal van andere bronnen maken hier natuurlijk melding van.

Is het echt een serieus probleem?

Dat lijkt mij wel. Even de belangrijkste bevindingen op een rij:

  • Onderzoekers van de Vrije Universiteit hebben een groot datalek gevonden in de meest gangbare Intel-processoren. Alle (!) Intel processoren die de laatste 10 jaar zijn verschenen zijn vatbaar voor deze kwetsbaarheid. Ruim 80% van alle computers (desktops, laptops, servers/cloud) maakt gebruik van deze Intel processoren.
  • Intel heeft daarna samen met de VU de details bekend van RIDL (Rogue In-Flight Data Load), een kwetsbaarheid waarmee hackers ‘vrijwel alle data’ kunnen stelen van computers. De essentie van het probleem is dat hackers kunnen meekijken met gegevens die de processor op dat moment verwerkt.
  • Kwaadwillenden kunnen dit lek misbruiken door bijvoorbeeld code te verstoppen in een linkje of via een onschuldig lijkende webadvertentie.
  • Er zijn geen mogelijkheden om achteraf vast te stellen of er inderdaad data van je computer in verkeerde handen is gevallen.

Patch beschikbaar, maar is het voldoende?

Dankzij de bevindingen van de wetenschappers bij de Vrije Universiteit en het KU Leuven is Intel deze week naar buiten gekomen met een oplossing. Het is niet ongebruikelijk om een lek stil te houden en pas naar buiten te komen als er een oplossing voorhanden is. Voor alle platforms zijn er nu patches ter beschikking gekomen. Ubuntu heeft op 15 mei bijvoorbeeld een nieuwe kernel én een nieuwe zgn. Intel Microcode aangeleverd via haar reguliere updates.

Is het je niet opgevallen en wil je het checken? Open dan je /var/log/apt/history.log en zoek naar een gelijkwaardige aantekening als:

Start-Date: 2019-05-15  08:59:11
Commandline: /usr/bin/unattended-upgrade
Upgrade: intel-microcode:amd64 (3.20190312.1, 3.20190514.0ubuntu0.19.04.1)
End-Date: 2019-05-15 08:59:21

Toch is het nog maar de vraag of het installeren van deze patch voldoende is om het probleem echt te tackelen. Dat komt omdat moderne cpu’s werken met Hyper-threading. De patch die nu is uitgebracht beinvloed niet de gevaren die zijn verbonden aan het uitvoeren van instructies die voortkomen uit hyper threading. Wat de patch wel doet is het legen van de zgn. CPU buffers. Op die manier wordt ter beschikking staande data gewist voor een nieuwe instructie wordt uitgevoerd. Maar het is niet in staat om de zgn. SMT kwetsbaarheid te verhelpen. SMT staat voor Symmetric Multi-Threading en staat ook bekend als Hyper Threading. Met andere woorden, er wordt ook data uitgewisseld tussen de fysieke kern en de (zeg maar) virtuele processor. En daar kan vooralsnog geen patch tegenop.

The use of Symmetric Multi-Threading (SMT) – also known as Hyper-Threading – further complicates these issues since these buffers are shared between sibling Hyper-Threads. Therefore, the above changes are not sufficient to mitigate these vulnerabilities when SMT is enabled. As such, the use of SMT is not recommended when untrusted code or applications are being executed.

Hyper threading

Hyper-threading is de technologie die het mogelijk maakt dat een fysieke processorkern zich als twee logische processors gedraagt en daarmee de cache en externe interfaces delen. In de meeste gevallen wordt het hierdoor mogelijk dat de processorkern twee threads tegelijk uitvoert. Een processor met hyperthreading-technologie wordt door je besturingssysteem meestal als twee losse processoren gezien. Dankzij deze technologie presteert jouw computer gemiddeld 30% sneller omdat berekeningen van de cpu parallel kunnen worden uitgevoerd op die extra kern.

Juist het uitwisselen van data tussen de fysieke en de ‘logische’ kern geeft de mogelijkheid om data vanuit een computer te oogsten. Deze gevoeligheid was al eerder ontdekt en heeft bijvoorbeeld OpenBSD er in 2018 toe gebracht om Hyper threading standaard uit te laten staan. Google lijkt ook te overwegen om te stoppen met hyper threading op haar ChromeOS en Apple geeft ook aan dat voor volledige veiligheid je beter hyper threading uit kan zetten. Dat is nogal een advies want daarmee verlaag je de verwerkingssnelheid van die computer met circa 30%!

Wat te doen in dit geval?

Ga je nu als Linux desktop gebruiker in je bios hyper threading uitzetten? En zo ja, merk je dat dan? Die laatste vraag is nog wel het meest relevant. Want niemand wil dat de prestaties van je computer met 30% afneemt. Maar als je jouw computer gebruikt om -zeg maar- de standaard kantoortoepassingen te gebruiken dan ga je daar niets van merken. Gebruik je echter je computer om video te monteren, of om grote database queries te verwerken of om software te compilen dan maakt het natuurlijk wel degelijk uit. Zie bijvoorbeeld de recente uitkomsten van een test op Phoronix: Intel Hyper Threading Performance With A Core i7 On Ubuntu 18.04 LTS

Maar mocht je achter een computer zitten met belangrijke informatie dan zou ik toch maar het zekere voor het onzekere nemen. Dat zal in de regel niet gelden voor ‘gewone gebruikers’, maar als je als CEO toegang hebt tot belangrijke en gevoelige informatie dan denk ik toch dat het niet onverstandig is om maatregelen te nemen. En oh ja…de cloud is toch wat bewolkt aan het raken op deze manier. Hoe dan ook, dit verhaal gaat waarschijnlijk nog wel een staartje krijgen.

Tot slot

Mogelijk komen ook de fabrikanten van moederborden met een nieuw bios uit. Hou dat dus ook in de gaten. Je kan overigens vanuit je terminal zien welke bios versie je gebruikt met het commando:

sudo dmidecode | less

Je kan ook vanuit je terminal bekijken of jouw GNU/Linux computer kwetsbaar is: Bekijk daarvoor de output van het commando:

cat /sys/devices/system/cpu/vulnerabilities/mds

Komt daar als uitkomst uit ‘Vulnerable: Clear CPU buffers attempted, no microcode; SMT vulnerable‘ dan heb je nog niet de laatste microcode (de patch) geïnstalleerd op je linux computer.

Komt er als antwoord uit ‘Mitigation: Clear CPU buffers; SMT vulnerable” dan is dankzij de patch wel het nodige voordeel bereikt, maar blijft de SMT kwetsbaarheid onaangeroerd.

Meer informatie:

https://blog.ubuntu.com/2019/05/14/ubuntu-updates-to-mitigate-new-microarchitectural-data-sampling-mds-vulnerabilities

https://wiki.ubuntu.com/SecurityTeam/KnowledgeBase/MDS?_ga=2.197643567.1489802353.1557904875-802933965.1555581818

https://zombieloadattack.com/

https://www.nrc.nl/nieuws/2019/05/14/hackers-mikken-op-het-intel-hart-a3960208

Scroll naar boven