SFIO CRACHO - stock.adobe.com
Penetrationstests aus unterschiedlichen Perspektiven
Viele der produktiv genutzten Anwendungen enthalten Lücken, die trotz der bisher durchgeführten Tests nicht entdeckt werden. Der falsche Blickwinkel auf die Tests ist das Problem.
Selbst erfahrene IT-Profis verlieren schnell das Ziel aus den Augen, wenn es um Sicherheitstests ihrer Anwendungen geht oder wenn sie interpretieren sollen, was die Ergebnisse dieser Untersuchungen wirklich bedeuten. Auch wenn die bisher durchgeführten Tests auf Schwachstellen und Sicherheitslücken wirklich die Realität wiedergeben könnten, ist das in der Praxis doch nur selten so.
Oftmals gehen Unternehmen davon aus, dass ihre Webapplikationen und die zugehörigen Umgebungen immer richtig und umfassend geprüft wurden. In Wahrheit sieht die jeweilige Lage jedoch meist ganz anders aus. Es ist deswegen keine Übertreibung, wenn Sie davon ausgehen, dass die Annahmen, Kontrollen und auch Fehler beim Testen für ein falsches Gefühl der Sicherheit sorgen.
In diesem Beitrag gehen wir auf verschiedene Aspekte beim Testen auf Sicherheitslücken in Anwendungen ein, die nicht übersehen werden dürfen. Nur so sorgen Sie für effizientere Vorgänge und das Finden und Eliminieren von bislang verborgenen Sicherheitslücken.
Welche Anwendungen werden getestet?
Ein gängiges Problem ist zum Beispiel, dass der Fokus meist auf den wichtigsten Kernanwendungen liegt, die ein Unternehmen nutzt, während andere als vermutlich gutartig eingestuft werden. Anwendungen aus den Bereichen Netzwerk und Security Management, Systeme für Multifaktor-Authentifizierungen, Marketing-Webseiten und andere Microsites werden deswegen erst deutlich später oder sogar gar nicht getestet. Das ist meist keine Absicht, sondern ein Nebeneffekt der bisherigen Vorgehensweise. Ziemlich sicher werden Sie jedoch eine unerwartete Überraschung erleben, wenn Sie eine vollständige Bestandsaufnahme der genutzten Software sowie eine Analyse der Auswirkungen auf Ihr Unternehmen durchführen. Praktisch immer taucht eine mehr oder weniger große Zahl von bislang ungeprüften Anwendungen auf, die aber trotzdem sensible Geschäftsdaten verarbeiten und speichern.
Außerdem müssen Sie dafür sorgen, dass alle Anwendungen entweder durch Sie und Ihr Team oder durch einen externen Dienstleister auf Herz und Nieren geprüft werden. Häufig kommt es während einer Bestandsaufnahme für Sicherheitstests vor, dass behauptet wird, dass eine Anwendung oder ein System nicht geprüft werden müssen, weil sie an einer anderen Stelle untergebracht sind, zum Beispiel bei einem Hosting Provider oder etwa bei AWS (Amazon Web Services). Damit täuschen Sie sich aber nur selber. Die Tatsache, dass Sie für Dienstleistungen wie Bandbreite und Verfügbarkeit bezahlen, bedeutet nicht, dass sich dort jemand auch wirklich um die Absicherung der jeweiligen Anwendungsumgebung kümmert – tatsächlich ist das sogar nur selten so. Nur wenn Sie regelmäßig Berichte über umfassende Penetrationstests zu Schwachstellen und Sicherheitslücken im Netzwerk und bei den genutzten Applikationen erhalten, können Sie davon ausgehen, dass die Umgebung zumindest weitgehend sicher ist.
Die Perspektive verschiedener Anwender berücksichtigen
Dazu kommt, dass viele der durchgeführten Tests nur aus der Perspektive eines nicht vertrauenswürdigen Außenseiters abgewickelt werden. Tests ohne Authentifizierung sind jedoch eine der größten Barrieren, wenn es um eine vollständige Anwendungssicherheit geht. Viel zu viele IT-Verantwortliche gehen davon aus, dass „vertrauenswürdige“ Anwender, die sich bei einem System anmelden und viele der Funktionen nutzen dürfen, schon nichts Böses im Schilde führen werden.
Ähnlich wie beim Durchführen von authentifizierten Tests bei Servern und Workstations, werden in der Regel aber auch bei Applikationen zahllose Lücken und Schwachstellen entdeckt, wenn die Tests noch einmal als eingeloggte Nutzer gestartet wurden. Trotzdem werden diese zusätzlichen Analysen bislang viel zu selten durchgeführt. Dies bedeutet nicht, dass Sie Ihre Tests aus der Perspektive jedes einzelnen Anwenders im Unternehmen erledigen sollen. Aber Sie sollten die wichtigsten Nutzerrollen testen, die der größtmöglichen Zahl Ihrer Anwender entsprechen. Dazu gehören auch Tests mit den Rechten der Top-Level-Admins. Nur auf diese Weise können Sie auch wirklich alle Sicherheitslücken aufspüren.
Um den eigentlichen Testprozess weiter zu unterstützen, sollten Sie im Jahresverlauf immer wieder mal durch die verschiedenen Nutzerrollen in Ihrem Unternehmen wechseln. Unter Umständen werden Sie immer wieder neue Sicherheitslücken aufdecken, die Ihnen zuvor nicht aufgefallen sind. Bedenken Sie dabei, dass zum Beispiel SQL Injection, Fehler bei der Verarbeitung von Daten oder Schwachstellen bei den Richtlinien zu Passwörtern nicht nur von legitimen Anwendern ausgenutzt werden können, sondern auch von kriminellen Hackern, die die Zugangsdaten eines oder mehrerer Ihrer Kollegen gestohlen haben. Wenn so eine Situation eintritt, dann ist es meist schwierig, böswilliges Verhalten von dem sonst üblichen Nutzerverhalten zu unterscheiden.
Sicherheitsmaßnahmen beeinflussen Ergebnisse
Ein weiterer Punkt ist ebenfalls noch zu beachten. Während der Tests können aktive Sicherheitsmaßnahmen im Unternehmen verhindern, dass die eingesetzten Schwachstellen-Scanner, Exploit-Tools und anderen Werkzeuge ihre Aufgabe vollständig erfüllen können. Viele IT-Manager, Security-Admins und DevOps-Mitarbeiter ziehen es vor, ihre Enterprise Firewalls, IPS-Systeme (Intrusion Prevention Systems) und Web Application Firewalls (WAF) während der Tests weiterlaufen zu lassen.
Wenn Sie nur Ihre Sicherheitsmaßnahmen im Netzwerk testen wollen, dann ist das in der Regel kein Problem. Aber es entspricht nicht der Realität, wenn Sie auf der Suche nach Schwachstellen in Ihren Anwendungen sind. Wenn Sie auf Ihre Sicherheitsmaßnahmen trotzdem nicht verzichten wollen, dann sollten Sie zumindest die bei den Tests für Ihre Tools genutzten IP-Adressen auf die Whitelists in den vorhandenen Security-Systemen setzen. Nur so stellen Sie sicher, dass auch wirklich das gesamte Netzwerk gescannt wird und nicht nur Teile davon.
Mehrere Tools einsetzen
In einer perfekten Welt benötigen wir nur ein kleines Tool-Set, um die maximale Zahl an Schwachstellen in unseren Anwendungen zu finden. Die Welt ist aber bei weitem nicht perfekt. Kein einziges der verfügbaren Werkzeuge wird alle Lücken finden, egal ob es sich um Standardscanner für Schwachstellen im Netzwerk, Application Vulnerability Scanner, HTTP-Proxies oder Software zur Analyse des Quellcodes handelt. Häufig spüren unterschiedliche Werkzeuge auch unterschiedliche Probleme auf. Das ist die manchmal frustrierende Realität, wenn es um die Suche nach Schwachstellen in Applikationen geht. Sie müssen aber nichtsdestotrotz alle nötigen Maßnahmen ergreifen und mehrere der verfügbaren Tools einsetzen, wenn Sie keine Schwachstellen übersehen wollen.
Wenn Sie nicht aus den richtigen Blickwinkeln auf die Sicherheit Ihrer Anwendungen schauen, werden kein klares Bild hinsichtlich der Gesamtsituation erhalten. Permanent einmal im Quartal, im Monat oder sogar in Echtzeit durchgeführte Tests sind aber meist nicht nötig. Sie sollten sich jedoch trotzdem kontinuierlich und regelmäßig darum kümmern. Tests aus allen möglichen Perspektiven sind der einzige Weg, um sicherzustellen, dass die von Ihnen genutzte Software auch wirklich frei von Schwachstellen ist.
Folgen Sie SearchSecurity.de auch auf Twitter, Google+, Xing und Facebook!