SQL-Injections
Tool & Aufgaben zum Einsatz im Informatik-Unterricht
ÜBERSICHTSVIDEO
KURZBESCHREIBUNG
In dieser Einheit erhalten die Schüler:innen einen unsicheren, lokal laufenden Webserver. Dieser fragt nach Nutzernamen und Passwort. Bei korrekter Eingabe wird man angemeldet. Durch geschicktes Einbauen von SQL-Code in die Nutzereingaben, können die Schüler:innen sich auch ohne korrekte Nutzerdaten anmelden oder sogar die Datenbank manipulieren. Diese Attacken erarbeiten sie selbstständig mit geeigneten Hilfestellungen. Nach jeder Attacke lernen sie eine Sicherheitsmaßnahmen kennen, durch die die Attacke verhindert werden kann.
Der Webserver (inkl. Aufgaben) kann als ausführbare Datei verteilt werden. Diese muss u.U. auf dem Zielsystem selbst erstellt werden. Anleitungen hierzu finden Sie auf dieser Seite.
BILDUNGSPLANBEZUG BADEN-WÜRTTEMBERG
Relationale Datenbanksysteme
"Die Schülerinnen und Schüler können- Komponenten (unter anderem Datenbank, Datenbankschnittstelle, Datenbankverwaltungssystem) und deren Funktionen von Datenbanksystemen beschreiben
- Abfragen auf Datenbanken in der Datenbanksprache SQL (Projektion, Selektion und Verbund über WHERE) auch über mehrere Tabellen durchführen"
Informationsgesellschaft und Datensicherheit
"Die Schülerinnen und Schüler können- Maßnahmen zur Gewährleistung von Datensicherheit und Datenschutz beim Einsatz von Informatiksystemen erläutern"
Umsetzung
Wahlkurs
Das Thema "Datenmanipulation mit SQL" ist nicht Teil des Bildungsplans im Wahlkurs. Daher können hier die vertiefenden Level und das Erstellen der Präsentation als Differenzierung genutzt werden. Der zeitliche Umfang entspricht bei einem zügigen Einstieg und ausreichenden Vorkenntnissen in SQL-Abfragen ca. einer Doppelstunde. In dieser Zeit sollten alle Schüler mindestens einen erfolgreichen Angriff ausführen und mindestens eine Sicherheitsmaßnahme kennenlernen. Ein möglicher, grob skizzierter Ablauf könnte so aussehen:
Zeit (min) | Phase | Sozialform | Aktivität | Material |
---|---|---|---|---|
10 | Einstieg | Plenum |
|
Präsentation (pdf) |
30 | Erarbeitung I | Einzel-/Partnerarbeit | Bearbeiten des Kurses (Aufgaben integriert) | Kurs-Datei: muss u.U. aus dem Quellcode erstellt werden |
5 | Sicherung I | Plenum |
|
|
30-35 | Erarbeitung II | Einzel-/Partnerarbeit | Fortsetzung: Bearbeiten des Kurses (Aufgaben integriert) | Kurs-Datei: muss u.U. aus dem Quellcode erstellt werden |
0-5 | Sicherung II | Plenum | Optionale Präsentation zum Thema durch schnelle Schüler:innen (letzte Differenzierungsaufgabe) | Präsentationsfolien der Schüler:innen |
10 | Sicherung III | Plenum |
Comic-Interpretation: Beispiel einer SQL-Injection, unsicherer Schulserver
Reflexionsfragen:
|
Präsentation (pdf) |
Basiskurs & Leistungskurs
Im Basis- und Leistungskurs ist das Thema "Datenmanipulation mit SQL" Teil des Bildungsplans. Hier muss daher mit einem Aufwand von ca. 3 Schulstunden gerechnet werden, damit alle Schüler:innen alle Levels bearbeiten können. Zur Differenzierung werden in diesem Fall dann zusätzliche Aufgaben benötigt.
HOW TO: KURS AUSFÜHREN
Unter Windows können folgende Spezialfälle auftreten:
- Windows fragt, ob im Windows-Store eine App zur Ausführung gesucht werden soll: Hier einfach Nein auswählen. Die ausführbare Datei ist eine App für sich.
- Windows möchte die Ausführung verbieten ("Der Computer wurde durch Windows geschützt"): Einfach "Weitere Informationen" anklicken. Dann erscheint ein Button, mit dem sich die Anwendung trotzdem ausführen lässt.
- Die Anwendung sollte in einem Standard-Verzeichnis (z.B. Dokumente, Desktop) abgelegt werden. Im Programme-Ordner kann die Anwendung z.B. nur mit Administrator-Rechten ausgeführt werden.
QUELLCODE AUSFÜHREN
Eine Alternative zu den ausführbaren Dateien ist die direkte Ausführung des Quellcodes. Dafür werden Python 3 und spezielle Module benötigt.
AUSFÜHRBARE DATEIEN SELBST ERSTELLEN
Sie müssen nicht unbedingt die bereitgestellten ausführbaren Dateien nutzen, sondern können diese auch selbst aus dem Quellcode erstellen. Stellen Sie dazu zunächst sicher, dass sie den Quellcode direkt ausführen können (siehe vorheriger Abschnitt).