Sicherheit gekürzt
This commit is contained in:
parent
ccb8f75128
commit
9f091c7d9c
BIN
Advanced Operating Systems - Cheatsheet.pdf
(Stored with Git LFS)
BIN
Advanced Operating Systems - Cheatsheet.pdf
(Stored with Git LFS)
Binary file not shown.
@ -1328,18 +1328,9 @@
|
||||
|
||||
\pagebreak
|
||||
\section{Sicherheit}
|
||||
Terminologie
|
||||
\begin{description*}
|
||||
\item[Security] IT-Sicherheit, Informationssicherheit
|
||||
\begin{itemize*}
|
||||
\item Ziel: Schutz \textbf{des} Rechnersystems
|
||||
\item Systemsicherheit, hier besprochen
|
||||
\end{itemize*}
|
||||
\item[Safety] Funktionale Sicherheit, Betriebssicherheit
|
||||
\begin{itemize*}
|
||||
\item Ziel: Schutz \textbf{vor} einem Rechnersystem
|
||||
\item an dieser Stelle nicht besprochen
|
||||
\end{itemize*}
|
||||
\item[Security] IT/Informations-Sicherheit, Schutz \textbf{des} Rechnersystems
|
||||
\item[Safety] Funktionale/Betriebs-Sicherheit, Schutz \textbf{vor} Rechnersystem
|
||||
\end{description*}
|
||||
%Eine (unvollständige) Taxonomie: \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-sicherheit-taxonomie.png}
|
||||
|
||||
@ -1369,8 +1360,8 @@
|
||||
\end{itemize*}
|
||||
\item (Wirtschafts-) Spionage und Diebstahl
|
||||
\begin{itemize*}
|
||||
\item Verlust der Kontrolle über kritisches Wissen ($\rightarrow$ Risikotechnologien)
|
||||
\item immense wirtschaftliche Schäden, z.B. Diebstahl von industriellem Know-How
|
||||
\item Verlust der Kontrolle über kritisches Wissen %($\rightarrow$ Risikotechnologien)
|
||||
\item immense wirtschaftliche Schäden%, z.B. Diebstahl von industriellem Know-How
|
||||
\end{itemize*}
|
||||
\item Betrug, persönliche Bereicherung (wirtschaftliche Schäden)
|
||||
\item Sabotage, Erpressung
|
||||
@ -1390,8 +1381,8 @@
|
||||
\begin{itemize*}
|
||||
\item (teil-) automatisierte Angriffe
|
||||
\item Trojanische Pferde: scheinbar nützliche Software
|
||||
\item Viren, Würmer: Funktionalität zur eigenen Vervielfältigung und/oder Modifikation
|
||||
\item Logische Bomben: trojanischen Pferde, deren Aktivierung an System- oder Datumsereignisse gebunden
|
||||
\item Viren, Würmer: Funktionalität zur eigenen Vervielfältigung %und/oder Modifikation
|
||||
\item Logische Bomben: trojanischen Pferde mit Aktivierung %an System- oder Datumsereignisse gebunden
|
||||
\item Root Kits
|
||||
\end{itemize*}
|
||||
\item Bots und Botnets
|
||||
@ -1403,16 +1394,7 @@
|
||||
|
||||
\subsubsection{Professionelle Malware: Root Kit}
|
||||
\begin{itemize*}
|
||||
\item Programm-Paket, das unbemerkt Betriebssystem modifiziert, um Administratorrechte zu erlangen
|
||||
\item Voraussetzung: eine einzige Schwachstelle...
|
||||
\item ermöglichen Zugriff auf alle Funktionen und Dienste eines Betriebssystems
|
||||
\item Angreifer erlangt vollständige Kontrolle des Systems und kann
|
||||
\begin{itemize*}
|
||||
\item Dateien (Programme) hinzufügen bzw. ändern
|
||||
\item Prozesse überwachen
|
||||
\item über die Netzverbindungen senden und empfangen
|
||||
\item Hintertüren für zukünftiger Angriffe platzieren
|
||||
\end{itemize*}
|
||||
\item Angreifer erlangt vollständige Kontrolle des Systems
|
||||
\item Ziele eines Rootkits
|
||||
\begin{itemize*}
|
||||
\item seine Existenz verbergen
|
||||
@ -1431,7 +1413,7 @@
|
||||
\subsubsection{Schwachstellen}
|
||||
\begin{enumerate*}
|
||||
\item Passwort (erraten, zu einfach, Brute-Force, Abfangen)
|
||||
\item Programmierfehler (Speicherfehler in Anwenderprogrammen/Gerätemanagern/Betriebssystem
|
||||
\item Programmierfehler (Speicherfehler) % in Anwenderprogrammen/Gerätemanagern/Betriebssystem
|
||||
\item Mangelhafte Robustheit
|
||||
\begin{itemize*}
|
||||
\item keine Korrektur fehlerhafter Eingaben
|
||||
@ -1440,17 +1422,16 @@
|
||||
\item Nichttechnische Schwachstellen
|
||||
\begin{itemize*}
|
||||
\item physisch, organisatorisch, infrastrukturell
|
||||
\item menschlich ( $\rightarrow$ Erpressung, socialengineering )
|
||||
\item menschlich ($\rightarrow$ Erpressung, social engineering)
|
||||
\end{itemize*}
|
||||
\end{enumerate*}
|
||||
|
||||
\subsubsection{Zwischenfazit}
|
||||
\begin{itemize*}
|
||||
\item Schwachstellen sind unvermeidbar
|
||||
\item Bedrohungen sind unkontrollierbar
|
||||
\item ... und nehmen tendeziell zu!
|
||||
\item Bedrohungen sind unkontrollierbar und nehmen tendeziell zu
|
||||
\item führt zu operationellen Risiken beim Betrieb eines IT-Systems
|
||||
\item[$\rightarrow$] Aufgabe der BS-Sicherheit: Auswirkungen operationeller Risiken reduzieren
|
||||
\item[$\rightarrow$] BS-Sicherheit: Auswirkungen operationeller Risiken reduzieren
|
||||
\end{itemize*}
|
||||
|
||||
\subsection{Sicherheitspolitiken}
|
||||
@ -1461,55 +1442,50 @@
|
||||
\begin{description}
|
||||
\item[Sicherheitsziele] Welche Sicherheitsanforderungen muss BS erfüllen?
|
||||
\item[Sicherheitspolitik] Durch welche Strategien soll es diese erfüllen?
|
||||
\begin{itemize*}
|
||||
\item Menge von Regeln, zum Erreichen eines Sicherheitsziels
|
||||
\end{itemize*}
|
||||
\item[Sicherheitsmechanismen] Wie implementiert BS Sicherheitspolitik?
|
||||
\begin{itemize*}
|
||||
\item Verifikation ihrer Korrektheit
|
||||
\item Spezifikation ihrer Implementierung
|
||||
\end{itemize*}
|
||||
\item[Sicherheitsarchitektur] Wo implementiert BS S.-mechanismen?
|
||||
\end{description}
|
||||
|
||||
\subsubsection{Sicherheitspolitiken und -modelle}
|
||||
Kritisch für korrekten Entwurf, Spezifikation, Implementierung
|
||||
\begin{itemize*}
|
||||
\item Sicherheitspolitik (Policy): Menge von Regeln, zum Erreichen eines Sicherheitsziels
|
||||
\item Sicherheitsmodell: formale Darstellung zur
|
||||
\begin{itemize*}
|
||||
\item Verifikation ihrer Korrektheit
|
||||
\item Spezifikation ihrer Implementierung
|
||||
\end{itemize*}
|
||||
\end{itemize*}
|
||||
|
||||
\subsubsection{Zugriffssteuerungspolitiken}
|
||||
\begin{description*}
|
||||
\item[Zugriffssteuerung] (access control) Steuerung, welcher Nutzer oder Prozess mittels welcher Operationen auf welche BS-Ressourcen zugreifen darf
|
||||
\item[Zugriffssteuerung] Steuerung, welcher Nutzer/Prozess mittels welcher Operationen auf welche BS-Ressourcen zugreifen darf
|
||||
\item[Zugriffssteuerungspolitik] konkrete Regeln, welche die Zugriffssteuerung in einem BS beschreiben
|
||||
\item[IBAC] (Identity-based AC) Politik spezifiziert, welcher Nutzer an welchen Ressourcen bestimmte Rechte hat
|
||||
\begin{itemize*}
|
||||
\item Bsp.: ,,Nutzer Anna darf Brief.docx lesen''
|
||||
\end{itemize*}
|
||||
\item[TE] (Type-Enforcement) Politik spezifiziert Rechte durch zusätzliche Abstraktion (Typen): welcher Nutzertyp an welchem Ressourcentyp bestimmte Rechte hat
|
||||
\item[TE] (Type-Enforcement) Politik spezifiziert Rechte durch zusätzliche Abstraktion (Typen) %welcher Nutzertyp an welchem Ressourcentyp bestimmte Rechte hat
|
||||
\begin{itemize*}
|
||||
\item Bsp.: ,,Nutzer vom Typ Administrator darf...''
|
||||
\end{itemize*}
|
||||
\item[MLS] (Multi-Level Security) Politik spezifiziert Rechte, indem aus Nutzern und Ressourcen hierarchische Klassen (Ebenen, ,,Levels'') gleicher Kritikalität im Hinblick auf Sicherheitsziele gebildet werden
|
||||
\item[MLS] (Multi-Level Security) Politik spezifiziert Rechte, indem aus Nutzern und Ressourcen hierarchische Klassen gleicher Kritikalität im Hinblick auf Sicherheitsziele gebildet werden
|
||||
\begin{itemize*}
|
||||
\item Bsp.: ,,Nutzer der Klasse nicht vertrauenswürdig...''
|
||||
\end{itemize*}
|
||||
\item[DAC] (Discretionary AC): Aktionen der Nutzer setzen die Sicherheitspolitik durch. Typisch: Begriff des Eigentümers von BS-Ressourcen
|
||||
\item[DAC] (Discretionary AC): Aktionen der Nutzer setzen die Sicherheitspolitik durch % Typisch: Begriff des Eigentümers von BS-Ressourcen
|
||||
\begin{itemize*}
|
||||
\item Bsp.: ,,Der Eigentümer einer Datei ändert...''
|
||||
\end{itemize*}
|
||||
\item[MAC] (Mandatory AC, obligatorische Zugriffssteuerung) Keine Beteiligung der Nutzer an der Durchsetzung einer (zentral administrierten) Sicherheitspolitik
|
||||
\item[MAC] (Mandatory AC) Keine Beteiligung der Nutzer an der Durchsetzung einer (zentral administrierten) Sicherheitspolitik
|
||||
\begin{itemize*}
|
||||
\item Bsp.: ,,Anhand des Dateisystempfads bestimmt BS...''
|
||||
\end{itemize*}
|
||||
\end{description*}
|
||||
|
||||
\subsubsection{Traditionell: DAC, IBAC}
|
||||
Auszug aus der Unix-Sicherheitspolitik:
|
||||
\begin{itemize*}
|
||||
\item es gibt Subjekte (Nutzer/Prozesse) und Objekte (Dateien,\dots)
|
||||
\item jedes Objekt hat einen Eigentümer
|
||||
\item Eigentümer legen Zugriffsrechte an Objekten fest ($\rightarrow$ DAC)
|
||||
\item es gibt drei Zugriffsrechte: read, write, execute
|
||||
\item je Objekt gibt es drei Klassen von Subjekten, mit individuellen Zugriffsrechten: Eigentümer, Gruppe, Rest
|
||||
\item je Objekt gibt es drei Klassen von Subjekten: Eigentümer, Gruppe, Rest
|
||||
\end{itemize*}
|
||||
|
||||
In der Praxis
|
||||
@ -1522,16 +1498,15 @@
|
||||
\subsubsection{Modellierung: Zugriffsmatrix}
|
||||
\begin{itemize*}
|
||||
\item Access Control Matrix (acm): Momentaufnahme der globalen Rechteverteilung zu einem definierten Zeitpunkt t
|
||||
\item Korrektheitskriterium: Wie kann sich dies nach t möglicherweise ändern...?
|
||||
\item Korrektheitskriterium: Wie kann sich dies möglicherweise ändern?
|
||||
\item Rechteausbreitung (privilege escalation): verursacht z.B. durch Nutzeraktion ($\rightarrow$ DAC)
|
||||
\item Sicherheitseigenschaft: HRU Safety $\rightarrow$ Systemsicherheit
|
||||
\end{itemize*}
|
||||
|
||||
\subsubsection{Modern: MAC, MLS}
|
||||
Sicherheitspolitik der Windows UAC (user account control)
|
||||
\begin{itemize*}
|
||||
\item es gibt Subjekte (Prozesse) und Objekte (Dateisystemknoten)
|
||||
\item jedem Subjekt ist eine Integritätsklasse zugewiesen:
|
||||
\item jedem Subjekt ist eine Integritätsklasse zugewiesen
|
||||
\begin{description*}
|
||||
\item[Low] nicht vertrauenswürdig
|
||||
\item[Medium] reguläre Nutzerprozesse, die Nutzerdaten manipulieren
|
||||
@ -1539,12 +1514,11 @@
|
||||
\item[System] (Hintergrund-) Prozesse, die ausschließlich Betriebssystemdienste auf Anwenderebene implementieren
|
||||
\end{description*}
|
||||
\item jedem Objekt ist analog eine dieser Integritätsklassen zugewiesen
|
||||
\item sämtliche DAC-Zugriffsrechte müssen mit einer Hierarchie der Integritätsklassen konsistent sein ( $\rightarrow$ MAC)
|
||||
\item sämtliche DAC-Zugriffsrechte müssen mit einer Hierarchie der Integritätsklassen konsistent sein ($\rightarrow$ MAC)
|
||||
\item Nutzer können Konsistenzanforderung selektiv außer Kraft setzen ($\rightarrow$ DAC)
|
||||
\end{itemize*}
|
||||
|
||||
MAC-Modellierung: Klassenhierarchie
|
||||
|
||||
Beispiel Relation: $\leq=\{(High,Medium), (High,Low), (Medium,Low), (High,High), (Low,Low)\}$
|
||||
\begin{itemize*}
|
||||
\item repräsentiert Kritikalität hinsichtlich der Integrität
|
||||
@ -1576,9 +1550,9 @@
|
||||
\end{itemize*}
|
||||
|
||||
\subsubsection{Traditionell: ACLs, SUID}
|
||||
Autorisierungsinformationen:
|
||||
Autorisierungsinformationen
|
||||
\begin{itemize*}
|
||||
\item müssen Subjekte (Nutzer) bzw. Objekte (Dateien, Sockets ...) mit Rechten assoziieren $\rightarrow$ Implementierung der Zugriffsmatrix (acm), diese ist:
|
||||
\item müssen Subjekte (Nutzer) bzw. Objekte (Dateien, Sockets ...) mit Rechten assoziieren $\rightarrow$ Implementierung der Zugriffsmatrix (acm)
|
||||
\begin{itemize*}
|
||||
\item groß ($\rightarrow$ Dateianzahl auf Fileserver)
|
||||
\item dünn besetzt
|
||||
@ -1601,14 +1575,8 @@
|
||||
Rest (o) & ja & nein & ja
|
||||
\end{tabular}
|
||||
\begin{itemize*}
|
||||
\item 3-elementige Liste, 3-elementige Rechtemenge
|
||||
\item[$\rightarrow$] 9 Bits
|
||||
\item 3-elementige Liste, 3-elementige Rechtemenge $\rightarrow$ 9 Bits
|
||||
\item Implementierung kodiert in 16-Bit-Wort: 1 1 1 1 0 1 1 0 1
|
||||
\end{itemize*}
|
||||
|
||||
\subparagraph{Autorisierungsmechanismen: ACL-Auswertung}
|
||||
Subjekte = Nutzermenge besteht aus Anzahl registrierter Nutzer
|
||||
\begin{itemize*}
|
||||
\item jeder hat eindeutige UID (userID), z.B. integer- Zahl
|
||||
\item Dateien \& Prozesse mit UID des Eigentümers versehen
|
||||
\begin{itemize*}
|
||||
@ -1616,41 +1584,24 @@
|
||||
\item bei Prozessen: Teil des PCB
|
||||
\item standardmäßiger Eigentümer: der Ressource erzeugt hat
|
||||
\end{itemize*}
|
||||
\end{itemize*}
|
||||
|
||||
Nutzergruppen (groups)
|
||||
\begin{itemize*}
|
||||
\item jeder Nutzer durch Eintrag in Systemdatei (/etc/group) einer/mehreren Gruppen zugeordnet ($\rightarrow$ ACL: g Rechte)
|
||||
\end{itemize*}
|
||||
|
||||
Superuser oder root... hat grundsätzlich uneingeschränkte Rechte.
|
||||
\begin{itemize*}
|
||||
\item UID = 0
|
||||
\item darf alle Dateien im System lesen, schreiben, ausführen
|
||||
\item unabhängig von ACL
|
||||
\item jeder Nutzer durch Eintrag in Systemdatei (/etc/group) einer/mehreren Gruppen zugeordnet ($\rightarrow$ ACL)
|
||||
\item Superuser oder root... hat grundsätzlich uneingeschränkte Rechte
|
||||
\end{itemize*}
|
||||
|
||||
\subparagraph{ACL-Implementierung}
|
||||
Nutzerrechte $\rightarrow$ Prozessrechte
|
||||
|
||||
Durchsetzung: basiert auf Prozessrechten
|
||||
\begin{itemize*}
|
||||
\item Annahme: Prozesse laufen mit UID des Nutzers, der sie gestartet hat und repräsentieren Nutzerberechtigungen
|
||||
\item technisch: Nutzer beauftragt anderen Prozess, sich zu dublizieren (fork()) und gewünschte Programm auszuführen (exec*())
|
||||
\item Vererbungsprinzip %\includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-acl-vererbungsprinzip.png}
|
||||
%\item Vererbungsprinzip %\includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-acl-vererbungsprinzip.png}
|
||||
\end{itemize*}
|
||||
|
||||
\subparagraph{Autorisierungsmechanismen: Set-UID}
|
||||
|
||||
konsequente Rechtevererbung
|
||||
\begin{itemize*}
|
||||
\item Nutzer können im Rahmen der DAC-Politik ACLs manipulieren
|
||||
\item Nutzer können (i.A.) jedoch keine Prozess-UIDs manipulieren
|
||||
\item $\rightarrow$ und genau so sollte es gem. Unix-Sicherheitspolitik auch sein!
|
||||
\end{itemize*}
|
||||
|
||||
Hintergrund
|
||||
\begin{itemize*}
|
||||
\item[$\rightarrow$] und genau so sollte es gem. Unix-Sicherheitspolitik auch sein
|
||||
\item Unix-Philosophie ,, everything is a file '': BS-Ressourcen wie Sockets, E/A-Gerätehandler als Datei repräsentiert $\rightarrow$ identische Schutzmechanismen zum regulären Dateisystem
|
||||
\item somit: Autorisierungsmechanismen zur Begrenzung des Zugriffs auf solche Geräte nutzbar
|
||||
\begin{itemize*}
|
||||
@ -1673,14 +1624,6 @@
|
||||
\item[$\rightarrow$] Nutzerprozesse können Systemprogramme ohne permanente root-Rechte ausführen
|
||||
\end{itemize*}
|
||||
|
||||
Weiteres Beispiel: passwd
|
||||
\begin{itemize*}
|
||||
\item ermöglicht Nutzern Ändern des (eigenen) Anmeldepassworts
|
||||
\item Schreibzugriff auf /etc/shadow (Password-Hashes) erforderlich
|
||||
\item Lösung: `-rws rws r-x 1 root root 1 2005-01-20 10:00 passwd\$
|
||||
\item passwd-Programm wird mit root-Rechten ausgeführt und passwd schreibt nur eigenen Passwort-Hash
|
||||
\end{itemize*}
|
||||
|
||||
\subsection{Modern: SELinux}
|
||||
\begin{itemize*}
|
||||
\item 2000er: sicherheitsfokussiertes Betriebssystemprojekt für NSA
|
||||
@ -1692,11 +1635,7 @@
|
||||
\item zentrale Datenstruktur für Regeln, die erlaubte Zugriffe auf ein SELinux-System definiert
|
||||
\item erlaubt Modifikation und Anpassung an verschiedene Sicherheitsanforderungen $\rightarrow$ NFE Adaptivität ...
|
||||
\end{itemize*}
|
||||
\end{itemize*}
|
||||
|
||||
BS-Komponenten
|
||||
\begin{itemize*}
|
||||
\item Auswertung: Security-Server, implementiert als Linux-Kernelmodul $\rightarrow$ entscheidet über alle Zugriffe auf alle Objekte
|
||||
\item Security-Server, implementiert als Linux-Kernelmodul $\rightarrow$ entscheidet über alle Zugriffe auf alle Objekte
|
||||
\item Durchsetzung der Sicherheitspolitik: LSM Hooks
|
||||
\item Administration: geschrieben in Textform, muss zur Laufzeit in Security Server installiert werden
|
||||
\end{itemize*}
|
||||
@ -1716,19 +1655,17 @@
|
||||
\item Type Enforcement (TE): Typisierung von
|
||||
\begin{itemize*}
|
||||
\item Subjekten: Prozesse
|
||||
\item Objekten der Klassen: Dateien, Sockets, Geräteschnittstellen, ...
|
||||
\item Objekten der Klassen: Dateien, Sockets, Geräte, ...
|
||||
\end{itemize*}
|
||||
\item Rechte delegation durch Retypisierung (vgl. Unix-SUID)
|
||||
%\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-selinux-retypisierung.png}
|
||||
\end{itemize*}
|
||||
|
||||
\subparagraph{Autorisierungsinformationen}
|
||||
Security Context: Respräsentiert SELinux-Autorisierungsinformationen für jedes Objekt (Semantik: Prozess bash läuft mit Typ \texttt{shell\_t})
|
||||
Security Context: Respräsentiert SELinux-Autorisierungsinformationen für jedes Objekt %(Semantik: Prozess bash läuft mit Typ \texttt{shell\_t})
|
||||
|
||||
\subparagraph{Autorisierungsregeln}
|
||||
... werden systemweit festgelegt in dessen Sicherheitspolitik ($\rightarrow$ MAC)
|
||||
|
||||
Access Vector Rules
|
||||
... werden systemweit festgelegt in dessen Sicherheitspolitik ($\rightarrow$ MAC): Access Vector Rules
|
||||
\begin{itemize*}
|
||||
\item Autorisierungsregeln basierend auf Subjek-/Objekttypen
|
||||
\item Zugriffe müssen explizit gewährt werden (default-deny)
|
||||
@ -1758,9 +1695,9 @@
|
||||
SELinux: weitere Politiksemantiken
|
||||
\begin{itemize*}
|
||||
\item hier gezeigt: Überblick über TE
|
||||
\item außerdem relevant für SELinux-Politiken (und deren Administration)
|
||||
\item außerdem relevant für SELinux-Politiken %(und deren Administration)
|
||||
\begin{itemize*}
|
||||
\item Einschränkung von erlaubten Typtransitionen (Welches Programm darf mit welchem Typ ausgeführt werden?)
|
||||
\item Einschränkung von erlaubten Typtransitionen %(Welches Programm darf mit welchem Typ ausgeführt werden?)
|
||||
\item weitere Abstraktionsschicht: rollenbasierte Regeln (RBAC)
|
||||
\item[$\rightarrow$] Schutz gegen nicht vertrauenswürdige Nutzer
|
||||
\end{itemize*}
|
||||
@ -1768,33 +1705,26 @@
|
||||
\item[\cmark] obligatorische Durchsetzung ( $\rightarrow$ MAC, zusätzlich zu DAC)
|
||||
\item[O] Softwareentwicklung: Legacy-Linux-Anwendungen ohne Einschränkung
|
||||
\item[\xmark] Politikentwicklung und -administration komplex
|
||||
\item[$\rightarrow$] MAC-Mechanismen ala SELinux sind heutzutage in vielerlei Software bereits zu finden
|
||||
\item[$\rightarrow$] MAC-Mechanismen ala SELinux in vielerlei Software zu finden
|
||||
\end{itemize*}
|
||||
|
||||
\subsection{Isolationsmechanismen}
|
||||
\begin{itemize*}
|
||||
\item bekannt: Isolationsmechanismen für robuste Betriebssysteme
|
||||
\begin{itemize*}
|
||||
\item strukturierte Programmierung
|
||||
\item Adressraumisolation
|
||||
\end{itemize*}
|
||||
\item nun: Isolationsmechanismen für sichere Betriebssysteme
|
||||
\begin{itemize*}
|
||||
\item Isolationsmechanismen für sichere Betriebssysteme
|
||||
\item krypto. Hardwareunterstützung: Intel SGX Enclaves
|
||||
\item sprachbasiert:
|
||||
\item sprachbasiert
|
||||
\begin{itemize*}
|
||||
\item streng typisierte Sprachen und \emph{managed code}: Microsoft Singularity
|
||||
\item speichersichere Sprachen (Rust) + Adressraumisolation ($\mu$Kernel): \href{https://www.redox-os.org/}{RedoxOS}
|
||||
\end{itemize*}
|
||||
\item isolierte Laufzeitumgebungen: Virtualisierung
|
||||
\end{itemize*}
|
||||
\end{itemize*}
|
||||
|
||||
\subsubsection{Intel SGX}
|
||||
\begin{itemize*}
|
||||
\item SGX: Software Guard Extensions
|
||||
\item Ziel: Schutz von sicherheitskritischen Anwendungen durch vollständige, hardwarebasierte Isolation
|
||||
\item $\rightarrow$ strenggenommen kein BS-Mechanismus: Anwendungen müssen dem BS nicht mehr vertrauen
|
||||
\item[$\rightarrow$] strenggenommen kein BS-Mechanismus: Anwendungen müssen dem BS nicht mehr vertrauen
|
||||
\item Annahmen/Voraussetzungen
|
||||
\end{itemize*}
|
||||
\begin{enumerate*}
|
||||
@ -1838,8 +1768,8 @@
|
||||
\item seither in allen Modellen verbaut, jedoch nicht immer aktiviert
|
||||
\item Konzept hardwarebasierter Isolation ...
|
||||
\item[\cmark] liefert erstmals die Möglichkeit zur Durchsetzung von Sicherheitspolitiken auf Anwendungsebene
|
||||
\item[O]setzt Vertrauen in korrekte (und nicht böswillige) Hardwarevoraus
|
||||
\item[O]Dokumentation und Entwicklerunterstützung (im Ausbau ...)
|
||||
\item[O] setzt Vertrauen in korrekte (und nicht böswillige) Hardware voraus
|
||||
\item[O] Dokumentation und Entwicklerunterstützung (im Ausbau ...)
|
||||
\item[\xmark] schützt durch Enclaves einzelne Anwendungen aber nicht System
|
||||
\item[\xmark] steckt in praktischer Eigenschaften (Performanz, Speicher) noch in den Anfängen
|
||||
\end{itemize*}
|
||||
@ -1892,7 +1822,6 @@
|
||||
\item Regeln der Sicherheitspolitik $\rightarrow$ hart codiert, starr
|
||||
\item Sicherheitsattribute, $\rightarrow$ Objekten zugeordnet, modifizierbar
|
||||
\end{itemize*}
|
||||
Man beurteile die Politikimplementierung in dieser Architektur bzgl. Unumgehbarkeit, Manipulationssicherheit und Verifizierbarkeit
|
||||
|
||||
Referenzmonitorimplementierung: Flask
|
||||
\begin{center}
|
||||
@ -1910,7 +1839,7 @@
|
||||
\item Erzeugung neuer Objekte
|
||||
\item Zugriff auf existierende Objekte
|
||||
\end{enumerate*}
|
||||
\item Beispiele: Prozess-Verwaltung, Dateisystem, Networking-System
|
||||
%\item Beispiele: Prozess-Verwaltung, Dateisystem, Networking-System
|
||||
\end{itemize*}
|
||||
|
||||
Dateisystem als Objektmanager
|
||||
@ -1925,7 +1854,7 @@
|
||||
\item für jede Objektklasse: Menge an Permissions definiert, um Zugriffe auf Objekte dieser Klasse zu kontrollieren
|
||||
\item Permissions: abgeleitet aus Dienstleistungen, die Linux-Dateisystem anbietet
|
||||
\item[$\rightarrow$] Objektklassen gruppieren verschiedene Arten von Zugriffsoperationen auf verschiende Arten von Objekten
|
||||
\item z.B. Permissions für alle ,,Datei''-Objektklassen (Auswahl ...)
|
||||
%\item z.B. Permissions für alle ,,Datei''-Objektklassen (Auswahl ...)
|
||||
\end{itemize*}
|
||||
|
||||
\subsubsection{Trusted Computing Base (TCB)}
|
||||
|
Loading…
Reference in New Issue
Block a user