24
bs-6.4 1 6.4 Zugriffsschutz triebssystem muss Betriebssicherheit garantieren: unerwünschte Auswirkungen von Hardware/Software-Fehlern ( „safety“) von absichtlichen Manipulationen ( „security“) sollen verhindert, begrenzt, oder zumindest erkannt werde

Bs-6.41 6.4 Zugriffsschutz Betriebssystem muss Betriebssicherheit garantieren: unerwünschte Auswirkungen von Hardware/Software-Fehlern( safety) von absichtlichen

Embed Size (px)

Citation preview

Page 1: Bs-6.41 6.4 Zugriffsschutz Betriebssystem muss Betriebssicherheit garantieren: unerwünschte Auswirkungen von Hardware/Software-Fehlern( safety) von absichtlichen

bs-6.4 1

6.4 Zugriffsschutz

Betriebssystem muss Betriebssicherheit garantieren:

unerwünschte Auswirkungen

von Hardware/Software-Fehlern ( „safety“)

von absichtlichen Manipulationen ( „security“)

sollen verhindert, begrenzt, oder zumindest erkannt werden.

Page 2: Bs-6.41 6.4 Zugriffsschutz Betriebssystem muss Betriebssicherheit garantieren: unerwünschte Auswirkungen von Hardware/Software-Fehlern( safety) von absichtlichen

bs-6.4 2

Beispiele für Folgen von Sicherheitslücken im Betriebssystem:

Systemabsturz, verursacht durch Hardware-Fehler,

Betriebssystem-Fehler,

Programmfehler,

Sabotage

Monopolisierung von Ressourcen

Ausspionieren vertraulicher Daten

Verfälschen oder Löschen fremder Daten

Page 3: Bs-6.41 6.4 Zugriffsschutz Betriebssystem muss Betriebssicherheit garantieren: unerwünschte Auswirkungen von Hardware/Software-Fehlern( safety) von absichtlichen

bs-6.4 3

Beispiele für Sicherheitsmaßnahmen des Betriebssystems:

Wiederholung von Lese/Schreibversuchen nach Fehler

Geordnetes Abschalten bei Stromausfall

Zugangskontrolle mit Passwortsystem

Virtualisierung von Ressourcen !

Page 4: Bs-6.41 6.4 Zugriffsschutz Betriebssystem muss Betriebssicherheit garantieren: unerwünschte Auswirkungen von Hardware/Software-Fehlern( safety) von absichtlichen

bs-6.4 4

Wichtigste Kategorie von Sicherheitsmaßnahmen

gegen geplante Angriffe ( „security“) ist

Zugriffsschutz (access protection, access control):

Objekte (z.B. Geräte, Segmente, Dateien!, ...)

werden vor unerwünschten Zugriffen geschützt;

Subjekte (z.B. Prozesse, Programme) sind die Auslöser

der Zugriffsversuche.

Zugriffsschutzsystem (protection system, reference monitor)

• weiß, was erlaubt bzw. verboten ist,• überwacht alle Zugriffsversuche und• verhindert sie gegebenenfalls.

Page 5: Bs-6.41 6.4 Zugriffsschutz Betriebssystem muss Betriebssicherheit garantieren: unerwünschte Auswirkungen von Hardware/Software-Fehlern( safety) von absichtlichen

bs-6.4 5

6.4.1 Autorisierung eines Prozesses

= Menge von Attributen eines Prozesses, die für die

Überwachung des Zugriffs auf Dateien (manchmal

auch für andere Systemaufrufe) relevant sind, z.B.

Benutzerkennung (user identity),

Ermächtigungsstufe (clearance),

Rolle des Benutzers (role),

. . . . .

Page 6: Bs-6.41 6.4 Zugriffsschutz Betriebssystem muss Betriebssicherheit garantieren: unerwünschte Auswirkungen von Hardware/Software-Fehlern( safety) von absichtlichen

bs-6.4 6

Beispiel Unix:

Jeder Benutzer hat einen Login-Namen und ist einer

oder mehreren benannten Benutzergruppen zugeordnet.

Systemintern werden Benutzer und Gruppen durch

Nummern identifiziert,

UID - user identifier ( 0 für Systemverwalter root)

GID - group identifier ( 0 für Systemgruppe wheel)

die man in den Einträgen von

/etc/passwd und /etc/group finden kann:

Page 7: Bs-6.41 6.4 Zugriffsschutz Betriebssystem muss Betriebssicherheit garantieren: unerwünschte Auswirkungen von Hardware/Software-Fehlern( safety) von absichtlichen

bs-6.4 7

Eintrag von /etc/passwd :

lohr:X4sCwh/Da%pT2:123:97:Peter Löhr:/usr/lohr:/bin/csh

UID GID (Primärgruppe)

Eintrag von /etc/group :

prof:5p%swAxb72WzG :97 :alt,fehr,graf,.....

Jeder Benutzer gehört zu einer Primärgruppe, die in der

Passwortdatei für ihn vermerkt ist, kann aber weiteren

Gruppen angehören.

