Kapitel 12: Sicherheitsaspekte Flashcards
Was sind die Sicherheitssysteme im DMBS?
- Identifikation und Authentifizierung
- Autorisierung und Zugriffskontrolle
- Auditing
Welche Angriffsarten gibt es?
- Missbrauch von Autorität
- Inferenz und Aggregation
- Maskierung
- Umgehen der Zugriffskontrollen
- Browsing
- Trojanische Pferde
- Versteckte Kanäle
Discrectionary access control definition der Zugriffsregeln
- O element E= Menge der Objekte (Tupel, Relationen …)
- s element S = Menge der Subjekte (Benutzer, Prozesse)
- t element T= Menge der Zugriffsrechte (lesen, schreiben ..)
- p ein Prädikat (z.B. Rang = C4 für die Relation Professoren)
- f ein boolscher Wert, der angibt ob das Recht weitergegeben werden darf
Wie kann discretionary access control realisiert werden?
- Zugriffsmatrixen
- Sichten
- Query Modification
Nachteil:
- Erzeuger der Daten ist Verantwortlich für deren Sicherheit
Beispiel für Zugriffskontrollen
grant select
on Professor
to eickler;
grad update (MatrNr, x, y)
on prüfen
to eickler;
weitere:
- delete
- insert
- references
- grant (gibt rechte)
- revoke (entzieht rechte)
- cascade (von allen)
Beispiel für Sichten und wie man diese schützen kann
create view ErstSemestler as
select *
from student
where semester = 1;
grant select
on ErstSemester
to tutor;
Schutz durch Aggregation:
create view Vorlesungshärte (VorNr, Härte) as
select VorlNr, avg(Note)
from prüfen
group by VorlNr;
Was ist k Anonymität?
Gleiches wie Aggregation nur mit einer gewissen Mindestmenge:
create view VorlesungsHärte (VorlNr, Härte) as select VorlNr, avg(Note)
from prüfen
group by VorlNr
having count(*) > 11;
Wie können Sichten für Gruppen aussehen?
CREATE VIEW StudentenNotenView AS SELECT \* FROM pruefen p WHERE EXISTS (SELECT \* FROM Studenten
WHERE MatrNr = p.MatrNr AND Name = USER)
GRANT SELECT ON StudentenNotenView to <studentengruppe> </studentengruppe>
Erkläre das Prinzip von Auditing
Auditing ist aufzeichnen von Queries auf festgelegte Relationen / Tupel / Befehle (muss manuell ausgewertet werden):
audit session by system whenever not successful;
audit insert, delete, update on Professoren;
Wie sieht die rollenbasierte Autorisierung aus? (Skizze)

Erkläre folgende Begriffe: explizite, implizite, starke, schwache, positive und negative Autorisierung
- Explizit positiv: nur obere nächste Stufe
- Explizit negativ: nur untere nächste Stufe
- Implizit positive: erben alle oberen
- Implizit negative: erben nach unteren
Was ist Mandatory Access Control?
Es gibt clearence und classification Stufen.
- Ein Subject s darf ein Objekt o nur lesen, wenn es eine geringere Sicherheitseinstufung bestizt: class(o) <= clear(s) (Beispiel top secret <= secret)
- Ein Objekt o muss mit mindestens der Einstufung des Subjektes s geschrieben werden (clear(s)<= class(o))

