99 - 7.2.6 Dialogverarbeitung: Umlagerung von Programmen [ID:19690]
50 von 234 angezeigt

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

Teil einer Videoserie :

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

Tags

module programmstruktur Variablen Datentypen Preprozessor Gültigkeit
Einbetten
Wordpress FAU Plugin
iFrame
Teilen