.NET Framework 1 22.09.2004, 00:00 Uhr

Auswirkungen der GDI+-Sicherheitslücke für Entwickler

Microsoft hat eine kritische Sicherheitslücke in der GDI+-Bibliothek entdeckt. Dadurch wird unter Umständen ein Sicherheitsupdate für die JPEG-Verarbeitung (GDI+) nötig. Die ersten Bilder, die diese Lücke ausnutzen, sind nur wenige Tage nach der Bekanntgabe des Problems im Internet aufgetaucht. Was bedeutet diese Lücke für Entwickler?
Letzte Änderung: 2004-09-21. Die aktuellste Version dieses Artikels steht unter http://www.installsite.de/go/gdip.htm
Die meisten Artikel zu diesem Thema beschreiben, was Sie als Anwender betroffener Microsoft-Produkte unternehmen müssen, um sich zu schützen. In diesem Beitrag geht es jedoch darum, welche Maßnahmen Entwickler ergreifen sollten, um ihre Endkunden keiner Gefahr auszusetzen.
Hinweis: Möglicherweise verteilen Sie die GDIPLUS.DLL ohne sich dessen bewusst zu sein. Viele Entwicklungssysteme bieten die Möglichkeit, die erforderlichen Laufzeitdateien automatisch zum Setup-Programm hinzuzufügen. Bei Windows Installer Setups (MSI) wird dazu normalerweise das Merge-Modul gdiplus.msm eingebunden. Deshalb ist es nicht immer offensichtlich, dass GDIPLUS.DLL im Setup enthalten ist.

Angriffsvektor

Um die Sicherheitslücke auszunutzen, muss ein speziell präpariertes JPEG-Bild über die GDI+-Bibliothek angezeigt werden. Programme, die Bilder mit potentiell unsicherer Herkunft anzeigen, stellen ein Sicherheitsrisiko dar. Zu den unsicheren Quellen zählen zum Beispiel Bilder auf Webseiten oder in E-Mails, aber auch vom Anwender bereit gestellte Fotos oder frei auswählbare Logos. Jede Verarbeitung von JPEG Dateien über GDI+ macht den Computer angreifbar. Allerdings ist das Risiko bei Programmen, die nur fest vorgegebene Grafiken anzeigen können, vergleichsweise gering.

Szenarien

In diesem Abschnitt werden verschiedene Szenarien vorgestellt und jeweils die empfohlenen Maßnahmen aufgeführt. Im nächsten Kapitel werden die einzelnen Aktionen dann genauer erläutert.
Szenario 1: Sie verteilen die GDIPLUS.DLL
Als ersten Schritt sollten Sie auf Ihren Entwicklungs- und Build-Maschinen die weitervertreibbaren Dateien aktualisieren. Wenn Ihre Software die GDI+-Bibilothek in einer angreifbaren Weise verwendet, sollten sie außerdem ein Update für Ihre Software erstellen und so schnell wie möglich an Ihre Kunden verteilen. Wenn GDI+ in Ihrer Software nur so eingesetzt wird, dass sie für Angriffe nicht anfällig ist, sollten Sie die neue GDIPLUS.DLL mit dem nächsten regulären Update verteilen.
Szenario 2: Sie verteilen das .NET Framework Version 1.0 oder 1.1
Die .NET-Framework-Laufzeitdateien in den Versionen 1.0 SP2 und 1.1 ohne Service Pack sind von der Sicherheitslücke betroffen. Sie sollten daher die weitervertreibbaren .NET-Framework-Dateien auf Ihren Entwicklungs- und Build-Maschinen aktualisieren auf Version 1.0 SP3 bzw. 1.1 SP1. Wenn Ihre Software die GDI+-Bibilothek in einer angreifbaren Weise verwendet, sollten Sie das entsprechende .NET Framework Service Pack auch an Ihre Kunden schicken oder sie auffordern, die Service Packs über Windows Update zu installieren. Windows Update bietet die Service Packs zwar automatisch als "wichtige" Updates an, aber manche Anwender haben Windows Update deaktiviert, und manche Firmen unterbinden Updates, bis sie von der IT-Abteilung freigegeben sind. Deshalb sollten Sie Ihre Kunden informieren, dass sie in Gefahr sind und das Service Pack unverzüglich installieren sollten.
Szenario 3: Sie verwenden die GDIPLUS.DLL, die bei Windows enthalten ist
Bei Windows XP und Windows 2003 Server ist die GDIPLUS.DLL bereits enthalten. Wenn Sie nur diese beiden Plattformen unterstützen und die DLL deshalb nicht verteilen, sollte Windows Update für die Aktualisierung der Datei sorgen. Allerding haben manche Anwender Windows Update deaktiviert, und manche Firmen unterbinden Updates, bis sie von der IT-Abteilung freigegeben sind. Wenn Ihre Software die GDI+-Bibilothek in einer angreifbaren Weise verwendet, sollten Sie deshalb Ihre Kunden informieren, dass sie in Gefahr sind und das Service Pack unverzüglich installieren sollten.
Szenario 4: Keines der obigen Szenarien trifft auf Sie zu
Sie haben Glück gehabt - dieses Mal. Die Updates für die weitervertreibbaren Dateien sollten Sie aber auf jeden Fall installieren. Es ist auch sinnvoll, Vorkehrungen zur Benachrichtigung der Kunden zu treffen, um auf ähnliche Notsituationen vorbereitet zu sein.

