Sichere Nutzung von Datenbanken
Am Freitagabend sind die Karten für ein Konzert in der Kölner Lanxess Arena fast ausverkauft. Tausende Menschen greifen gleichzeitig auf dieselbe Datenbank zu: Manche kaufen Tickets, andere versuchen, die Datenbank anzugreifen. Wie sorgt ein Datenbanksystem (DBS) dafür, dass trotzdem kein Platz doppelt verkauft wird und keine fremden Daten gelesen werden können? Am Ende der Seite kannst du das erklären.
Integrität und Konsistenz
Ein Datenbanksystem besteht aus den gespeicherten Daten und dem Datenbankmanagementsystem (DBMS), das alle Zugriffe verwaltet. Clients (z. B. die Webseite eines Online-Shops) schicken Abfragen an den Server; nur das DBMS greift auf die Daten zu. Das ist die Grundlage für den Schutz der Daten.
Beispiel Schülerdatenbank: Eine Note von 37 Punkten verletzt die Integrität. Steht die Adresse einer Schülerin in zwei Tabellen und nur eine wird beim Umzug geändert, ist der Bestand inkonsistent.
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.
Rechteverwaltung
Nicht jeder darf alles. Das DBMS verwaltet Benutzer und Rollen. Zuerst die Authentifizierung (Wer bist du? Passwort, Zwei-Faktor), dann die Autorisierung (Was darfst du?). Rechte betreffen lesen (SELECT), einfügen (INSERT), ändern (UPDATE) und löschen (DELETE).
In SQL vergibt und entzieht man Rechte so:
GRANT SELECT, UPDATE ON Note TO lehrkraft;
REVOKE UPDATE ON Note FROM lehrkraft;
GRANT SELECT ON Note TO schueler;
| Rolle | Sinnvolle Rechte (Schuldatenbank) |
|---|---|
| Sekretariat | Stammdaten lesen, ändern, neue Schüler anlegen |
| Lehrkraft | Noten der eigenen Kurse lesen und ändern |
| Schüler | nur die eigenen Noten lesen |
Außerdem sollten Passwörter nie im Klartext gespeichert werden, sondern als Hashwert (Ergebnis einer Einwegfunktion). Wird die Datenbank gestohlen, sind die Passwörter nicht direkt lesbar. Beim Login wird das eingegebene Passwort gehasht und mit dem gespeicherten Wert verglichen.
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
Baut eine Anwendung eine Abfrage durch Aneinanderhängen von Text zusammen, wird die Eingabe des Nutzers zu SQL-Code. Das ist eine Schwachstelle.
Login-Abfrage: SELECT * FROM Nutzer WHERE Name = ' + n + ' AND Passwort = ' + p + '
Schutz: Prepared Statements. Die Abfrage wird mit Platzhaltern vorbereitet: SELECT * FROM Nutzer WHERE Name = ? AND Passwort = ?. Das DBMS kennt die Struktur schon, die Eingaben werden danach nur als Werte eingesetzt, nie als Code. Ein ' in der Eingabe ist dann einfach ein Zeichen im Namen.
Eine zweite Variante ist die UNION-Injection: Mit UNION SELECT … hängt der Angreifer eine weitere Abfrage an und liest fremde Tabellen. Damit UNION funktioniert, müssen beide Abfragen gleich viele Spalten (mit verträglichen Datentypen) liefern. Die Spaltenzahl probiert der Angreifer aus oder entnimmt sie Fehlermeldungen.
Beispiel: Suchfeld SELECT Name, Preis FROM Artikel WHERE Name LIKE '% + s + %' hat zwei Spalten. Eingabe x' UNION SELECT Name, Passwort FROM Nutzer -- liefert zusätzlich alle Nutzer mit Passwörtern.
Weitere Schutzebenen (Verteidigung in der Tiefe): minimale Rechte für das Anwendungskonto (kein Zugriff auf Nutzer), keine detaillierten Fehlermeldungen für Nutzer, Passwörter nur als Hashwerte.
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.
Transaktionen und Mehrbenutzerbetrieb
Eine Transaktion fasst mehrere Operationen zu einer Einheit zusammen. Die Eigenschaften nennt man ACID:
| Eigenschaft | Bedeutung |
|---|---|
| Atomarität | Alles oder nichts: Bei einem Fehler wird die ganze Transaktion zurückgerollt (Rollback). |
| Consistenz | Nach der Transaktion gelten alle Integritätsbedingungen. |
| Isolation | Gleichzeitige Transaktionen beeinflussen sich nicht. |
| Dauerhaftigkeit | Nach dem Commit sind die Daten dauerhaft gespeichert. |
Mehrbenutzerbetrieb. Zwei Nutzer wollen den letzten Konzertplatz buchen. Ohne Isolation verschränken sich die Operationen:
| Schritt | Nutzer A | Nutzer B |
|---|---|---|
| 1 | liest frei = 1 | |
| 2 | liest frei = 1 | |
| 3 | schreibt frei = 0, Buchung | |
| 4 | schreibt frei = 0, Buchung |
Ergebnis: Der Platz ist doppelt verkauft. Lösung: Sperren (Locks). Liest A den Platz zum Ändern, sperrt das DBMS ihn, B muss warten, bis A fertig ist, und liest dann frei = 0.
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.
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).
Datenschutz und Datensicherung
Datensicherheit schützt Daten vor Verlust und unbefugtem Zugriff. Datenschutz schützt Menschen, genauer ihre personenbezogenen Daten (DSGVO). Beides hängt zusammen, ist aber nicht dasselbe.
Technisch-organisatorische Maßnahmen (Art. 32 DSGVO):
-
Zugriffskontrolle: Rechte und Authentifizierung, damit nur Befugte Daten sehen.
-
Protokollierung: Wer hat wann was gelesen oder geändert? So lassen sich Missbrauch und Pannen aufklären.
-
Verschlüsselung: Daten auf dem Datenträger und bei der Übertragung (TLS) sind ohne Schlüssel unlesbar.
-
Backup: regelmäßige Datensicherung an getrenntem Ort, mit Test der Wiederherstellung.
Grundsätze der DSGVO:
-
Datenminimierung: Es werden nur Daten gespeichert, die nötig sind. Eine Schule braucht keine Religionszugehörigkeit der Eltern für den Stundenplan.
-
Zweckbindung: Daten dürfen nur für den Zweck genutzt werden, für den sie erhoben wurden. Notendaten dürfen nicht für Werbung verwendet werden.
Bei einer Datenpanne gilt eine Meldepflicht an die Aufsichtsbehörde (in NRW die LDI NRW) binnen 72 Stunden (Art. 33 DSGVO).
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.
Auf einen Blick
Zurück zum Anfang: Die Konzertdatenbank vermeidet Doppelbuchungen durch Transaktionen und Sperren und schützt sich durch Rechte, Prepared Statements und Hashing.
-
Integrität: Daten erfüllen die Integritätsbedingungen (z. B. Fremdschlüssel). Konsistenz: widerspruchsfreier Bestand.
-
Rechte: Authentifizierung, Autorisierung, GRANT/REVOKE, Prinzip der minimalen Rechte. Passwörter nur als Hash.
-
SQL-Injection: Eingabe wird zu Code. Schutz: Prepared Statements, minimale Rechte, keine Detail-Fehlermeldungen.
-
Transaktionen (ACID): Atomarität mit Rollback; Isolation durch Sperren, Risiko Verklemmung.
-
Datenschutz (DSGVO: Datenminimierung, Zweckbindung, Meldepflicht 72 h) ≠ Datensicherheit.
-
Operatoren: erläutern, beschreiben, begründen, bewerten, beurteilen.