[Chaos CD]
[Contrib] [Chalisti] [06]    Noch ein "sicherers" Betriebssystem
[ -- ] [ ++ ] [Suchen]  

 

Noch ein "sicherers" Betriebssystem


Betriebssysteme gibt es ja eine Menge. In letzter Zeit machen aber immer
wieder Erweiterungen zu bestehenden Implementationen von Unix von sich
reden. Mach und Chorus sind vielleicht einigen bekannt. 

Die Ursache fuer diese Erweiterungen auf Kernel-Ebene liegen hauptsaechlich
in den Wunsch von Rechnerbetreibern und wildgewordenen Informatikern ein
Betriebsystem zu haben, welches verteilt arbeiten kann. Das heisst ein
Rechner besteht aus mehreren Prozessoren bzw. in einem Rechnernetz sind
verschiedene Rechner angeschlossen. Das Betriebssystem wird nun in
funktionalle Komponenten aufgeteilt und auf die Rechner bzw. Prozessoren
verteilt. Weitere Wuensche sind Datenschutz und Datensicherheit (insbesondere 
vor Viren), die sich in den verwendeten Konzepten von verteilten Betriebs-
systemen leicht realisieren lassen sollen. 

Auf der diesjaehrigen CeBit war auf dem Stand der Gesellschaft fuer 
Mathematik und Datenverarbeitung paar Leute der Entwicklungsgruppe der 
GMD, die einen eigenen Betriebssystemkern geschrieben haben. Das entwickelte
Betriebssystem hat den Namen Birlix bekommen. 

Birlix soll helfen die Ziele

                - Fehlertoleranz
                - Datensicherheit
                - Verteilung
                - Datenschutz

zu erreichen. Dies geschieht durch eine konsequente Nutzung von abstrakten
Datentypen. In Birlix werden Datenobjekte (z.B. eine Datei) und der 
dazugehoerige abtrakte Datentyp unterschieden. In diesem abstrakten Datentyp
sind die Eigenschaften und Funktionen des Datenobjektes beschrieben.
Bei Unix ist es ja so, dass eine Datei bsw. Rechte bekommt. Darf gelesen
werden und ausgefuehrt, etc. Allerdings sind diese Eigenschaften im
Datenobjekt enthalten. In Birlix und aehnlichen Systemen wird dies
aber GETRENNT verwaltet. Mehrere Datenobjekte gehoeren dann zu einem
abtrakten Datentyp. Dieser dient als Grundlage fuer Birlix zur 
Entscheidung, wo und wie welches Programm entgueltig zur Ausfuehrung kommt, 
um eine Gleichbelastung in einem verteilten System zu gewaehrleisten.  
Bei Birlix gibt es derzeit 15 abtrakte Datentypen wie z.B. File, Directory, 
Socket, etc.  Wie gehoeren zu diesen Datentypen die konkreten Inkarnationen
wie Dateien, Directories, etc. In Birlix kann jeder Benutzer - in
begrenzten Massen - auch eigene abtrakte Datentypen anmelden. 

Birlix ist jetzt dazu da die abstrakten Datentypen zu verwalten und die
Identifikation von Typen und deren Kommunikation zu unterstuetzen. In
Birlix gibt es dann noch den Begriff der Instanz. Diese stellen die kleinste
Einheit fuer die Identifikation und Kommunikation dar. Alle Anwender-
programme unter Birlix stellen eine Menge von Instanzen von abstrakten 
Datentypen dar (mind. an dieser Stelle schienen die Informatiker die 
Oberhand gewonnen zu haben) die zwischen den Rechnern im Netzwerk verteilt 
sind. Da also Programme sich innnerhalb einer Netzwerkes auf verschiedene 
Rechner verteilen (das Debuggen muss da irre viel Spass machen), muessen die 
einzelnen Teile des Programmes (eben die Instanzen) auch miteinander 
kommunizieren. Dies geschieht mit sogenannten remote procedure calls. 

Allerdings bekommt ein Benutzer von aussen davon nix mit. Nach aussen stellt
sich das System als einziges grosses System dar, welches die Resourcen,
unabhaengig von der Verteilung, verwaltet.

Das fuer mich interessante waren die Mechanismen die das Betriebssytem vor
Viren sicher machen soll. Bei Birlix soll der Schutz daran liegen, dass
der Absender einer Nachricht (hier ist das im Objektorientierten Sinne
gemeint: Also z.B. die Nachricht "schreibe ein file") eindeutig und sicher
festzustellen ist. Das soll die Vortaeuschung FALSCHER Identitaet auf 
kernelebene verhindern bzw. diesen mindestens entdecken. Gleichzeitig 
wuerde das also auch bedeuten, dass es den setuserid-Mechanismus von Unix 
nicht mehr gibt.

Jedes Datenobjekt (z.B. Datei) hat eine Zugriffssteuerliste verpasst bekommen, 
in der klar definiert wird, welches Subjekt (also Programm oder/und Benutzer)
daraus zugreifen darf.  Gleichzeitig wird aber auch gewaehrleistet das
es jedes Objekt zu ALLER Zeit nur einmal gibt. 
Praktisch kann mensch heute bei Unix erreichen, dass er vorhandenes Programm
loescht, dieses neuschreibt und alle Randbedingung (Modification Time, 
INode) wieder so herstellt, wie vorher. Es ist praktisch nicht mehr fest-
stellbar, ob sich die Datei geaendert hat. Es sei den, mensch hat selbst
Programme die ueber alle Dateien Checksummen erstellen, allerdings wuerde
dies auf der Anwendungsebene und nicht auf Kernelebene geschehen.  

Bei Birlix wuerde a) sicher sein, das bsw. nicht mehr die selbe Inode
vergeben wird und b) wuerde das Datenobjekt und der dazugehoerife     
abstrakte Datentyp nicht mehr konnsistent sein. Also ist entweder das
gezielte aendern von Dateien nur sehr schwer moeglich oder aber es ist
auf jeden Fall feststellbar. Allerdings gibt es bei Birlix derzeit noch
keine Software fuer den Administrator eines Systems, die Aenderungen
meldet. Das Birlix ist aber ja auch noch in der Forschung. Dieser Artikel
wurde von einer Mitarbeiterin der Uni Oldenburg, die sich im Bereich 
verteilte Betriebssysteme beschaeftigt kurz durchgelesen. In der an-
schliessenden Diskussion kam die Aussage "Auf solchen Betriebssystemen
sind keine erfolgreichen Virenangriffe moeglich" auf. Dies muss mit
Vorsicht zu geniessen sein. Das Betriebssystem erschwert natuerlich Viren-
angriffe. Aber es gibt natuerlich auch weiterhin die Moeglichkeit das 
solche von Erfolg gekroent sind. In diesem Fall ist sichergestellt, dass
ein solcher Angriff ENTDECKT werden kann. Allerdings meldet ein solches
Betriebssystem nur, DAS es zu einer Veraenderung gekommen ist, die nicht
umbedingt mit rechten Dingen zugegangen sein muss. Allerdings ist damit
nicht gesagt, dass es ein Virus war. Es kann auch "natuerliche" Ursachen
gehabt haben. Bsw. wird ein Rechner von mehreren Administratoren verwalten.
Einer spielt eine neue Version eines Programmes ein. Der andere bekommt
ein potentiellen Virusangriff angezeigt. In diesem Fall war es aber keiner.
Es sind alle Virenangriffe ENTDECKBAR, aber nicht alle VERHINDERBAR. 
Das diese entdeckt werden, haengt aber wieder letztendlich vom Menschen ab.
Viele Betriebssysteme wie VMS oder aber auch schon Unix mit C2 Klassifizierung
(nach Orange Book) sind sicher ... solange der Mensch tatsaechlich alle 
Sicherheitsmechanismen in Kraft setzt und regelmaessig kontrolliert. 

Auf jeden Fall scheint das Gebiet der verteilten Systeme nicht uninteressant
zu sein, allerdings ist es auch ein guter Sport fuer Theoretiker bzw. 
Leute die an abstraktes Denken gewohnt sind. Der Herr auf dem GMD Stand
hat 3 Versuche gebraucht bis er mir halbwegs klargemacht hatte, warum
den diese Mechanismen ziemlich sicher sind, aber doch nicht den Benutzer
in seinen Funktionen stoeren. Was mensch auch noch loben sollte, ist das
MAterial was die GMD Interessierten zur Verfuegung stellte. Eine Mappe mit
gut 30 Seiten fotokopierte Abhandlungen, Erlaeuterungen, Birlix-Manual-Pages
und Beschreibung der abtrakten Datentypen in Modula-2.  Im Vergleich zu 
dem Hochglanzwerbematerial mit NULL Info gefiel mit das Teil richtig gut.

Abschliessend moechte ich sagen, dass ich nur eine Vorlesung ueber
Betriebssysteme gehoert habe und mich mit Objektorientiertheit und 
verteilte Systeme nur am Rande beschaeftigt habe. Wenn jemand also ganz
konkrete und kompetente Infos will, sollte er sich an die GMD, Postfach 1240, 
5205 St. Augustin 1 wenden. Dort kann mensch auch Anfragen wg. einer Lizenz
fuer Birlix richten. Im Bereich Forschungs und Lehre soll eine Birlix-
Lizens ca. 500 DM kosten.

                                                Terra

Quelle: Einfuehrung in Birlix
        On the Implementation of Abstract Data Types in Birlix
        Informatik Spektrum 13, 1990, S. 38-39
        Ein Mensch auf dem GMD-Stand (Name verlegt)
        
-----------------------------------------------------------------------------

 

  [Chaos CD]
[Contrib] [Chalisti] [06]    Noch ein "sicherers" Betriebssystem
[ -- ] [ ++ ] [Suchen]