Was ist eine SQL Injection?
- Aus Eingabe-Parametern werden SQL-Anfragen generiert
- Man darf Benutzereingaben niemals trauen, da sie ausführbaren SQL Code enthaltne könnten
Wie sollte eine Authentififizierung nicht aussehen?
- Klartext Passwörter: gehashed SHA256 + Zufallsstring
Wie könnte eine SQL Injection aussehen?
Select *
From Studenten s join prüfen p on s.MatrNr = p.MatrNr Where s.Name = ‘Schopenhauer‘ and
s.Passwort = ‘WilleUndVorstellung‘ or ‘x‘ = ‘x‘
oder über Web-Interface:
String _query =
“select * “ +
“from Studenten s join prüfen p on s.MatrNr = p.MatrNr” + “where s.Name = ‘” + _name +
”’ and s.Passwort = ‘” + _pwd +”’;”;
Select *
From Studenten s join prüfen p on s.MatrNr = p.MatrNr Where s.Name = ‘Schopenhauer‘ and
s.Passwort = ‘Egal‘; update prüfen set Note = 1 where MatrNr = 25403;
Wie kann man sich vor SQL Attacken schützen?
Prepared Statements:
PreparedStatement stmt = conn.prepareStatement(
“select * from Vorlesungen v join Professoren p
on v.gelesenVon = p.PersNr where v.Titel = ? and p.Name = ? “);
String einzulesenderTitel = “Logik“; String einzulesenderName = “Sokrates“;
stmt.setString(1, einzulesenderTitel); stmt.setString(2, einzulesenderName);
ResultSet rs = stmt.executeQuery();
Filterung der Eingabeparameter
Restriktive Autorisierungkorridore
Was ist der Grundgedanke von Kryptographie?
- Niemand anderes darf lesen
- Niemand darf schreiben
- Kein “man in the middle”
- Schützen der Daten
Erklärung von Geheimschlüssel und Public Key
- Public Key: verschlüsselt Nachricht (m xor c) -> E
- Privat Key: entschlüsselt Nachricht D(c) -> m
Nach welchem System werden öffentliche Schlüssel verwaltet? Wie funktioniert es?
X.509 = Standard
- Entspricht Zertifikaten, die von certification authorities (CA) ausgegeben werden
- Banken, Firmen, Telekom
- Zertifikat von CA X ist nur sinnvoll, wenn der public key von X bekannt ist
- X.509 Zertifikat enthält:
- Name der Organisation: Conny
- Öffentlicher Schllüssel: Ec
- Name der Zertifizierungsautorität: SV
- Digitale Signatur der CA: Dsv(Ec)
- Besitz eines Zertifikats sagt gar nichts aus:
- Zertifikate werden kopiert
- Nur besitzer des zugehörigen private Keys authentifizieren den rechtmäßigen Besitzer
- Hierarchie von CAs: X zertifizert Y zertifizert Z
- Wenn ich X kenne, kann ich Z trauen ohne Y zu kennen
Nenne ein Public Key Kryptographievefahren und erkläre es
- RSA-Verfahren
- Älteste “Public Key” Kryptographieverfahren
- beruft auf Erfahrung, dass Faktorisierung ein “hartes” Problem ist
- Verschlüsselung einer Nachricht:
- öffentliche Schlüssel (e, n) –> E
- Nachricht M = Natürliche Zahl, dass gilt 0<= M <= n-1
- längere Nachrichten werden aufgespalten
- berchne C = E(M) := M^e mod(n)
- Entschlüsselung:
- C=E(M)
- geheimer Schlüssel (d, n) = D
- D(C) := C^d mod(n)
- Auswahl der Schlüssel:
- Wähle sehr große Primzahlen p und q
- mind. 200 Stellen
- zufällig ausgewählt
- Berechne n :=p*q
- Wähle eine “große” Zahl d, für die gilt:
- Primzahl d > max(p, q)
- Berechne e, so dass gilt:
- e*d=1
- (mod(p -1) * (q-1))
- Wähle sehr große Primzahlen p und q
Beispiel für RAS Verschlüsselung: q = 5 p = 4 n = 15
- e = 7 (größer als q, p + prim)
- e*d mod((q-1)*(p-1)) = 7*d mod(8) = 1
- d=7
- M = 2
- Encrypt:
- C = M^e mod N
- c = 8
- Decrypt:
- M=C^d mod N
- M = 2
Erkäre den three-way handshake

Welche Ebnen des Datenschutzes gibt es?
Legislative Maßnahmen (Gesetze)
Organisatorische Maßnahmen
Authentisierung
Zugriffskontrolle
Kryptographie
Datenbank
Skizzieren Sie die Funktionsweise von SSL. Erläutern Sie hierzu, wie der einfache TLS Handshake funktioniert. Eine Lösungsmöglichkeit wäre das Zeichnen eines passenden Message Sequence Charts.

Würde bei RSA eine abgefangene verschlüsselte Nachricht mit bekanntem Inhalt die Suche nach dem Private Key erheblich vereinfachen? Begru ̈nden Sie kurz.
Nein, ein Angreifer kann über den Public Key immer beliebige Texte verschlüsseln. Würden known Plaintext Attacken das Knacken wesentlich erleichtern, wäre das Verfahren komplett unbrauchbar.
Um die Suche zu erleichtern, kann die Anzahl der SWS durch ein Parameter eingeschränkt werden. Finden sie eines speziell präparierte Parameterm, bei dessen Eingabe statt der Vorlesungen die Liste der Studenten ausgegeben wird. Die Datenbank folgt dem bekannten Universitätsschema.
Bob erfährt von der Sicherheitslücke und schlägt vor die bekannten Tabellen einmalig mit zufa ̈lligen Namen umzubennen, so seien sie nicht zu finden. Wu ̈rde diese Sicherheitsmaß- name helfen?
- Injection: 0 union all select name, matrnr, semester from studenten
- Nein, da z.B. mit select * from pg_tables eine Liste der Datenbanken aus- gegeben werden kann.