Unfrisiertes

Unfrisiertes, Unreifes, Unüberlegtes

Archiv für Juli, 2006

Linux: Kernel-Entwickler im Zwielicht

Verfasst von unfrisiertes am Juli 14, 2006

Auf heise.de wird die Ursache des jüngsten Einbruchs auf einem Debian-Server diskutiert. Jemand konnte sich über einen kompromittierten Entwickler-Account Root-Rechte verschaffen, weil ein Fehler im Kernel vorlag. So weit, so wenig ungewöhnlich: Fehler passieren überall.

Für Aufsehen aber sorgt die Bemerkung des Kernel-Sicherheitsspezialisten Paul Starzetz, wonach es sich nicht um einen aus Unachtsamkeit entstandenen Fehler, sondern um eine (absichtliche) Backdoor handele.

Interessant fand ich die Diskussion bei heise.de. Wenn man diese beiden Kommentare im Zusammenhang liest, klingt das nach spannenden weiteren Enthüllungen:

1:

14. Juli 2006 12:03
Re: Heißt das, die Kernellücke war kein Fehler, sondern eine absichtlich
Thorsten M (mehr als 1000 Beiträge seit 29.10.03)

Ein Link auf den patch:
> http://tinyurl.com/hndy3 [www.kernel.org]

>>>>>>>>>>>>>>>>>>>>
case PR_SET_DUMPABLE:
- if (arg2 2) {
+ if (arg2 1) {
error = -EINVAL;
break;
}
<<<<<<<<<<<<<<<<<<<<<<<<

Ich kenne mich in dem Code nicht aus. Aber es fand ein Range-Check
der Variable arg2 statt, der aber nicht die richtige Range
überprüfte. Zugegeben, schon ein seltsamer Fehler.

Ich denke einfach, es wird nicht so hoch gekocht, weil man dem
Entwickler keine Absicht nachweisen kann, und ihn fälschlich zu
beschuldigen wäre fatal. Es ist ja nicht ausgeschlossen, dass man
sich denkt “darf nicht 2 oder größer sein” und dann stattdessen tippt
“darf nicht größer als 2 sein”.

Wer zeit und Lust hat und Ahnung von Programmierung, könnte sich aber
sicherlich mal angucken, welcher Code noch so vom gleichen Entwickler
kommt. Kann auf keinen Fall schaden…


2:

14. Juli 2006 12:57
Re: Heißt das, die Kernellücke war kein Fehler, sondern eine absichtlich
Durin (2 Beiträge seit 11.6.03)

Ich habe mir einmal angesehen wie der Fehler entstanden ist:

@@ -1652,7 +1734,7 @@ asmlinkage long sys_prctl(int option, un
error = 1;
break;
case PR_SET_DUMPABLE:
- if (arg2 != 0 && arg2 != 1) {
+ if (arg2 2) {
error = -EINVAL;
break;
}

Hier wurde ohne Grund korrekter Code geändert. Ich persönlich halte
das nicht für einen Zufall.

Veröffentlicht in Linux | Keine Kommentare »

Controller im Feuer

Verfasst von unfrisiertes am Juli 3, 2006

Ein Lehrer, ein Physiker und ein Controller übernachten in einer
Blockhütte. Plötzlich brennt es. Der Lehrer wacht auf, sieht dass es
brennt, läuft raus und überlebt. Der Physiker wacht auf, ist von diesem
Phänomen begeistert und stirbt in den Flammen auf der Suche nach
dem Thermometer. Der Controller wacht auf, sieht den Feuerlöscher
und schläft weiter, denn es existiert ja bereits ein Plan.

(Aus: Controller’s E-News)

Veröffentlicht in Controlling | Keine Kommentare »