Für viele Programmierer sind Bücher eine wichtige Wissensquelle. Dies beinhaltet viele positive Aspekte – leider aber auch unsichere Programmiertechniken. Dieser Artikel möchte die Frage thematisieren, ob Programmierer die Schwachstellen, mit denen wir heute kämpfen, bereits aus dem Lehrbuch vermittelt bekommen haben.
Ein Beispiel für ein solches Buch sehen Sie auf dem Titelbild dieses Posts. Das Buch ist ebenso wie die OWASP Top 10 aus dem Jahr 2004 und enthält reichlich unsichere Quellcode-Beispiele mit SQL-Injections. Es ist einem unserer Mitarbeiter im Bücherregal eines Freundes in die Hände gefallen. Um den Einzelfall soll es hier aber gar nicht gehen. Es geht um die ganz allgemeine Frage, wie man damit umgeht, wenn Bücher und andere gedruckte Quellen Softwareschwachstellen enthalten.
Wir möchten hier die Diskussion zu diesem allgemeinen Problem anregen. Es ergibt sich, weil man gegebenenfalls mit unsicheren Programmiertechniken das Laufen gelernt hat. Besonders interessant wird das Problem, weil gerade Büchern eine besondere fachliche Autorität anhaftet, sie wiederholt als Nachschlagewerk genutzt werden und sich im privaten Bücherregal nicht „patchen“ lassen. Wie bei einem Gen-Defekt werden Fehler wieder und wieder reproduziert.
Kennen Sie auch solche Bücher?
Auch bei größter Sorgfalt passieren Fehler. Wie aber geht man damit um? Diskutieren Sie in den Kommentaren mit. Dieser Blog-Beitrag startet die Suche nach veralteter Literatur. Er soll das Bewusstsein wecken, alte Wälzer im Bücherschrank besonders kritisch zu beäugen und lieber neuere Literatur zu Rate zu ziehen. Hier besteht eine höhere Wahrscheinlichkeit, dass aktuelle Erkenntnisse der Sicherheitsforschung berücksichtigt wurden. Spielen sichere Programmiertechniken in einem Buch aber auch heute keine Rolle, sollte man besser skeptisch sein und in jedem Fall weitere Quellen zu Rate ziehen.
Erfahrene Security-Experten kennen sicher ebenfalls Beispiele – ob Bücher, Zeitschriften oder auch Vorlesungsunterlagen. Sie auch? Dann hinterlassen Sie doch gerne einen Kommentar am Ende der Seite und machen Sie andere darauf aufmerksam, wo man heute besser nicht mehr nachschlagen sollte. Wir freuen uns auch über Beispiele an: mail@cyclesec.com
Abhilfe
Hilfestellung bei der Vermeidung von Web-Schwachstellen bieten Initiativen wie das Open Web Application Security Project (OWASP). Die OWASP Top 10-Liste liefert bereits seit 2004 eine Liste der wichtigsten Web-Schwachstellen. Während Injection Schwachstellen 2004 noch auf Platz sechs lagen, stiegen sie 2007 auf Platz zwei auf, um die Liste seit dem Update von 2010 bis heute unangefochten anzuführen.
Schuld daran sollten nicht zuletzt unzeitgemäße Code-Quellen sein, die sich besonders im Falle von Büchern leider nicht nachträglich patchen lassen. Auch fast 15 Jahre nach dem Start der Top 10-Liste warten sie in Büchern, Foren und Zeitschriften darauf, wieder abgetippt zu werden.
Hinweis:
Der Autor dieses Blog-Beitrags ist selbst Autor mehrerer Fachbücher im Springer Verlag und bei Beuth und weiß, wie schwierig oder gar aussichtslos es sein kann, Fehler vollständig zu vermeiden. Es ging ihm ausdrücklich nicht darum, andere Autoren und Verlage mit erhobenem Zeigefinger negativ darzustellen. Es geht viel mehr darum, die Aufmerksamkeit darauf zu richten, dass viele Programmierer durch mittlerweile veraltete Bücher Schwachstellen bereits beim Erlernen einer Programmiersprache vermittelt bekommen haben, die sie ggf. noch heute als Nachschlagewerk nutzen.