Isolation & Sicherheitsarchitekturen
This commit is contained in:
		
							parent
							
								
									ccdec27bd9
								
							
						
					
					
						commit
						fbd5e74810
					
				
							
								
								
									
										
											BIN
										
									
								
								Advanced Operating Systems - Cheatsheet.pdf
									 (Stored with Git LFS)
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Advanced Operating Systems - Cheatsheet.pdf
									 (Stored with Git LFS)
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							| @ -1683,7 +1683,6 @@ | ||||
|     \end{itemize*} | ||||
| 
 | ||||
|     \subsection{Isolationsmechanismen} | ||||
| 
 | ||||
|     \begin{itemize*} | ||||
|         \item bekannt: Isolationsmechanismen für robuste Betriebssysteme | ||||
|         \begin{itemize*} | ||||
| @ -1692,275 +1691,167 @@ | ||||
|         \end{itemize*} | ||||
|         \item nun: Isolationsmechanismen für sichere Betriebssysteme | ||||
|         \begin{itemize*} | ||||
|             \item all die obigen... | ||||
|             \item kryptografische Hardwareunterstützung: Intel SGX Enclaves | ||||
|             \item sprachbasiert: \begin{itemize*} \item streng typisierte Sprachen und \emph{managed code} : Microsoft Singularity [HLAA05] \item speichersichere Sprachen (Rust) + Adressraumisolation ($\mu$Kernel): \href{https://www.redox-os.org/}{RedoxOS} \end{itemize*} | ||||
|             \item isolierte Laufzeitumgebungen: Virtualisierung (Kap. 6) | ||||
|             \item krypto. Hardwareunterstützung: Intel SGX Enclaves | ||||
|             \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*} | ||||
| 
 | ||||
| 
 | ||||
|     \subparagraph{Intel SGX} | ||||
| 
 | ||||
|     \subsubsection{Intel SGX} | ||||
|     \begin{itemize*} | ||||
|         \item SGX: Software Guard Extensions [CoDe16] | ||||
|         \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! (AR-Schutz, Wechsel | ||||
|         von Privilegierungsebenen, ...) | ||||
|         \item Annahmen/Voraussetzungen: | ||||
|         \begin{enumerate*} | ||||
| 
 | ||||
|             \item sämtliche Software nicht vertrauenswürdig (potenziell durch Angreifer kontrolliert) | ||||
|             \item Kommunikation mit dem angegriffenen System nicht vertrauenswürdig (weder vertraulich noch verbindlich) | ||||
|             \item kryptografische Algorithmen (Verschlüsselung und Signierung) sind vertrauenswürdig, also nicht für den Angreifer zu brechen | ||||
|             \item Ziel der Isolation: Vertraulichkeit, Integrität und Authentizität(nicht Verfügbarkeit) von Anwendungen (Code) und den durch sie verarbeiteten Informationen | ||||
|         \end{enumerate*} | ||||
|         \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 Annahmen/Voraussetzungen | ||||
|     \end{itemize*} | ||||
| 
 | ||||
|     \begin{enumerate*} | ||||
|         \item sämtliche Software nicht vertrauenswürdig (potenziell durch Angreifer kontrolliert) | ||||
|         \item Kommunikation mit dem angegriffenen System nicht vertrauenswürdig (weder vertraulich noch verbindlich) | ||||
|         \item kryptografische Algorithmen (Verschlüsselung und Signierung) sind vertrauenswürdig, also nicht für den Angreifer zu brechen | ||||
|         \item Ziel: Vertraulichkeit, Integrität und Authentizität von Anwendungen und durch sie verarbeiteten Informationen | ||||
|     \end{enumerate*} | ||||
| 
 | ||||
|     \subparagraph{Enclaves} | ||||
| 
 | ||||
|     \begin{itemize*} | ||||
|         \item Idee: geschützter Speicherbereich für Teilmenge der Seiten (Code und | ||||
|         Daten) einer Task: Enclave Page Cache (EPC) | ||||
|         \item Prozessor (und nur dieser) ver-und entschlüsselt EPC-Seiten | ||||
|         \item Idee: geschützter Speicherbereich für Teilmenge der Seiten (Code und Daten) einer Task: Enclave Page Cache (EPC) | ||||
|         \item Prozessor ver-und entschlüsselt EPC-Seiten | ||||
|         %\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-SGX-enclaves.png} | ||||
|         \item Enclaves: Erzeugung | ||||
|     \end{itemize*} | ||||
|     \begin{description*} | ||||
|         \item[ECREATE] App $\rightarrow$ Syscall $\rightarrow$ BS-Instruktion an CPU | ||||
|         \item[EADD] App $\rightarrow$ Syscall $\rightarrow$ BS-Instruktion an CPU | ||||
|         \begin{itemize*} | ||||
|             \item Erzeugen: App. $\rightarrow$ Syscall $\rightarrow$ BS-Instruktion an CPU (ECREATE) | ||||
|             \item Seiten hinzufügen: App. $\rightarrow$ Syscall $\rightarrow$ BS-Instruktion an CPU (EADD) \begin{itemize*} \item Metainformationen für jede hinzugefügte Seite als Teil der EPC-Datenstruktur (u.a.: Enklave - ID, Zugriffsrechte, vAR-Adresse) \end{itemize*} | ||||
|             \item Initialisieren: App. $\rightarrow$ Syscall $\rightarrow$ BS-Instruktion an CPU (EINIT) \begin{itemize*} \item finalisiert gesamten Speicherinhalt für diese Enclave \item CPU erzeugt Hashwert = eindeutige Signatur des Enclave - Speicherinhalts \item falls BS bis zu diesem Punkt gegen Integrität der Anwendung verstoßen hat: durch Vergleich mit von dritter Seite generiertem Hashwert feststellbar! \end{itemize*} | ||||
|             \item Metainformationen für jede hinzugefügte Seite als Teil der EPC-Datenstruktur | ||||
|         \end{itemize*} | ||||
|         \item Enclave - Zustandsmodell (vereinfacht) : | ||||
|         %\begin{itemize*} | ||||
|         %\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-SGX-enclaves-model.png} | ||||
|         %\end{itemize*} | ||||
|         \item Zugriff: App. $\rightarrow$ CPU-Instruktionen in User | ||||
|         Mode (EENTER, EEXIT) | ||||
|         \item[EINIT] App. $\rightarrow$ Syscall $\rightarrow$ BS-Instruktion an CPU | ||||
|         \begin{itemize*} | ||||
|             \item CPU erfordert, dass EPC-Seiten in vARder zugreifenden Task | ||||
|             %\item     % %\includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-SGX-enlaves-zugriff.png} | ||||
|             \item finalisiert gesamten Speicherinhalt für diese Enclave | ||||
|             \item CPU erzeugt Hashwert = eindeutige Signatur des Enclave - Speicherinhalts | ||||
|             %\item falls BS bis zu diesem Punkt gegen Integrität der Anwendung verstoßen hat: durch Vergleich mit von dritter Seite generiertem Hashwert feststellbar! | ||||
|         \end{itemize*} | ||||
|     \end{description*} | ||||
|     \begin{center} | ||||
|         \includegraphics[width=.6\linewidth]{Assets/AdvancedOperatingSystems-SGX-enclaves-model.png} | ||||
|     \end{center} | ||||
|     \begin{itemize*} | ||||
|         \item Zugriff: App $\rightarrow$ CPU-Instruk. in User Mode (EENTER, EEXIT) | ||||
|         \item CPU erfordert, dass EPC-Seiten in vAR der zugreifenden Task | ||||
|         %\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-SGX-enlaves-zugriff.png} | ||||
|     \end{itemize*} | ||||
| 
 | ||||
| 
 | ||||
|     \subparagraph{SGX: Licht und Schatten} | ||||
| 
 | ||||
|     \begin{itemize*} | ||||
|         \item Einführung 2015 in Skylake - Mikroarchitektur | ||||
|         \item seither in allen Modellen verbaut, jedoch nicht immer aktiviert | ||||
|         \item Nutzer bislang: Demos und Forschungsprojekte, Unterstützung durch | ||||
|         einige Cloud-Anbieter, (noch) keine größeren Märkte erschlossen | ||||
|         \item Konzept hardwarebasierter Isolation ... | ||||
|         \begin{itemize*} | ||||
|             \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[\xmark] schützt mittels Enclaves einzelne Anwendungen, aber nicht das System | ||||
|             \item[\xmark] steckt hinsichtlich praktischer Eigenschaften noch in den Anfängen (vgl. $\mu$Kernel...): \begin{itemize*} \item Performanz [WeAK18] \item Speicherkapazität(max. Größe EPC: 128 MiB, davon nur 93 MiBnutzbar) \item[$\rightarrow$] komplementäre NFE: Speichereffizienz! \end{itemize*} | ||||
|         \end{itemize*} | ||||
|         \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[\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*} | ||||
| 
 | ||||
| 
 | ||||
|     \subsection{Sicherheitsarchitekturen} | ||||
| 
 | ||||
|     Sicherheitsarchitektur... ist die Softwarearchitektur (Platzierung, | ||||
|     Struktur und Interaktion) der Sicherheitsmechanismen eines IT-Systems. | ||||
| 
 | ||||
|     \begin{itemize*} | ||||
|         \item Voraussetzung zum Verstehen jeder Sicherheitsarchitektur: | ||||
|         \item Voraussetzung zum Verstehen jeder Sicherheitsarchitektur | ||||
|         \begin{itemize*} | ||||
|             \item Verstehen des Referenzmonitorprinzips | ||||
|             \item frühe Forschungen zu Betriebssystemsicherheit in 1970er-1980er Jahren durch US-Verteidigungsministerium | ||||
|             \item Schlüsselveröffentlichung: Anderson-Report(1972)[Ande72] | ||||
|             \item frühe Forschungen durch US-Verteidigungsministerium | ||||
|             \item Schlüsselveröffentlichung: Anderson-Report (1972) | ||||
|             \item[$\rightarrow$] fundamentalen Eigenschaften zur Charakterisierung von Sicherheitsarchitekturen | ||||
|         \end{itemize*} | ||||
|         \item Begriffe des Referenzmonitorprinzips kennen wir schon: | ||||
|         \item Begriffe des Referenzmonitorprinzips kennen wir schon | ||||
|         \begin{itemize*} | ||||
|             \item Abgrenzung passiver Ressourcen (in Form einzelner Objekte, z.B. Dateien) | ||||
|             \item von Subjekten (aktiven Elementen, z.B. laufenden Programmen, Prozessen) durch Betriebssystem | ||||
|             \item Abgrenzung passiver Ressourcen (Objekte, z.B. Dateien) | ||||
|             \item von Subjekten (aktiven Elementen, Prozess) durch BS | ||||
|         \end{itemize*} | ||||
|     \end{itemize*} | ||||
| 
 | ||||
| 
 | ||||
|     \subsubsection{Referenzmonitorprinzip} | ||||
| 
 | ||||
|     \begin{itemize*} | ||||
|         \item Idee: | ||||
|         \begin{itemize*} | ||||
|             \item[$\rightarrow$] sämtliche Autorisierungsentscheidungen durch einen zentralen (abstrakten) Mechanismus = Referenzmonitor | ||||
|             \item Bewertet jeden Zugriffsversuch eines Subjekts auf Objekt durch Anwendung einer Sicherheitspolitik (security policy) \begin{itemize*} \item[$\rightarrow$] vgl. SELinux \end{itemize*} | ||||
|             \item somit: Architekturbeschreibung, wie Zugriffe auf Ressourcen (z.B. Dateien) auf solche Zugriffe, die Sicherheitspolitik erlaubt, eingeschränkt werden | ||||
|         \end{itemize*} | ||||
|         \item Autorisierungsentscheidungen | ||||
|         \begin{itemize*} | ||||
|             \item basieren auf sicherheitsrelevanten Eigenschaften jedes Subjekts und jedes Objekts | ||||
|             \item einige Beispiele kennen wir schon: \begin{itemize*} \item Nutzname, Unix-Gruppe \item Prozess-ID, INode-Nummer \item SELinux-Typ \end{itemize*} | ||||
|         \end{itemize*} | ||||
|         \item Architekturkomponenten in a nutshell: | ||||
|         %\begin{itemize*} | ||||
|         \item[$\rightarrow$] sämtliche Autorisierungsentscheidungen durch zentralen Mechanismus = Referenzmonitor | ||||
|         \item Bewertet jeden Zugriffsversuch eines Subjekts auf Objekt durch Anwendung einer Sicherheitspolitik (security policy) | ||||
|         \item Architekturbeschreibung, wie Zugriffe auf Ressourcen, die Sicherheitspolitik erlaubt, eingeschränkt werden | ||||
|         \item Autorisierungsentscheidungen: basieren auf sicherheitsrelevanten Eigenschaften jedes Subjekts und jedes Objekts | ||||
|         %\item \includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-Referenzmonitorprinzip.png} | ||||
|         %\end{itemize*} | ||||
|     \end{itemize*} | ||||
| 
 | ||||
