Jails in FreeBSD nicht ausbruchsicher

Durch einen Programmierfehler in FreeBSD können Prozesse aus einem Jail auf Dateien zugreifen, die eigentlich außerhalb ihrer Reichweite liegen sollten.

In Pocket speichern vorlesen Druckansicht 253 Kommentare lesen
Lesezeit: 1 Min.
Von
  • Johannes Endres

Eigentlich sollen Jails in FreeBSD die Sicherheit erhöhen: Eingesperrte Prozesse können nur noch auf einen Teil des Dateisystems zugreifen, dürfen keine Kernel-Module nachladen und können einige weitere potenziell gefährliche Funktionen nicht nutzen. Selbst wenn ein Angreifer die volle Kontrolle über einen Prozess im Jail erlangt, kann er nur wenig Schaden anrichten, da es selbst mit Root-Rechten nicht möglich ist, aus dem Gefängnis auszubrechen.

Durch einen Fehler in FreeBSD 5 können Prozesse zwar ihr Jail nicht komplett verlassen, aber zumindest andere auf dieselbe Weise eingesperrte Prozesse in deren Zelle besuchen: Die Systemfunktion jail_attach() dient dazu, einen Prozess in das bestehende Jail eines anderen einzusperren – theoretisch allerdings nur, wenn er zuvor nicht in einem Jail lief. Der Fehler besteht nun darin, dass jail_attach() dies zu spät prüft und dadurch der aufrufende Prozess aus einem Jail auf die eigentlich unzugänglichen Dateien eines anderen Jails zugreifen kann. Die übrigen Einschränkungen kann er jedoch nicht aufheben.

Da die Funktion jail_attach() erst in FreeBSD 5 eingeführt wurde, sind nur die Release-Versionen 5.1 und 5.2 betroffen. Abhilfe schafft ein Kernel-Patch oder ein Update des Systems auf die jeweils aktuelle Version.

Siehe dazu auch: (je)