Die Sicherheitslücken von JavaScript: Fremdcodes und Bibliotheken

JavaScript-Bibliotheken sind unbestreitbar praktisch, doch ihre Sicherheit wird oft fahrlässig gehandhabt. Dabei gibt es ein paar simple Regeln, die man befolgen sollte, um seine Webseite vor Cyberattacken zu schützen.

JavaScript bietet vielfältige Möglichkeiten, dynamische und interaktive Webseiten-Inhalte zu kreieren. Im Laufe der Zeit hat sich die einst recht simple Skriptsprache an die gängigen Programmiersprachen angenähert und ist dadurch unweigerlich komplexer geworden. Zum Glück gibt es ja die zahlreichen JavaScript-Bibliotheken für nahezu jeden Zweck, in denen geübte Coder die am häufigsten verwendeten Funktionen und Anweisungen zusammengefasst haben – ein Segen für Einsteiger und diejenigen, die regelmäßig am DOM verzweifeln.

Was viele Webseiten-Designer und -betreiber aber gerne vergessen, ist die Tatsache, dass diese hilfreichen Programmierwerkzeuge auch das größte Sicherheitsproblem von JavaScript darstellen. Denn jeder Code, den man nicht selbst geschrieben hat, kann versehentliche oder gar beabsichtigte Fehlerstellen enthalten, die sich Hacker für Cyberangriffe zunutze machen können.

Vernachlässigte Problematik

Wie ernst das Problem ist, enthüllten im März dieses Jahres sechs Wissenschaftler von der Northeastern University of Boston in einer Studie: Von 133.000 untersuchten Webseiten verwendeten knapp 38% mindestens eine als verwundbar geltende JavaScript-Bibliothek, 10% sogar zwei oder mehr. Im Jahr 2014 hatte es bereits eine ähnliche Studie gegeben – mit noch schlechteren Ergebnissen.

Jüngste Ereignisse zeigen, wie problematisch sogenannter “third party code” für die Webseiten-Sicherheit sein kann. Im angefügten (englischsprachigen) YouTube-Video demonstriert Guy Podjarny von der Firma Snyk anschaulich einige solcher “vulnarability exploits” aus der realen Welt und macht damit deutlich, dass bereits kleinste Veränderungen des Codes ausreichen, um eine Webseite angreifbar zu machen.

https://www.youtube.com/watch?v=0dgmeTy7X3I

Was man als Programmierer tun kann

Leider existieren bislang keine einheitlichen Datenbanken für Sicherheitslücken in JavaScript-Bibliotheken. Das ist besonders problematisch, wenn man bedenkt, dass zum Beispiel das vielseitig einsetzbare jQuery 37% der Sicherheitslücken in der genannten Studie ausmachte. Der Liebling eines jeden Coders und seine dazugehörige Erweiterung UI werden nämlich in vielen Webseiten verwendet, die mit weit verbreiteten CMS wie etwa WordPress programmiert wurden. jQuery Version 1 ist immer noch mit Abstand auf häufigsten im Einsatz, Version 2 und 3 werden kaum benutzt.

jQuery Versionsverteilung

jQuery Versionsverteilung (Quelle: W3Techs)

Das Bundesamt für Sicherheit in der Informationstechnik gibt zu diesem Thema ein paar Empfehlungen ab, die im Folgenden kurz zusammengefasst werden:

  • Drittanbieter-Bibliotheken weisen gemäß Studie tendenziell mehr Sicherheitslücken auf, da sie veränderten Code enthalten können, vor allem wenn sie aus vertrauensunwürdigen Quellen heruntergeladen werden. Es ist also empfehlenswert, die Reputation einer ausgewählten Seite vor dem Download zu überprüfen und im Zweifelsfall sämtliche Funktionen der Bibliothek selbst auszutesten.
  • Bei vielen der untersuchten Bibliotheken lag die letzte Software-Aktualisierung im Durchschnitt drei bis vier Jahre zurück! Dabei sind regelmäßige Updates eine unabdingbare Voraussetzung in jedem Aspekt der Webseiten-Security.
  • Es gilt die Faustregel: Je mehr Codes vorhanden sind, desto größer ist die Fehleranfälligkeit. Jedoch werden durchschnittlich 50% der Funktionen von „multipurpose libraries“ gar nicht verwendet. Man sollte sich also darüber klarwerden, welche Funktionen man wirklich benötigt, und im Anschluss gründlich ausmisten.
  • Egal, wie praktisch und bewährt sie sein mögen – veraltete Bibliotheken wie SWFObject erfahren schon lange keinen Support mehr und sollten deshalb gänzlich gemieden werden. Nicht umsonst verfielen beispielsweise 87% der Sicherheitslücken in der genannten Studie auf die Bibliothek YUI, von der keine aktuelle Version mehr existiert.

Javascript Code

Tobi

Hallo, mein Name ist Tobias und ich habe diesen Blog im April 2009 ins Leben gerufen. Seitdem blogge ich hier über Software, Internet, Windows und andere Themen, die mich interessieren. SSDblog ist mein zweiter Blog, indem es rund um das Thema SSDs geht. Ich würde mich freuen, wenn ihr meinen Feed abonniert oder mir auf Twitter und Facebook folgt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert