Danke für den Fisch Marc Ruef | 17.07.2006 Das Sicherheitsgeschäft basiert auf Vertrauen. Nur wer vertrauenswürdig erscheint und diesen Charakterzug auch fortwährend unter Beweis zu stellen in der Lage ist, bekommt im Gegenzug das für Geschäfte nötige Vertrauen geschenkt. So ist das in der Regel - Und das ist auch gut so! Dies bedeutet aber, dass man sich das Vertrauen bei Partnern und Kunden immerwieder erarbeiten muss. Zuverlässigkeit und Integrität sind Eigenschaften, die in diesem Zusammenhang immerwieder wichtig erscheinen und entsprechend verfolgt werden müssen. Eine gute Reputation ist sodann unendlich wertvoll. Kann man sich einen guten Namen machen, hat mans im Sicherheitsbereich viel einfacher. Die Leute wissen, mit wem sie es zu tun haben und was sie erwarten können. Eilt einem der gute Ruf voraus, muss man sich also quasi das Vertrauen nicht mehr erst von Grund auf erarbeiten. Eine komfortable Situation, in der Tat. Sehr beliebt ist bei Sicherheitsunternehmen (vor allem im Beratungsumfeld) das Publizieren von Fachartikeln und Informationen zu neuen Schwachstellen. Kann während einer Analyse eine neue Sicherheitslücke identifiziert werden, lohnt es sich diese in einem Advisory publik zu machen. Dies ist die beste Werbung, kann man denn damit seine Fähigkeiten unter Beweis stellen. Auch wir (http://www.scip.ch) pflegen diesen Weg zu gehen. Ab und an erscheint deshalb ein Advisory. Doch bis ein solches publiziert werden kann, müssen einige Hürden genommen werden. Das Auffinden der vermeintlichen Sicherheitslücke ist dann oftmals noch der einfachste Schritt. Danach will nämlich der Hersteller um die Umstände informiert werden. Nach Absprache mit diesem kann dann das Schreiben vorbereitet werden. Aufeinander abgestimmt wird die Veröffentlichung meistens dann vorgenommen, wenn die jeweiligen Kunden vorgängig informiert wurden und ihnen eine Gegenmassnahme (oftmals ein Patch oder eine neue Software-Version) zur Verfügung gestellt werden kann. So können alle Beteiligten einen Mehrwert erzielen. Die Entwickler von Software können dabei eigentlich froh sein, dass sie frühzeitig über die Probleme informiert werden. So bleibt ihnen die Möglichkeit, richtig und schnell zu reagieren. Die Abstimmung minimiert die Zeitfenster für erfolgreiche Angriffe. Und die Kunden merken, dass der Hersteller sehr darum bemüht ist, möglichst zeitnah bei kritischen Gegebenheiten zu reagieren. Doch nicht alle Hersteller sind sich dieser Symbiose bewusst. Quereleien und gar Beschimpfungen sind bei der Informierung oftmals an der Tagesordnung. Da wird man entweder als Erpresser denunziert, der mit den gefundenen Schwachstellen angeblich das Unternehmen schlecht machen will. Oder man wird gänzlich ignoriert und das Problem lapidar als "nicht verifizierbar" abgetan. Manche Leute machen es sich halt doch sehr einfach und wollen ihre Verantwortung nicht vollumfänglich wahrnehmen. Eine ganz besonders dreiste Geschichte ist mir aber vor einigen Wochen passiert. Frühzeitig informierte ich das Entwickler-Team über einige schwerwiegende Sicherheitslücken in ihrem quelloffenen und gern genutzten Content Management System (CMS). Durch verschiedene Techniken war es nämlich möglich, dass erweiterte Rechte erlangt werden konnten (z.B. durch SQL-Injection, Pufferüberlauf, direkte Dateizugriffe) oder sich Attacken auf die Besucher des Angebot ausführen liessen (z.B. Cross Site Scripting). Wie immer habe ich die jeweiligen Punkte kurz beschrieben und eine kleine Anleitung notiert, wie sich die Fehler verifizieren lassen. Auf mein Schreiben hin kam zurück, dass ich das Ganze auf einer mehr als 14 Monate alten Version gefunden hätte. Ich solle gefälligst das Problem nocheinmal auf dem aktuellen Release testen. Nun, leider wurden die Schwachstellen während eines Kundenauftrags gefunden. Dieser setzte eben die veraltete Version ein, weshalb ich mich auf diese fokussiert habe. Mittlerweile war das System nicht mehr in Betrieb und deshalb konnte ich nicht mal eben schnell die neue Version testen. Das Nachbilden der Umgebung meines Kunden war mir in den nächsten 30 Minuten auch nicht möglich. In meiner Antwort schilderte ich den Umstand und wies mit Nachdruck darauf hin, dass ich ganz sicher nicht darum bemüht zu sein habe, ein Debugging für sie durchzuführen. Wie üblich liess ich 14 Tage Zeit, um mich über den Stand der Dinge auf dem Laufenden zu halten (z.B. wann kommt ein Patch), bevor ich das Advisory publizieren würde. Zu meinem Erstaunen wurde nur wenige Tage nach meiner Email direkt ein Advisory durch den Hersteller veröffentlicht. In diesem war weder ich noch mein Arbeitgeber mit irgendeinem Wort erwähnt. In manchen Fällen wurden gar Zeilen aus meinem Original-Schreiben übernommen und die proof-of-concept Codes hineinkopiert. Das Nachreichen meiner für die eigentliche Veröffentlichung vorgesehenen Details, die sich nicht gross von den soeben nach Aussen getragenen unterscheiden würden, wäre damit sinnlos gewesen. Wen hätte das noch interessiert? Als Plagiat hätte man meine Zeilen beschumpfen - Ich war genervt! Kurz angebunden will ich eine Frage stellen: Wieso mach ich mir eigentlich noch die Mühe, die Hersteller höflich auf ein Problem hinzuweisen, ohne dann irgendeinen Dank zu erhalten? Genau von diesem Dank (z.B. Nennung im Advisory) lebe ich. Wird mir dieser Dank vorenthalten, werde ich auch auf die Umstände (Meldung beim Hersteller) und den Ärger (wirre Diskussionen) verzichten. Es ist mir auch viel einfacher und lieber, einen neuen Bug halt mal eben schnell auf Bugtraq zu posten. Das kostet mich höchstens 15 Minuten arbeit. Die Schererein mit den Herstellern, sind aber manchmal vier mal so lang!