Israëlische onderzoekers van de Universiteit van Haifa zijn er in geslaagd het algoritme van de pseudo-random number generator van Windows 2000 te reconstrueren en zijn zo op een aanvalsmethode gestuit.
De kwetsbaarheid die de onderzoekers hebben gevonden met betrekking tot de pseudo-random number generator stelt een aanvaller in staat informatie te achterhalen die verzonden is voor de hack van het systeem heeft plaatsgevonden. De prng van Windows is cruciaal voor de beveiliging van bijna alle applicaties die draaien op het besturingssysteem. Het algoritme van de generator is nooit gepubliceerd.
Door de binaire code van Windows 2000 te analyseren is het Israëlische onderzoeksteam er echter in geslaagd het algoritme te reconstrueren en de beveiliging ervan op de proef te stellen. Het team kwam tot een succesvolle aanval: als de staat van de generator bekend is aan de aanvaller, bijvoorbeeld door een bufferoverflow, blijkt het mogelijk de voorgaande staat af te leiden. De manier waarop Windows gebruikmaakt van de generator blijkt bovendien het effect van de aanvalsmethode te versterken.
Zo bleek de staat van de generator pas ververst te worden nadat 128KB aan gegevens doorgestuurd zijn naar het proces dat de generator aangeroepen heeft. Bovendien draait elk proces een andere kopie van de prng. Gevolg is dat een aanval waarbij de staat van de generator bekend is 128Kbyte aan data kan onthullen van voor of na die staat, zoals ssl-sleutels.
Volgens de onderzoekers is hun aanval ernstiger en efficiënter dan reeds bekende aanvalsmethoden waarbij een aanvaller alleen achter ssl-sleutels kan komen als deze controle heeft over het systeem op het moment dat de sleutels gebruikt wordt. Het lijkt er echter wel op dat de applicatie die de prng aangeroepen heeft vatbaar moet zijn voor een aanval of dat de aanvaller administrator-rechten op het systeem moet zien te bemachtigen om het lek te misbruiken.
Het team heeft alleen Windows 2000 onderzocht, maar neemt aan dat Windows XP en Vista dezelfde generator gebruiken en dus ook kwetsbaar zijn.