02. Juli 2018

„Build It, Break It, Fix It!” – neue Veranstaltungsform zur Vermittlung von praktischen Kompetenzen in sicherer Softwareentwicklung

Beinahe täglich ist in der Presse von Angriffen auf IT-Systeme oder von neuen Sicherheitslücken in Softwareprodukten zu lesen. Wenn bei der Entwicklung von Software nicht während des gesamten Prozesses der Softwareentwicklung an die Sicherheit gedacht wird, ist es sehr wahrscheinlich, dass die dann entstandene Software für Angriffe anfällig ist. Vielen Softwareentwicklern fehlt ein Bewusstsein für die mannigfaltigen Möglichkeiten, eine Software anzugreifen. In vielen Informatikstudiengängen spielt die (Angriffs-) Sicherheit eine untergeordnete Rolle und bleibt zu oft auf theoretische Veranstaltungen beschränkt.

Ziel der Veranstaltung „Build It, Break It, Fix It!“ ist, den teilnehmenden Studierenden praktische Kompetenzen und Erfahrungen in der angriffssicheren Anwendungsentwicklung und im Finden von Sicherheitslücken in Software zu vermitteln. Dies ist eine Neuerung im Veranstaltungsangebot der Universität Paderborn. Als Inspiration diente der gleichnamige Wettbewerb, der regelmäßig an der University of Maryland durchgeführt wird. Im Zuge einer internationalen Kollaboration haben wir das Format an die Bedürfnisse der Lehre an der Universität Paderborn angepasst.

Zu Beginn der Veranstaltung finden sich die Teilnehmenden in Gruppen zu je drei bis vier Personen zusammen. Der Ablauf gliedert sich dann in drei Phasen von je einer Woche Dauer. In der ersten Phase („Build It“) entwickelt jede Gruppe jeweils unabhängig von den anderen Gruppen eine Software anhand einer Spezifikation, die für alle Gruppen gleich ist. Die zu entwickelnde Software bildet ein praxisnahes Szenario ab und stellt die Teilnehmenden somit vor typische in der Praxis auftretende Herausforderungen. In der zweiten Phase („Break It“) erhält dann jede Gruppe den Quellcode der Implementierungen aller anderen Gruppen mit dem Ziel, dort Fehler zu finden, die die Sicherheit oder die korrekte Funktionalität beeinträchtigen, und auf deren Grundlage praktikable Angriffe zu formulieren und auszunutzen. In der dritten Phase („Fix It“) erhält jede Gruppe die Beschreibungen zu Fehlern in ihrer eigenen Implementierung unter der Aufgabenstellung, diese Fehler möglichst vollumfänglich und nachhaltig zu beheben.

Die Studierendengruppen können über eine Website jederzeit Zwischenabgaben tätigen, welche automatisch überprüft und bewertet werden. Die Implementierungen der ersten Phase werden einer Reihe von Korrektheits- und Leistungsfähigkeitstests unterzogen. Abgegebene Fehlerbeschreibungen werden überprüft, indem die dort formal formulierte Herbeiführung der Situation, in der der Fehler auftritt, nachvollzogen wird und ggfs. das Verhalten der infrage stehenden Implementierung mit dem einer Referenzimplementierung verglichen wird. Auch die abgegebenen Fehlerbehebungen werden einer Vorabprüfung unterzogen, müssen aber abschließend noch durch die Veranstaltungsverantwortlichen auf deren Nachhaltigkeit und Vollständigkeit geprüft werden. Ferner untersuchen die Veranstaltungsverantwortlichen auch die Implementierungen, um dort diejenigen Fehler aufzudecken, die von keiner Gruppe gefunden wurden.

„Build It, Break It, Fix It!“ wurde im Sommersemester 2017 erstmalig als Master-Lehrveranstaltung angeboten. Bestärkt durch viel positives Feedback seitens der Teilnehmenden, haben wir uns dazu entschieden, „Build It, Break It, Fix It!“ als praktischen Bestandteil der Übung der Lehrveranstaltung „Angriffssicherer Softwareentwurf“ einzuführen, was große Synergie zwischen Theorie und Praxis erzeugt.

Wir sind überzeugt, dass „Build It, Break It, Fix It!“ eine Bereicherung der Lehre darstellt, und arbeiten daran, es auch in den folgenden Semestern mit neuen Problemstellungen und organisatorischen Optimierungen anzubieten.

zurück zur Übersicht