MD5-Angriff gegen Microsofts Code-Signatursystem Authenticode

Einem Sicherheitsexperten ist es gelungen, zwei unterschiedliche Windows-Programme mit identischer Code-Signatur zu erzeugen. Die Praxisrelevanz ist jedoch fraglich.

In Pocket speichern vorlesen Druckansicht 23 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Christiane Rütten

Einem Sicherheitsexperten ist es gelungen, die digitale Unterschrift eines Windows-Programmes auf ein anderes zu übertragen, ohne dass diese ihre Gültigkeit verliert. Didier Stevens, der den Angriff in seinem Blog präsentierte, machte sich dabei zunutze, dass Microsofts Authenticode-Standard für Code-Signaturen auch den schwachen Hash-Algorithmus MD5 zulässt. So konnte Stevens zwei Programme erstellen, die dieselbe Code-Unterschrift besitzen, sich aber unterschiedlich verhalten.

Derartige Kollisionsangriffe gegen MD5 haben in der Vergangenheit bereits für einigen Wirbel gesorgt. Prominentestes Beispiel ist wohl die Arbeit einer Forschergruppe, die sich auf diese Weise ein Herausgeber-SSL-Zertifikat beschaffen konnte, das alle gängigen Browser als verstrauenswürdig einstufen. Der Angriff gegen Authenticode erfordert nur minimale Änderungen der bereits erhältlichen Tools zur Kollisionsberechnung, da Authenticode-Signaturen die Dateiprüfsumme und den Zeiger auf die Signatur einer Windows-Programmdatei nicht berücksichtigen, da sich diese durch den Signaturprozess verändern.

Eigentlich soll das Code-Signing sicherstellen, dass das Betriebssystem in sicherheitskritischen Situationen nur von höherer Stelle abgesegneten Programmcode ausführt, ohne dass der Anwender eine Warnmeldung zu sehen bekommt. Ein Angriff auf die Code-Signatur ließe sich daher ausnutzen, um Schadprogrammen einen verstrauenswürdigen Anstrich zu verpassen. Auch die Installation von Treibern erfordert gültige Code-Signaturen, damit sie Anwender nicht mit Warndialogen konfrontieren.

Der von Stevens gezeigte Angriff dürfte jedoch in der Praxis weitgehend irrelevant bleiben. Nach dem derzeitigen Stand der Forschung müsste man eine vertrauenswürdige Instanz, deren Code-Signaturen Windows als vertrauenswürdig einstuft, dazu bringen, eine präparierte Datei mit einer MD5-basierten Signatur zu unterschreiben. Die Voreinstellung von Microsofts SignTool für Authenticode-Unterschriften sieht jedoch den sichereren SHA1-Hash für die Signatur vor, sodass man kaum an eine solche Unterschrift gelangen dürfte. Doch egal ob Schadcode oder nicht: Weil das Gros der Programme und auch viele Treiber keine gültigen Code-Signaturen tragen, dürften die meisten Anwender ohnehin gewohnt sein, Warnungen bei fehlenden oder nicht vertrauenswürdigen Code-Signaturen unbeachtet wegzuklicken.

Siehe dazu auch:

(cr)