Nur mit der zunehmenden Anzahl von Prozessen, die in einem Dialogbetrieb möglich sind, wächst
auch das Bedürfnis einfach eine stärkere Sicherheit zu unterstützen. Also Security Aspekte sind immer
mehr in den Vordergrund gerückt und zwar insbesondere Security im Sinne von Schutz vor
unautorisierten Zugriffen, die durch Prozesse denn möglich sind. Nun, dieser Schutz, der kann
nun je nachdem wie feinkörnig und mit welcher Funktion wir praktisch diesen Schutz ausstatten
wollen, eben sehr unterschiedlich ausgelegt sein. Wir könnten zum Beispiel hingehen und recht grob
jeden Prozess Adressraum isoliert betreiben, also Adressraumgrenzen praktisch einziehen und die
dann halt überwachen, so wie wir das mit der Eingrenzung oder die Segmentierung schon
kennengelernt haben. Und da wissen wir halt, dass natürlich dann eben Zugriffsfehler erkannt werden
können, die führen dann zu Trebs, Segmentation Faults im Endeffekt und die Konsequenz daraus wäre,
denn dass es zum Abbruch der Programmausführung kommt und dann stellt man eben sicher, dass Prozesse
aus ihren Adressräumen denn eben nicht austreten können. Damit hat man aber keine sehr selektive
Zugriffskontrolle. Das ist sehr grobkörnig, es bezieht sich immer nur auf den gesamten Adressraum,
man würde damit dann einfach nicht so überprüfen können, ob ein Prozess einen Zugriff in eine
bestimmte Datei zum Beispiel hätte und welche Art von Zugriff er etwa hätte. Eine andere Variante
ist eben den Prozessen eine bestimmte Befähigung zum Zugriff zu erteilen, nämlich Capabilities
sozusagen einführen. Hier spricht man denn von Subjekten, das wären die Prozesse in unserem Fall,
denen man individuelle Zugriffsrechte gibt, zum Beispiel, dass sie in der Lage sind, eine
Ausführung anzustoßen, etwas zu lesen, zu schreiben oder auch Änderungsmaßnahmen durchführen zu können,
immer bezogen auf Objekte. Subjekte benutzen denn Objekte und diese Objekte sind dann zum
Beispiel etwa Dateien, Geräte, Unterprogramme, Prozeduren, irgendwelche Daten, die man verarbeiten
möchte oder Prozesse selbst. Und so eine Befähigung beschreibt dann immer so eine Beziehung zwischen
Subjekt und einem bestimmten Objekt. Das ist eine Variante. Eine andere Variante ist, den Objekten
eine Zugriffskontrollliste zuzuordnen, wo denn praktisch jeder Listeneintrag in dieser
Kontrollliste ein konkretes Zugriffsrecht eines Subjektes auf eben dieses Objekt
dann letztendlich beschreibt. Da gibt es vereinfachte Formen, die kennen wir, wenn wir dieses Usergroup
Bird Modell von Unix etwa uns anschauen, dann ist es eigentlich eine vereinfachte Implementierung
einer solchen Zugriffskontrollliste, die wir haben. Nun das Problem, das grundsätzliche Problem bei
solchen Schutzmaßnahmen sind dann etwa verdeckte Kanäle, die das System doch hat oder sogenannte
Seitenkanäle, die halt möglich sind, wo denn über diese Kanäle tatsächlich Informationen
herausfließen können und damit letztlich Prozesse in der Lage sind, an Informationen
ranzukommen, die sie so normalerweise halt nicht erfahren dürften. Der Trick bei diesen verdeckten
Kanälen oder Seitenkanälen ist eben der, dass man da gar keine illegalen Zugriffe durchführt,
sondern man verwendet ganz normal die Systemoperation, die das Betriebssystem anbietet, aber in einer Art
und Weise, um praktisch Informationen nach außen sozusagen geben zu können und kann sich das einfach
so vorstellen, dass man ja durchaus in der Lage ist, Programme zu schreiben, die einfach mal Last
generieren und dann wieder Last aus dem Rechensystem rausnehmen, also Overhead produzieren und Overhead
wieder wegnehmen und diese Last, diese Overheads, die man denn erfährt, die kann ein anderer Prozess
durchaus messen und so ist es dann praktisch möglich, dass ein Prozess, der dann immer diese
Lasten verändert, über die Art und Weise, wie er die Lasten verändert, Schwingungen erzeugt im
System, die messbar sind von anderen Prozessen, wie Borsen kann man sich so vorstellen, dass ein
Prozess, ein Last generierender oder wegnehmender Prozess nach außen hin, aus einem Kontext heraus
Informationen über einen Seitenkanal herausgibt, die ein anderer Prozess dann aufnehmen kann und sind
diese Kommunikationsvorgänge nicht sehr schnell, die haben keine hohe Bandbreite, aber das ist ja
manchmal nicht groß wichtig, wenn man also ein Passwort, was nur aus ein paar Bytes besteht,
heraus kommunizieren möchte, dann kann man sich dadurch halt auch ein bisschen Zeit lassen,
dauert vielleicht nur ein paar wenige Minuten, wenn man sozusagen Lastenveränderungen denn halt
durchführt über diese Seitenkanäle. Mit den betrachteten Maßnahmen, ob es Capabilities sind,
Zugriffskontrolllisten oder etwa diese grobgranulare Adressraumisolation, kann man so
eine verdeckten Kanäle und so einen Seitenkanäle einfach nicht zerstören, die sind halt einfach
Presenters
Zugänglich über
Offener Zugang
Dauer
00:25:43 Min
Aufnahmedatum
2020-07-14
Hochgeladen am
2020-07-14 13:36:27
Sprache
de-DE