Unsere Security Analysten decken während ihrer Penetrationstests immer wieder Einfallstore in IT-Systemen und Anwendungen auf, die erhebliche Risiken für die Unternehmenssicherheit darstellen. Dabei begegnen ihnen vermehrt die gleichen Schwachstellen in unterschiedlichen IT-Assets, die teilweise schon seit Jahren bekannt sind. In unserer Mini-Serie stellen wir unsere Top 5 auffälligsten Schwachstellen aus 2020 vor. Teil 1: Cross-Site Scripting
Hintergrund zur Schwachstelle
Als Cross-Site Scripting wird eine Schwachstellen-Kategorie bezeichnet, die es einem Angreifer erlaubt, schadhaften JavaScript-Code in die Antworten eines Webservers einzuschleusen. Der Webbrowser eines anderen Benutzers kann den schadhaften Code dann nicht vom legitimen Code der Anwendung unterscheiden und führt die schadhaften Skripte entsprechend aus. Dies hat in der Regel zur Folge, dass der Angreifer die aktuelle Sitzung seines Opfers komplett übernehmen kann.
Beispielhafter Hackerangriff und seine Folgen
Die unten dargestellte HTTP Anfrage zeigt, wie ein Angreifer schadhaften JavaScript Code innerhalb einer Anwendung einbettet. Besucht ein Opfer nun den entsprechenden Endpunkt innerhalb der Applikation, so wird der JavaScript-Code in seinem Browser Kontext ausgeführt. Das in diesem Beispiel verwendete JavaScript extrahiert dabei die Zugangsdaten des Opfers, welche innerhalb des Browsers gespeichert wurden.:
Abbildung 1: Angreifer platziert schadhaften JavaScript-Code innerhalb einer verwundbaren Anwendung
Abbildung 2: Ein Benutzer besucht die verwundbare Seite – Seine Zugangsdaten werden extrahiert
Zur besseren Sichtbarkeit werden in unserem Beispiel die Zugangsdaten des Opfers innerhalb des Browsers dargestellt. Ein echter Angriff würde keine für das Opfer sichtbar Spuren hinterlassen. Die Zugangsdaten werden in diesem Fall über das Netzwerk an einen vom Angreifer kontrollierten Server geschickt, ohne dass das Opfer etwas davon mitbekommt.
Maßnahmenempfehlung
Vom Benutzer kontrollierte Eingaben sollten immer als potentiell gefährlich betrachtet und niemals ohne ausreichende Filterung und Enkodierung innerhalb von Serverantworten eingebettet werden. Entsprechende Funktionen zur Filterung und Enkodierung von Eingaben stehen dabei in allen gängigen Programmiersprachen zur Verfügung. Der korrekte Einsatz von Frameworks sowie regelmäßige Schulungen von Entwicklern sind wichtige Maßnahmen, um Cross-Site Scripting Schwachstellen zu verhindern.
Bitte beachten Sie, dass es sich hierbei um eine allgemeingültige Maßnahmenempfehlung handelt. Gern unterstützen wir Sie mit individuellen Lösungen. Sprechen Sie uns gern an.
In unserem Jahresbericht 2020 finden Sie mehr zu unseren Top 5 auffälligsten Schwachstellen und weitere spannende Themen.