Sichere Nutzung von Datenbanken
Die Schulverwaltung eines Gymnasiums in Köln speichert Noten, Adressen und Krankmeldungen in einer Datenbank. Gleichzeitig arbeiten Sekretariat, Lehrkräfte und Eltern-Portal damit. Was muss passieren, damit keine Note verfälscht wird, niemand fremde Daten liest und nach einem Serverabsturz nichts verloren geht?
Integrität und Konsistenz
Ein Datenbanksystem (DBS) soll Daten nicht nur speichern, sondern auch richtig halten. Dafür gibt es zwei verwandte Begriffe.
Typische Integritätsbedingungen:
| Bedingung | Bedeutung | Beispiel Schülerdatenbank |
|---|---|---|
| Primärschlüssel | Jeder Datensatz ist eindeutig und nicht leer | SNr identifiziert jeden Schüler genau einmal |
| Fremdschlüssel (referenzielle Integrität) | Verweis zeigt auf einen existierenden Datensatz | Eine Note darf nur für eine vorhandene SNr eingetragen werden |
| Wertebereich | Werte liegen in erlaubten Grenzen | Punkte nur von 0 bis 15 |
| Pflichtfeld (NOT NULL) | Wert muss vorhanden sein | Jeder Schüler hat ein Geburtsdatum |
Ein Beispiel zur Konsistenz: Steht die Adresse eines Schülers in zwei Tabellen und nur eine wird geändert, ist die Datenbank inkonsistent. Deshalb speichert man jede Information möglichst nur einmal (wenig Redundanz).
Erklären Sie die Begriffe Datenintegrität und Datenkonsistenz und nennen Sie je ein Beispiel aus einer Schülerdatenbank.
Erklären Sie die Begriffe Datenintegrität und Datenkonsistenz und nennen Sie je ein Beispiel aus einer Schülerdatenbank.
Transaktionen
Manche Änderungen bestehen aus mehreren Schritten, die nur zusammen sinnvoll sind. Beispiel: eine Überweisung von 200 € besteht aus Abbuchung und Gutschrift. Stürzt der Server dazwischen ab, fehlt Geld.
In der Tabelle Konto(KtoNr, Inhaber, Stand) überweist eine Transaktion 200 € von Konto 1 auf Konto 2: zuerst Abbuchung, dann Gutschrift. Nach der Abbuchung stürzt der…
In der Tabelle Konto(KtoNr, Inhaber, Stand) überweist eine Transaktion 200 € von Konto 1 auf Konto 2: zuerst Abbuchung, dann Gutschrift. Nach der Abbuchung stürzt der Server ab.
- a) Beschreiben Sie den entstehenden inkonsistenten Zustand.
- b) Erklären Sie, wie das Transaktionskonzept (Atomarität, Rollback) das Problem löst.
- c) Nennen Sie eine Integritätsbedingung, die die Datenbank zusätzlich prüfen sollte.
Mehrbenutzerbetrieb und Sperren
Viele Nutzer greifen gleichzeitig zu, etwa beim Kartenverkauf für ein Konzert in der Lanxess Arena. Ohne Koordination entstehen Fehler.
Zwei Nutzer buchen gleichzeitig den letzten Platz eines Konzerts (Tabelle Platz(PNr, frei)). Beide lesen frei = 1 und schreiben dann frei = 0. a) Beschreiben Sie den…
Zwei Nutzer buchen gleichzeitig den letzten Platz eines Konzerts (Tabelle Platz(PNr, frei)). Beide lesen frei = 1 und schreiben dann frei = 0.
- a) Beschreiben Sie den Ablauf als Verschränkung der Operationen und das fehlerhafte Ergebnis.
- b) Erklären Sie, wie Sperren oder Transaktionen mit Isolation das verhindern.
- c) Diskutieren Sie ein mögliches Problem von Sperren (Verklemmung).
Rechteverwaltung
Nicht jeder darf alles. Zuerst muss das System wissen, wer zugreift (Authentifizierung), dann entscheidet es, was diese Person darf (Autorisierung). Ein DBS verwaltet dafür Benutzer und Rollen. Dabei gilt das Prinzip der minimalen Rechte: Jeder erhält genau die Rechte, die er für seine Aufgabe braucht, und keine mehr. Das begrenzt den Schaden bei Fehlern und Angriffen.
| Rolle | Tabelle Noten | Tabelle Stammdaten |
|---|---|---|
| Sekretariat | lesen | lesen, ändern |
| Lehrkraft | lesen, ändern (eigene Kurse) | lesen (Name) |
| Schüler | nur eigene Noten lesen | nichts |
Die Authentifizierung beruht auf Wissen (Passwort, PIN), Besitz (Chipkarte, Smartphone-App) oder Biometrie (Fingerabdruck). Die Zwei-Faktor-Authentifizierung (2FA) kombiniert zwei dieser Arten, z. B. Passwort und TAN-App. Wird ein Faktor gestohlen, bleibt der Zugang geschützt.
In SQL vergibt und entzieht man Rechte so:
GRANT SELECT, UPDATE ON Noten TO lehrkraft;
REVOKE UPDATE ON Noten FROM lehrkraft;
Für „nur eigene Daten“ nutzt man Sichten (Views), die nur passende Zeilen und Spalten zeigen.
Passwörter speichert man nie im Klartext, sondern als Hashwert (zusammen mit einem zufälligen Zusatz, dem Salt). Eine Hashfunktion ist eine Einwegfunktion: Aus dem Hash lässt sich das Passwort nicht zurückrechnen. Beim Login wird das eingegebene Passwort gehasht und mit dem gespeicherten Wert verglichen. Gelangt die Datenbank in falsche Hände, sind die Passwörter nicht sofort lesbar.
In einer Schuldatenbank gibt es die Rollen Sekretariat, Lehrkraft und Schüler. a) Nennen Sie für jede Rolle ein sinnvolles Zugriffsrecht (lesen, ändern, löschen). b)…
In einer Schuldatenbank gibt es die Rollen Sekretariat, Lehrkraft und Schüler.
- a) Nennen Sie für jede Rolle ein sinnvolles Zugriffsrecht (lesen, ändern, löschen).
- b) Erklären Sie das Prinzip der minimalen Rechte.
Eine Arztpraxis in Freiburg speichert Patientendaten in einer Datenbank. a) Entwerfen Sie ein Rechtekonzept für Empfang, Ärztinnen und Administration (SQL: GRANT/REVOKE,…
Eine Arztpraxis in Freiburg speichert Patientendaten in einer Datenbank.
- a) Entwerfen Sie ein Rechtekonzept für Empfang, Ärztinnen und Administration (SQL: GRANT/REVOKE, mindestens zwei Beispielbefehle).
- b) Begründen Sie, warum Passwörter nur als Hashwerte gespeichert werden sollten.
SQL-Injection
Viele Anwendungen setzen Abfragen aus festen Teilen und Nutzereingaben zusammen. Wird die Eingabe ungeprüft eingefügt, kann ein Angreifer eigenen SQL-Code einschleusen. Das nennt man SQL-Injection: eine Schwachstelle der Anwendung, nicht des DBS selbst.
Schutz:
-
Prepared Statements (vorbereitete Anweisungen): Die Abfrage mit Platzhaltern, z. B.
WHERE Name = ?, wird zuerst übersetzt. Die Eingabe wird danach nur als Wert eingesetzt und nie als SQL-Code interpretiert. Der Code ist von den Daten getrennt. -
Maskieren einzelner Zeichen (z. B.
'ersetzen) ist anfälliger: Man vergisst leicht Sonderfälle (andere Zeichenkodierungen, Zahlenfelder ohne Anführungszeichen). Eine Blacklist ist nie vollständig. -
Weitere Schutzebenen: Datenbankbenutzer der Anwendung mit minimalen Rechten (kein Zugriff auf
Nutzer), keine detaillierten Fehlermeldungen nach außen, gehashte Passwörter, Eingabeprüfung.
Ein Login-Formular erzeugt die Abfrage SELECT * FROM Nutzer WHERE Name = ' + Eingabe + '; a) Erklären Sie, was SQL-Injection ist. b) Nennen Sie eine Schutzmaßnahme.
Ein Login-Formular erzeugt die Abfrage SELECT * FROM Nutzer WHERE Name = ' + Eingabe + ';
- a) Erklären Sie, was SQL-Injection ist.
- b) Nennen Sie eine Schutzmaßnahme.
Ein Webshop erzeugt die Abfrage SELECT * FROM Nutzer WHERE Name = ' + n + ' AND Passwort = ' + p + '. a) Welche Abfrage entsteht bei der Eingabe n = admin' -- und…
Ein Webshop erzeugt die Abfrage SELECT * FROM Nutzer WHERE Name = ' + n + ' AND Passwort = ' + p + '.
- a) Welche Abfrage entsteht bei der Eingabe n =
admin' --und beliebigem Passwort?
- b) Erklären Sie, warum der Angreifer damit ohne Passwort Zugang erhält.
- c) Beschreiben Sie, wie vorbereitete Anweisungen (Prepared Statements) das verhindern.
Eine Suchfunktion eines Online-Shops bildet SELECT Name, Preis FROM Artikel WHERE Name LIKE '% + s + %'. a) Konstruieren Sie eine Eingabe s, mit der ein Angreifer…
Eine Suchfunktion eines Online-Shops bildet SELECT Name, Preis FROM Artikel WHERE Name LIKE '% + s + %'.
- a) Konstruieren Sie eine Eingabe s, mit der ein Angreifer zusätzlich alle Einträge der Tabelle
Nutzer(Name, Passwort)ausliest (UNION). Begründen Sie die Bedingung an die Spaltenzahl.
- b) Erläutern Sie, warum das Maskieren einzelner Zeichen weniger sicher ist als Prepared Statements.
- c) Bewerten Sie, welche weiteren Schutzebenen (Rechte, Fehlermeldungen, Hashing) den Schaden begrenzen.
Datenschutz nach DSGVO
Datensicherheit schützt Daten vor Verlust und unbefugtem Zugriff. Datenschutz schützt die Menschen, deren personenbezogene Daten gespeichert werden. Die DSGVO verlangt von Schulen und Unternehmen technisch-organisatorische Maßnahmen, zum Beispiel:
-
Zugriffskontrolle (Rollen, Rechte, Authentifizierung),
-
Protokollierung (wer hat wann welche Daten gelesen oder geändert),
-
Verschlüsselung (Datenträger, Übertragung),
-
Datensicherung (Backup) und Notfallplan.
Wichtig ist auch die Reaktion auf einen Sicherheitsvorfall: Ein Backup ermöglicht die Wiederherstellung, und bei einer Datenpanne muss die Meldung an die Datenschutzbehörde innerhalb von 72 Stunden erfolgen.
Zwei Grundsätze:
-
Datenminimierung: Nur Daten erheben, die wirklich nötig sind. Für die Notenverwaltung braucht man keine Religionszugehörigkeit.
-
Zweckbindung: Daten dürfen nur für den Zweck genutzt werden, für den sie erhoben wurden. Notendaten dienen nicht der Werbung.
Eine Schule in Köln plant eine Datenbank mit Noten und personenbezogenen Daten. a) Nennen und begründen Sie drei technisch-organisatorische Maßnahmen im Sinne des…
Eine Schule in Köln plant eine Datenbank mit Noten und personenbezogenen Daten.
- a) Nennen und begründen Sie drei technisch-organisatorische Maßnahmen im Sinne des Datenschutzes (DSGVO), z. B. Zugriffskontrolle, Protokollierung, Verschlüsselung.
- b) Erläutern Sie die Grundsätze der Datenminimierung und der Zweckbindung am Beispiel.
- c) Beurteilen Sie, ob ein Lehrer lesenden Zugriff auf Noten aller Schüler der Schule erhalten sollte.
Zurück zum Anfang: Die Schulverwaltung bleibt sicher, wenn Integritätsbedingungen die Daten richtig halten, Transaktionen und Sperren Abstürze und paralleles Arbeiten abfangen, Rechte nach dem Prinzip der minimalen Rechte vergeben werden, Prepared Statements Injection verhindern und die DSGVO-Grundsätze eingehalten werden.