Skip to main content

Ist Ihre Website gefährdet? Sorgen wir für Sicherheit!

Artikel von
Snyk is Now Integrated with Chromes Lighthouse

5. März 2020

0 Min. Lesezeit

Wenn Sie eine Website betreiben – ob eine umfassende SaaS-Webanwendung oder einen kleinen Blog, erstellt mit Gatsby, Wordpress oder als unabhängige GitHub-Pages-Website –, sollten Sie vor allem Sicherheitslücken im Blick behalten.

Sicherheitslücken in JavaScript-Bibliotheken von Drittanbietern zählen vermutlich zu den größten Sicherheitsrisiken, da JavaScript die beliebteste Programmiersprache und die bevorzugte Sprache von Entwicklern für die Erstellung von Websites ist. Die Nutzung von Open-Source-Code und Modulen, die von Mitgliedern von Open-Source-Communities entwickelt werden, nimmt weiter zu – ein Ende ist nicht abzusehen. Dadurch entstehen auch wichtige Sicherheitsfragen.

Erst im Oktober 2019 veröffentlichte Snyk die Erkenntnis, dass 84 % aller Websites von jQuery-XSS-Sicherheitslücken betroffen sind. Grundlage waren Daten aus dem Bericht zur Sicherheit von JavaScript-Frameworks für 2019.

Das kommt allerdings nicht überraschend. Frühere Berichte von Snyk deckten ähnliche Probleme auf: Sicherheitslücken in JavaScript sind im Internet weit verbreitet:

Das Problem verschärft sich, wenn wir Entwickler und Website-Betreiber die Versionen unserer installierten JavaScript-Abhängigkeiten nicht aktualisieren. Dadurch entsteht ein unnötiges Risiko, wenn Sicherheitslücken in einer von uns verwendeten Version entdeckt werden.

Cloudflare hat kürzlich einen Blogbeitrag zu Sicherheitsbedenken veröffentlicht, die anhand der über seine Content Delivery Network (CDN)-Dienste erfassten Daten aufgedeckt wurden. Das Fazit: JavaScript-Bibliotheken werden nach der Installation fast nie aktualisiert.

Ist Ihre Website also gefährdet?

Eine einfache Möglichkeit, das Sicherheitsrisiko durch Abhängigkeiten von Drittanbietern zu senken, besteht darin, die Bibliotheken und ihre Versionen zu ermitteln, sie mit einer zuverlässigen Datenbank für Sicherheitslücken abzugleichen und anfällige Abhängigkeiten auf eine fehlerbereinigte Version zu aktualisieren.

Das ist einfacher, als es klingt. Damit sich anfällige Bibliotheken auf einer Website leichter erkennen lassen, habe ich ein Open-Source-Projekt namens is-website-vulnerable erstellt. Es nutzt die Snyk Vulnerability Database für Sicherheitslücken in Frontend-Komponenten sowie die Snyk-Integration für Lighthouse.

Mit is-website-vulnerable können Sie öffentlich bekannte Sicherheitslücken in den JavaScript-Bibliotheken des Website-Frontends finden:

Terminalausgabe von npx mit jQuery- und AngularJS-Abhängigkeiten und insgesamt 14 Sicherheitslücken.

Es handelt sich um eine Kommandozeilenanwendung (CLI), mit der Sie Ihre Website ganz einfach testen können.

Meine Website ist gefährdet. Wie kann ich Sicherheitstests einrichten, damit das nicht noch einmal passiert?

Ein dynamischer Sicherheitsscan für Websites ist – ob automatisiert oder manuell – oft sehr zeitaufwendig und kostspielig. Außerdem sind entsprechende Sicherheitserfahrung und der Anwendungskontext erforderlich, um den Scan für die jeweilige Website oder Webanwendung korrekt einzurichten.

Ein Tool wie is-website-vulnerable eignet sich gut, um potenzielle JavaScript-Sicherheitslücken in veralteten oder nicht mehr gepflegten Bibliotheken schnell zu erkennen. Damit können Sie schnell laufende Tests hinzufügen, die Sie auffordern, anfällige Versionen zu aktualisieren und so das allgemeine Sicherheitsrisiko zu senken.

Wenn Sie GitHub Actions verwenden, können Sie mit is-website-vulnerable Ihre Website automatisch in einer Continuous-Integration-Pipeline scannen und den Build fehlschlagen lassen, wenn sie anfällige JavaScript-Versionen nutzt.

Erstellen Sie dazu die Datei .github/workflows/is-website-vulnerable.yml und geben Sie die URL der zu scannenden Website an:

name: Test site for publicly known js vulnerabilities

on: push
jobs:
  security:
    runs-on: ubuntu-latest
    steps:
      - name: Test for public javascript library vulnerabilities 
        uses: lirantal/is-website-vulnerable@master
        with:
          scan-url: "https://yoursite.com"

Wenn Sie für CI etwas anderes als GitHub Actions verwenden, nutzen Sie das Docker-Image von is-website-vulnerable oder installieren Sie alternativ die CLI und rufen Sie sie direkt im CI-Schritt auf.

Meine Website ist gefährdet. Wie kann ich das beheben?

Zu wissen, dass eine von Ihnen verwendete JavaScript-Abhängigkeit eine Sicherheitslücke aufweist, ist ein guter erster Schritt. Die Lücke beheben und automatisch Sicherheitskorrekturen für Ihr Quellcode-Repository erhalten zu können, ist jedoch noch besser!

Snyk ist für Open-Source-Projekte und sogar für private Pakete kostenlos (mit bestimmten Nutzungsbeschränkungen). Verbinden Sie Ihr Quellcode-Repository mit Snyk, um die Open-Source-Abhängigkeiten Ihres Projekts zu überwachen. Noch besser: Wenn Snyk in einem überwachten Projekt eine behebbare Sicherheitslücke findet, erstellt Snyk automatisch einen Pull Request mit einem Upgrade-Vorschlag für das Repository.

Die Vorteile der Sicherheitskorrekturen von Snyk Open Source:

  • Snyk ermittelt das minimale erforderliche Upgrade, um eine Sicherheitslücke zu beheben, und benachrichtigt Sie, wenn dabei das Risiko besteht, dass der Code nicht mehr funktioniert.

  • Beschleunigen Sie die Triage transitiver Sicherheitslücken mit den Snyk-Korrekturvorschlägen für direkte Abhängigkeiten.

  • Wenn ein Upgrade zu viele Änderungen erfordert oder nicht verfügbar ist, können Sie die Lücke schnell und präzise mit proprietären Patches von Snyk beheben, die in Zusammenarbeit mit dem Maintainer entwickelt wurden.

Probieren Sie es aus!

Oberfläche zum Öffnen eines Fix-PRs mit Sicherheitsproblemen und verfügbaren Upgrades oder Patches sowie einer Schaltfläche „Fix-Anfrage öffnen“

Starten Sie mit Capture the Flag

Erfahren Sie in unserem virtuellen On-Demand-Workshop für Einsteiger, wie Sie Capture-the-Flag-Herausforderungen lösen.