Suchen

Die Webanwendung als Sicherheitsrisiko – Teil 3 Schutzvorkehrungen gegen Web-basierte Angriffe rechtzeitig treffen

Autor / Redakteur: Marcell Dietl / Stephan Augsten

Scannerprogramme suchen im Internet pausenlos nach verwundbaren Rechnern, Angriffe erfolgen häufig völlig automatisiert. Binnen weniger Stunden können Angreifer tausende Server kompromittieren und deren Daten stehlen. Der einzig wirksame Schutz sind präventive Maßnahmen, wie sie dieser letzte Teil unserer Artikelreihe „Die Webanwendung als Sicherheitsrisiko“ beschreibt.

Firmen zum Thema

Schon während der Entwicklung sollte eine Webanwendung ständig auf ihre Sicherheit hin durchleuchtet werden.
Schon während der Entwicklung sollte eine Webanwendung ständig auf ihre Sicherheit hin durchleuchtet werden.
( Archiv: Vogel Business Media )

Serverdienste wie der IIS von Microsoft oder die freie Alternative Apache werden von einer großen Anzahl von Programmierern entwickelt und haben sich bezüglich der Sicherheit stetig verbessert. Schwerwiegende Fehler gab es in den letzten Jahren kaum noch.

Webanwendungen jedoch sind vergleichsweise neuartig. Oftmals werden sie von kleineren Teams entwickelt und an die jeweiligen Bedürfnisse des Unternehmens angepasst.

Viele dieser „Webentwickler“ vernachlässigen die Sicherheit oder sind über die Risiken nicht ausreichend informiert. Daher muss ein Unternehmen nicht nur seine Mitarbeiter regelmäßig schulen sondern auch jede neue Webseite vor der Inbetriebnahme fachgerecht überprüfen.

Penetrationstests bei Webapplikationen

Wie bei Tests gegen die Infrastruktur eines Netzwerks oder von außen zugängliche Serverdienste unterscheidet man auch bei Programmen in Sprachen wie PHP oder JSP zwischen Black-Box- und White-Box-Testing. Entscheidender Unterschied ist dabei die dem Tester zur Verfügung stehende Menge an Informationen.

Bei einem Black-Box-Test befindet sich der Mitarbeiter in der gleichen Situation wie ein potentieller Angreifer. Das Ziel, etwa eine Domain, ist bekannt – jedoch nicht dessen Programmcode oder Einstellungen in Konfigurationsdateien. Ohne weitere Vorkenntnisse wird anschließend versucht möglichst viele Fehler zu finden und erfolgreich auszunutzen.

Ein White-Box-Test hingegen bietet dem Mitarbeiter die Möglichkeit den Code einer Anwendung zu betrachten. Unter Umständen darf er auch mit einem extra erstellten Testaccount Funktionen überprüfen, die öffentlich nicht erreichbar sind.

Seite 2: Automatisierte und manuelle Angriffe

Automatisierte und manuelle Angriffe

Mittlerweile gibt es unzählige Tools im Internet, die mit der Intention programmiert wurden, Webseiten auf Fehler zu testen und diese möglichst gezielt und ohne jegliche Nutzerinteraktion auszunutzen. Viele dieser Programme sind frei verfügbar und technisch sehr ausgereift, jedoch oftmals nur speziell auf einen Angriff ausgelegt (bspw. SQL Injection).

Diese Lücke füllen immer mehr Firmen, die ihre Produkte als sehr umfangreich und vollständig automatisiert anpreisen. Solche Penetrationstools sollen es dem Versprechen nach möglich machen, schnell und ohne viel technisches Verständnis die eigene Webseite auf Schwachstellen zu testen.

In der Praxis funktioniert dies meist nur mäßig erfolgreich. Zudem enthalten die erstellten Reports automatisierter Scans oft eine große Anzahl an False Positives sowie Negatives.

Deshalb sollte die finale Analyse immer ein fachlich gut ausgebildeter Mitarbeiter oder ein externer Anbieter übernehmen. So ist sichergestellt, dass der für das Unternehmen erstellte Report korrekt ist und darauf besierend die richtigen Entscheidungen getroffen werden können.

Überprüfung des Programmcodes

Penetrationstests sollten zwar nie komplett vermieden werden, der dafür nötige Zeitaufwand kann jedoch durch regelmäßige Codeüberprüfungen bei neuen Webanwendungen stark reduziert werden. Viele Programme bestehen mittlerweile aus tausenden Zeilen Code und vielen verschiedenen logisch getrennten Blöcken, die miteinander interagieren.

Eine Analyse der gesamten Anwendung kurz nach der offiziellen Fertigstellung ist sehr aufwändig und oftmals werden dabei Fehler übersehen. Deshalb raten viele Experten dazu ein Programm in mehreren Stadien zu untersuchen.

Nur so kann man die Programmierer immer wieder dazu zu ermutigen Fehler schnellstmöglich zu korrigieren und nicht an anderer Stelle erneut einzubauen. Wichtig ist dabei die richtige Planung und Absprache untereinander.

Seite 3: Regelmäßige Schulungen der Mitarbeiter

Regelmäßige Schulungen der Mitarbeiter

Ebenso wichtig wie das Trainieren des Sicherheitsbewusstseins der Programmierer, ist es dem „normalen“ Angestellten seine Verantwortung gegenüber der Firma bewusst zu machen. Besonders der erste Teil dieser Artikelreihe zeigt, dass Angreifer häufig auf das schwächste Glied in der Kette abzielen, etwa Supportmitarbeiter.

Ungeschulte Anwender sind sich oftmals nicht darüber im Klaren, dass schon das Anklicken eines Links in einer E-Mail oder das Ausführen von Programmen auf dem Arbeitsrechner für das Unternehmen eine Gefahr birgt. In entsprechenden Schulungen sollte ihnen das immer wieder bewusst gemacht werden.

Fazit

Die oftmals versprochene hundertprozentige Sicherheit gibt es ebenso wenig wie Programme, die es erlauben, komplexe Sicherheitstests ohne jegliches Vorwissen auszuführen und auszuwerten. Entscheidend ist, dass sich Mitarbeiter als Teil des Unternehmens betrachten und ihnen ihre Verantwortung gegenüber diesem bewusst ist.

Ähnlich der Entwicklung eines Netzwerkes sollten auch bei der Erstellung von Webanwendungen Planung und schrittweise Umsetzung beachtet sowie manuelle Tests vor der Inbetriebnahme nicht versäumt werden.

Artikelfiles und Artikellinks

(ID:2019388)