DOMXSS Scanner: "Das war eine spontane Idee."
Kommentare

Oft entwickelt die Community eine ganz eigene Dynamik. Um so schöner, wenn man zumindest indirekt etwas dazu beitragen konnte. So geschehen mit einem Artikel, den wir vor ein paar Tagen veröffentlicht

Oft entwickelt die Community eine ganz eigene Dynamik. Um so schöner, wenn man zumindest indirekt etwas dazu beitragen konnte. So geschehen mit einem Artikel, den wir vor ein paar Tagen veröffentlicht haben. Darin ging es um DOMXSS-Schwachstellen auf Webseiten – und ein findiger Leser hat sich daran gemacht, einen Scanne für solche Schwachstellen zu schreiben. Wir haben mit Ramiro Gómez über sein Tool, den DOMXSS Scanner, gesprochen.

Wie bist du darauf gekommen, den DOMXSS-Scanner zu entwickeln?
Ramiro Gómez Ramiro Gómez
Ramiro Gómez: Das war eine spontane Idee, nachdem ich den Artikel DOMXSS – Angriffe aus dem Nirgendwo gelesen habe. Zuvor war mir die Problematik von DOM basiertem XSS nicht bewusst und die Funktionsweise nicht bekannt. Durch den Artikel habe ich jedoch den Eindruck gewonnen, als könnten potenziell eine ganze Menge Websites entsprechende Schwachstellen aufweisen. Ein Tool, das hilft solche Schwachstellen zu finden, erschien mir dank der Informationen in dem Artikel und den Referenzen recht einfach umzusetzen und darüber hinaus nützlich. Gedacht ist der DOMXSS Scanner für Webmaster, damit diese ihre Sites sicherer machen. Mir ist natürlich klar, dass es auch Benutzer mit anderen Intentionen geben wird, aber das sollte einen nicht davon abhalten, nützliche Tools bereitzustellen.

Welche Quellen haben dir bei der Umsetzung geholfen?

Ramiro: Die wichtigste Hilfe war das DOMXSS Wiki, insbesondere die beiden regulären Ausdrücke zum Auffinden von Sources und Sinks, die man auf der Seite https://code.google.com/p/domxsswiki/wiki/FindingDOMXSS findet. Zum Verständnis hat mir natürlich auch der schon genannte Artikel aus dem PHP-Magazin geholfen, sowie weitere Quellen, die ich auf der Seite http://www.domxssscanner.com/info/articles aufgeführt habe.

Erzähl uns doch bitte etwas über die Funktionsweise des Scanners.

Ramiro: Der Scanner ist sehr einfach zu benutzen: Man gibt einen URL ein, daraufhin wird der Inhalt der entsprechenden Seite geladen und der Quellcode durchsucht. Zum einen nach referenzierten JavaScript-Dateien, die dann ebenfalls geladen und durchsucht werden, und zum anderen nach DOMXSS-Sources und -Sinks.

Die geladenen Quelltexte werden auf der Ergebnisseite angezeigt und die mittels der regulären Ausdrücke gefundenen Sources und Sinks in der Ansicht hervorgehoben.

Wer es ganz genau wissen will, kann sich den Quellcode für den DOMXSS Scanner unter https://github.com/yaph/domxssscanner ansehen und gern auch bei der Weiterentwicklung mithelfen.

Vollkommen auf der sicheren Seite ist man damit aber nicht, oder?

Ramiro: Nein, auf der sicheren Seite ist man damit nicht. Das Tool hilft beim Code-Review, indem es potenzielle Schwachstellen hervorhebt. Beheben muss man diese dann selbst.

In dem DOMXSS Wiki steht zu den regulären Ausrücken, dass diese versuchen die häufigsten Schwachstellen zu finden, d.h. nicht zwangsläufig, dass man damit alle Schwachstellen findet.

Derzeit werden auch nur JavaScript-Dateien berücksichtigt, die über das src-Attribut in script-Tags geladen werden. JavaScript-Dateien, die dynamisch in anderen Skripten referenziert werden, werden nicht automatisch durchsucht.

Außerdem ist der DOMXSS Scanner erst wenige Tage alt und noch nicht sehr intensiv getestet. Wie jedes Software-Projekt ist er sicherlich nicht frei von Bugs.

Welche Ziele verfolgst du mit der Bereitstellung des Scanners?

Ramiro: Mein vorrangiges Ziel ist es ein nützliches Tool zu entwickeln und bereitzustellen; letztlich auch für mich selbst und meine Web-Projekte. Dass der Code Open Source ist liegt zum einen daran, dass ich selbst von anderen Open-Source-Projekten sehr viel gelernt habe – und zum anderen biete ich damit anderen Programmierern eine einfache Möglichkeit, daran mitzuwirken.

Zu guter Letzt ist es natürlich gut für mich selbst, wenn ich das Gefühl habe, etwas sinnvolles zu tun, und für meine Reputation als Entwickler sollte es auch nicht verkehrt sein.

Kurz zu dir: Welche beruflichen Background hast du? Bist du mit vielen sicherheitsrelevanten Fragen betraut, oder war es nur der Spaß am Unbekannten, der dich dazu getrieben hat, den Scanner zu entwickeln?

Ramiro: Ich habe 1997 an der Uni meine ersten Gehversuche mit dem Publizieren im Web gemacht und arbeite seit 10 Jahren als Entwickler, in erster Linie von Webanwendungen. Deren Sicherheit war und ist daher ein wichtiges Thema für mich.

Ein Tool wie den DOMXSS Scanner zu entwickeln hilft, das ganze Thema Sicherheit noch besser zu verstehen; und ich werde mich sicher weiter damit beschäftigen.

Wie sieht es mit der Zukunft des Scanners aus – möchtest du weiter dran feilen, wenn es deine Zeit zulässt?

Ramiro: Ja, es gibt definitiv Verbesserungsmöglichkeiten. Eine ist, wie bereits erwähnt, über JavaScript eingebundene Skripte automatisch zu laden und zu durchsuchen. Ansonsten hoffe ich auf Feedback von den Benutzern und anderen Entwicklern, die u.a. über Github die Möglichkeit haben, eigene Ideen in das Projekt einfließen zu lassen.

Von daher vielen Dank an Euch, dass ihr mir hier die Möglichkeit bietet, Eure Leser auf das Projekt aufmerksam zu machen!

Ramiro, vielen Dank für das Gespräch und noch viel Erfolg für die Zukunft.

Ramiro Gómez ist seit Mitte der 90er Jahre im Internet unterwegs und arbeitet als Entwickler von Webanwendungen und -services. In seiner Freizeit widmet er sich verschiedenen Open-Source-Projekten, betreibt Websites und schreibt hin und wieder Beiträge für Blogs. Mehr über Ramiro und seine Projekte erfährt man auf seiner Homepage ramiro.org.

Hab Sie auch ein interessantes Projekt, dass Sie der Community vorstellen möchten? Dann schreiben Sie uns; wir beissen nicht!

Autor

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -