|
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) ----------------------------------------------------------------------------- |
[Contrib]
[Chalisti]
[06]
Noch ein "sicherers" Betriebssystem