Der Umgang mit sensiblen Daten ist gerade heute ein brandaktuelles Thema. Viele Unternehmen betreiben Webanwendungen im guten Glauben an einen hohen Schutzgrad ihrer Informationen. Schutzmaßnahmen, wie durch Firewalls und Kommunikationsverschlüsselung gehärtete Serverinfrastrukturen bis hin zur physikalischen Absicherung der Rechenzentren, suggerieren vermeintliche Sicherheit – eine leichtsinnige Annahme, denn Sicherheitslücken in Webanwendungen werden übersehen. Ein potenzieller Angreifer verschafft sich unberechtigten Zugang zu einer ungeschützten Anwendung. Da diese über in der Netzwerkfirewall freigeschaltete Kanäle und Protokolle mit dem Server kommuniziert, hat der Angreifer Zugriff auf sensible Unternehmensdaten. Die Webanwendung dient ihm "als Tor" zum Informationssystem.
Die oben genannten Sicherheitsmechanismen auf Netzwerk – beziehungsweise Infrastrukturebene bleiben hier wirkungslos. Webanwendungen sind daher zusätzlich abzusichern. Nur Maßnahmenpakete für Netzwerk-, Infrastruktur- und Anwendungssicherheit zusammengenommen liefern ausreichenden Schutz gegen Angriffe. Dieser Artikel betrachtet beispielhaft einige Angriffsszenarien gegen Webanwendungen "aus der Nähe" und erläutert, wie diesen durch Implementierung sicheren Quellcodes zu begegnen ist. Anschließend werden verschiedene Standardlösungen, hauptsächlich so genannte Web-Application-Firewalls (WAF), vorgestellt. Der Schwerpunkt der Betrachtungen liegt auf dem Open-Source-Produkt WebCastellum.
Lagebericht
Unerkannte Sicherheitslücken, die eine Kompromittierung von IT-Systemen durch Angreifer ermöglichen, lauern auf allen Ebenen einer Systemarchitektur. Neben der Absicherung von Servern und Netzwerken ist beispielsweise auch Infrastruktursoftware regelmäßig auf Sicherheitslecks zu prüfen. Um diese Gefahr zu verdeutlichen, sei auf den Ende 2008 von den Tomcat-Entwicklern entdeckten UTF-8 Bug in vielen JVMs hingewiesen. Dieser führt dazu, dass nicht dem Standard entsprechende UTF-8-Enkodierungen unerkannt bleiben. In Tomcat-Versionen vor 6.0.18 öffnet diese Sicherheitslücke in der JVM beispielsweise die Möglichkeit für Directory-Traversal-Angriffe (siehe auch hier), wodurch eigentlich geschützte Verzeichnisse des Servers zugänglich werden.
Daher sollte jeder Java-Applikationsserver- und Tomcat-Betreiber schnellstens auf eine entsprechend neuere Version aktualisieren, die einen "Workaround" für dieses Problem beinhaltet. Noch wichtiger ist allerdings ein Update auf ein aktuelles Release der jeweiligen verwendeten JVM. Grundsätzlich lassen sich derartige Gefahren in Unternehmen durch ein stringentes und zeitnahes Patch- und Releasemanagement, das immer Bestandteil von Betreiberverträgen sein sollte, deutlich reduzieren.
Um eine Aussage zu erhalten, wie verbreitet Lücken auf reiner Anwendungsebene sind, existieren nur wenige Quellen. Bug-Reports oder Ähnliches sind für Individualanwendungen nicht öffentlich verfügbar. Das Web Application Security Consortium (WASC) hat sich dieses Problems angenommen und die "Web Application Security Statistics" aufgesetzt. Im Rahmen dieses Projektes sammelt das WASC auf freiwilliger anonymisierter Basis Daten von Firmen, die Sicherheitsprüfungen an individuellen Webanwendungen, z. B. in Form von Penetrationstests und Quellcodeanalysen, durchgeführt haben. Diese Daten werden auf ein vorgegebenes Raster von Bedrohungsvektoren aggregiert und statistisch ausgewertet. Über die Repräsentativität der Webseitenauswahl sind leider keine Angaben vorhanden, dennoch vermittelt die Statistik einen guten ersten Eindruck der Angreifbarkeit von Webanwendungen.
Gemäß der Auswertung aus dem Jahre 2007 wurden 826 Websites durch automatische und manuelle Blackbox- und Whitebox-Methoden untersucht. Im Ergebnis seien in 800 Websites, das sind über 96 Prozent, schwere Sicherheitslücken aufgedeckt worden. Die Spitzenreiter unter den gefundenen Angriffsvektoren bildeten Cross-Site-Scripting (auch hier und hier) und SQL Injection, gefolgt von Information Disclosure. Die Statistik untermauert die Aussage, dass der Aspekt der Anwendungssicherheit leider heute immer noch vielerorts in IT-Projekten unberücksichtigt bleibt. Den meisten Unternehmen ist nicht bewusst, dass sie dabei ein hohes Risiko eingehen, wirtschaftlichen Schaden zu erleiden. Aber auch IT-Dienstleister sollten das Thema nicht auf die leichte Schulter nehmen.
Neben der grundsätzlichen Sorgfaltspflicht lässt sich erkennen, dass einzelne Auftraggeber bereits heute IT-Sicherheitsaspekte zu einem festen Bestandteil ihrer Verträge machen. Dieser Trend wird sich in der nächsten Zeit fortsetzen. Daher sind Dienstleister, interne IT-Abteilungen und Softwareproduzenten gut beraten, in ihren Planungen und Kalkulationen entsprechende Maßnahmen vorzusehen und dieses Sicherheitsproblem auch deutlicher zu kommunizieren. Dies wird in naher Zukunft sicherlich zu einem nachweisbaren Wettbewerbsvorteil führen, Vertrauen in den Internetmarkt zurückbringen und zur Steigerung des Wertes einer Webanwendung beitragen.




