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;