WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #9 Sicherheit WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 „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š, 08.12.2004 Vorlesung #9 - Sicherheit 2 WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 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 Jetzt – Schutz gegen absichtliche Enthüllung, Beschädigung, Zerstörung oder Verfälschung von wertvollen (meist sensiblen oder persönlichen) Daten © Bojan Milijaš, 08.12.2004 Vorlesung #9 - Sicherheit 3 WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 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š, 08.12.2004 Vorlesung #9 - Sicherheit 4 WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Angriffsarten Missbrauch von Autorität Inferenz und Aggregation Maskierung Umgehung der Zugriffskontrolle Browsing Trojanische Pferde Versteckte Kanäle © Bojan Milijaš, 08.12.2004 Vorlesung #9 - Sicherheit 5 Sicherheitsmechanismen in einem DBMS WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 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š, 08.12.2004 Vorlesung #9 - Sicherheit 6 Discretionary Access Control (DAC) WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 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š, 08.12.2004 Vorlesung #9 - Sicherheit 7 WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 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š, 08.12.2004 Vorlesung #9 - Sicherheit 8 Zugriffskontrolle in SQL WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 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š, 08.12.2004 Vorlesung #9 - Sicherheit 9 Zugriffskontrolle in SQL (2) WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 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š, 08.12.2004 Vorlesung #9 - Sicherheit 10 Zugriffskontrolle in SQL (3) WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 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š, 08.12.2004 Vorlesung #9 - Sicherheit 11 Views WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 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š, 08.12.2004 Vorlesung #9 - Sicherheit 12 Views (2) WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 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š, 08.12.2004 Vorlesung #9 - Sicherheit 13 WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 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š, 08.12.2004 Vorlesung #9 - Sicherheit 14 „Query Modification“ WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 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š, 08.12.2004 Vorlesung #9 - Sicherheit 15 „Query Modification“ Beispiel - Oracle VPD Query VPD function WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 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š, 08.12.2004 WHERE Abteilung = `5` Vorlesung #9 - Sicherheit 16 WS 2004/2005 Verfeinerung des Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 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š, 08.12.2004 Vorlesung #9 - Sicherheit 17 Verfeinerung des Autorisierungsmodells (2) WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 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š, 08.12.2004 Vorlesung #9 - Sicherheit 18 WS 2004/2005 Verfeinerung des Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 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š, 08.12.2004 Vorlesung #9 - Sicherheit 19 WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 © Bojan Milijaš, 08.12.2004 Vorlesung #9 - Sicherheit 20 WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 © Bojan Milijaš, 08.12.2004 Vorlesung #9 - Sicherheit 21 WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 © Bojan Milijaš, 08.12.2004 Vorlesung #9 - Sicherheit 22 WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 © Bojan Milijaš, 08.12.2004 Vorlesung #9 - Sicherheit 23 Mandatory Access Control (MAC) WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 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š, 08.12.2004 Vorlesung #9 - Sicherheit 24 Multileveldatenbanken © Bojan Milijaš, 08.12.2004 WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #9 - Sicherheit 25 Multileveldatenbanken (2) WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 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š, 08.12.2004 Vorlesung #9 - Sicherheit 26 Vergleich DAC und MAC WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 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š, 08.12.2004 Vorlesung #9 - Sicherheit 27 WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 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š, 08.12.2004 Vorlesung #9 - Sicherheit 28 Kryptographie (2) WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 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š, 08.12.2004 Vorlesung #9 - Sicherheit 29 Kryptographie (3) WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 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š, 08.12.2004 Vorlesung #9 - Sicherheit 30 WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 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š, 08.12.2004 Vorlesung #9 - Sicherheit 31 Zusammenfassung WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Legislative Maßnahmen Organisatorische Maßnahmen Authentisierung Zugriffskontrolle Kryptographie Datenbank © Bojan Milijaš, 08.12.2004 Vorlesung #9 - Sicherheit 32 WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #9 Ende