|     Definierende Eigenschaften: Referenzmonitor ist eine | ||||
|     Architekturkomponenten, die | ||||
|     Referenzmonitor ist eine Architekturkomponenten, die | ||||
|     \begin{description*} | ||||
|         \item[RM 1] bei sämtlichen Subjekt/Objekt-Interaktionen involviert sind $\rightarrow$ Unumgehbarkeit (total mediation) | ||||
|         \item[RM 2] geschützt sind vor unautorisierter Manipulation $\rightarrow$ Manipulationssicherheit (tamperproofness) | ||||
|         \item[RM 3] hinreichend klein und wohlstrukturiert sind, für formale Analysemethoden $\rightarrow$ Verifizierbarkeit (verifyability) | ||||
|     \end{description*} | ||||
| 
 | ||||
|     \subparagraph{Referenzmonitor in Betriebssystemen} | ||||
|     Nahezu alle Betriebssysteme implementieren irgendeine Form eines Referenzmonitors | ||||
|     \begin{itemize*} | ||||
|         \item (RM 1) bei sämtlichen Subjekt/Objekt-Interaktionen involviert sind | ||||
|         \begin{itemize*} | ||||
|             \item[$\rightarrow$] Unumgehbarkeit ( total mediation ) | ||||
|         \end{itemize*} | ||||
|         \item (RM 2) geschützt sind vor unautorisierter Manipulation | ||||
|         \begin{itemize*} | ||||
|             \item[$\rightarrow$] Manipulationssicherheit ( tamperproofness ) | ||||
|         \end{itemize*} | ||||
|         \item (RM 3) hinreichend klein und wohlstrukturiert sind, um formalen | ||||
|         Analysemethoden zugänglich zu sein | ||||
|         \begin{itemize*} | ||||
|             \item[$\rightarrow$] Verifizierbarkeit ( verifyability ) | ||||
|         \end{itemize*} | ||||
|         \item Subjekte, Objekte | ||||
|         \item Regeln einer Sicherheitspolitik charakterisiert | ||||
|         \item Unumgehbarkeit, Manipulationssicherheit | ||||
|         \item Verifizierbarkeit ihrer Sicherheitsarchitektur | ||||
|     \end{itemize*} | ||||
| 
 | ||||
| 
 | ||||
|     \subparagraph{Referenzmonitor in | ||||
|         Betriebssystemen} | ||||
| 
 | ||||
|     Nahezu alle Betriebssysteme implementieren irgendeine Form eines | ||||
|     Referenzmonitors [Jaeg11] und können über Begriffe, wie | ||||
| 
 | ||||
|     Beispiel: Standard-Linux | ||||
|     \begin{itemize*} | ||||
|         \item Subjekte | ||||
|         \item Objekte | ||||
|         \item Regeln einer Sicherheitspolitik charakterisiert sowie auf | ||||
|         \item Unumgehbarkeit | ||||
|         \item Manipulationssicherheit | ||||
|         \item Verifizierbarkeit ihrer Sicherheitsarchitektur hin untersucht werden | ||||
|         \item Subjekte (Prozesse) $\rightarrow$ haben reale Nutzer-Identifikatoren (UIDs) | ||||
|         \item Objekte (Dateien) $\rightarrow$ haben ACLs (,,rwxrw----'') | ||||
|         \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 | ||||
| 
 | ||||
|     Beispiel: Standard- Linux | ||||
| 
 | ||||
