Was ist der beste Weg, um XSS-Angriffe zu verhindern?

Cross-Site-Scripting-Schwachstellen werden seit Anfang der 2000er Jahre von Angreifern ausgenutzt, und XSS steht seit 2004 auf der OWASP Top 10-Liste kritischer Sicherheitsrisiken für Webanwendungen. Viele Entwickler, Systemadministratoren und sogar einige Penetrationstester nehmen es jedoch immer noch nicht ernst. Um ein effektiver Webanwendungshacker oder -verteidiger zu werden, müssen Sie die Grundlagen zur Verhinderung von XSS-Angriffen verstehen.

XSS-Angriffe sind nach wie vor ein Problem

Cross-Site Scripting ist eine Art Sicherheitsanfälligkeit in Webanwendungen, die es Angreifern ermöglicht, bösartigen clientseitigen Code in den Browser des Opfers innerhalb einer legitimen Webanwendung einzufügen und auszuführen.

Die Auswirkungen und der Schweregrad erfolgreicher XSS-Angriffe können variieren. XSS-Angriffe können zu Session-Hijacking, gestohlenen Tokens, gestohlenen Session-Cookies und Cross-Site-Request-Forgery-Angriffen führen. Diese Angriffe können dazu führen, dass Benutzerkonten kompromittiert werden.

Ein erfolgreicher XSS-Angriff kann es einem Angreifer auch ermöglichen, gestohlene oder gefälschte Cookies zu verwenden, um sich als gültige Benutzer auszugeben. In Fällen, in denen der gültige Benutzer über Administratorrechte innerhalb der Anwendung verfügt, kann der Angreifer diese Berechtigungen verwenden, um Seiten zu ändern oder Remotecodeausführung auf der Serverseite der Anwendung durchzuführen.

Arten von XSS-Angriffen

Es gibt drei Arten von XSS-Angriffen: gespeicherte, reflektierte und DOM-basierte (Document Object Model).

  1. Ein gespeicherter XSS-Angriff ermöglicht es einem Angreifer, ein schädliches Skript in eine anfällige Seite einzubetten, das dann ausgeführt wird, wenn ein Opfer die Seite anzeigt. Gespeichertes XSS gilt als die schädlichste Art von XSS-Angriff. Wenn ein Angreifer beispielsweise eine schädliche JavaScript-Nutzlast direkt in eine anfällige Webanwendung injiziert, speichert der Webbrowser die injizierte JavaScript-Nutzlast. Jedes Mal, wenn das Opfer diese Website oder Webanwendung besucht, wird der schädliche Code ausgeführt.
  2. Ein reflektierter XSS-Angriff tritt auf, wenn die schädliche Nutzlast in einen Link eingebettet und nur aktiviert wird, wenn der Benutzer auf den Link klickt. Hier wird die schädliche Nutzlast nicht gespeichert, sondern nur in Form einer URL oder Postdaten auf der Webseite angezeigt.
  3. Eine DOM-basierte XSS-Sicherheitsanfälligkeit tritt auf, wenn das DOM zum Generieren dynamischer Inhalte verwendet wird, die Benutzereingaben enthalten, die ohne Überprüfung verarbeitet werden können. Diese Art von Angriff wird mit JavaScript im Browser des Opfers ausgeführt

XSS-Angriffsprävention

Um XSS-Angriffe zu verhindern, müssen Entwickler Benutzereingaben validieren, indem sie Sonderzeichen ordnungsgemäß herausfiltern oder umgehen und dann die Ausgabe codieren, um gespeicherte XSS-Angriffe und reflektierte XSS-Angriffe zu verhindern. Die folgenden Sonderzeichen sollten immer herausgefiltert oder maskiert werden, um zu verhindern, dass sie böswillig ausgenutzt werden:

<

>

)

(

&

Entwickler sollten Benutzereingaben – Quellen – validieren und die Ausgabe – Senken – codieren, um DOM-basierte XSS-Angriffe zu verhindern. In der Eigenschaft input source liest das DOM, und in der Quelle kann der Angreifer bösartigen Code einfügen, um die XSS-Sicherheitsanfälligkeit auszunutzen. Die folgenden Quelleigenschaften sollten vermieden werden:

  • URL
  • documentURI
  • location
  • href
  • search
  • hash

Sinks sind die Punkte, an denen das DOM die schädlichen Zeichen oder den Code von der Eingabe – der Quelle – ausführt, die wiederum auf der Webseite ausgegeben wird. Diese Senken sollten vermieden werden, um Denial-of-Service-basierte XSS-Angriffe zu verhindern:

  • innerHTML
  • outerHTML
  • write

Wenn Sie XSS-Angriffe besser verstehen und verhindern möchten, hat Google eine XSS-Spiele-Website erstellt, auf der Sie erfahren, wie diese Angriffe funktionieren und wie Sie sie besser verhindern können. Das Mutillidae 2-Projekt von OWASP bietet auch ein Lernziel für Web-Sicherheitsexperten, um ihre XSS-Angriffsabwehr zu schärfen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.