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

Letzte Änderung: 2004-10-04. Die aktuellste Version dieses Artikel steht unter http://www.installsite.de/go/gdiplus.htm
ENGLISCH: The English version of this article can be found at http://www.installsite.org/go/gdiplus.htm
RUSSISCH: Перевод на русский язык доступен по ссылке: http://www.installsite.ru/go/gdiplus.htm

Sie haben vermutlich schon gehört, dass Microsoft eine kritische Sicherheitslücke in der GDI+ Bibliothek festgestellt hat. (Falls nicht, sollten Sie sich dringend über das Sicherheitsupdate für die JPEG-Verarbeitung (GDI+) informieren.) Die ersten Bilder, die diese Lücke ausnutzen, sind nur wenige Tage nach der Bekanntgabe des Problems im Internet aufgetaucht.

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 (MSI) Setups 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 bereitgestellte 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+ Bibliothek 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+ Bibliothek 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. Allerdings haben manche Anwender Windows Update deaktiviert, und manche Firmen unterbinden Updates, bis sie von der IT-Abteilung freigegeben sind. Wenn Ihre Software die GDI+ Bibliothek 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 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 stellen für ihre Kunden entsprechende Updates bereit. 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:

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 (MSI) Setup installiert wurde. In diesem Fall sollte man ein so genanntes Small oder Minor Update erstellen. Dieses kann man entweder als Windows Installer Patch (.msp Datei) oder als vollständiges MSI Paket (.msi Datei) verteilen.

Informieren der Anwender über die Sicherheitslücke und verfügbare Updates

Wenn Ihr Programm durch die GDI+ Sicherheitslücke gefährdet ist, sollten Sie aktiv auf Ihre Kunden zugehen um sicherzustellen, dass sie die aktualisierte Version Ihrer Software oder die .NET Framework Service Packs unverzüglich installieren. Zum Beispiel könnten Sie eine entsprechende E-Mail an Ihre Kunden schicken. Das Problem dabei ist, dass Sie möglicherweise gar nicht über die E-Mail-Adressen der Anwender verfügen, oder dass diese nicht mehr gültig sind. Ihre Mail könnte auch als unerwünschte Werbung gelöscht werden.

Eine in meinen Augen besser Lösung sind Benachrichtigungsdienste, die Ihre Kunden auf verfügbare Updates hinweisen oder ihnen raten, die NET Framework Service Packs zu installieren. Bei manchen Setup-Tools sind solche Dienste kostenlos enthalten, zum Beispiel bei InstallShield X und bei Wise for Windows Installer. Andere Hersteller bieten dies als separates Produkt oder als Dienstleistung an. Diese Benachrichtigungstools führen entweder in regelmäßigen Zeitabständen oder bei jedem Programmstart eine Online-Abfrage nach Updates durch. Wenn Sie Ihr Setup mit InstallShield X erstellen, dann haben Sie das Update-Tool möglicherweise schon unbemerkt eingebunden, denn diese Option ist standardmäßig aktiviert. In diesem Fall müssen Sie sich nur über das Web-Frontend einloggen und Ihr Update publizieren.

Selbst wenn Sie vom GDI+ Problem nicht betroffen sind, würde ich empfehlen, eine Möglichkeit zur Update-Benachrichtigung im Setup einzubinden. So sind Sie für ähnliche Fälle vorbereitet. Um das zu unterstreichen hier ein Zitat von Branchenkenner und Buchautor Mike Gunderloy im ADTmag:

"Ich erwarte, dass einige Programmhersteller demnächst Zeit aufwenden werden, um sich Möglichkeiten zu überlegen, wie sie ihre Kunden benachrichtigen können, dass es an der Zeit ist, ein Sicherheitsupdate zu installieren, obwohl Windows Update nicht unbedingt anzeigen wird, dass dies erforderlich ist. Wenn Sie einer von diesen Herstellern sind, dann haben Sie mein Mitgefühl."

Sie können solche Kopfschmerzen vermeiden, indem Sie sich auf Situationen wie diese vorbereiten. Bei InstallShield X können Sie den Update-Dienst mit einem einzigen Klick zu Ihrem Setup hinzufügen. Bei Wise for Windows Installer sind auch nur ein paar Einstellungen erforderlich, zum WiseUpdate einzubinden. In beiden Fällen entstehen Ihnen dadurch keine zusätzlichen Kosten.

Angaben der Hersteller von Windows Installer Tools

Verschiedene Tools zum Erstellen von Windows Installer Setups enthalten die Möglichkeit, das .NET Framework bei Bedarf automatisch zu installieren. Manche Programme enthalten auch das GDIPLUS Merge Modul von Microsoft. Die Hersteller wurden befragt, welche Maßnahmen sie im Zusammenhang mit dem GDI+ Sicherheitsproblem ergreifen. Die unten stehenden Angaben veruhen auf Antworten von InstallShield, Wise, Zero G, Caphyon, Dacris , DigitalWeb, SDS Software, MimarSinan, Avatar Software, TransWest Data Corporation und Qwerty.Msi. Die Firma AKS DataBasis teilte mit, dass ihr Produkt MSImaker nicht weiter entwickelt wird und demnächst als Open Source veröffentlicht werden soll. Folgende Firmen haben nicht auf die Anfrage geantwortet: Firmen Corner House, FileStream, MaSaI Solutions, myncos und Object Design Labs.

Bereitstellung des aktualisierten Merge Moduls

Kunden von InstallShield (InstallShield X) können die korrigierte gdiplus.msm über InstallShields Merge Module Gallery downloaden. Die Firmen Wise (Wise for Windows Installer), Zero G (InstallAnywhere .NET) und MimarSinan (InstallAware) beabsichtigen ebenfalls, ihren Kunden das aktualisierte Merge Modul zur Verfügung zu stellen. Alle anderen Hersteller liefern das betreffende Merge Modul nicht mit ihrer Software und haben deshalb keinen Handlungsbedarf.

Verteilen der Service Packs für das .NET Framework

Die Firmen InstallShield (InstallShield X), Wise (Wise for Windows Installer), Zero G (InstallAnywhere .NET), MimarSinan (InstallAware) und Avatar Software (MSIStudio) beabsichtigen, Unterstützung für die aktuellen Service Packs bereitzustellen. Alle anderen Setup-Tools enthalten keine Funktion zum Verteilen des NET Frameworks.

Über den Autor

Stefan Krüger arbeitet als freiberuflicher Setup-Berater und betreibt die Webseite InstallSite.de, auf der Setup-Entwickler Ressourcen und Informationen untereinander austauschen. Stefan wurde von Microsoft als MVP (Most Valuable Professional) für Windows Installer ausgezeichnet.

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

 

English News Discussions Windows Installer Related Tools More Help InstallScript About InstallSite Shop Site Search
deutsch Neuigkeiten Diskussionsgruppen Windows Installer MSI FAQ Artikel     Shop Suche

Copyright © by InstallSite Stefan Krueger. All rights reserved. Legal information.
Impressum/Imprint Datenschutzerklärung/Privacy Policy
By using this site you agree to the license agreement. Webmaster contact.