Security – Philosophie, Patterns und praktische Beispiele

So oder so ähnlich würde der ins Deutsche übersetzte Titel meines ersten Tutorials von der OOPSLA 2008 lauten. In fast vier Stunden hat Munawar Hafiz von der Universität of Illinois, uns in die Welt der Security Patterns eingeführt. Hafiz arbeitet mit Ralph Johnson (der von der Gang of Four) zusammen und hat an etlichen Publikationen über Security Patterns mitgearbeitet.

In seinem Tutorial geht es darum, verschiedene Patterns für die Sicherheit in Software Applikationen klassifizieren und anwenden zu können. Insgesamt hat Hafiz auf seiner Webseite mehr als 90 Patterns beschrieben und klassifiziert. Das Tutorial ist in zwei Teile aufgeteilt. Im ersten Teil demonstriert er zunächst welchen Einfluss Security auf die Software Architektur hat. Das ganze wird am Beispiel von sendmail durchgegangen. Zunächst stellt er Probleme von sendmail vor und zeigt wie diese mit qmail und postfix besser implementiert wurden. Hierbei geht er leider zu sehr ins Detail wie ich finde. Zwar werden bereits im ersten Teil einige Sicherheits Pattern vorgestellt (chroot jail, compartmentalization, secure pre-forking, single threaded facade, checkpoint system, content dependent processing etc.) aber er stellt die Architektur der drei genannten Mail Transfer Agents zu detailliert vor. Die Zeit wird später im zweiten Teil des Tutorials fehlen.

Nach einer kurzen Pause, lässt Hafiz die Teilnehmer an einem kleinen Spiel teilnehmen. Er lässt zwei Gruppen bilden. Dann verteilt er Blätter, die ein paar kurze, fiktive Geschichten aus der realen Welt enthalten. Zum Beispiel geht es um ein Army Camp, das von einer Seite aus beschossen wird, von der man keinen Angriff vermutet hat oder ein Königreich das für jederman zugänglich war und dessen König plötzlich ermordet wurde. Für jede Geschichte bildet eine Gruppe jeweils die ”Angreifer” und eine Gruppe die ”Verteidiger”. Jede Geschichte schliesst mit einer Frage an die ”Attacker” und die ”Security Experts” ab, in etwa ”Warum ist es vorher zu keinem Angriff auf den König gekommen”? Die Thematik wird dann in die Welt der Software übertragen und ein Security Pattern vorgestellt. Leider bricht Hafiz bereits nach 5 Geschichten ab, da er meint dass sich auf dem letzten Tutorial auf der OOPSLA 2007 alle am Ende gelangweilt hätten. Ich finde diese ”Übung” jedoch auflockernd und lustig.

Anders als erwartet, werden die verleibenden Security Patterns, die im Handout Material in Slides abgedruckt sind, nicht vorgestellt. Sehr schade wie ich finde. Der Pattern Katalog von Hafiz beinhaltet sehr viele gute Patterns, die sich auch in die Welt von Java und J2EE übernehmen lassen. Stattdessen beendet er das Tutorial, indem er in 30 Minuten durch eine Unmenge an Slides zu Buffer Overflow und SQL Injection durchrennt. Beide Problematiken sind mir zumindest ausreichend bekannt. Ich würde dieses Tutorial an erfahrene Entwickler und Architekten nur bedingt weiterempfehlen. Es wird sehr umfangreich auf Mail Transfer Agents der Linux Welt eingegangen und die eingentlich spannenden Patterns aus dem Security Catalogue nur kurz angerissen.