In der heutigen digitalen Welt ist es zunehmend wichtig sicherzustellen, dass die aggregierten Informationen Ihres Unternehmens nicht von anderen gefunden und gestohlen werden können. Daher sollten Sie kontinuierlich an einer besseren Sicherheit arbeiten, indem Sie Tests durchführen, um herauszufinden, ob es Schwachstellen gibt. Wir wissen, dass Informationssicherheit schwierig sein kann. In diesem Artikel erkläre ich daher den Unterschied zwischen Schwachstellenscans und Penetrationstests. Ich hoffe, dass Sie dadurch ein besseres Verständnis der Tests und ihrer Bedeutung für Ihr Unternehmen erhalten.
Schwachstellenscans
Schwachstellenscans sind vollständig automatisiert. Sie geben lediglich an, welche Assets gescannt werden sollen. Sie sagen dem System, wonach es suchen soll, und dann geschieht alles automatisch. Durch regelmäßige Schwachstellenscans haben Sie einen guten Überblick über Ihren Reifegrad, beispielsweise bei jeder Veröffentlichung. Wenn Sie jede Woche eine Veröffentlichung machen, kann es sinnvoll sein, in ein dynamisches oder statisches Schwachstellentool zu investieren.
Beim Schwachstellenscan sucht das System aktiv nach Konfigurationsfehlern oder Schwachstellen, basierend auf Mängeln oder tatsächlichen Fehlern in Software, Server, Client, Switch, Router usw. Oft ist es ein grundlegendes Problem im Code, entweder hat man etwas unwissentlich gemacht oder man hat etwas weggelassen, z. B. in der Konfiguration.
Der größte Vorteil eines automatisierten Scans ist, dass man viele der leicht zu behebenden Probleme wie defekte Authentifizierung, Cross-Site-Scripting (XSS) oder andere Arten von Injections finden kann. Das ist schon mal ein guter Anfang.
Beispiele für die häufigsten Schwachstellen in Webanwendungen finden sich unter anderem in der Top-10-Liste des OWASP (Open Web Application Security Project) oder in den Sans Top 25.
Penetrationstests
Penetrationstests, auch Pentests genannt, sind Handarbeit. Dabei wird eine tiefere Analyse durchgeführt, die über die bloße Überprüfung der vorhandenen Schwachstellen hinausgeht. Mit einem Pentest dringt man tiefer in das System ein, um Zusammenhänge zu erkennen und ein tieferes Verständnis der Geschäftslogik zu erlangen. Wenn man die Denkweise der Entwicklung und Lösungssätze versteht, wird man wahrscheinlich zusätzliche Fehler finden, denn der menschliche Faktor kann nie ignoriert werden. Wir wissen, dass Menschen Fehler machen, wenn es um die Installation, Entwicklung und Verwaltung von Systemen geht. Diese Informationen könnten niemals von einem automatisierten Scan-Tool abgerufen werden, da ihm das rationale Denken fehlt, das wir Menschen haben.
Ein Beispiel hierfür ist die Zugriffskontrolle. Ein automatisiertes Scan-Tool für Webanwendungen kann nicht unterscheiden, ob die Daten, auf die es zugreifen kann, als Sicherheitsverletzung gelten oder nicht. Wenn ein „Standardbenutzer“ auf Informationen zugreifen kann, auf die nur ein Administrator zugreifen können sollte, dann haben Sie schlechte Zugriffskontrollen. Ein Mensch kann dies feststellen, indem er die Daten und das Geschehen analysiert.
Eine kurze Geschichte eines echten Falls:
„Bei einem unserer vorherigen Aufträge haben wir Penetrationstests an einer über das Internet zugänglichen Webanwendung durchgeführt und dabei eine Reihe von Schwachstellen gefunden, darunter nicht authentifizierte SQL-Injection. Die Schwachstelle ermöglichte das Lesen von Daten aus der Datenbank, wie Benutzer und Hashes. Nach einer eingehenderen Analyse stellte sich heraus, dass die Hashes manipuliert worden waren, und als wir verstanden, wie das ging, konnten wir die Passwörter knacken, uns bei der Webanwendung anmelden, Dateien hochladen und Code auf ihrem Webserver ausführen.
Vom Webserver aus erhielten wir vollen Zugriff auf das gesamte Produktionsnetzwerk, was den Domänencontrollern den Zugriff ermöglichte. Eine davon wies mehrere Schwachstellen auf und wurde trotz der Ersetzung durch einen neuen Domänencontroller und eine neue Domäne weiterhin für die alte Domäne verwendet. Die alte und die neue Domäne hatten eine bidirektionale Vertrauensbeziehung, was bedeutet, dass Sie unabhängig davon, ob Sie ein Konto in einer Domäne haben, Zugriff auf Ressourcen in der anderen haben. Aufgrund einer Kombination aus schlechter Konfiguration, regelrechten Softwarefehlern, fehlender logischer Trennung zwischen extern exponierten und internen Systemen sowie der Tatsache, dass der Kunde die alte Domäne nicht vollständig außer Betrieb genommen hat, konnten wir so weit in das Netzwerk und die Systeme des Unternehmens vordringen.“
Hätten Sie nur einen Schwachstellenscan für die Anwendung und keinen Penetrationstest durchgeführt, hätten Sie bestenfalls eine SQL-Injection festgestellt, aber nicht die verbleibenden Fehler.
Wiederkehrende Probleme, die wir in Unternehmen beobachten können
Ein häufiges Problem in Unternehmen ist, dass sie diese Tests nur als Teil eines Prozesses betrachten, der auf Anforderungen wie PCI-DSS oder DSGVO basiert. Sobald das Unternehmen die roten (hohen) und violetten (kritischen) Markierungen in seinem Bericht überwunden hat, betrachten sie die Arbeit als erledigt. Es wird nicht als wichtig erachtet, was man mit den Ergebnissen macht, der Fokus liegt auf dem Abhaken der Anforderungen.
Es ist gefährlich, einen Schwachstellenscan oder Penetrationstests einfach mit einer Art „Checkbox-Ansatz“ durchzuführen. Tatsache ist, dass in vielen Fällen die Umgebungen im nächsten Jahr meist gleich aussehen und immer noch dieselben Schwachstellen und Konfigurationsfehler vorhanden sind. Es werden dieselben Tests ausgeführt, die dieselben Schwachstellen zeigen, was bedeutet, dass der Reifegrad um 0 % steigt. Wie im Beispiel der Webanwendung oben – hätte das Unternehmen nur die Tests durchgeführt, ohne auf die Ergebnisse zu reagieren, hätte es böse enden können.
Eine bessere Kommunikation und ein besseres Verständnis der Tests und Ergebnisse könnten dieses Problem lösen. Sicherheit ist nicht leicht zu verstehen, weshalb es umso wichtiger ist, Berichte wirklich gründlich durchzugehen und Hilfe bei der Klärung des Inhalts zu erhalten. Wenn Sie die Bedeutung der Ergebnisse nicht verstehen, ist es schwierig, Maßnahmen zu ergreifen.
Das Risiko, keinen Schwachstellenscan oder Penetrationstest durchzuführen
Wenn Sie kein klares Bild davon haben, wie die Sicherheit in Ihren verschiedenen Systemen aussieht, wissen Sie auch nicht, welche Schwachstellen vorhanden sind und wie weit ein Außenstehender in die Systeme eindringen kann. Solange dieses Bild unklar ist, besteht immer das Risiko, dass Sie Verstößen ausgesetzt sind. Dies wiederum kann für Sie als Unternehmen extrem kostspielige Verluste verursachen. Nicht nur in Bezug auf Geld, sondern auch in Bezug auf den Ruf und die Arbeit zur Behebung des Schadens. Wagen Sie es wirklich, dieses Risiko einzugehen?
Zusammenfassend
Um es einfach zu machen, können Sie sich Schwachstellenscans als erste Ebene und Penetrationstests als die nächste vorstellen. Der Scan ist der Vorläufer des Pen-Tests ohne den menschlichen Aspekt. Er dient als Grundlage und bringt die bestehenden bekannten Schwachstellen ans Licht. Nach der Vorarbeit müssen Sie tiefer blicken, um zu verstehen, wie Entwickler und Administration die Systeme einrichten, Verbindungen erkennen und sicherstellen, dass Sie keine versteckten Einfallstore haben.
Wenn Ihre Sicherheitsarbeit heute mangelhaft ist und Sie keine Kontrolle darüber haben, was Sie dem Internet preisgeben, besteht ein höheres Risiko, dass Personen, die die Kontrolle über Ihre Infrastruktur übernehmen oder Ihre Daten stehlen wollen, unbefugten Zugriff darauf erhalten. Daher ist es wichtig, kontinuierlich Tests durchzuführen und auf der Grundlage der Testergebnisse zu handeln. Sehen Sie es nicht mehr als eine Anforderung, die umgesetzt werden muss, sondern als eine langfristige Anstrengung für ein sichereres System und eine sicherere Umgebung.
Wie gesagt, wir wissen, dass es schwierig sein kann, alles in den Griff zu bekommen, wenn es um IT-Sicherheit geht. Deshalb haben wir ein Webinar mit Schwerpunkt auf Anwendungssicherheit eingerichtet, in dem wir uns mit Schlüsselbereichen befassen, z. B. wie man Sicherheit in den Entwicklungsprozess einbezieht, was die häufigsten Angriffe sind und wann man sich für Open Source entscheiden sollte. Registrieren Sie sich, indem Sie auf das Bild klicken.
Mattias Döj
Mattias Döj ist ein sehr lockerer Typ und schätzt es, neue Leute kennenzulernen und einzubinden. Während seiner Zeit in der IT-Sicherheit hat er weltweit gearbeitet und ist um die Welt gereist, um eine Vielzahl von Penetrationstests durchzuführen.