Empfohlene Maßnahmen

Für alle Maßnahmen gilt: Handeln Sie unverzüglich. Nur drei Tage nach der Bekanntgabe der Sicherheitslücke sind bereits Bilder aufgetaucht, die den Buffer Overflow ausnutzen, um den Internet Explorer zum Absturz zu bringen. Sie scheinen noch keine Schadroutine zu enthalten, aber das ist wahrscheinlich nur eine Frage der Zeit.

Aktualisieren der weitervertreibbaren GDIPLUS-Dateien auf dem Entwicklungscomputer

Besitzer von Visual Studio .NET 2002 oder 2003 sollten den passenden Patch über das Microsoft Security Bulletin MS04-028 downloaden und installieren. Damit wird das Merge-Modul gdiplus.msm aktualisiert und kann für Setup- und Weitergabeprojekte in Visual Studio verwendet werden.
Wenn Sie GDIPLUS.DLL als einzelne Datei weitergeben, sollten Sie das aktualisierte GDI+ Platform SDK Redistributable über das Microsoft Security Bulletin MS04-028 downloaden. Dieses Paket enthält nur die Datei GDIPLUS.DLL, kein aktualisiertes Merge Modul.
Für Entwickler, die mit älteren Versionen von Visual Studio oder mit Werkzeugen anderer Hersteller arbeiten, gibt es im Moment keine Möglichkeit, das aktualisierte gdiplus.msm Merge-Modul zu erhalten. Einige Hersteller von Windows Installer Tools liefern aber bei ihren Produkten Merge Module mit und planen für ihre Kunden entsprechende Updates. Nähere Angaben siehe unten.

Verteilen der aktuellen .NET Framework Service Packs

Die Sicherheitslücke in GDI+ ist in den kürzlich veröffentlichten Service Packs für das .NET Framework behoben. Dabei handelt es sich um folgende Service Packs:
  • Service Pack 3 für .NET Framework Version 1.0
  • Service Pack 1 für .NET Framework Version 1.1
In den Basis-Installationspaketen für das .NET Framework 1.0 und 1.1 sind keine Service Packs enthalten. Deshalb muss nach dem .NET Framework zusätzlich das jeweilige Service Pack installiert werden.
Die Hersteller von Windows Installer Tools wurden befragt, ob ihre Produkte die Installation der .NET Framework Service Packs unterstützen. Die Antworten stehen im nächsten Kapitel.
Aaron Stebner hat in seinem WebLog Beispielcode zum Erkennen von .NET Framework 1.0 und 1.1 und Service Packs veröffentlicht. (Aaron arbeitet bei Microsoft am Setup für Visual Studio). Die Service Packs und alle anderen weitervertreibbaren Dateien für das .NET Framework können im Microsoft .NET Developer Center herunter geladen werden.

Aktualisieren der Applikation und des Setups

Der erste Schritt besteht darin, Ihre Software und Ihr Setup mit der korrigierten Version von GDIPLUS.DLL neu zu erstellen und zu testen. Danach stellt sich allerdings die Frage, wie man diese neue Version an die Kunden verteilt. Eine Möglichkeit sind selbst-aktualisierende Programme, die man zum Beispiel durch Einbinden des Updater Application Block erzeugen kann. Dieses Verfahren ist aber nicht zu empfehlen, wenn das Programm mit einem Windows Installer Setup (MSI) installiert wurde. In diesem Fall sollte man ein sogenanntes Small oder Minor Update erstellen. Dieses kann man entweder als Windows Installer Patch (.msp-Datei) oder als vollständiges MSI-Paket (.msi-Datei) verteilen.
Den vollständigen Artikel finden Sie unter http://www.installsite.de/go/gdip.htm.
Über den Autor: Stefan Krüger arbeitet als freiberuflicher Setup-Berater und betreibt die Webseite InstallSite.de, auf der Setup-Entwickler Resourcen und Informationen untereinander austauschen. Stefan wurde von Microsoft als MVP (Most Valuable Professional) für Windows Installer ausgezeichnet.

Haftungsausschluss: Dieser Artikel wurde sorgfältig zusammen gestellt. Dennoch kann für seine Aktualität, Korrektheit oder Vollständigkeit keine Gewähr übernommen werden.


Das könnte Sie auch interessieren