Re: offizieller Kernel Fix fuer ptrace Bug verfuegbar ?
Andreas Metzler schrieb:
> Meines Wissens bis dato noch nicht. In woody-proposed-updates gibt es
> aber ein kernel-source-2.4.20, das entsprechend gepatcht ist.
>
> Das Update ist in Arbeit, aber eben fuer Debian extrem aufwendig, mit
> potato und woody betrifft das drei verschieden Kernelversionen, einen
> Haufen Abwandlungen (-i386 -k7, -bf, ...) und das ganze multipliziert
> mit sehr sehr vielen Architekturen (11).
>
> Man kann bis dahin ja das autoloading deaktivieren
> echo /bin/true > /proc/sys/kernel/modprobe
> wirklich zufriedenstellend ist aber zugegebenermassen nicht.
Nein, so hilft es gar nicht.
Der Exploit funktioniert auch bei /bin/true. Es darf auf keinen Fall ein
ausführbares Programm angeben werden. Es muss - wie in meinem Beispiel
vor ein paar Tagen - ein 100% nichtexistentes Ziel sein, z.B: /nicht/da
Kurz eine vereinfachte Darstellung, wie das Problem funktioniert. ptrace
(=Prozessverfolgung) ist eine Kernelfunktion, die es erlaubt die
Ausführung von Tochterprozessen zu kontrollieren. Diese Funktion wird
hauptsächlich im Debugger, aber z.B. auch von Usermode-Linux verwendet.
Sobald ein getracter Prozess ein Signal erhält, kann die Kontrolle
übernommen und Code des Prozesses analysiert oder verändert werden.
Beim ptrace Bug wird diese Funktion von einem User (nur mit Userrechten)
auf einen Prozess angewendet, der Root-Rechte hat. Der User kann dann
in den Root-Prozess seinen eigenen Code plazieren und sich somit
weiteren Zugang verschaffen. Das Einfallstor auf den meistens Systemen
ist daher der Kernel-Module-Loader. Hier kann der User durch Ansprache
einer selten (oder auf keinen Fall vorhanden Moduls) den Aufruf des für
modprobe definierten Programms provozieren, dass sich dann tracen lässt
und Root-Rechte hat. Ob das Programm wirklich modprobe ist oder
/bin/true ist egal. Hauptsache Programm.
Mit dem Work-around ist das Problem nicht wirklich eliminiert, sondern
nur der Hauptangriffstpunkt der meisten betroffenen Systeme mit einem
Flicken verstopft. Der Patch von Alan Cox (in kernel-source-2.4.20-6)
ist auch keine endgültige Lösung und bringt weitere Problemchen im
Detail mit sich. Die einzige saubere und sichere Lösung ist zur Zeit
sys_ptrace komplett raus zu werfen bzw. mit einem "return -EPERM"
direkt wieder zu beenden. Nicht-Kernelhacker können den Kernel ohne
automatischen Modulloader kompilieren.
--
rainer@ellinger.de
Reply to: