[linux-l] Re: /proc & Co.

Peter Ross Peter.Ross at alumni.tu-berlin.de
Mo Okt 23 03:56:19 CEST 2006


On Sun, 22 Oct 2006, olafBuddenhagen at gmx.net wrote:

> Richtig, das nachträgliche abdichten ist immer haarig -- das gilt für
> SELinux und Jails und den ganzen anderen Kram ganz generell. UNIX ist
> halt vom Prinzip her kein System was heutigen Sicherheitsanforderungen
> wirklich gerecht wird; und das kann man num mal nicht ändern, ohne
> ziemlich grundlegende Änderungen an einigen Konzepten vorzunehmen.

Da gebe ich Dir nicht recht.

Was unter FreeBSD mit jails, Securelevels und chflags etc. passiert, setzt 
sauber auf die grundlegenden Zugriffsmechanismen auf, erweitert sie 
mit wenigen Eintrittspunkten (Die Einfuehrung von jail z.B. bedurfte nur 
einiger hundert Zeilen Quellcode-Aenderungen)

Dagegen basteln Linuxianer mit SELinux und App Armor rum, dabei muessen 
Unmengen von Policies und Rules immer wieder an Applikationen und 
Beduerfnisse angepasst werden. Es erinnert mich immer wieder an die 
Flickschusterei unter Windows, ein System abzudichten.

> > sysctl ist ein Eintrittspunkt fuer _alle_ Zugriffe auf das, was Du nun
> > unter /proc hast. Hier kannst Du erstmal sagen, "wenn Prozess im Jail,
> > dann Zugriff verweigert", und schon hast Du erst einmal ein sehr
> > sicheres System, mit nur einer Zeile Programmcode im Kernel.. und
> > davon ausgehend, kannst Du nach hinreichender Ueberlegung vielleicht
> > das Tuerchen hier und da ein Stueckchen oeffnen. 
> 
> Sehe nicht wieso das bei Dateisystem-basierten Schnittstellen anders
> sein sollte. Die Zeile steht nur eben wo anders.

In welchem Modul an welcher Stelle kannst Du sie dann plazieren? Ich sehe 
keine.

Sysctl ist ein Kernelaufruf, ein Filesystem hat viele Eintrittspunkte und 
Funktionsaufrufe.

Der Kernelaufruf ist auch nicht abhaengig von chroot oder jail, wie schon 
bemerkt.

> Zum einen sind solche Schnittstellen generell meist ziemlich intuitiv
> und leicht erlernbar. Sie bauen halt auf Dateisystem-Konzepten auf, die
> jedem UNIX-Nutzer hinlänglich vertraut sind. Man muss nur noch wissen,
> wie die Daten in der Hierarchie abgelgt sind; man muss sich nicht um
> Spezifika von Funktionsaufrufen kümmern.

echo 1 > /proc/dies/ist/der/pfad
oder
sysctl dies.ist.der.pfad=1

Alle anzeigen:

sysctl -a
(Der Output von ls -R /proc ist nicht halb so schoen, oder find /proc 
-type f)

Nicht wirklich schwer, oder?

Gruss
Peter


Mehr Informationen über die Mailingliste linux-l