Skip to content

Neues eBook: "JavaScript Security - Sicherheit im Webbrowser"

Bei entwickler.press ist mein eBook über die Sicherheit von JavaScript erschienen: "JavaScript Security - Sicherheit im Webbrowser"

Wie der Name schon sagt geht es um die Sicherheit von JavaScript (und HTML5, dass ja viele neue JavaScript-APIs mit bringt). Behandelt werden

  • XSS-Angriffe und deren Möglichkeiten, zum Beispiel der Implementierung eines Rootkits für Webclients, der Kompromittierung des lokalen SOHO-Routers oder dem Aufbau eines Broser-basierten Botnets. Nicht zu vergessen die Möglichkeit, über XSS den Server zu kompromittieren.
  • Angriffe über die Grafikfunktionen von HTML5, entweder um Daten auszuspähen oder den Browser zu identifizieren.
  • Die Content Security Policy als gute Möglichkeit zur Abwehr von Angriffen.

Kapitel 1: JavaScript in Angreiferhand

JavaScript-Code kann so wie jedes andere Computerprogramm auch Schwachstellen enthalten, und so wie in jeder anderer Programmiersprache können auch in JavaScript Schadprogramme geschrieben werden. Beide Möglichkeiten werden natürlich von Angreifern ausgenutzt - warum sollten sie auch darauf verzichten?

Und den Angreifern bieten sich viele Möglichkeiten, angefangen bei den klassischen XSS-Angriffen, denen in Zeiten von Web 2.0 und HTML5 viel mehr Möglichkeiten offen stehen, über Angriffe auf die immer stärker in den Client ausgelagerte Anwendungslogik bis zu Browser-basierten Botnets, die sich kaum entdecken lassen und nach dem Beenden des JavaScript-Schadcodes keinerlei Spuren auf dem Rechner hinterlassen.

Kapitel 2: HTML5-Grafikfunktionen gefährden Sicherheit und Privatsphäre

Durch Timing-Angriffe lässt sich die Same Origin Policy unterlaufen, es können sowohl die History als auch Websites anderer Domains ausgespäht werden. So kann zum Beispiel im Quelltext einer anderen Website gezielt nach CSRF-Token oder ähnlichen für einen Angreifer interessanten Informationen gesucht werden.

Beim Canvas-Fingerprinting wird ausgenutzt, dass sich beim Rendern eines vorgegebenen Texts vom Browser abhängige minimale Unterschiede ergeben, aus denen sich ein Fingerprint des Browsers errechnen lässt. Und daran kann dann der Benutzer (wieder)erkannt werden.

Kapitel 3: Neue Angriffe in JavaScript

JavaScript erlaubt einige sehr gefährliche Angriffe. Um so wichtiger ist es, sich vor diesen zu schützen. Dabei ist "Keine Schwachstellen haben" schon mal deutlich mehr als die sprichwörtliche "halbe Miete", und die Content Security Policy hilft zusätzlich bei der Abwehr einer ganzen Reihe von Angriffen. Zwar nicht vor allem, aber das ist auch gar nicht vorgesehen. Die CSP ist eher eine "Mitigation" wie ASLR und DEP, sie erschwert die Ausnutzung von Schwachstellen so weit, dass die Cyberkriminellen hoffentlich aufgeben und sich leichtere Ziele suchen.

Betrachten wir ein ganz einfaches Beispiel, den CSP-Header
Content-Security-Policy: script-src 'self'
durch den festgelegt wird, dass Skripte nur vom eigenen Server nachgeladen werden können. Ein Angreifer muss also seinen gesamten Schadcode auf diesen Server praktizieren oder im Fall einer reflektierten XSS-Schachstelle über den betroffenen Parameter einschleusen. Ein deutlich einfacher einzuschleusendes Skript -Tag zum Laden einer JavaScript-Datei von seinem eigenen Server bringt ihn nicht ans Ziel, da das Laden dieses Skripts durch die CSP verhindert wird. Und das erschwert den Angriff schon deutlich.

Links und Literaturverweise

Kapitel 1: JavaScript in Angreiferhand

Kapitel 2: HTML5-Grafikfunktionen gefährden Sicherheit und Privatsphäre

Kapitel 3: Neue Angriffe in JavaScript

Carsten Eilers

Trackbacks

Dipl.-Inform. Carsten Eilers am : XSS-Angriffe, Teil 4: Ein Blick in die History, und dann auf ins LAN!

Vorschau anzeigen
Nach dem Einschleusen von Informationen in den Browser und dem Ausspähen von Cookies und Tastendrücken sowie Zugangsdaten ist der Browser im Grunde abgegrast. Was bleibt, ist das Ausspähen der History. Und danach geht es weiter in