SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 Vorlesung #8 Datensicherheit (Autorisierung / SQL) SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 „Fahrplan“ Einführung und Motivation Schutzbedürfnisse Angriffsarten Schutzmechanismen in DBMS Identifikation und Authentisierung Autorisierung und Zugriffskontrolle Auditing Discretionary Access Control (DAC) Zugriffskontrolle in SQL Mandatory Access Control Multilevel-Datenbanken Kryptographie Zusammenfassung © Bojan Milijaš, 14.02.2017 Datensicherheit 2 SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 Einführung Die Daten stellen einen immensen Wert für Unternehmen oder Organisationen dar. Bisher – Maßnahmen gegen unabsichtliche Beschädigung der Daten wie Integritätsprüfungen Mehrbenutzersynchronisation Recovery (wird noch eingeführt) Jetzt – Schutz gegen absichtliche Enthüllung, Beschädigung, Zerstörung oder Verfälschung von wertvollen (meist sensiblen oder persönlichen) Daten © Bojan Milijaš, 14.02.2017 Datensicherheit 3 SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 Schutzbedürfnisse Das Schutzbedürfnis des eingesetzten System muss richtig eingeschätzt werden, denn Sicherheit ist vor allem ein Kostenfaktor. Beispiele für verschiedene Schutzbedürfnisse: Datenbank an einer Hochschule Datenbank in einem Betrieb Datenbank in einer militärischen Anlage Das Schutzbedürfnis soll bei der Planung, d.h. vor dem Einsatz der Datenbank(Anwendung) als wichtige Anforderung dokumentiert und auf die Verträglichkeit mit geltenden Gesetzen und internen Sicherheitsrichtlinien überprüft werden (siehe Zusammenfassung) © Bojan Milijaš, 14.02.2017 Datensicherheit 4 SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 Angriffsarten Missbrauch von Autorität Inferenz und Aggregation Maskierung Umgehung der Zugriffskontrolle Browsing Trojanische Pferde Versteckte Kanäle © Bojan Milijaš, 14.02.2017 Datensicherheit 5 Sicherheitsmechanismen in einem DBMS SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 Identifikation und Authentisierung Passwörter Vorgeschaltete Zugangssysteme mit Fingerabdruck, Magnet- oder ID-Karten, usw. Autorisierung und Zugriffskontrolle Sicherheitsobjekte – z.B. Tabellen, Prozeduren Sicherheitssubjekte – z.B. Benutzer, Benutzergruppen, Betriebsystem-Prozesse Autorisierung – Menge von Regeln, die die erlaubten Arten des Zugriffs auf Sicherheitsobjekte durch Sicherheitssubjekte regeln Auditing - Protokollierung aller sicherheitsrelevanten Datenbankoperationen © Bojan Milijaš, 14.02.2017 Datensicherheit 6 Discretionary Access Control (DAC) SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 Zugriffsregeln (o, s, t, p, f) mit o O, der Menge der Objekte (z.B. Relationen, Tupel, Attribute), s S, der Menge der Subjekte (z.B. Benutzer, Prozesse), t T, der Menge der Zugriffsrechte (z.B. T = {lesen, schreiben, löschen}), p ein Prädikat (z.B. Rang = ‚C4‘ für die Relation Professoren), und f ein Boolescher Wert, der angibt, ob s das Recht (o, t, p) an ein anderes Subjekt s‘ weitergeben darf. © Bojan Milijaš, 14.02.2017 Datensicherheit 7 SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 DAC (2) Realisierung: Zugriffsmatrix (kann sehr groß werden) Sichten (Views) „Query Modification“ (dynamische Veränderung der Abfrage) zusätzliche WHERE Bedingung wird angehängt oder es wird nur auf erlaubte Attribute (Spalten) projiziert Nachteile: Erzeuger der Daten = Verantwortlicher für deren Sicherheit Bespiel: „Die Sekretärin stellt einen Bericht ihres Vorgesetzten ins Intranet.“ © Bojan Milijaš, 14.02.2017 Datensicherheit 8 Zugriffskontrolle in SQL SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 Kein weitgehender SQL 92 Standard (nur GRANT und REVOKE) Weitergabe von Rechten (GRANT) grant select on Professoren to eickler; grant update (MatrNr, VorlNr, PersNr) on prüfen to eickler; Das Recht für weitere Weitergaben (GRANT Option) grant select on Professoren to eickler with grant option; Entzug von Rechten (REVOKE) revoke update (MatrNr, VorlNr, PersNr) on prüfen from eickler cascade; © Bojan Milijaš, 14.02.2017 Datensicherheit 9 Zugriffskontrolle in SQL (2) SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 REVOKE CASCADE ist das „Gegenstück“ zu GRANT WITH GRANT OPTION Privilegien kann man grob unterscheiden in Objektprivilegien: SELECT, UPDATE, DELETE, INSERT, REFERENCE Systemprivilegien (DBMS spezifisch – hier ORACLE): CREATE ANY INDEX, CREATE PUBLIC SYNONYM, CREATE SESSION, DROP ANY TABLE, usw. Man kann die Administration der Zugriffsrechte durch Einführung und Verwaltung von Rollen vereinfachen CREATE ROLE Pruefer; GRANT <Privileges> TO Pruefer; GRANT Pruefer TO eickler, kossmann; © Bojan Milijaš, 14.02.2017 Datensicherheit 10 Zugriffskontrolle in SQL (3) SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 Da man bei der vorgestellten Granularität sehr viele unterschiedlichen Rechte vergeben und wieder zurücknehmen kann, ist die resultierende Zugriffsmatrix sehr groß Die Zugriffsmatrix kann durch das Betrachten des DBMS Data Dictionary angesehen werden (Oracle Beispiel): SELECT * FROM dba_role_privs; SELECT * FROM dba_table_privs; Mit Hilfe des Datenwörterbuchs kann dann gezielt nach Objekten, Subjekten, Zugriffsrechten und Weitergaberechten gesucht werden © Bojan Milijaš, 14.02.2017 Datensicherheit 11 SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 Views DAC-Modell sieht vor, dass Rechte abhängig von Bedingungen weitergegeben können In SQL kann dies mit Views abgebildet werden: CREATE VIEW ErstSemestler AS SELECT * FROM Studenten WHERE Semester = 1; GRANT SELECT ON ErstSemestler TO Tutor; © Bojan Milijaš, 14.02.2017 Datensicherheit 12 SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 Views (2) Views können auch für die Aggregation verwendet werden. Schützenswerte Individualdaten bleiben durch „anonymisierte Statistiken“ verborgen. CREATE VIEW VorlesungsHaerte(VorlNr, Haerte) AS SELECT VorlNr, avg(Note) FROM pruefen GROUP BY VorlNr Man muss aufpassen, dass genug Werte aggregiert werden, sonst kann man aus der Statistik auf die Individualwerte zurückschließen. © Bojan Milijaš, 14.02.2017 Datensicherheit 13 SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 Auditing Protokollierung der einzelnen Operationen. Es entsteht eine u.U, sehr grosse Protokoll-Datei „Auditfolge“. Alle fehlgeschlagenen Zugriffsversuche von der Systemkennung SYSTEM aus: AUDIT SESSION BY SYSTEM WHENEVER NOT SUCCESSFUL; DML Operationen auf Professoren AUDIT INSERT, DELETE, UPDATE ON Professoren; -- rückgängig mit NOAUDIT NOAUDIT SELECT ON Professoren; © Bojan Milijaš, 14.02.2017 Datensicherheit 14 „Query Modification“ SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 dynamische Veränderung der Abfrage zusätzliche WHERE Bedingung wird angehängt oder es wird nur auf erlaubte Attribute (Spalten) projiziert Beispiel – Virtual Private Database von Oracle Es gibt eine zusätzliche Funktion SYS_CONTEXT(‘namespace‘,‘attribute‘), die aus der Umgebung „namespace“, den Wert für „attribute“ zur Laufzeit liest. Einige Werte für namespace = USERENV sind HOST, IP_ADDRESS, CURRENT_USER usw. Die einzelnen Werte pro ‚namespace“ werden beim Initialisieren der Datenbank-Anwendung gesetzt und können dann mit SYS_CONTEXT in die Abfragen eingebaut werden Beispiel: „auf Projekte darf gemäß Abteilungszugehörigkeit zugegriffen werden ...“ © Bojan Milijaš, 14.02.2017 Datensicherheit 15 „Query Modification“ Beispiel - Oracle VPD Query VPD function SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 SELECT * FROM Projekte; -- 1. Initalisieren durch DB Applikation dbms_session.set_context (...); dbms_session.set_identifier(); -- 2. Einsatz von sys_context VPD function SELECT * FROM Projekte WHERE Abteilung = sys_context(`projekt_app´,`abteilung´) SELECT * FROM Projekte Modified Query © Bojan Milijaš, 14.02.2017 WHERE Abteilung = `5` Datensicherheit 16 SS 2015 – IBB4C Verfeinerung des Datenmanagement Fr 17:00 – 18:30 R 0.009 Autorisierungsmodells Zugriffsverwaltung kann sehr aufwendig werden. Verbesserungen sind möglich durch: Explizite/Implizite Autorisierung Explizite Autorisierung impliziert eine Vielzahl von impliziten Autorisierungen Positive/negative Autorisierung Oft einfacher die Regel durch die Negation auszudrücken (o, s, t) statt (o, s, t) Schwache/starke Autorisierung Beispiel: Alle Uni-Angestellten bekommen schwaches Leserecht, studentische Aushilfen bekommen starkes Leseverbot zum Lesen von Noten. Man kann sie miteinander kombinieren ... © Bojan Milijaš, 14.02.2017 Datensicherheit 17 Verfeinerung des Autorisierungsmodells (2) SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 Autorisierungsalgorithmus: wenn es eine explizite oder implizite starke Autorisierung (o, s, t) gibt, dann erlaube die Operation wenn es eine explizite oder implizite starke negative Autorisierung (o, s, t) gibt, dann verbiete die Operation ansonsten wenn es eine explizite oder implizite schwache Autorisierung [o, s, t] gibt, dann erlaube die Operation wenn es eine explizite oder implizite schwache Autorisierung [o, s, t] gibt, dann verbiete die Operation © Bojan Milijaš, 14.02.2017 Datensicherheit 18 SS 2015 – IBB4C Verfeinerung des Datenmanagement Fr 17:00 – 18:30 R 0.009 Autorisierungsmodells (3) Man definiert eine Hierarchie Wenn es eine (explizite) Autorisierung auf einer Ebene der Hierarchie gibt, dann gilt sie automatisch (implizit) auf allen Ebenen tiefer. Es bestehen insgesamt folgende Möglichkeiten implizite/explizite, schwache/starke, positive/negative Autorisierung von Subjekten, Objekten und Operationen © Bojan Milijaš, 14.02.2017 Datensicherheit 19 SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 © Bojan Milijaš, 14.02.2017 Datensicherheit 20 SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 © Bojan Milijaš, 14.02.2017 Datensicherheit 21 SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 © Bojan Milijaš, 14.02.2017 Datensicherheit 22 SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 © Bojan Milijaš, 14.02.2017 Datensicherheit 23 Mandatory Access Control (MAC) SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 Idee: S sicherheitsrelevante Dokumente entsprechend markiert werden: „öffentlich“, „vertraulich“, „geheim“, „streng geheim“ usw. Diese Praxis wird in MAC übernommen: clear(s), mit s Subjekt (clearance) class(o), mit o Objekt (classification) Ein Subjekt s darf ein Objekt o nur lesen, wenn das Objekt eine geringere Sicherheitseinstufung besitzt (class(o) clear(s)). Ein Objekt o muss mit mindestens der Einstufung des Subjektes s geschrieben werden (clear(s) class(o)). Hauptproblem: unterschiedliche Stufen können kaum kommunizieren (Bsp. General und einfacher Soldat). © Bojan Milijaš, 14.02.2017 Datensicherheit 24 Multileveldatenbanken © Bojan Milijaš, 14.02.2017 Datensicherheit SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 25 Multileveldatenbanken (2) SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 Lösung Polyinstanzinierung, sowohl geheimer als auch nicht geheimer „008“ werden hinzugefügt. Multilevel-Relation R mit Schema R = {A1, C1, A2, C2, . . ., An, Cn, TC} Relationeninstanzen RC mit Tupeln [a1, c1, a2, c2, . . . , an, cn, tc] c ci ai ist sichtbar, wenn class (s) ci Komplexe Integritätsbedingungen (s. Kemper, Kapitel 12.5) © Bojan Milijaš, 14.02.2017 Datensicherheit 26 Vergleich DAC und MAC SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 MAC bietet bessere Sicherheit als DAC, aber schränkt die Kommunikationsfähigkeit und die Systemperformance. Das beschriebene DAC Modell wird weitgehend unterstützt und in Standard SQL implementiert. Einige kommerziellen DBMS unterstützen auch MAC Modell und MultilevelDatenbanken. © Bojan Milijaš, 14.02.2017 Datensicherheit 27 SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 Kryptographie (Verschlüsselung) Die Gefahr des Abhörens von Kommunikationskanälen ist in heutigen Datenbankarchitekturen und Anwendungen sehr groß. Die meisten Datenbankanwendungen werden in einer verteilten Umgebung betrieben (Client-Server Systeme, Internet-Datenbanken, verteilte Datenbanken), d.h. in Netzwerken LAN (local area network, z.B. Ethernet) WAN (wide area network, z.B. Internet) Sowohl in LAN als auch in WAN ist die Gefahr des Abhörens gegeben und kann technisch nicht ausgeschlossen werden Verschlüsselung © Bojan Milijaš, 14.02.2017 Datensicherheit 28 SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 Kryptographie (2) Es werden gesendete Informationen verschlüsselt. Hierfür werden in der Praxis zusätzliche Server bzw. Dienste eingesetzt, die dann sowohl am DatenbankServer als auch am Datenbank-Client (oft nur WebBrowser) installiert und betrieben werden müssen Es können aber auch innerhalb der Datenbank Daten (z.B. Inhalte von Tabellen) verschlüsselt, d.h. für den DBA „unlesbar gemacht“ werden. „Der Administrator muss bzw. darf nicht alles sehen können!“. Beispiel - Gehaltsdatenbank in einem Unternehmen: DBA soll nicht den Gehalt des IT Managers sehen. © Bojan Milijaš, 14.02.2017 Datensicherheit 29 SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 Kryptographie (3) Bei der Verschlüsselung kommt es auf die Geheimheit von Schlüsseln und nicht von Verschlüsselungsalgorithmen an. „Knacken“ - nur durch Ausprobieren aller möglichen Schlüssel. Bei den meisten Verschlüsselungsverfahren wird mit Modulo und Primzahl-Funktionen gearbeitet. Je größer die Anzahl der möglichen Kombinationen, d.h. je länger der Schlüssel (z.B. 32-, 64-, 128-Bit Schlüssel) umso „sicherer“ ist die Verschlüsselung. 100% Garantie gibt es aber bei keinem Verschlüsselungsverfahren deshalb sind legislative und organisatorische Maßnahmen auch sehr wichtig. © Bojan Milijaš, 14.02.2017 Datensicherheit 30 SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 Kryptographie (4) Public-Key Kryptographie RSA Verfahren (Rivest, Shamir und Adleman) Mitte der 70er entstanden Idee- „Schnappschlösser“ Benutzer teilt mehrere Schnappschlösser aus Jeder, der einen Schnappschloss bekommen hat, kann mit ihm „Dinge“ verschließen Nur Benutzer hat aber den Schlüssel und kann die Schlösser öffnen Motivation und Bedeutung von Public-Key Verfahren liegt darin, dass eine Verschlüsselung ohne vorherigen (unsicheren bzw. unverschlüsselten) Austausch von geheimen Informationen möglich ist. © Bojan Milijaš, 14.02.2017 Datensicherheit 31 SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 Zusammenfassung Legislative Maßnahmen Organisatorische Maßnahmen Authentisierung Zugriffskontrolle Kryptographie Datenbank © Bojan Milijaš, 14.02.2017 Datensicherheit 32 SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R 0.009 Vorlesung #8 Ende