|     \begin{itemize*} | ||||
|         \item Subjekte (generell Prozesse) | ||||
|         \begin{itemize*} | ||||
|             \item haben reale (und effektive) Nutzer-Identifikatoren (UIDs) | ||||
|         \end{itemize*} | ||||
|         \item Objekte (verschiedene Systemressourcen, genutzt für Speicherung, | ||||
|         Kommunikation: Dateien, Directories, Sockets, SharedMemory usw.) | ||||
|         \begin{itemize*} | ||||
|             \item haben ACLs (,,rwxrw----'') | ||||
|         \end{itemize*} | ||||
|         \item Regeln der Sicherheitspolitik, die durch den Referenzmonitor (hier | ||||
|         Kernel) unterstützt werden | ||||
|         \begin{itemize*} | ||||
|             \item hart codiert, starr | ||||
|         \end{itemize*} | ||||
|         \item Sicherheitsattribute, die durch diese Regeln zur Prüfung genutzt | ||||
|         werden (z.B. Zugriffsmodi) | ||||
|         \begin{itemize*} | ||||
|             \item Objekten zugeordnet | ||||
|             \item modifizierbar | ||||
|         \end{itemize*} | ||||
|     \end{itemize*} | ||||
| 
 | ||||
|     Man beurteile die Politikimplementierung in dieser Architektur bzgl.: | ||||
| 
 | ||||
|     \begin{itemize*} | ||||
|         \item Unumgehbarkeit | ||||
|         \item Manipulationssicherheit | ||||
|         \item Verifizierbarkeit | ||||
|     \end{itemize*} | ||||
| 
 | ||||
| 
 | ||||
|     \subparagraph{Referenzmonitorimplementierung: | ||||
|         Flask} | ||||
| 
 | ||||
|     ( Flask - Architekturmodell) | ||||
| 
 | ||||
|     %\includegraphics[width=\linewidth]{Assets/AdvancedOperatingSystems-referenzmonitor-flask.png} | ||||
| 
 | ||||
| 
 | ||||
|     \subparagraph{SELinux-Architektur: Security | ||||
|         Server} | ||||
| 
 | ||||
|     \begin{itemize*} | ||||
|         \item Security Server: Laufzeitumgebung für Politik in Schutzdomäne des | ||||
|         Kerns | ||||
|         \item Objektmanager: implementiert in allen BS-Dienstenmittels,, Linux | ||||
|         Security Module Framework '' | ||||
|         \begin{itemize*} | ||||
|             \item jedes Subsystemvon SELinux , das zuständig für \begin{enumerate*} \item Erzeugung neuer Objekte \item Zugriff auf existierende Objekte \end{enumerate*} | ||||
|             \item Beispiele: \begin{enumerate*} \item Prozess-Verwaltung (behandelte Objekte: hauptsächlich Prozesse) \item Dateisystem (behandelte Objekte: hauptsächlich Dateien) \item Networking/Socket-Subsystem (behandelte Objekte: [verschiedene Typen von] Sockets) \item u.a. \end{enumerate*} | ||||
|         \end{itemize*} | ||||
|     \end{itemize*} | ||||
| 
 | ||||
|     SELinux-Architektur: Objektklassen | ||||
|     Referenzmonitorimplementierung: Flask | ||||
|     \begin{center} | ||||
|         \includegraphics[width=.5\linewidth]{Assets/AdvancedOperatingSystems-referenzmonitor-flask.png} | ||||
|     \end{center} | ||||
| 
 | ||||
|     \subparagraph{SELinux-Architektur: Security Server} | ||||
|     \begin{itemize*} | ||||
|         \item Security Server: Laufzeitumgebung für Politik in Schutzdomäne des Kerns | ||||
|         \item Objektmanager: implementiert in allen BS-Diensten mittels ,,Linux Security Module Framework '' | ||||
|         \item Objektmanager zur Verwaltung verschiedener Objektklassen | ||||
|         \item spiegeln Diversität und Komplexität von Linux BS-Abtraktionen wider: | ||||
|         \begin{itemize*} | ||||
|             \item Dateisysteme: file, dir, fd, filesystem, ... | ||||
|             \item Netzwerk: netif, socket, tcp\_socket, udp\_socket, ... | ||||
|             \item IPC: msgq, sem, shm, ... | ||||
|             \item Sonstige: process, system, ... | ||||
|             \item ... | ||||
|         \end{itemize*} | ||||
|         \item spiegeln Diversität und Komplexität von Linux BS-Abtraktionen wider: Dateisysteme, Netzwerk, IPC, ... | ||||
|         \item jedes Subsystem von SELinux zuständig für | ||||
|         \begin{enumerate*} | ||||
|             \item Erzeugung neuer Objekte | ||||
|             \item Zugriff auf existierende Objekte | ||||
|         \end{enumerate*} | ||||
|         \item Beispiele: Prozess-Verwaltung, Dateisystem, Networking-System | ||||
|     \end{itemize*} | ||||
| 
 | ||||
