Zum 14. Mal widmet sich die Fachtagung „Zukunft der Netze” am 24. 9. 2015 den aktuellen Forschungstrends im Bereich der Kommunikationsnetze und -systeme. In diesem Jahr werden vier wichtige Zukunftsthemen aufgegriffen: Software-Defined Networking (SDN), Industrie 4.0, Netzsicherheit und 5G Mobilfunknetze. Am Vortag, dem 23. 9. 2015, findet der Workshop „Neue Herausforderungen in der Netzwerksicherheit“ statt. Er dient als Diskussionsplattform verschiedener Themen im Bereich der IKT-Sicherheit. In unserem Vortrag mit dem Titel „Strategie zur Erkennung und Störung von automatisierten Angriffen auf Web-Anwendungen“ geht es um einen Ansatz, wie mit Hilfe verschiedener Methoden ein Angriff gestört werden kann, so dass Angriffe nicht nur verhindert, sondern Angreifer durch hohen Ressourcenverbrauch, großen Zeitverlust und fehlerhafte Ausgaben entsprechend belastet werden.
Ausgangslage
Bei der sicheren Entwicklung von Web-Anwendungen werden viele Faktoren und Standards beachtet, um die Sicherheit zu erhöhen und somit einen Angriff zu unterbinden. Angreifer führen viele Tests automatisiert durch, um Schwachstellen zu erkennen. Dieser Ansatz stellt eine Strategie vor, wie mit Hilfe verschiedener Methoden ein Angriff gestört werden kann. Angriffe werden nicht nur verhindert, sondern Angreifer durch hohen Ressourcenverbrauch, großen Zeitverlust und fehlerhafte Ausgaben entsprechend belastet.
Bei einem Großteil aller Besucher von Web-Anwendungen handelt es sich um automatisierte Bots. Laut einer Studie des Unternehmen Incapsula, bei der 15 Milliarden Zugriffe innerhalb von 90 Tagen auf 20.000 Websites ausgewertet wurden, wurde festgestellt, dass mehr als die Hälfte aller Zugriffe, um genau zu sein 56 Prozent, durch Bots erfolgte. Davon wiederum wurden 29 Prozent als potentielle Angreifer eingestuft, die sich darauf spezialisiert haben, automatisiert nach Sicherheitslücken in Web-Anwendungen zu suchen.
Mittlerweile stehen viele unterschiedliche Methoden und Werkzeuge zur Verfügung, die die Entwicklung von sicheren Web-Anwendungen ermöglichen. Häufig wird jedoch nur die reine Absicherung an sich betrachtet. Zum Beispiel werden entsprechende Filter angewandt, damit kein Schadcode eingeschleust werden kann. Die Erkennung zur Identifizierung, ob es sich um einen Angriff handelt oder nicht, wird häufig nicht implementiert. Deshalb gibt es nur in den seltensten Fällen eine Statistik über verhinderte Angriffe. Dieses Vorgehen führt dazu, dass Angreifer nicht blockiert werden und in der Folge diese die Gelegenheit bekommen, weitere andere Angriffsvektoren zu testen und andere Bereiche anzugreifen. Bestehen Mechanismen zum Blockieren von Angreifern, besteht die Gefahr, dass ein Botnetz verwendet wird und somit beim Folgeangriff einfach eine neue IP-Adresse und eine neue Identität verwendet werden.
Lösungsansatz
Dieser Ansatz befasst sich mit der Entwicklung einer Web-Honeypot Strategie, mit der Angreifer möglichst umfangreich ausgelastet und gestört werden können. Als Erstes müssen Angriffe erkannt werden. Hier kann zum Beispiel die Fehlerseite ausgewertet werden, ob Zugriffe auf Login Seiten von weit verbreiteten CMS erfolgt sind, ob versteckte Felder bei Login Masken ausgefüllt worden sind und wie viele Login Versuche durchgeführt wurden. Mit allen diesen Abweichungen, zum Beispiel auch die Zeitdauer zwischen zwei Klicks, können automatisierte Bots enttarnt werden.
Wurde ein Angriff erfolgreich erkannt, muss der Angreifer für eine weitere Behandlung eindeutig identifiziert werden. Häufig erfolgt die Identifizierung anhand der IP-Adresse. Verwendet ein Angreifer mehrere Proxys bzw. ein Bot-Net, kann die IP-Adresse häufig gewechselt werden. Gleichzeitig kann eine öffentliche IP-Adresse von mehreren Benutzern verwendet werden. Nicht nur die IP-Adresse kann verwendet werden, sondern der Angreifer muss analysiert werden. Passiv können alle Daten gesammelt werden und mit einem Browser Fingerprinting zu einem eindeutigen Hash zusammengefasst werden. Dies funktioniert allerdings nur, wenn der Angreifer diese Daten unverändert lässt und nicht ständig zufällig generiert. Eine weitere Methode ist die aktive Analyse. Dabei wird zum Beispiel untersucht, welche Dienste aktiviert sind. Eine weit verbreitete Methode ist die Verwendung eines gekaperten Webservers, um die eindeutige Identität zu verschlüsseln. Ist auf diesem Server SSH aktiviert, kann der SSH-Key als Identifikationsmerkmal genutzt werden. Dieser wird nur sehr selten geändert und größtenteils nach der Installation gar nicht mehr.
Nachdem eine eindeutige Identifizierung erfolgt ist, schalten sich die Web-Anwendungen in einen Web Honeypod Modus. Dabei werden zum Beispiel alle Schreibzugriffe deaktiviert und für eine spätere Analyse protokolliert. Gleichzeitig werden dem Angreifer keine Fehlermeldungen angezeigt, damit weitere Angriffsvektoren ausprobiert werden. So können zum Beispiel beliebig viele Login Versuche ausgeführt werden. Gleichzeitig werden weitere Störungen gezielt verursacht, um die Ressourcen des Angreifers zu binden, damit weniger Angriffe erfolgen. So kann zum Beispiel die Antwort des Webservers mit zufällig generierten Timeouts künstlich verzögert werden. Ebenso kann mit der Generierung von künstlichen Inhalten die Menge der übertragenen Daten erhöht werden, um zum einen die Bandbreite des Angreifers einzuschränken und zum anderen die Analyse zu erschweren und zu verlangsamen. Wird erkannt, dass der Angreifer JavaScript ausführt, können auch darüber weitere Inhalt generiert werden, ohne dass der Webserver belastet wird. Zusätzlich kann auch noch fehlerhafter Code zurückgegeben werden, um einen Angreifer weiter zu belasten.
Ausblick
Da dieser Lösungsansatz auf mehreren Schichten basiert, muss zuerst geklärt werden, wie eine eindeutige Erkennung eines Angreifers durchgeführt werden kann. Dazu müssen zuallererst entsprechende vorhandene Systeme evaluiert werden und gegebenenfalls neue Methoden entwickelt werden. Anschließend muss eine eindeutige Identifizierung des Angreifers möglich sein, um den Web Honeypot Modus korrekt anwenden zu können. Abschließend muss mit einem Prototyp geklärt werden, wie sich die Häufigkeit und Ausprägungen von Angreifen mit dem Einsatz einer Web-Honeypot verändert.
Aus diesen Überlegungen haben sich weitere interessante Handlungsfelder ergeben. Zum Beispiel wäre es sehr spannend, wenn Web IDS-Systeme für eine Vielzahl von weit verbreiteten CMS (TYPO3, Joomla, Drupal, Contao, …) verfügbar wären, entweder als Plug-In zum nachträglichen Installieren, ohne schon standardmäßig im Core implementiert zu sein. So würde auf einer Vielzahl von Domains eine sehr große Bandbreite von automatischen Angriffen erfasst und entschärft werden können. Würde daraufhin eine Signatur dieser erkannten und identifizierten Angreifer gespeichert und in einer zentralisierten Datenbank gespeichert werden, auf welche alle Web IDS zugreifen könnten, könnten diese Gefahren schon geblockt oder in einem Web-Honeypot isoliert werden, bevor ein Angriff gestartet wird. Damit würde wohl eine Vielzahl automatisierter Bots verschwinden, wie wir sie heute kennen.
Die Folien zum Vortrag „Strategie zur Erkennung und Störung von automatisierten Angriffen auf Web-Anwendungen“ können hier online eingesehen werden: