'Windows-gat geschikt voor inlichtingendiensten'

Een zero-day gat in Windows laat malafide dll-bestanden draaien met systeemrechten. Daarvoor is wel eerst kraken van de MD5-hash voor de legitieme dll nodig, wat niet voor gewone krakers is weggelegd.

Het lek is ontdekt door de Argentijnse serurity-researcher Cesar Cerrudo en zit alleen in Windows 7 en Windows Server 2008. Volgens hem gaat het om een 'elevation of privileges'-probleem, waardoor een kwaadwillende hogere rechten kan verkrijgen. Een gewone gebruiker kan namelijk code draaien die vervolgens wordt uitgevoerd op het hogere rechtenniveau van het systeemaccount.

DLL-kaping tijdens installatie
Tijdens de installatie van een nieuw programma wordt een tijdelijk dll-bestand aangemaakt in de temp-submap van Windows Installer. Bestanden in die installer-map worden standaard uitgevoerd met privileges van het systeemaccount. Doorgaans is dit geen probleem omdat de bestanden in de hoofdmap horen bij reeds geļnstalleerde applicaties.

Een aanvaller kan hier echter misbruik van maken door het legitieme dll-bestand te vervangen door een nieuwe met ingebouwde aanvalscode. De MD5-hash van het legitieme bestand moet dan wel worden gekraakt, omdat de Windows Installer het bestand aan de hand daarvan controleert.

Vooral voor inlichtingendiensten
Het praktische probleem voor kwaadwillenden is vooral het gebruik van MD5 bij die controle. Deze encryptietechniek wordt al een aantal jaren niet meer als veilig beschouwd: het kan gekraakt worden. Daarvoor zijn wel krachtige computers nodig, of gecombineerde opstellingen met multicore videokaarten.

Het ontdekte beveiligingsgat is dus niet makkelijk uit te buiten. De ontdekker verwacht hierdoor niet dat er snel een exploit zal komen. Hij ziet eerder voor zich dat inlichtingendiensten er misbruik van zullen maken. "Inlichtingendiensten, die bekend staan om hun crack-technologie en -kracht, zouden hiermee een zero-day exploit kunnen maken voor Windows", zegt Cerrudo.

'In 2005 al verbannen'
Cerrudo vraagt zich verder nog hardop af waarom Microsoft MD5 nog gebruikt voor deze controle. Het gebruik van MD5 zou volgens hem in 2005 al zijn verbannen in Microsofts Software Development Lifecycle (SDL). De SDL is een vast onderdeel in het ontwikkelproces bij Microsoft, bedoeld om softwarelekken te verminderen.

"Er zou controle moeten zijn geweest op het bouwen van deze onderdelen, of deze componenten zijn gebouwd zonder aan de richtlijnen te voldoen", schrijft Cerrudo. Hij vermoedt dus opzettelijke omzeiling van Microsofts eigen regels voor veilige softwareontwikkeling.

De ontdekker toont in enkele YouTube-filmpjes hoe het 0-day lek valt te misbruiken. Hier valt te zien hoe een installer start met lage rechten, maar hoe het MsiExec.exe-proces vervolgens draait met systeemrechten: