GetRewted Security (grsecurity)

Das Projekt grsecurity (http://www.grsecurity.net) wurde 2001 begonnen und über mehrere Jahre von Brad Spengler als eigener Kernelpatch für den Kernel 2.4 und 2.6 gepflegt. Es bietet neben den Funktionen eines Role Based Mandatory Access Control Systems noch viele weitere Funktionen. Die folgenden Funktionen wurden der grsecurity-Webseite entnommen und sinngemäß übersetzt:

Das Projekt grsecurity ist leider nur ein Ein-Mann-Projekt. Dadurch gab es in der Vergangenheit bereits einmal ein Problem. Am 01.06.2006 gab der Entwickler bekannt, das Projekt bis zum 07.06.2006 einzustellen, da er verschuldet sei und die Sponsoren des Projektes ihn nicht finanziell unterstützen würden. Am 09.06.2006 war das Projekt dank neuer Sponsoren und Spenden doch gerettet worden. Jedoch zeigt dies, wie wacklig die Unterstützung sein kann. Die Administration des RBAC Systems erfolgt mit dem Befehl gradm. Zusätzlich ist eine Datei /etc/grsec/policy erforderlich, in der das grsecurity RBAC-System konfiguriert wird. Im folgenden ist ein Auszug aus einer Beispieldatei angegeben:

role admin sA
subject / rvka
        / rwcdmlxi

role default G
role_transitions admin
subject /
        /               r
        /opt            rx
        /home           rwxcd
        /mnt            rw
        /dev
        /dev/grsec      h
        /dev/urandom    r
        /dev/random     r
        ...

subject /usr/bin/ssh
        /etc/ssh/ssh_config r
Hier sind nun zwei Rollen dargestellt. Nach der Anmeldung als Benutzer arbeiten alle Anwender in der Rolle default. In dieser Rolle sind bestimmte Zugriffe nur erlaubt. Der Zugriff mit beliebigen Befehlen (subject /) ist auf dem gesamten Rechner (/) zunächst nur mit Leserechten (r) erlaubt. Das Verzeichnis /opt darf gelesen und geschrieben werden. Das Verzeichnis /dev/grsec wird vor allen Prozessen versteckt (hidden, h). Wird das Kommando /usr/bin/ssh aufgerufen, darf es lediglich die Datei /etc/ssh/ssh_config lesen. Mehr Rechte erhält ein Benutzer nur, wenn er in die Rolle admin wechselt. Dieser Rollenwechsel ist erlaubt (role_transitions admin. Die Rolle admin erfordert eine Authentifizierung bei dem Rollenwechsel mit gradm -a admin. Dann hat der Benutzer uneingeschränkten Zugriff. Das hier verwendete Kennwort wird mit gradm -P admin gesetzt und muss nicht mit dem root-Kennwort übereinstimmen.

Interessant ist die Tatsache, dass grsecurity auch die Netzwerkverbindungen überwachen kann. Mit einem Patch kann hier auch das Kommando iptables genutzt werden.

Ralf Spenneberg 2007-11-13