Page 8: Bs-6.41 6.4 Zugriffsschutz Betriebssystem muss Betriebssicherheit garantieren: unerwünschte Auswirkungen von Hardware/Software-Fehlern( safety) von absichtlichen

bs-6.4 8

Autorisierung eines Prozesses besteht aus

RUID – real userid,EUID – effective userid,

RGID – real groupid,EGID – effective groupid,

Initialisierung: bei fork werden diese Attribute vomErzeuger kopiert.

Abfragen: getuid() liefert RUID geteuid() liefert EUIDgetgid() liefert RGIDgetegid() liefert EGID

Page 9: Bs-6.41 6.4 Zugriffsschutz Betriebssystem muss Betriebssicherheit garantieren: unerwünschte Auswirkungen von Hardware/Software-Fehlern( safety) von absichtlichen

bs-6.4 9

Ändern der Autorisierung ist stark eingeschränkt:

setuid(uid)

Vor.: uid == RUID oder

EUID == 0 (d.h. Super-User root)

Eff.: RUID == EUID == uid

setgid(gid) ( = dasselbe für groupid)

Vor.: gid == RGID oder

EUID == 0 (d.h. Super-User root)

Eff.: RGID == EGID == uid

Page 10: Bs-6.41 6.4 Zugriffsschutz Betriebssystem muss Betriebssicherheit garantieren: unerwünschte Auswirkungen von Hardware/Software-Fehlern( safety) von absichtlichen

bs-6.4 10

exec(prog,...) berücksichtigt Dateiattribute von prog:

UID (Eigner)

GID (Eignergruppe)

SUID („setuid bit“)

SGID („setgid bit“)

Eff.: RUID und RGID bleiben unverändert, aber:

wenn SUID, dann EUID == UID ;

wenn SGID, dann EGID == GID .

? Wozu ist das gut ?

Page 11: Bs-6.41 6.4 Zugriffsschutz Betriebssystem muss Betriebssicherheit garantieren: unerwünschte Auswirkungen von Hardware/Software-Fehlern( safety) von absichtlichen

Datenabstraktion

mit Programmiersprache:

prozedurale Schnittstelle

verborgene Datenrepräsentation

Page 12: Bs-6.41 6.4 Zugriffsschutz Betriebssystem muss Betriebssicherheit garantieren: unerwünschte Auswirkungen von Hardware/Software-Fehlern( safety) von absichtlichen

Datenabstraktion

mit Programmiersprache: bei Dateien:

prozedurale Schnittstelle Programme mit SUID und UID = y

verborgene Datenrepräsentation Dateien mit UID = y

Kapselung

syntaktisch über gleiche UID

Page 13: Bs-6.41 6.4 Zugriffsschutz Betriebssystem muss Betriebssicherheit garantieren: unerwünschte Auswirkungen von Hardware/Software-Fehlern( safety) von absichtlichen

bs-6.4 13

RUID = xEUID = x

RUID = xEUID = y

exec mit SUID und UID = y

setuid(x) „x führt y-Programmmit y-Autorisierung aus“

Page 14: Bs-6.41 6.4 Zugriffsschutz Betriebssystem muss Betriebssicherheit garantieren: unerwünschte Auswirkungen von Hardware/Software-Fehlern( safety) von absichtlichen

bs-6.4 14

Beispiele: „Systemprogramme“ mit y = 0 (Super-User)

passwd ändert nach Eingabe eines neuen Passwortsdas Passwort des Benutzers in der Passwortdatei

login usr ändert nach korrekter Passworteingabe für usr die Autorisierung der Shell in diejenige für usr (!)

su usr startet nach korrekter Passworteingabe für usr eine neue Shell mit der Autorisierung für usr (!)

newgrp gr (Solaris) startet neue Shell mit neuerAutorisierung RGID/EGID gemäß Gruppe gr(RUID/EUID bleiben unverändert)Vor.: Benutzer muß der Gruppe angehören

und ggfls. Gruppenpasswort kennen)

Page 15: Bs-6.41 6.4 Zugriffsschutz Betriebssystem muss Betriebssicherheit garantieren: unerwünschte Auswirkungen von Hardware/Software-Fehlern( safety) von absichtlichen

bs-6.4 15

POSIX-Standard erweitert Autorisierung um

sEUID , d.i. „saved EUID“

sEGID , d.i. „saved EGID“

Entsprechend geänderte setuid/setgid, z.B.

setuid(uid)

Vor.: (1) EUID == 0 (Super-User) oder(2) uid == RUID oder uid == sEUID

Eff.: EUID == RUID == sEUID == uid im Fall (1), sonst lediglich

EUID == uid

Page 16: Bs-6.41 6.4 Zugriffsschutz Betriebssystem muss Betriebssicherheit garantieren: unerwünschte Auswirkungen von Hardware/Software-Fehlern( safety) von absichtlichen

bs-6.4 16

RUID = xEUID = x

sEUID = ....

RUID = xEUID = x

sEUID = y

RUID = xEUID = y

sEUID = y

execmit SUID und UID = y

setuid(x)

setuid(y)

beliebiges Hin- und Herschalten der EUID !

