Vorige week heeft Intels HT (Hyperthreading-technologie) veel stof doen opwaaien. Die ‘multithreading’-capaciteit van Pentium 4 en Xeon-processoren zou verkeerd zijn geïmplementeerd. Daardoor zou gevoelige informatie als een encryptiesleutel in één ’thread’ toegankelijk zijn vanuit een andere ’thread’.
Dat beweert de Canadese FreeBSD-ontwikkelaar Colin Percival (23). “De fout staat lokale onthulling van informatie toe, wat het mogelijk maakt dat een gebruiker zonder privileges een rsa-privé-sleutel steelt die in gebruik is op dezelfde machine.” Ssh- en https-servers (secure shell, hypertext transfer protocol secure) zijn volgens de Oxford University-student ook voor de hand liggende doelwitten.
Deze nieuwe aanvalsvorm vereist geen beheerderrechten, aldus de ontdekker. Hij waarschuwt beheerders van ‘multi-user’ computers dat zij HT zo snel mogelijk moeten uitschakelen. ‘Single-user’ systemen, zoals reguliere desktops en laptops, zouden geen risico lopen.
Alle x86-besturingssystemen
Doordat de ‘multithreading’-technologie in de hardware zit en softwareonafhankelijk is, raakt het probleem alle besturingssystemen die draaien op Intel-processoren met HT. Dat zijn de Pentium 4, Pentium Extreme Edition, Mobile Pentium 4 en Xeon, inclusief de nieuwe varianten met 64-bit uitbreidingen van de instructieset (EM64T). HT laat één fysieke processor zich voordoen als twee virtuele, waardoor het meerdere threads tegelijk kan verwerken. Dit in tegenstelling tot het nieuwe ‘dualcore’, waarbij echt twee processorkernen zijn gecombineerd op één stuk silicium.
Percival zette zijn bevinding na drie maanden ontdekkingswerk uiteen op de BSDCan 2005. Die Canadese BDS-conferentie vond 13 en 14 mei plaats in Ottawa. Daar onthulde hij zijn scriptie Cache missing for fun and profit (http://www.daemonology.net/hyperthreading-considered-harmful/), waarin hij uitlegt hoe een thread met kwaadaardige code toegang kan verkrijgen tot geheugendelen waar andere threads draaien. Dit gebeurt middels spionage van het cachegeheugen, waar alle threads immers doorheen gaan. Daarnaast geeft hij ook tips om misbruik tegen te gaan, hoewel de beste methode uitschakeling van HT zou zijn.
Intel bevestigt
De Amerikaanse Intel-woordvoerder Howard High heeft bevestigd dat de door Percival geschetste nieuwe aanvalsvorm te gebruiken is om cryptografische sleutels te verkrijgen op in ieder geval één specifieke configuratie. High verwijst daarmee naar de 2,8 GHz Pentium 4-pc waar de Canadese FreeBSD-expert zijn onderzoek op heeft uitgevoerd.
Percival stelt dat de nieuwe ‘software timing’-aanval werkt op alle Intel-chips met HT. Hij nuanceert die dreiging met de opmerking dat de aanval alleen lokaal uitgevoerd kan worden, dus door een lokale gebruiker. Het is daarom onwaarschijnlijk dat dit de volgende grote internet-wormplaag kan faciliteren. Toch vormt het een risico, zeker gecombineerd met een aanvaller die lokale rechten heeft of verkrijgt. High: “Je systeem moet dus al gecompromitteerd zijn om deze technisch complexe aanval te kunnen lanceren.”
Hij vertelt dat Percival Intel een vroege versie van zijn scriptie heeft gegeven. De ontdekker heeft afgelopen maart contact gezocht met Intel, nadat hij de fout in oktober op het spoor kwam en in december demonstratiecode had ontwikkeld. Het concern heeft andere chips, zowel van zichzelf als van concurrenten, getest en bevestigt dat dezelfde soort aanval uitgevoerd kan worden op processoren met meerdere threads die toegang tot de cache delen.
De processorproducent werkt nu samen met leveranciers van besturingssystemen om beveiligingsmiddelen toe te voegen aan hun software. Die beveiliging moet beschermen tegen de nieuwe aanvalsvorm, aldus de Intel-woordvoerder. Inmiddels hebben de diverse BSD-distributies – met uitzondering van OpenBSD, dat geen HT ondersteunt – en Unixware-leverancier SCO het probleem bevestigd. Zij verstrekken adviezen en komen nog met definitieve oplossingen.
‘Geen groot probleem’
Inmiddels heeft Linux-schepper Linus Torvalds ook bijgedragen aan de ophef door te stellen dat het probleem in de praktijk nogal meevalt. “Het lijkt niet heel erg te verschillen van de problemen die er waren met vroege smp-systemen (symmetric multiprocessor, red.) en ‘direct-mapped’ cachegeheugens. Ik zou verbaasd zijn als iemand hier een echte aanval, gericht op een echte pgp-sleutel (pretty good privacy, red.), op weet te baseren. Het is een interessante benadering, maar niet nieuw, niet HT-specifiek en niet echt een probleem in de praktijk.”
Percival reageert: “Het is overduidelijk dat hij het probleem niet begrijpt, maar hij heeft als excuus dat hij geen beveiligingsman is. Hopelijk zullen de Linux-ontwikkelaars die beveiliging wel begrijpen hem ompraten.” Linux-ontwikkelaar Andi Kleen zegt dat het uitschakelen van HT geen oplossing is; dat komt neer op het kind weggooien met het badwater. Hij stelt dat het geen kernel-probleem is, maar iets voor de ‘userspace’, en dat de oplossing bestaat uit hechter cache-gebruik en -controle voor encryptieprogrammatuur.
(Weinig) prestatiewinst
Linux-grondlegger Alan Cox is het met Torvalds eens dat het geen groot probleem is. Hij stelt dat HT voor de meeste gebruikers niet relevant is omdat het weinig prestatiewinst oplevert. Hij spreekt van maximaal 15 procent en gemiddeld 5 procent winst. Intel heeft tot op heden juist het verhoogde prestatieniveau benadrukt, voor geschikte (multithreaded) applicaties en ‘multitasking’.
Torvalds is echter wel te spreken over HT: “Het is prachtig voor het verminderen van wachttijd. Ik snap niet waarom mensen denken dat prestatie hetzelfde is als doorvoer. Doorvoer komt altijd op de tweede plaats, na wachttijd.” Dualcore- en multicore-processoren bieden weer meer wachttijdvermindering dan HT, aldus Torvalds.