Die meisten Sicherheitslücken sind erschreckend offensichtlich

Sebastian BergmannArne BlankertsStefan Priebsch |

Im Rahmen des Countdown zur Spring Edition der International PHP Conference 2012 setzt der Sicherheitsexperte Arne Blankerts die Hacker-Maske auf und gibt einen Ausblick auf seine Tutorials und Vorträge zur PHP-Sicherheit. In diesem Interview spricht er über die häufigsten Sicherheitslücken in Anwendungen und Werkzeuge, die Sicherheitsprobleme in Anwendungen aufspüren sollen.

Eric Herrmann: In Ihrem IPC Workshop betreten Sie mit den Teilnehmern die dunkle Seite der Macht und schauen sich Anwendungen aus der Perspektive des angreifenden Hackers an. Welche Erkenntnisse kann dieser Seitenwechsel hervorbringen?

Arne Blankerts: Primär natürlich Verständnis. Verständnis, wie Angreifer arbeiten und warum selbst vermeintlich kleine Fehler gnadenlos ausgenutzt werden. Natürlich hoffe ich auch, den Teilnehmern verdeutlichen zu können, dass es die Angreifer eben nicht mal zwingend auf sie persönlich abgesehen haben - sondern man im Zweifel ein Zufallsopfer werden kann. Mit all den nervigen und gegebenenfalls teuren Folgen.

Eric Herrmann: Was sind gängige Sicherheitslücken, denen sich Hacker auch ohne Zugriff auf den Quellcode einer Anwendung bedienen können?

Arne Blankerts: Die meisten Sicherheitslücken sind erschreckend offensichtlich. Ein Zugriff auf den Sourcecode würde im Zweifel nur die Zeit verkürzen, bis man die Lücke gefunden und einen passenden Exploit programmiert hat. Die Fehler reichen daher von klassischem XSS über CSRF - mit und ohne Ajax - oder auch SQL-Injection, bis zu Angriffen auf die Session, deren ID und - relativ neu mit einem Namen versehen - dem Puzzling.

Eric Herrmann: Welche Tools können dabei helfen, Sicherheitsprobleme in Anwendungen aufzuspüren und bestenfalls sogar zu beheben?

Arne Blankerts: Kein Tool kann Sicherheitsprobleme beheben. Mit etwas Glück kann es lediglich die Ausnutzbarkeit reduzieren oder gar verhinden. Im PHP-Umfeld wird dies wohl vor allem die Suhosin-Erweiterung bzw. der dazugehörige Patch von Stefan Esser sein, selbst wenn dieser Patch nicht ganz unumstritten sein mag. Von allgemeinen automatisierten Source-Code Scannern halte ich im Security Context wenig, PHP ist aufgrund seiner dynamic kaum statisch auf Sicherheit zu analysieren. Aber natürlich kann man mit Scannern auch aktiv versuchen, Fehler zu erzwingen und das Verhalten der Anwendung auswerten. Diese Tools könnten praktisch sein, ihr Einsatz ist in Deutschland laut aktueller Gesetzeslage - Stichwort Hacker-Paragraph - juristisch mal nicht ganz ungefährlich.

Eric Herrmann: Sicherheit ist ja ein Dauerbrenner und quasi ein stetiger Kampf zwischen Hacker und Security-Experten. Wie können PHP-Entwickler sich in Sachen Sicherheit auf dem aktuellen Stand halten, abseits der regelmäßigen Updates?

Arne Blankerts: Wenn man sich die Liste der TOP Security Fehler, beispielsweise die OWASP Top 10, ansieht, wird man merken, dass sich erschreckend wenig ändert: Lediglich die Reihenfolge, welcher Fehler häufiger angetroffen wird, wechselt. Ich glaube, speziell im PHP Umfeld fehlt es häufig einfach nur am Bewusstsein, was eigentlich möglich ist und wie Angreifer eine Webseite und die dahinter stehende Infrastruktur sehen. Daher auch der Seitenwechsel im Workshop.

Eric Herrmann: Eine weitere Ihrer Sessions auf der IPC trägt den Namen: Deployment == Annoyment? Was raten Sie, damit das Deployment eben nicht zum Ärgernis wird?

Arne Blankerts: Meine Session zu besuchen? Aber im Ernst: Im Grunde geht es darum, Deployments richtig zu planen und sich passende Workflows zu überlegen, die beim Unternehmen bzw. beim Projekt praktikabel einsetzbar sind. Es gibt Erfahrungen, an welchen Tagen zum Beispiel ein Deployment sinnvoll ist und wann eher gefährlich. Ein Tipp: Am Abend bevor man für mehrere Tage zu einer Konferenz aufbricht, wäre ein schlechter. Auch das Wie ist natürlich eine Frage, der man nachgehen sollte: Der klassische, händische FTP-Upload hat im professionellen Umfeld nichts verloren.

Das Interview wurde ursprünglich auf entwickler.de veröffentlicht.