Schädlichen Code in GNU/Linux einschleusen

Dieser Text ist eine Antwort auf einen Artikel in der Linux-Community.

Einschleusen von Code in den Linux-Kernel

Der Linux-Kernel (sieht man mal von Vendor-Patches ab, dazu unten mehr) wird von Linus Torvalds verwaltet. Viele Patches werden zudem als Patches auf der Mailing-Liste linux-kernel verteilt und von vielen Leuten zumindest überflogen. In den Kernel kommt nur, was von Linus abgesegnet wurde oder von Personen, denen er blind vertraut. Aber selbst Patches von Alan Cox kommentiert er, offensichtlich liest er sie auch.

Ich möchte nicht behaupten, daß es unmöglich ist, eine Backdoor dort einzupflanzen, aber es ist ziemlich unwahrscheinlich und die Wahrscheinlichkeit korrespondiert direkt mit der Vertrauenswürdigkeit der Entwickler, also hauptsächlich Linus Torvalds' und den Personen, denen er blind vertraut.

Generell: Wenn der Hersteller nicht vertrauenswürdig ist, ist das Produkt auch nicht sicher. Vertraut ihr Linus? Falls nicht, müßt ihr jede Zeile Kernelcode korrekturlesen oder dürft kein Linux verwenden.

Einschleusen von Code in Binärpakete der Distribution

Eine GNU/Linux-Distribution zu verwenden anstatt alles selbst zu compilieren und zu korrigieren ist eine schöne Sache. Wer sie benutzt, sollte allerdings dem Hersteller vertrauen können.

Hier liegt die gleiche Situation wie oben vor, jedoch mit dem Unterschied, daß sie nicht nur den Kernel betrifft, sondern jeglichen Programme, die in der Distribution enthalten sind. Bis zu einem gewissen Maß lesen die Distributoren den Quellcode auch Korrektur, bügeln Fehler aus, reden mit den Autoren etc.

Üblicherweise werden auch nicht blind Pakete von beliebigen Personen aufgenommen, sondern nur solche, die von vertrauenswürdigen Personen paketiert wurden (Mitarbeiter, Projekt-Mitglieder etc.) Die ursprüngliche Fragestellung, ob Code eingeschleust werden kann, reduziert sich hier auch wieder auf die Frage, ob dem Hersteller vertraut werden kann oder nicht - und ob den Autoren der Pakete vertraut werden kann oder nicht.

In der Vergangenheit gab es mehrere Versuche, Code einzuschleusen. Mir fallen da auf Anhieb OpenSSH, BitchX, ncftp und evtl. auch sendmail ein. Das wurde relativ schnell nach dem Auftreten entdeckt und interessanterweise waren die GNU/Linux-Distributoren davon nicht betroffen, oder mein Gedächtnis hat wieder einen Aussetzer. In den Distributionen waren schon die älteren korrekten Pakete aufgenommen, oder die neuen waren noch nicht drin.

Ist offener Quellcode generell sicherer?

Nein, natürlich nicht. Nur dadurch, daß der Bauplan von jeder Person eingesehen werden kann, bedeutet noch lange nicht, daß auch jede Person ihn liest und überprüft. Quelloffene Software hat jedoch erheblich größere Chancen, von kompetenten Personen untersucht zu werden, so daß Sicherheitsprobleme und Backdoors wahrscheinlich eher gefunden werden als bei Programmen, bei denen man nur durch Reverse-Engineering an die Funktionsweise herankommt.

Hilft TCPA?

Ich begebe mich jetzt wahrscheinlich auf's Glatteis, aber ich sehe nicht, wie und wo TCPA an dieser Stelle helfen soll. Es würde vielleicht verhindern, daß fremde Code von obskuren Quellen im sicheren System ausgeführt wird. Wer blind Code von obskuren Quellen ausführt, ist selbst schuld und darf sich nicht wundern, wenn er sich ein Problem einfängt.

Programme, die mit TCPA auch im sicheren System ausgeführt werden sollen, müssen wahrscheinlich zertifiziert werden (Schuß ins blaue...). Damit reduziert sich das Proglem zum Beispiel auf: Wer zertifiziert? Welche Kriterien werden angebracht? Wird Quellcode auf Herz und Nieren überprüft? Wohl kaum, denn das könnte und wollte niemand bezahlen. Bliebe also wieder das oben mehrfach beschriebene Problem, daß man den Herstellern Vertrauen schenken muß.

Ein ganz spezielles Problem mit der Zertifizierung für TCPA könnte sein, daß die Zertifizierung viel Geld kostet und Projekte wie KDE, GNOME, Debian, Gentoo, Stampede etc. dieses Geld sicherlich nicht über haben, so daß ihre Software nicht zertifiziert wird, und daher TCPA möglicherweise deaktiviert werden muß, damit der Computer überhaupt benutzbar ist.

Zusammenfassung

Das Problem, Quellcode einzuschleusen, läßt sich generell auf die Frage nach der Vertrauenswürdigkeit des Herstellers. Sie müssen Änderungen durchsehen und im Fall von GNU/Linux geschieht es oftmals auch. Zudem setzen viele Distributoren die gleiche Software ein, so daß es ausreicht, wenn einer dieser ein Problem findet, damit alle Distributoren das Paket austauschen.

Manche Hersteller von Betriebssystemen haben in der Vergangenheit bewiesen, daß sie Sicherheitsprobleme relativ kurzfristig beheben und Korrekturen veröffentlichen. Andere haben bewiesen, daß sie sich nur wenig um die Sicherheit ihrer Software kümmern.

Joey