Gib Symlinks keine Chance

Kernel 3.6 behebt alte Sicherheitsschwäche

Kernel 3.6 behebt alte Sicherheitsschwäche

Mathias Huber
02.10.2012
Der kommende Kernel 3.6 beschränkt das Anlegen von harten und symbolischen Links und behebt damit eine ganze Klasse von Sicherheitslücken.

Diese Schwächen treten auf, wenn ein normaler Anwender einen symbolischen Link auf eine Datei anlegt, die er nicht beschreiben darf. Handelt es sich um eine Systemdatei oder eine temporäre in "/tmp", kann es vorkommen, dass ein Root-Prozess dem Link folgt und die gewünschte Änderung an der Datei für einen Angreifer ausführt. Um das zu verhindern, wird Linux 3.6 solchen Links nicht mehr folgen, wenn sie sich in einem Verzeichnis wie "/tmp" befinden, das für alle Benutzer beschreibbar ist und Berechtigungen per Sticky-Bit vererbt. Daneben muss die UID des Links gleich der des Prozesses sein oder der selbe Benutzer Link und Zieldatei besitzen. Hardlinks darf nur anlegen, wer Eigentümer der Zieldatei ist.

Damit beugt der kommende Kernel Sicherheitsschwächen des Typs Time-of-Check-to-Time-of-Use vor, insbesondere der Symlink-Schwachstelle. Die Diskussion über solche Vorkehrungen habe es bereits im Jahr 1996 gegeben, schreibt der Entwickler Kees Cook in seiner Commit-Nachricht.

Die jetzt für das Linux-VFS gewählte Implementierung stammt von der Distribution Openwall und dem Patchset Grsecurity. Daneben hat der Kernelentwickler Al Viro einige Anregungen gegeben. Distributionen wie Openwall sowie auch Ubuntu oder Chrome OS benutzen bereits länger derartige Link-Beschränkungen. Diese können Probleme mit dem At-Daemon verursachen, die sich aber beheben lassen, wie etwa Ubuntu zeigt.

Ähnliche Artikel

Kommentare