image

Door Microsoft gesigneerde bestanden via MD5 te vervalsen

maandag 19 januari 2009, 09:41 door Redactie, 7 reacties

Onderzoekers hebben een manier ontdekt om met Microsoft Authenticode gesigneerde bestanden te vervalsen, waardoor criminelen legitiem lijkende bestanden of drivers kunnen maken. Authenticode zorgt ervoor dat de identiteit van een software ontwikkelaar of uitgever aan een getekend digitaal bestand wordt gekoppeld. Normaliter gebruikt het programma hier SHA1 voor, maar het ondersteunt ook MD5, waarvan bekend is dat het te kraken is. Het is de Belgische onderzoeker Didier Stevens gelukt om de digitale handtekening van een door Authenticode getekend bestand aan een "kwaadaardig" bestand te koppelen.

De impact hiervan is echter nog beperkt, omdat Authenticode standaard SHA-1 gebruikt en geen MD5. Toch maken beveiligingsexperts zich zorgen over de recente ontwikkeling, omdat dit betekent dat aanvallers straks de hash van bekende legitieme software aan malware kunnen koppelen. Hierdoor kan men dan virusscanners en whitelists omzeilen.

Aanvalsscenario
Stevens laat tegenover Security.nl weten dat ook al wordt MD5 gebruikt, de aanvaller een "chosen-hash attack" moet uitvoeren om een collision te vinden tussen de malware (waar hij controle over heeft) en de legitieme software (waar hij geen controle over heeft). "Bij mijn weten bestaat er geen (publiek) "chosen-hash attack" algoritme, behalve brute-force natuurlijk."

Een mogelijk scenario dat de Belgische onderzoeker kan verzinnen is dat een ontwikkelaar software voor zijn firma maakt. Deze software wordt verkocht aan klanten en daarom voorzien van een digitale handtekening van de firma. De handtekening wordt geplaatst door een vertrouwenspersoon (dus niet de ontwikkelaar, omwille van segregation of duties). In plaats van SHA1 maakt het bedrijf moedwillig gebruik van MD5, wat de ontwikkelaar de mogelijkheid geeft om een andere versie met een geldige handtekening te maken. "Maar het is vergezocht, want als een ontwikkelaar een trojan in een executable wil verbergen, zijn er genoeg andere technieken."

Update: Commentaar Stevens toegevoegd

Reacties (7)
19-01-2009, 13:29 door Anoniem
Is "segregation of duties" in goed Nederlands niet gewoon "functiescheiding"?
19-01-2009, 14:52 door Anoniem
Ik gebruik toch vaak unsigned drivers als die nieuwer zijn (bijvoorbeeld voor mijn viewsonic monitor).
Een waarschuwing voor MD5 zou echter wel op zijn plaats zijn!
19-01-2009, 15:09 door Anoniem
Door AnoniemIs "segregation of duties" in goed Nederlands niet gewoon "functiescheiding"?
Nee, in modern goed Nederlands is dat: functionaliteit scheiding (uiteraard los geschreven). Vroegah bedoelde men met functionaliteit het totaal van alle functies, maar tegenwoordig heeft elk product een aantal functionaliteiten.
Da's nou vooruitgang! :)
19-01-2009, 15:15 door Anoniem
Een md5-collision is mogelijk maar met een chosen-hash attack erg kostbaar. Zoiets doe je niet in een paar dagen. De attack die in het artikel wordt aangehaald gaat uit van twee nieuw te maken bestanden, en niet van een already signed executable. Je kunt dus wel twee eigen executables met dezelfde hash creeëren, maar niet snel een valid signed copy van een willekeurige MS-executable bakken.

Een aanvaller misbruikt lekken die het meest makkelijk zijn uit te buiten. Zolang er veel makkelijker manieren zijn om een machine te compromisen zul je hier weinig last van hebben.
19-01-2009, 15:55 door Anoniem
Je hoeft alleen te zorgen dat je de MD5 krijgt van iets dat door Microsoft ooit ondertekend is. En er is veel loze ruimte in een executable. Je hoeft niet voor elke test opnieuw je malware te compileren!

Bij sommige mensen dringt het maar langzaam door: MD5 IS BROKEN!!!
19-01-2009, 16:34 door Anoniem
Aanvulling op mijn eerdere post: Dit lukt je inderdaad niet in paar uur op een gewone desktop, point taken.
Maar het PS3 team gebruikte weldegelijk een chosen-hash attack! Zie ook discussie hierover op security.nl. Elke crimineel met een groot genoeg botnet kan deze aanval uitvoeren om een door Microsoft gesigneerde executable te maken. MD5 zou niet meer gebruikt moeten worden voor iets anders als checksums berekenen voor foutcontrole.
19-01-2009, 17:12 door Didier Stevens
Door Anoniem... Maar het PS3 team gebruikte weldegelijk een chosen-hash attack! ...

Het was een chosen-prefix attack, geen chosen-hash attack.
http://www.win.tue.nl/hashclash/ChosenPrefixCollisions/

Ze konden het begin (de prefix) van twee bestanden vrij kiezen, en vervolgens hun collision techniek gebruiken om 2 suffixen te berekenen die voor beide bestanden dezelfde MD5 hash zou opleveren. Een van die certificaten hebben ze door RapidSSL laten tekenen, en daardoor was de handtekening ook geldig voor het tweede certificaat, omdat beide certificaten dezelfde MD5 hash hebben. Welke MD5 hash het precies is deed er niet toe, en dat konden ze ook niet sturen met hun collision techniek. Een birthday attack laat je niet toe om een welbepaalde hash te kiezen.
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.