Unternehmen, die eine Website betreiben, auf der sich Kunden oder Geschäftspartner einloggen können, um Zugang zu den dahinterliegenden Web-Apps zu erhalten, benötigen starke Sicherheitsbarrieren. Wie aber schützt man Web-Apps durch einen Penetrationstest?
Voraussetzung für Pentests im Bereich Web-Apps sind Testkonten
Bei einem Hackerangriff versucht der Angreifer, Zugriff auf für ihn interessante Anwendungen zu erhalten. Allerdings erfordern diese immer eine Anmeldung und beinhalten in der Regel eine Benutzerverwaltung. Soll ein Penetrationstest in diesem Bereich durchgeführt werden, braucht man dafür sogenannte Testkonten. Allerdings genügt es nicht, wenn dem IT-Sicherheitsexperten lediglich die Anwendung zur Verfügung gestellt und ein Testkonto eingerichtet wird. Da bei einem Penetrationstest sämtliche anwendungsspezifischen Workflows überprüft werden sollen, muss ein Testkonto maximal realistisch sein. Das bedeutet, dass es mit Testdaten versehen sein sollte. Nur so kann eine größtmögliche Testabdeckung erfolgen.
Was ein Web-App-Penetrationstest tut
Auch bei dieser Form des Pentests nutzen die ausführenden IT-Sicherheitsexperten das Wissen professioneller Hacker und gehen wie diese vor. Das beinhaltet folgende Schritte:
- Informationssammlung über die Webanwendung hinsichtlich ihres Geschäftszwecks,
- Identifizierung der durch die Webanwendung zu lösenden Problemstellung,
- Feststellung, durch welche Funktionen sie effizienter und einfacher nutzbar wird,
- Identifizierung sämtlicher Seiten, die mit der Web-App verknüpft sind,
- Zuordnung aller zwischen den Seiten bestehenden Links & Beziehungen sowie
- Feststellen der Eingabefelder der Zielanwendung und Test hinsichtlich möglicher böswilliger Eingabeattacken durch Uploads, Cross-Site-Scripting oder Injections.
Ein wichtiger Schritt beim Penetrationstest, wie ihn etwa die von Dr. Ewan Fleischmann gegründete Redlings GmbH, ein auf IT-Sicherheitsüberprüfungen spezialisiertes Unternehmen, durchführt, ist die Überprüfung der mit der Web-App verbundenen Geschäftslogik. Zudem identifiziert der Pentest Attacken, mit denen kritische Schritte umgangen werden können.
Praxis-Fall Nr. 1: Fehlerhafte Zugangsbeschränkung als Einfallstor für Hacker
Die erste Barriere einer Web-App sind die vom Betreiber einer Website eingebauten Zugangsbeschränkungen. Hier finden Hacker immer wieder Sicherheitslücken, bei denen benötigte Anmeldeinformationen überhaupt nicht abgefragt werden, oder so, dass sich das Abfragesystem umgehen lässt.
Das kann vor allem bei Webanwendungen passieren, die von so komplexer Struktur sind, dass die zu ihrem Schutz und zur Abwehr von Cyberattacken entwickelten Systeme nicht mehr funktionieren. Solche Schwachstellen lassen sich durch einen Penetrationstest identifizieren und mit geeigneten stärkeren Sicherheitsmaßnahmen schließen. Sehr häufig sind auch Versuche, über manipulierte Eingabefelder SQL-Einschleusungen vorzunehmen und Malware zu platzieren, die dann von der unternehmenseigenen Datenbank ausgeführt wird. Dadurch erhält der Hacker sensible Daten. Kennzeichen für solche Einschleusungen sind beispielsweise ursprünglich einfache Textfelder, in denen jetzt iFrames oder Scripts enthalten sind.
Praxis-Fall Nr. 2: Ungenügende Verschlüsselung der Daten auf dem Server
Eine Verschlüsselung mithilfe des sogenannten SSL-Netzwerkprotokolls gewährleistet zwar den sicheren Datenverkehr zwischen dem Anwender/Web-Browser und dem Server. Was das Protokoll hingegen nicht absichert, ist der Server selbst. Hier setzt der Penetrationstest an und identifiziert bei einem externen Test entsprechende Schwachstellen, denn Vertraulichkeit und Integrität hinsichtlich übertragener Daten ist für Unternehmen existenziell. Das gilt für das öffentliche wie das nicht-vertrauenswürdige Internet gleichermaßen.
Sehr häufig nutzen Hacker gerade diesen vermeintlichen Schutz, um mit ihrem Angriff auf diesem Weg noch zu oft im wahrsten Sinne „sicher“ und verschlüsselt bis zum unternehmenseigenen Web-Server zu gelangen. Wenn der Penetrationstest zeigt, dass an der Unternehmensgrenze ein großes Gefahrenpotenzial besteht, kann es sinnvoll sein, die bestehenden SSL-verschlüsselten Verbindungen genau dort zu unterbrechen.
Von IT-Sicherheitsexperten wird beispielsweise oft dazu geraten, an diesem Punkt eine Web-Application-Firewall (WAF) zu installieren. Sie ist dann in der Lage, den ankommenden Datenverkehr zu filtern und nur autorisierte Benutzeranfragen zum Web-Server durchzulassen. Wenn der Backend-Server ausschließlich verschlüsselte SSL-Anfragen bearbeitet, können die Daten zwischen der WAF und dem Server wieder SSL-verschlüsselt werden.
Praxis-Fall Nr. 3: Offene Weiterleitungen
Die URL-Struktur bei sogenannten offenen Weiterleitungen kann durch eine zusätzliche URL ergänzt werden. Dadurch haben Nutzer die Möglichkeit, über die Website eine Unterseite bzw. Datei aufzurufen. Diesen Umstand nutzen Hacker aus, um ihre eigene Malware bzw. ihre Spam-Seite zu platzieren.
Diese Sicherheitslücke kann ein Penetrationstest ebenfalls identifizieren und der Tester wird vermutlich dazu raten, die offenen Weiterleitungen zu unterbinden. Eine andere Möglichkeit besteht darin, diese Weiterleitungen zu signieren. Das bedeutet, dass das Unternehmen sie mittels kryptografischer Signaturen kennzeichnet und sie nur damit funktionieren.
Regelmäßige Penetrationstests helfen bei der Abwehr von Malware und Viren
Der große Vorteil beim Penetrationstest besteht darin, dass der ausführende Experte über fundiertes und immer aktuelles Hackerwissen verfügt. Dieses ermöglicht es ihm, während dem Web-Application-Penetrationstest genauso vorzugehen, wie ein professioneller Hacker. Dabei identifiziert er Sicherheitslücken in der Web-Application, testet, wie weit er in die Web-Struktur eindringen kann und erhält so wertvolle Hinweise, mit welchen Maßnahmen sich vorhandene Schwachstellen schließen und eine Web-App gegen Malware oder Viren schützen lassen.
Von Uwe Scholz ist freier Journalist in Berlin
#Redlines