Cyber-Kriminelle abwehren

So schützen Sie Ihre Web-Anwendung

04.11.2012
Von 
Diego Wyllie hat Wirtschaftsinformatik an der TU München studiert und verbringt als Softwareentwickler und Fachautor viel Zeit mit Schreiben – entweder Programmcode für Web- und Mobile-Anwendungen oder Fachartikel rund um Softwarethemen.

Simulierter Angriff

Im zweiten Schritt findet die eigentliche Schwachstellensuche statt. Jede Seite, die vom Scanner während des Crawl-Vorgangs erfasst wurde, wird einzeln und wiederholt untersucht. Dazu werden alle Formularfelder und Parameter innerhalb der Seite mit bestimmten Angriffsmustern vorbelegt und anschließend an die Web-Applikation geschickt, um deren Reaktion auszuwerten. An der Antwort lässt sich dann im Detail erkennen, wie die Anwendung auf den Angriff reagiert hat.

Wie viele Male wurde Ihr Unternehmen in den letzten zwei Jahren über eine Web-Anwendung angegriffen?
Wie viele Male wurde Ihr Unternehmen in den letzten zwei Jahren über eine Web-Anwendung angegriffen?

Nach Einschätzung der Security-Experten des BSI ist die Validierung und Filterung von Eingabe- und Ausgabedaten das A und O einer sicheren Web-Applikation. Insofern seien Web-Entwickler gut beraten, den Datenfluss nicht nur vom Benutzer zur Anwendung und umgekehrt, sondern auch zu den verschiedenen Subsystemen und von dort in die Ausgabe zu überprüfen und in ein ganzheitliches Konzept zur Data Validation zu integrieren. Eine Input-Validierung findet statt, bevor die Eingabedaten zum Zugriff auf Subsysteme, etwa eine Datenbank, genutzt werden. Dies geschieht zur Verhinderung von Injection-Angriffen. Dabei müssen Input-Daten auf potenziell gefährliche Zeichen untersucht und diese gegebenenfalls gefiltert werden. Hier bieten sich zwei Verfahren an: Beim "Blacklisting"-Ansatz werden die Zeichenmuster definiert, die aus dem Eingabestrom herausgefiltert werden sollen, während alles andere durchgelassen wird. Beim "Whitelisting" erfolgt dies umgekehrt: Alles, was nicht ausdrücklich erlaubt ist, ist verboten. Generell ist dem BSI zufolge das Whitelisting-Verfahren vorzuziehen. Der Grund: Wenn problematische Zeichenmuster vergessen oder bei der Implementierung nicht berücksichtigt wurden, werden sie beim Whitelisting-Verfahren automatisch geblockt, im anderen Fall nicht.

Session-Management

Auf der Logikebene geht es um die Art und Weise, wie die Fachprozesse in der Anwendung abgebildet sind und wie die Interaktion mit dem Benutzer gestaltet ist. Das Session-Management stellt dabei einen kritischen Punkt dar, mit dem sich Web-Entwickler intensiv befassen sollten.

Die semantische Ebene umfasst schließlich inhalts- und kommunikationsbezogene Aspekte und stellt den Vertrauenskontext für die Interaktion mit den Benutzern her. Wird in diesem Bereich kein hohes Maß an Sorgfalt aufgewendet, so erhöht sich die Gefahr, dass eine Web-Anwendung von Dritten missbraucht wird, um den Benutzer zu täuschen. Missbrauchsmöglichkeiten, die sich Fehler auf der semantischen Ebene zunutze machen, sind Social Engineering, Phishing sowie Identitätsdiebstahl. Das ist besonders gefährlich, denn neben Hackern stellen die Anwender das höchste Sicherheitsrisiko für Unternehmen dar. (ph)