Modul 7 - Sicherheitsaspekte Flashcards
Agenda
- Allgemeines
- Sicherheitsaspekte
- Zugriffskontolle
- Verfeinertes Autorisierungsmodell
- SQL Injektion
- Kryptografie
Sicherheitsaspekte
• Schutz gegen absichtliche Beschädigung und Enthüllung von sensiblen oder
persönlichen Daten
• Schutzmechanismen in drei Kategorien unterteilt:
o Identifikation und Authentisierung
o Autorisierung und Zugriffskontrolle
o Auditing
Identifikation und Authentisierung:
• Identifikation:
o Zugang zu einem Datenbanksystem: Benutzer muss sich zuerst identifizieren
o z.B. Eingabe des Benutzernamens.
• Authentisierung:
o Überprüft, ob es sich bei den Benutzern auch wirklich um diejenigen handelt, für die sie sich ausgeben
o Üblicherweise: Passwörter
Autorisierung und Zugriffskontrolle
Autorisierung und Zugriffskontrolle:
• Autorisierung = Menge von Regeln, die die erlaubten Arten des Zugriffs auf
Sicherheitsobjekte durch Sicherheitssubjekte festlegen
• Sicherheitsobjekt = eine passive Entität, die Informationen beinhaltet:
• z.B. eine Tabelle oder ein Tupel oder ein Attribut.
o Sicherheitssubjekt = eine aktive Entität, die einen Informationsfluss bewirkt:
• Können Benutzer oder Benutzergruppen sein, aber auch Datenbankprozesse bzw.
Anwendungsprogramme
Angriffe
• Missbrauch von Autorität:
o Diebstahl, Veränderung oder Zerstörung von Daten oder Programmen.
• Inferenz und Aggregation:
o Inferenz: Schließen auf sensible Daten durch Ansammlung und Kombination von nicht sensitiven Daten
o Aggregation: einzelne Daten sind nicht sensitiv aber eine große Anzahl von Daten zusammen genommen
schon.
• Maskierung:
o Unautorisierter Zugriff auf Daten durch jemanden, der sich als ein autorisierter Benutzer ausgibt
• Umgehung der Zugriffskontrolle:
o Ausnutzung von Sicherheitslücken im Betriebssystemcode oder in
Anwendungsprogrammen
• Browsing:
o Geschützte Informationen können manchmal auch durch Betrachtung des
Datenwörterbuchs oder von Dateiverzeichnissen erhalten werden
Trojanische Pferde:
o Programm, das sich in einem anderen Programm versteckt oder als ein anderes Programm ausgibt
o Gibt Daten an nicht autorisierte Benutzer weiter
o Z.B. eine Tarnung (Camouflage) als Passwortabfrage und Speicherung der dann eingegebenen Passwörter
• Versteckte Kanäle:
o Zugriff auf Informationen durch nicht bestimmungsgemäße Kanäle
o Z.B. direktes Auslesen einer Datenbankdatei unter Umgehung des Datenbankverwaltungssystems
Sicherheitsstrategien
Discretionary Access Control (DAC):
o Regeln zum Zugriff auf Objekte werden angegeben
• Mandatory Access Control (MAC):
o Regelt zusätzlich den Informationsfluss zwischen Objekten und Subjekten
o Gewährleistet also eine verbesserte Sicherheit
Discretionary Access Control
Zugriffsregeln der DAC:
• Geben zu einem Subjekt s die möglichen Zugriffsarten t auf ein Objekt o an
• Formal ausgedruckt: Quintupel (o, s, t, p, f) mit:
o o Î O, der Menge der Objekte (z.B. Relationen, Tupel, Attribute),
o s Î S, der Menge der Subjekte (z.B. Benutzer, Prozesse),
o t Î T, der Menge der Zugriffsrechte (z.B. T = {lesen, schreiben, löschen}),
o p ein Prädikat (z.B. Rang = ‚C4‘ für die Relation Professoren), und
o f ein Boolescher Wert, der angibt, ob s das Recht (o, t, p) an ein anderes Subjekt s‘ weitergeben darf.
• Methode, um die Regeln zu speichern: Zugriffsmatrix:
(Einfachste Art)
o Subjekte in Zeilen der Matrix
o Objekte in Spalten
o Entsprechende Zugriffsart in der Matrix eingetragen
o Zugriffsmatrizen können sehr groß werden
Zugriffskontrolle in SQL
• Einfache Zugriffskontrolle unter Verwendung des DAC-Modells
• grant:
o Zur Vergabe von Rechten
o Z.B.
grant select
on Professoren
to eickler
• Benutzer mir Kennung „eickler“ erhält Lesezugriff auf die Relation Professoren
• Neben select: delete, insert und update:
o Ausführung der gleichnamigen Befehle.
• revoke:
o Zum Entzug von Rechten
• insert und update: Qualifizierung der Attribute, auf die das Recht besteht
• Z.B.
grant update (MatrNr, VorlNr, PersNr)
on prüfen
to eickler
o Benutzer „eickler“ darf bestimmte Attribute (MatrNr, VorlNr und PersNr) ändern (andere Attribute, zB „Note“
aber nicht)
Zugriffskontrolle in SQL - Sichten
Sichten:
• Möglichkeit, ein Recht von einer bestimmten Bedingung abhängig zu
machen
• Beispiel: ein Tutor (tutor) für Studenten des ersten Semesters
o Soll deren Daten lesen können
o Aber nicht die Daten anderer Studenten
o Tabelle Studenten (Name, MatNo, Semester) + Rolle Tutor
Mögliche Realisierung: create view ErstSemestler as select * from Studenten where Semester = 1; grant select on ErstSemestler to tutor;
Verfeinerung des Autorisierungsmodells –
Implizite Autorisierung von Objekten
Datenbanken können in Granularitätshierarchien aufgeteilt werden.
Datenbank -> Schema -> Relation -> Tupel -> Attribut
Mandatory Access Control
Besonders in militärischen Einrichtungen üblich :
o Dokumente hierarchisch klassifizieren nach ihrer Sicherheitsrelevanz
o Beispiel mögliche Sicherheitshierarchie: „streng geheim“, „geheim“, „vertraulich“ und „unklassifiziert“.
• Diese Praxis im MAC-Modell übernommen
• Alle Subjekte und Objekte erhalten eine Markierung mit ihrer
Sicherheitseinstufung
Übliche Zugriffsregeln:
o Ein Subjekt s darf ein Objekt o nur lesen, wenn das Objekt eine geringere oder gleiche Sicherheitseinstufung
besitzt (class(o) £ clear(s))
o Wenn ein Objekt o geschrieben wird, muss es mindestens der Einstufung des Subjektes s bekommen (clear(s) smaller equals
class(o)).
SQL-Injection
SQL-Injection: ausnutzen einer Sicherheitslücke in Zusammenhang mit SQLDatenbanken
• Hinter den meisten Web-Applikationen verbergen sich Datenbanksysteme
• Aus den Eingabe-Parametern werden SQL-Anfragen generiert
• Man darf diesen Eingabe-Parametern niemals trauen, da sie „ausführbaren“
SQL-Code enthalten könnten
SQL-Injection Attacken
• Entsprechende Schutzmechanismen zur Validierung der Nutzereingabe
fehlten
• Die SQL-Syntax konnte ausgenutzt werden um die Vertraulichkeit zu
brechen.
Kryptographie
• Kryptographische Methoden können in DBSysteme eingesetzt werden:
o zur Authentisierung von Benutzern
o zur Sicherung gegen den Zugriff auf Daten über versteckte Kanäle.
• Eine kryptographische Methode :
o Transformiert mit einer Verschlüsselungsmethode
o einen gegebenen Text in einen verschlüsselten Text
o Verschlüsselter Text wird dann gespeichert bzw. übertragen
o Der autorisierte Benutzer kennt eine zugehörige Entschlüsselungsmethode,
o mit der der Originaltext wiederhergestellt werden kann.
• Verschlüsselungsmethode und Entschlüsselungsmethode:
o typischerweise generelle Methoden
o Werden von einem Schlüssel gesteuert
o Sicherheit beruht sich auf der Geheimheit des Schlüssels.
• Verschlüsselung ohne Kenntnis des wirklichen Schlüssels zu „knacken“:
o Idealerweise nur möglich durch erschöpfendes Austesten aller potentiellen Schlüssel.
• Verbreitetste kryptographische Verfahren:
o DES (Data Encryption Standard)
o AES (Advanced Encryption Standard)
o RSA-Algorithmus (nach den Autoren Rivest, Shamir und Adleman).