diff options
-rw-r--r-- | document.asciidoc | 44 |
1 files changed, 24 insertions, 20 deletions
diff --git a/document.asciidoc b/document.asciidoc index 2643501..f6c35c8 100644 --- a/document.asciidoc +++ b/document.asciidoc @@ -110,38 +110,42 @@ TODO: strncpy() strlcpy() == Netzwerk-Programmierung -Ein grosser Angriffsvektor auf Computer-Systeme sind laufenden Dienste, +Ein grosser Angriffsvektor auf Computer-Systemen sind laufende Dienste, welche ueber Netzwerk und Internet erreichbar sind. Ein Fehler in ihrer Programmierung koennte von ausserhalb ausgenutzt werden, -da Internetdienste eine staendige weltweite Erreichbarkeit haben. -Somit kann ein solcher Dienst potentiell zur jeder Zeit von jedem Ort aus +da Internetdienste eine staendige weltweite Erreichbarkeit aufweisen. +Somit kann ein solcher Dienst potentiell zu jeder Zeit und von jedem Ort aus angegriffen werden. Zum Schutz solcher Dienste gibt es verschiedene Mechanismen, welche im Folgenden erlaeutert werden. -=== Privilege-Separation - -Bei der Privilege-Seperation wird ein Programm in verschiedene Prozesse mit -unterschiedlichen Berechtigungen auf geteilt. -Das Ziel dabei ist es, Programmcode mit so wenig Rechten wie moeglich laufen zu -lassen. - -Als Beispiel soll der Window-Compositer Wayland genannt... -TODO: wayland privilege separater erklaeren - -Im einfachsten Fall startet ein Daemon mit Root rechten und holt sich alle -Ressourcen, wie etwas Sockets mit Well-Known-Ports oder eine Filedescriptor auf -eine Datei, gibt dann die rechte ab und laeuft im user-mode weiter. - === Privilege-Revocation Die meisten Anwendung benoetigen ausschliesslich waehrend der Initialisierung hoehere Rechte, um etwa einen Socket mit einem Well-Known-Port zu oeffnen. Zur Laufzeit werden diese hoeheren Rechte dann nicht mehr benoetigt. -Somit sollten diesen Prozesse nach ihrer Initialisierung diese Rechte wieder -abgeben und mit normalen Benutzer-Rechen weiter laufen. +Somit geben diese Prozesse nach ihrer Initialisierung diese Rechte wieder ab +und arbeiten mit normalen Benutzer-Rechten weiter. + +//TODO: einfachster Fall: Gibt es kompliziertere? +Im einfachsten Fall startet ein Daemon mit Root-Rechten. +Dieser alloziert benötigte Ressourcen, wie Sockets mit Well-Known-Ports oder +einen Filedeskriptoren auf eine Datei. +Im folgenden gibt der Daemon die Root-Rechte ab, in dem eine andere effektive +Nutzer-ID gesetzt wird und laeuft ab dem Zeitpunkt im User-Mode. +Er ist damit nicht mehr in der Lage, Operationen auszuführen, die Root-Rechte +verlangen. + +=== Privilege-Separation + +Bei der Privilege-Separation wird ein Programm in verschiedene Prozesse mit +unterschiedlichen Berechtigungen aufgeteilt. +Das Ziel dabei ist es, den Programmcode mit so wenig Rechten wie moeglich +ausführen zu lassen. + + -=== Service-Seperation +=== Service-Separation Da auf einem Computer zumeist mehr als nur ein Dienst laeuft, welcher mit einem Netzwerk oder dem Internet verbunden ist, ist auch die Angriffsmoeglichkeit auf |