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
  • Was denken die Schüler:innen, was bei einer Anmeldung auf einer Webseite passieren muss?
  • Demonstration des Ablaufs
  • Rechtliches zum Thema Hacking
  • Demonstration des Anwendungsstarts
  • Vorführen einer Nutzereingabe -> Hinweisen auf den SQL-Befehl im blauen Kasten
  • Erteilen des Arbeitsauftrags
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
  • Besprechen der ersten Attacke & Sicherheitsmaßnahme
  • Hinweis: Differenzierung für schnelle Schüler:innen -> Präsentation
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:
  • Was versteht man unter einer SQL-Injection? (Nutzer-Eingaben werden vom Webserver direkt in SQL-Abfragen eingesetzt -> Nutzer können SQL-Abfragen manipulieren, eigene SQL-Abfragen einbauen)
  • Nennen Sie 3 Sicherheitsmaßnahmen zum Verhindern von SQL-Injections und bewerten Sie deren Effektivität (auf eine SQL-Abfrage beschränken, Schlüsselwörter wie OR rausfiltern, beste Sicherheitsmaßnahme: SQL-Parameter -> Abfrage und Nutzereingabe getrennt an den DB-Server schicken)
  • Darf man auf einer beliebigen Seite eine SQL-Injection durchführen? (-> rechtlich nicht erlaubt!)
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

Windows-Flowchart

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.

Windows Flowchart

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).

Windows Flowchart