Page 17: Bs-6.41 6.4 Zugriffsschutz Betriebssystem muss Betriebssicherheit garantieren: unerwünschte Auswirkungen von Hardware/Software-Fehlern( safety) von absichtlichen

bs-6.4 17

6.4.2 Schutzstatus von Dateien

Jede Datei (Daten, Programm, Verzeichnis, ...) hat

Schutzstatus (protection mode, access control list),

gespeichert als Attribut(e) im Dateideskriptor.

Zugriffsschutzsystem (protection system) realisiert Abbildung

accessOK : Autorisierung Schutzstatus Operation Boolean

Page 18: Bs-6.41 6.4 Zugriffsschutz Betriebssystem muss Betriebssicherheit garantieren: unerwünschte Auswirkungen von Hardware/Software-Fehlern( safety) von absichtlichen

bs-6.4 18

Beispiel: Schutzstatus in Unix (vgl. 6.2.2):

UID des EignersGID der Eignergruppe

SUID bit SGID bit

RuWuXuRgWgXgRoWoXo

(Zugriffs–) Rechte (access rights,permissions),

(je 1 Bit)

Read, Write, eXecute füruser, d.h. Eigner,group, d.h. Eignergruppe,others, d.h. alle anderen

Page 19: Bs-6.41 6.4 Zugriffsschutz Betriebssystem muss Betriebssicherheit garantieren: unerwünschte Auswirkungen von Hardware/Software-Fehlern( safety) von absichtlichen

bs-6.4 19

Initialisierung bei Dateierzeugung, z.B. mit creat,mkdir:

UID = EUIDGID = EGID

Bits SUID, SGID, Ru, Wu, Xu, Rg, Wg, Xg, Ro, Wo, Xo

gemäß den niederwertigen Bits des 2. Arguments mode von creat,mkdirmodifiziert durch die aktuelle mode mask mask : wo mask-Bit gesetzt ist wird mode-Bit ignoriert.

Die mode mask ist ein Prozessattribut (!), anfangs 022 (oktal),

vererbt an Kindprozesse, änderbar durch Systemaufruf

umask(mask) und Befehl umask mask

Page 20: Bs-6.41 6.4 Zugriffsschutz Betriebssystem muss Betriebssicherheit garantieren: unerwünschte Auswirkungen von Hardware/Software-Fehlern( safety) von absichtlichen

bs-6.4 20

Abfragen des Schutzstatus durch stat, fstat

und Befehl ls –l , z.B. -rws--x--x 1 lohr institut 9 Feb 10 15:38 tst

s statt x bedeutet „Xu-Recht und SUID-Bit“

Ändern des Schutzstatus durch chmod, chown (6.1.1.2):

chmod darf nur der Datei-Eigner oder Super-User ausführen!

chown darf nur der Super-User ausführen !

(Schutz des Schutzstatus !)

Page 21: Bs-6.41 6.4 Zugriffsschutz Betriebssystem muss Betriebssicherheit garantieren: unerwünschte Auswirkungen von Hardware/Software-Fehlern( safety) von absichtlichen

bs-6.4 21

6.4.3 Überwachung der Dateioperationen

durch einen Reference Monitor

im Zugriffsschutzsystem, der diese Abbildung umsetzt:

accessOK : Autorisierung Schutzstatus Operation Boolean

Falls der Zugriff verwehrt wird, Fehlermeldung

(z.B. Fehler EACCES in Unix)

Page 22: Bs-6.41 6.4 Zugriffsschutz Betriebssystem muss Betriebssicherheit garantieren: unerwünschte Auswirkungen von Hardware/Software-Fehlern( safety) von absichtlichen

bs-6.4 22

Zugriffsrecht im Schutzstatus bezieht sich i.a. – abhängig vom jeweiligen Dateityp! – auf verschiedene Operationen

und: eine Operationen kann mehrere Rechte erfordern

Hypothetische Beispiele (nicht Unix!):

Rechte Dateityp

sequentiell indexsequentiell Verzeichnis

eXecute exec - -Read read lookup,update lookup,listWrite write update,delete unlinkAppend append enter link,create*Protect chmod chmod chmod

Page 23: Bs-6.41 6.4 Zugriffsschutz Betriebssystem muss Betriebssicherheit garantieren: unerwünschte Auswirkungen von Hardware/Software-Fehlern( safety) von absichtlichen

bs-6.4 23

Unix:

Rechte Dateityp

sequentiell Verzeichnis

R read read,link,unlink

W write creat,mkdir, link,unlink

X exec ( lookup *)

Page 24: Bs-6.41 6.4 Zugriffsschutz Betriebssystem muss Betriebssicherheit garantieren: unerwünschte Auswirkungen von Hardware/Software-Fehlern( safety) von absichtlichen

bs-6.4 24

Kriterium für erlaubten Zugriff mit einer Operation,

die das Recht R (und/oder W oder X) erfordert:

Ru und EUID = UID

oder Rg und EUID UID und EGID = GID

oder Ro und EUID UID und EGID GID

Bemerkung: Rechte wie z.B. ---R--RW-

sind möglich, aber selten sinnvoll