Gemeinsames Sorgerecht

Ein Überblick über Rechtetrennung in modernen Betriebssystemen

CC-BY-SA 2018-02-06 Helix/RaumZeitLabor

Agenda

  • warum braucht man Rechte?
  • Rechtetrennung in Unix
  • Erweiterungen in GNU/Linux
  • Rechtetrennung in Windows
  • Grenzen und Lücken.

Warum braucht man überhaupt

Rechte?

Authentifizierung vs. Autorisierung

Subjekte und Objekte

  • Subjekte greifen auf Objekte zu
  • Nicht jedes Subjekt darf jedes Objekt benutzen
  • Böse Subjekte schon gar nicht.

Beispiele

  • Subjekte:
    • Prozesse

  • Objekte:
    • Dateien
    • Ordner
    • Sockets
    • Prozesse
    • virtueller Speicher.

Rechtetrennung in

Unix / POSIX

Benutzer und Gruppen

  • Besitzer (u)
  • Gruppe (g)
  • Andere (o)
  • Alle (a).

Dateirechte

Bei jeder Datei:

u g o a

und für jedes Besitzverhältnis

r w x

Oktale Notation

  • r = 4
  • w = 2
  • x = 1

Ausrechnen:

  • r + x = 4 + 1 = 5
  • r + w = 6
  • r + w + x = 7
  • w + x = 3.

Oktal notierte Dateirechte

% ls -l datei.txt
-rw-rw-r--. 1 helix helix 0  5. Feb 19:17 datei.txt

% chmod 777 datei.txt
% ls -l datei.txt -rwxrwxrwx. 1 helix helix 0 5. Feb 19:17 datei.txt

Berechtigungen ändern

  • Der Besitzer darf das, Gruppen nicht
  • Root darf eh alles.

ACLs

  • pro Benutzer (u)
  • pro Gruppe (g)
  • Rechtemaske (m)
  • Benutzer, die nicht in Gruppen oder ACL sind (o).

Erweiterungen in

GNU/Linux

Capabilities (Fähigkeiten)

  • mit seccomp-Erweiterung verfügbar
  • derzeit 35 Stück im Linux-Kernel
  • Beispiele:
    chown, setuid, setgid, net_raw, net_bind_service, …
  • fallenlassen möglich und erwünscht.

Namespaces

  • Leichtgewichtige Prozess-Virtualisierung
  • Isolierung: Ein Prozess hat eine andere Sicht auf das System
  • Kein Hypervisor (wie bei VMs)
  • Besonders nützlich: netns / veth
  • Weitere Namespaces: PID, UTS (hostname), Mount, user.

Control Groups

  • regeln den Zugriff auf Systemressourcen
  • Implementieren Möglichkeiten zur Steuerung der Auslastung
  • RAM, CPU, Netzwerkprioritäten, Geräte, etc.

Mandatory Access Controls

Geben jedem Benutzer und jeder Gruppe einen Kontext und Freigaben für ihre Arbeit mit "Regeln".

Beispiele:

  • SELinux
  • AppArmor
  • Smack
  • TOMOYO

Die meisten Systeme nutzen Linux Security Modules im Kernel.

Übersicht über das Rechtemodell in GNU/Linux

MAC vs. DAC, RBAC

Was kann man damit machen?

  • Sandbox (chroot, firejail)
  • Container (LXC, Docker)
  • VMs (VirtualBox, VMWare, KVM).

Natürlich gibt es Rechtetrennung auch in

Windows

Das Dateisystem

  • i.d.R. NTFS
  • hat auch Benutzer, Gruppen
  • POSIX-Modus
  • und ACLs.

Verwirrende Grafik aus einem Buch

Die wichtigsten Komponenten

  • SRM – Security checks
  • LSASS/LSASRV – lokale System-Sicherheitsrichtlinienverwaltung
  • SAM – Service/DB mit Benutzer- und Gruppendaten
  • HAL, KSecDD – Hardware-Abstraktion
  • AppLocker – MAC.

Kommunikation der Komponenten

Benutzerkontensteuerung

Gegen was Rechtemanagement nicht hilft

  • Kernel-Bugs (ring0)
  • Fehler im Rechtemanagement (Bugs/Konfiguration)
  • Hardware-Bugs
  • verwanzte Hardware
  • BENUTZER.

Quellen


Danke für's Zuhören!