Betriebssysteme Teil 13: Protectionwi.f4.htw-berlin.de/users/messer/LV/AI-BS-WS19/...Betriebssysteme...

39
20.12.19 1 Betriebssysteme – WS 2019/20 – Teil 13/Protection Betriebssysteme Teil 13: Protection

Transcript of Betriebssysteme Teil 13: Protectionwi.f4.htw-berlin.de/users/messer/LV/AI-BS-WS19/...Betriebssysteme...

  • 20.12.19 1Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Betriebssysteme

    Teil 13: Protection

  • 2Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Literatur – Virtuelle Maschinen

    [13V-1] Zimmer, Dennis: VMware Server & VMware Player. Galileo, 2006

    [13V-2] Zimmer, Dennis: VMware ESX 3.5. Galileo, 2. Auflage, 2008

    [13V-3] Larisch, Dirk: VMware Server 2. Hanser, 2. Auflage, 2009

    [13V-4] Sprang, Henning; Benk, Timo; Zdrzalek, Jaroslaw; Dehner, Ralph: XEN Virtualisierung unter Linux. Open Source Press, 2007

    [13V-5] Wächtler, Peter: Gemeinsam einsam. Virtualisierung in eingebetteten Systemen. iX, Heft 5, 2009, S. 124-125

    [13V-6] http://www.vmware.com/appliances/

    [13V-7] https://github.com/vmware/open-vm-tools

    [13V-8] http://www.winimage.com

    [13V-9] http://www.codeproject.com/KB/system/VmDetect.aspx

    [13V-10] http://sanbarrow.com/vmx.html

    [13V-11] https://de.wikipedia.org/wiki/Liste_von_Virtualisierungsprodukten

    [13V-12] https://de.wikipedia.org/wiki/Virtuelle_Maschine

    [13V-13] https://de.wikipedia.org/wiki/X86-Virtualisierung

    [13V-14] http://www.redbooks.ibm.com/redpapers/pdfs/redp4396.pdf

  • 3Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Literatur – Emulatoren

    [13E-1] https://developer.android.com/studio

    [13E-2] https://de.wikipedia.org/wiki/Basilisk_II

    [13E-3] https://de.wikipedia.org/wiki/QEMU

    [13E-4] https://de.wikipedia.org/wiki/Bochs

    [13E-5] https://de.wikipedia.org/wiki/Emulator

    [13E-6] http://www.parrot.org/

    [13E-7] https://www.oracle.com/technetwork/java/javase/downloads/jdk13-downloads-5672538.html

  • 4Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Literatur – Zugriffsrechte

    [13P-1] https://en.wikipedia.org/wiki/Capability-based_security

    [13P-2] https://en.wikipedia.org/wiki/Role-based_access_control

    [13P-3] https://en.wikipedia.org/wiki/Access_control_list

    [13P-4] https://en.wikipedia.org/wiki/Protection_ring

    [13P-5] https://www.cl.cam.ac.uk/~rja14/Papers/SE-04.pdf

    [13P-6] http://duartes.org/gustavo/blog/post/cpu-rings-privilege-and-protection/

    [13P-7] https://www.bsi.bund.de/SharedDocs/Downloads/EN/BSI/Publications/Studies/TC_ErgA/TC-ErgA_Part1.pdf?__blob=publicationFile

  • 5Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Übersicht

    • 3-Faktor-Authentisierung

    • Virtuelle Maschinen

    • Schutzsystem

    • Capabilities

    • Ringe

  • 6Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Grundbegriffe der Authentisierung

    1) Identifizierung: Bestimmung der Person (Identität)

    2) Authentisierung: Prüfung der Identität des Subjekts

    3) Autorisierung: Zuordnung von Rechten an Subjektein Bezug auf Objekte

    • Nur die richtige Person weiß etwas:Z.B. Passwort oder Passphrase

    • Nur die richtige Person besitzt etwas:Z.B. Token, Smartcard

    • Nur die richtige Person ist etwas:Fingerabdruck, Stimme

    Mit der sicheren 3-Faktor-Authentisierung lassen sichPersonen authentisieren:

  • 7Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Faktor 1 - Wissen I

    • Passwörter– Zufällig, mindestens 8, besser 12 Zeichen lang, Ziffern und

    Sonderzeichen

    – Keine "normalen" Worte oder Muster auf der Tastatur

    – Mit Merksätzen arbeiten: Mausgrau war das Himmelszeit bei Nacht um 11, aber wer weiss das schon?: MwdHbNu1,awwds?

    • Passwörter dürfen niemals im Klartext abgespeichert sein, sondern nur über eine Falltürfunktion, z.B. einer kryptographischen Hashfunktion mit Salz.

    Die Prüfung erfolgt dann durch Vergleich von hash(passwort) mit dem abgespeicherten Hash des definierten Passwortes.

  • 8Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Faktor 2 – Besitzen I

    • Smardcard = Kleiner Hardware/Software-Baustein zum Schutz von Informationen (Schlüssel) oder zur Unterstützung der Authentisierung

    • Es gibt Smartcards, die als passiver Speicher fungieren (a), und solche, die einen Mikroprozessor haben (b).

    • Siehe: http://de.wikipedia.org/wiki/Chipkarte

    (a)

    (b)

    Alle Bilder aushttp://de.wikipedia.org/wiki/Chipkarte

  • 9Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Faktor 2 – Besitzen II

    • Server und Token erhalten initial denselben Startwert.

    • Bei jedem Login wird der nächste Wert berechnet, eingegeben und mit dem berechneten Wert im Server verglichen.

    Quelle: https://de.wikipedia.org/wiki/Security-Token

    Token = Sicherheitstoken =kleines Gerät, das (auf Knopfdruck)zufällige Zahlen bzw. Zeichen generiert und anzeigt.

  • 10Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Faktor 3 - Sein

    • Biometrie– Fingerabdruck

    – Spracherkennung

    – Augenhintergrund

    – Gesicht

    Nachteil: teuer, unzuverlässig und DatenschutzproblemeAber wenn es mal funktioniert, dann die beste Methode

    • Siehe– https://de.wikipedia.org/wiki/Biometrie

    – https://www.bsi.bund.de/DE/Themen/DigitaleGesellschaft/Biometrie/AllgemeineEinfuehrung/einfuehrung.html

    – https://www.bsi.bund.de/DE/Publikationen/Studien/BioFinger/biofinger.html

    – http://www.biometrie-online.de/

    – https://de.wikibooks.org/wiki/Biometrie

  • 11Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Aufgaben eines Schutzsystems

    • Ein Schutzsystem hat die Aufgabe nach der Identifikation und Authentisierung die korrekte Autorisierung zu realisieren und zu überwachen. Dies führt dann zum Schutz von Software und Daten.

    • Das erfolgt auf mehreren Ebenen, z.B.– Ebene des RAM -> Virtueller Speicher

    – Ebene der Geräte -> Dateisystem bzw. Teile des Betriebssystems

    – Ebene der Dateien -> Dateisystem

    • und das über Systemgrenzen hinweg.

  • 12Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Schutz (Protection)

    • Realisierung des Schutzes erfolgt– in Form eines Filters,

    – der nicht umgangen werden kann und

    – der die Rechte prüft.

    • Das kann mit Hardware erfolgen:– MMU oder Segmente

    – oder per Software erfolgen

    – Virtuelle Maschinen

  • 13Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Behandelter Bereich: Virtualisierung

    Hardware

    Betriebssystem

    Medien

    Server Apps

    Hardware

    Betriebssystem

    Server Apps

    File-system

    Netz

    Protokolle

    Syscall-Schnittstelle

    Virtualisierung

    Ports

  • 14Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Virtuelle Maschinen I

    • Virtuelle Maschine = Maschine, deren ganzer Instruktionssatz (oder einen Teil davon) samt Geräten (auch teilweise) simuliert wird

    • Es kann dabei eine andere CPU simuliert werden als die CPU, die die Simulation realisiert. In diesem Fall wird von Emulation gesprochen.

    • Idee ist mehr als 50 Jahre alt, z.B. CP/67 oder CP/CMS oder VM/370 für IBM-Rechner ab 1969z/VM als Nachfolger

    • VMWare für Intel x86 ab 1999

    Siehe: http://de.wikipedia.org/wiki/Virtuelle_Maschine

  • 15Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Virtuelle Maschinen II

    • Host Maschine = Host System = Hardware, die eine virtuelle Maschine realisiert

    • Gast Maschine = Guest System = Maschine, die durch eine Host Maschine simuliert wird

    • Virtual Machine Monitor = VMM = Hypervisor = Software zur Emulation privilegierter Instruktionen bzw. Geräte sowie zur Kommunikation zwischen Host- und Gast-Maschine

    • Der Virtual Machine Monitor ist daher eine der wichtigsten Komponenten bei der Virtualisierung von Maschinen.

    • Eine Instruktion ist privilegiert oder sensitiv, wenn sie nur durch das Betriebssystem – also im Kernelmodus – ausgeführt werden darf, z.B. HALT, RESET oder I/O-Operationen.

  • 16Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Stufen der Virtualität I – Virtual Memory

    • Prozesse werden gegeneinander innerhalb des RAMs durch virtuelle Speicher (Virtual Memory) getrennt.

    • Dies wird durch eine MMU realisiert.

    • Es gibt aber auch Software-Lösungen dafür.

    Hardware Host

    Betriebssystem

    Medien

    ProzessProzess

    VirtualMemory

  • 17Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Stufen der Virtualität II - Sandbox

    • Sandbox = In sich geschlossener Bereich für RAM und I/O

    • Es werden dieselben Geräte bzw. Dateien benutzt, aber in der Benutzung beschränkt

    • Sandbox = Kurz: Virtueller Speicher + Virtuelle Geräte

    Hardware Host

    Betriebssystem

    Medien

    Prozess Prozess

    Sandbox

  • 18Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Stufen der Virtualität III – Container Virtualisierung

    • Wenn nun noch die Syscall-Schnittstellen simuliert werden, handelt es sich um eine Container-Virtualisierung.

    • Dabei wird eine vollständige Maschine als Basis vieler Prozesse bereit gestellt.

    • Container Virtualisierung = Sandbox-Virtualisierung einer Applikation im User-ModeKurz: Virtueller Speicher + Virtuelle Geräte + Virtuelle API

    • Siehe

    – https://www.computerweekly.com/de/definition/Containerbasierte-Virtualisierung

    – https://en.wikipedia.org/wiki/OS-level_virtualization

    – https://www.computerwoche.de/a/die-wichtigsten-vor-und-nachteile-von-docker-containern,3546671

    • Bekanntestes Beispiel: Docker

  • 19Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Stufen der Virtualität IV - Vollvirtualisierung

    • Der VM-Monitor (VMM) wird:– zum Starten und Stoppen der Virtuellen Maschine,

    – zum Nachverfolgen der Aktivitäten innerhalb der Maschine,

    – zur Emulation von privilegierten Instruktionen benötigt.

    • Vollvirtualisierung = Alle privilegierten Instruktionen werden durch die VMM emuliert und alle übrigen Instruktionen werden direkt durch die Hardware ausgeführt.

    • Siehe– https://en.wikipedia.org/wiki/Hypervisor

    Hardware Host

    VMM

    Medien

    Gast-Betriebssystem

    Gast-Software

    Betriebssystem

  • 20Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Stufen der Virtualität V - Probleme

    • Einige Architekturen lassen sich nur schwer virtualisieren, z.B. wenn privilegierte Instruktionen im User-Modus keine Exception werfen.

    • Dann müssen diese Instruktionen auf der Binärebene durch Aufrufe (Calls) der VMM ersetzt werden, d.h. das binäre Image der Maschine wird modifiziert

    • Eine Instruktion ist sensitiv, wenn zu ihrer Durchführung der Kernelmodus erforderlich ist, wenn sie einen Zugriff nach Außen erlaubt oder wenn sie verrät, dass die Maschine virtuell ist.

    • Eine Architektur ist virtualisierbar, wenn alle sensitiven Instruktionen im User-Modus eine Exception werfen.

  • 21Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Stufen der Virtualität VI - Lösungen

    • Die x86-Hardware war ursprünglich nicht virtualisierbar, daher wurde die Prozessor-Architektur geändert:– Intel: VT-x (Vanderpool 2005)

    – AMD: AMD-v (Pacifica)

    • Siehe:– http://de.wikipedia.org/wiki/X86-Virtualisierung

  • 22Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Stufen der Virtualität VII - Paravirtualisierung

    • Paravirtualisierung = Die Hostmaschine stellt eine Software-Schnittstelle für die Virtuelle Maschine bereit, die daher portiert werden muss.

    • Einige privilegierte Instruktionen werden dabei explizit per Call durch die VMM emuliert, andere über Exceptions emuliert und der Rest der Instruktionen wird direkt durch die Hardware ausgeführt

    • Mit anderen Worten: Das Gast-Betriebssystem muss modifiziert werden:– bei speziellen Instruktionen

    – bei bestimmten Geräten

    – bei bestimmten Software-Modulen (aus Lizenzgründen)

    wird statt der Ausführung der Instruktion eine VMM-Routine aufgerufen.

  • 23Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Stufen der Virtualität VIII

    VMM

    Host-Hardware

    Host-Betriebssystem

    Medien

    Gast-Betriebssystem

    Gast-Software

    Host-Software VMM

    Gast-Betriebssystem

    Gast-Software

    In dieser Variante werden die virtuellen Maschinen wieProzesse eines unterliegenden Betriebssystems behandelt.Dies ist der Normalfall bei der Servervirtualisierung inRechenzentren.

  • 24Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Behandelter Bereich: Emulation

    Hardware

    Betriebssystem

    Medien

    Server Apps

    Hardware

    Betriebssystem

    Server Apps

    File-system

    Netz

    Protokolle

    Syscall-Schnittstelle

    Emulation

    Ports

  • 25Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Stufen der Virtualität IX

    • Emulation = Interpretieren = Programm simuliert vollständig eine Architektur samt peripheren Geräten

    • Hier besteht eine vollständige Unabhängigkeit bzw. Trennung von der umfassenden Hardware

    • Es können auch fiktive Maschinen emuliert werden.

    Host-Hardware

    Host-Betriebssystem

    Medien

    Gast-Betriebssystem

    Gast-Software

    Emulator

  • 26Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Stufen der Virtualität X - Beispiele

    • JavaVM mit der Emulation der Bytecode-Instruktionenwird auch für andere Sprachen benutzt, z.B. Groovy, Kotlin, Clojure etc.Siehe: https://en.wikipedia.org/wiki/List_of_JVM_languages

    • Parrot-VM für Perl und weitere Sprachen

    • LUA-VM:http://files.catwell.info/misc/mirror/lua-5.2-bytecode-vm-dirk-laurie/lua52vm.html

    • Ruby-VM: https://de.wikipedia.org/wiki/YARV

    • Pascal-P-Maschine: https://de.wikipedia.org/wiki/P-Code

    • Concurrent-Pascal basierend auf einer modifizierten P-Maschine

    • Emulatoren für die Entwicklung von Software für Mikroprozessoren

    • EM1: https://github.com/davidgiven/ack

  • 27Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Stufen der Virtualität XI – Variante JavaVM

    • Bei der JavaVM läuft noch ein Hotspot-Compiler, der Teile des zu interpretierenden Codes auf die Maschinen-Ebene während der Laufzeit des Java-Programms übersetzt.

    Host-Hardware

    Host-Betriebssystem

    Medien

    Java-Runtime-System

    Java-Software

    EmulatorHost-

    Software

  • 28Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Behandelter Bereich: Protection

    Hardware

    Betriebssystem

    Medien

    Server Apps

    Hardware

    Betriebssystem

    Server Apps

    File-system

    Netz

    Protokolle

    Syscall-Schnittstelle

    Protection (BS)

    Ports

  • 29Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Strategie

    • Zerteile die (verteilte) Anwendung in mehrere in sich geschlossene Teile, die

    • innerhalb als korrekt arbeitend angesehen werden und

    • die nach Außen minimale Schnittstellen besitzen.

    • Diese minimalen Schnittstellen werden dann mit Rechten versehen.

  • 30Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Begriffe I

    • Subjekt = Aktive Ressource (Prozess, Thread), die Operationen auf Objekten ausführt Beispiele für Subjekte:– Kommandos im Shell

    – Datenbank-Server

    – Interpreter, z.B. für Shell, Programmiersprachen

    – oder: Software allgemein

    • Subjekte werden als Stellvertreter von Personen mit Rollen aufgefasst.

    • Rollen sind damit Mengen von Rechten.

    • Subjekte als Stellvertreter erhalten nach der Prüfung der Identität von Personen Rechte auf Objekte.

  • 31Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Begriffe II

    • Objekt = (hier) Passive Ressource (Speicher) mit Operationen Beispiele für Objekte:– Dateien

    – Bereiche im RAM

    – Netzwerk-Geräte

    • Recht = Erlaubnis eine Operation auf einer Ressource während eines Zeitraums auszuführen Beispiele für Rechte/Erlaubnisse auf Dateien:– Read, Write, Execute

    – Delete

    – Anhängen, Verlängern

    – Verkürzen

    – Umbenennen

  • 32Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Modellierung – die Zugriffsmatrix

    Die Rechte können als Matrix definiert werden, wobei in derx-Richtung alle Subjekte und in der y-Richtung alle Objekteangeordnet sind (oder umgekehrt).An den Kreuzungspunkten stehen die jeweiligen Rechte.

    Beispiel:

    Subjekt S1 Subjekt S2 Subjekt S3 Subjekt S4

    Objekt O1 read, write read - write

    Objekt O2 - read, write read -

    Objekt O3 - - read -

    Objekt O4 execute delete, create execute execute

  • 33Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Implementierung der Zugriffsmatrix I

    • Die Zugriffsmatrix ist sehr groß und meistens dünn besetzt.

    Ein Windows-System kann 700.000 bis 800.000 Dateien haben, aber meist nur wenige Nutzer (Subjekte).

    • Werden alle Rechte eines Subjekts als Liste dem Subjekt zugeordnet wird diese Liste Capability List genannt:

    • Jedes Element dieser Liste heißt dementsprechend Capability.

    Subjekt S1

    Objekt O1 read, write

    Objekt O2 -

    Objekt O3 -

    Objekt O4 executeBeispiel für eine CapabilityList des Subjekts S1

  • 34Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Implementierung der Zugriffsmatrix II

    • Werden alle Rechte eines Subjekts als Liste dem Objekt zugeordnet wird diese Liste Zugriffskontrollliste oder Access Control List (ACL) genannt:

    Beispiel für eine ACL des Objekt O1

    Subjekt S1 Subjekt S2 Subjekt S3 Subjekt S4

    Objekt O1 read, write read - write

    In der Praxis kann jedes Verfahren allein, aber auch beidezusammen realisiert sein.

  • 35Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Vor- und Nachteile

    • Access Listen– (+) Leichte Implementierung

    (+) Leicht zu verstehen

    – (-) Gefahr von Inkonsistenzen

    • Capabilities– (+) Leichte Implementierung

    (+) Leicht zu verstehen

    – (-) schwierig in der Komplexität (-) Probleme bei Rücknahme (-) Kompliziert bei Erzeugung/Vernichtung von Objekten (-) ineffizient

    • Beide Verfahren haben das Problem, – der schwierigen, komplizierten Administration

    – der Schwerfälligkeit bei Änderungen

    – der Schwierigkeit die indirekten Konsequenzen zu verstehen

    • Daher werden häufig sehr einfache Verfahren realisiert.

  • 36Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Meta-Rechte der Capabilities

    • Meta-Recht = Recht auf einer Capability eine Operation auszuführen

    • Capabilities werden als Objekte behandelt, so dass eine zweite Ebene (Meta-Ebene) entsteht.

    • Beispiel:– Recht der Weitergabe (move)

    – Recht der Kopie (copy)

    • Dann gibt es noch Management-Rechte:– Recht des Erzeugens (create)

    – Recht der Vernichtung (delete)

    – Recht des Rückrufs (revoke)

    – Recht der Änderung von Rechten (modify)

    • Alle Capabilities haben noch das Attribute des Besitzers

    • Aber auch diese Meta-Capabilities lassen sich als Objekte auffassen...

    Diese Meta-Rechte führenzu hoherKomplexität

  • 37Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Lösung 1: Ringe

    • Alle Objekte werden in Gruppen (Level) zusammen gefasst.

    • Jedes Subjekt wird einer Gruppe zugeordnet und mit Rechten auf die Objekte dieser Gruppe versehen.

    • Alle Subjekte eines Levels N können auch auf Objekte des Levels >N lesend zugreifen, jedoch nicht umgekehrt.

    • Ein Level mit einer niedrigen Nummer ist daher vertrauens-würdiger bzw. sicherer als mit einer höheren Nummer.

    L2

    L0

    L1

    L3 • Durch diese Ebenen wird die Zugriffs-matrix verkleinert.

    • An den Übergängen können spezielle Hardware-Bausteine zur Prüfung eingesetzt werden, z.B. Gates.

    • Dieses Ring-Konzept ist z.B. in der x86-Intel-Familie implementiert. Level 0 ist für das Betriebssystem vorgesehen, der Rest gehört zum User-Bereich.

  • 38Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Lösung 2: Rollenbasierter Zugriff

    • Es wird eine weitere Stufe eingeführt:

    • Rolle = (hier) Zusammenfassung von allen Capabilities, die zur Bearbeitung einer Aufgabe oder eines zusammenhängenden Komplexes benötigt werden

    • Allen Subjekten wird eine Menge von Rollen zugeordnet; diese Menge ist für das Erfüllen von Rollen innerhalb von Arbeitsprozessen erforderlich.

    • Das Entfernen einer Rolle führt daher automatisch zum Entzug einer Menge von Capabilities.

    • Capabilities dürfen nicht weiter gegeben werden, d.h. es gibt keine Meta-Rechte.

    • Auch durch dieses Konzept wird die Zugriffsmatrix verkleinert.

  • 39Betriebssysteme – WS 2019/20 – Teil 13/Protection

    Nun wieder etwas entspannen...