|     Dateisystem als Objektmanager | ||||
| 
 | ||||
|     \begin{itemize*} | ||||
|         \item Durch Analyse von Linux - Dateisystem und zugehöriger API wurden zu | ||||
|         überwachenden Objektklassen identifiziert: | ||||
|         \begin{itemize*} | ||||
|             \item ergibt sich unmittelbar aus Linux-API: \begin{itemize*} \item Dateien \item Verzeichnisse \item Pipes \end{itemize*} | ||||
|             \item feingranularere Objektklassen für durch Dateien repräsentierte Objekte (Unix-Prinzip: ,,everythingisa file''!): \begin{itemize*} \item reguläre Dateien \item symbolische Links \item zeichenorientierte Geräte \item blockorientierte Geräte \item FIFOs \item Unix-Domain Sockets (lokale Sockets) \end{itemize*} | ||||
|         \end{itemize*} | ||||
|         \item Permissions (Zugriffsrechte) | ||||
|         \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 ...): read, | ||||
|         write, append, create, execute, unlink | ||||
|         \item für ,,Verzeichnis''-Objektklasse: add\_name, remove\_name, reparant, | ||||
|         search, rmdir | ||||
|         \item Durch Analyse von Linux - Dateisystem und zugehöriger API wurden zu überwachenden Objektklassen identifiziert | ||||
|         \item ergibt sich unmittelbar aus Linux-API: Dateien, Verzeichnisse, Pipes | ||||
|         \item feingranularere Objektklassen für durch Dateien repräsentierte Objekte (Unix: ,,everything is a file'') | ||||
|     \end{itemize*} | ||||
| 
 | ||||
| 
 | ||||
|     \subsubsection{Trusted Computing Base | ||||
|         (TCB)} | ||||
| 
 | ||||
|     Begriff zur Bewertung von Referenzmonitorarchitekturen: TCB ( Trusted | ||||
|     Computing Base ) | ||||
| 
 | ||||
|     Permissions (Zugriffsrechte) | ||||
|     \begin{itemize*} | ||||
|         \item = die Hard-und Softwarefunktionen eines IT-Systems, die notwendig und | ||||
|         hinreichend sind, um alle Sicherheitsregeln durchzusetzen. | ||||
|         \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 ...) | ||||
|     \end{itemize*} | ||||
| 
 | ||||
|     \subsubsection{Trusted Computing Base (TCB)} | ||||
|     Begriff zur Bewertung von Referenzmonitorarchitekturen | ||||
|     \begin{itemize*} | ||||
|         \item[=] notwendige Hard-und Softwarefunktionen eines IT-Systems um alle Sicherheitsregeln durchzusetzen | ||||
|         \item besteht üblicherweise aus | ||||
|         \begin{enumerate*} | ||||
| 
 | ||||
|             \item Laufzeitumgebung der Hardware(nicht E/A-Geräte) | ||||
|             \item Laufzeitumgebung der Hardware (nicht E/A-Geräte) | ||||
|             \item verschiedenen Komponenten des Betriebssystem-Kernels | ||||
|             \item Benutzerprogrammen mit sicherheitsrelevanten Rechten (bei Standard-UNIX/Linux-Systemen: diejenigen mit root-Rechten) | ||||
|             \item Benutzerprogrammen mit sicherheitsrelevanten Rechten | ||||
|         \end{enumerate*} | ||||
|         \item Betriebssystemfunktionen, die Teil der TCB sein müssen, beinhalten | ||||
|         Teile | ||||
|         \begin{itemize*} | ||||
|             \item des Prozessmanagements | ||||
|             \item des Speichermanagements | ||||
|             \item des Dateimanagements | ||||
|             \item des E/A-Managements | ||||
|             \item alle Referenzmonitorfunktionen | ||||
|         \end{itemize*} | ||||
|         \item Betriebssystemfunktionen, die Teil der TCB sein müssen, beinhalten Teile des Prozess-, Speicher-, Datei-, E/A-Managements | ||||
|     \end{itemize*} | ||||
| 
 | ||||
| 
 | ||||
|     \section{Echtzeitfähigkeit} | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user