Kapitel 12: Sicherheitsaspekte Flashcards

1
Q

Was sind die Sicherheitssysteme im DMBS?

A
  • Identifikation und Authentifizierung
  • Autorisierung und Zugriffskontrolle
  • Auditing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Welche Angriffsarten gibt es?

A
  • Missbrauch von Autorität
  • Inferenz und Aggregation
  • Maskierung
  • Umgehen der Zugriffskontrollen
  • Browsing
  • Trojanische Pferde
  • Versteckte Kanäle
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Discrectionary access control definition der Zugriffsregeln

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wie kann discretionary access control realisiert werden?

A
  • Zugriffsmatrixen
  • Sichten
  • Query Modification

Nachteil:

  • Erzeuger der Daten ist Verantwortlich für deren Sicherheit
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Beispiel für Zugriffskontrollen

A

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)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Beispiel für Sichten und wie man diese schützen kann

A

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;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was ist k Anonymität?

A

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;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Wie können Sichten für Gruppen aussehen?

A
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>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Erkläre das Prinzip von Auditing

A

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;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Wie sieht die rollenbasierte Autorisierung aus? (Skizze)

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Erkläre folgende Begriffe: explizite, implizite, starke, schwache, positive und negative Autorisierung

A
  • Explizit positiv: nur obere nächste Stufe
  • Explizit negativ: nur untere nächste Stufe
  • Implizit positive: erben alle oberen
  • Implizit negative: erben nach unteren
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was ist Mandatory Access Control?

A

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))
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was ist eine SQL Injection?

A
  • Aus Eingabe-Parametern werden SQL-Anfragen generiert
  • Man darf Benutzereingaben niemals trauen, da sie ausführbaren SQL Code enthaltne könnten
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Wie sollte eine Authentififizierung nicht aussehen?

A
  • Klartext Passwörter: gehashed SHA256 + Zufallsstring
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wie könnte eine SQL Injection aussehen?

A

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;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Wie kann man sich vor SQL Attacken schützen?

A

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

17
Q

Was ist der Grundgedanke von Kryptographie?

A
  • Niemand anderes darf lesen
  • Niemand darf schreiben
  • Kein “man in the middle”
  • Schützen der Daten
18
Q

Erklärung von Geheimschlüssel und Public Key

A
  • Public Key: verschlüsselt Nachricht (m xor c) -> E
  • Privat Key: entschlüsselt Nachricht D(c) -> m
19
Q

Nach welchem System werden öffentliche Schlüssel verwaltet? Wie funktioniert es?

A

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
20
Q

Nenne ein Public Key Kryptographievefahren und erkläre es

A
  • 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))
21
Q

Beispiel für RAS Verschlüsselung: q = 5 p = 4 n = 15

A
  • 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
22
Q

Erkäre den three-way handshake

A
23
Q

Welche Ebnen des Datenschutzes gibt es?

A

Legislative Maßnahmen (Gesetze)

Organisatorische Maßnahmen

Authentisierung

Zugriffskontrolle

Kryptographie

Datenbank

24
Q

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.

A
25
Q

Würde bei RSA eine abgefangene verschlüsselte Nachricht mit bekanntem Inhalt die Suche nach dem Private Key erheblich vereinfachen? Begru ̈nden Sie kurz.

A

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.

26
Q

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?

A
  • 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.