Skip to main content

Sicherheitsbericht zu JavaScript-Frameworks 2019

Artikel von
JavaScript Report Feature

30. Oktober 2019

0 Min. Lesezeit

Willkommen zum Snyk-Bericht zur Sicherheit von JavaScript-Frameworks aus dem Jahr 2019.

In diesem Bericht untersuchen wir die Sicherheitslage in den Angular- und React-Ökosystemen. Dabei geht es keineswegs darum, mögliche Rivalitäten zwischen den beiden zu beleuchten oder zu entscheiden, ob eines davon tatsächlich ein Framework ist. Wir vergleichen sie nicht als konkurrierende Frameworks. Stattdessen betrachten wir beide als geeignete Alternativen für Frontend-Ökosysteme, mit denen sich JavaScript-Projekte erstellen lassen, und konzentrieren uns dabei auf Sicherheitsrisiken, Best Practices und Unterschiede.

Wir empfehlen Ihnen dringend, die vollständige Berichtsversion im digitalen Format herunterzuladen. Die folgenden allgemeinen Abschnitte sind jedoch auch als Blogbeiträge verfügbar:

Dieser Bericht behandelt:

  • die Sicherheitspraktiken der beiden Kernprojekte Angular und React

  • die Sicherheitslage in den beiden Modul-Ökosystemen, basierend auf einer eingehenden Untersuchung der darin enthaltenen Sicherheitslücken

  • die Sicherheitspraktiken anderer gängiger JavaScript-Frontend-Framework-Alternativen wie Vue.js, Bootstrap und jQuery

  • die erheblichen Sicherheitsunterschiede zwischen den verschiedenen Alternativen, insbesondere zwischen Angular und React

Die wichtigsten Erkenntnisse aus dem Sicherheitsbericht zu JavaScript-Frameworks 2019

Hier sind die wichtigsten Erkenntnisse aus den Ergebnissen unseres Berichts.

Sicherheit der Angular- und React-Kernprojekte

Sicherheit der Angular- und React-Modul-Ökosysteme

🔘Angular weist in seinem veralteten AngularJS-Projekt (Angular v1.x) 23 Sicherheitslücken auf.

🔘 In beiden Modul-Ökosystemen, React und Angular, gibt es Sicherheitslücken in äußerst beliebten Frontend-Bibliothekskomponenten mit Millionen von Downloads. Für einige davon gibt es bislang keine Sicherheitskorrektur.

🔘In den Kernkomponenten des Angular-Frameworks wurden keine Sicherheitslücken festgestellt.

🔘Wir haben schädliche Module beobachtet, die sowohl das Angular- als auch das React-Ökosystem betreffen und darauf abzielen, Kreditkartendaten, Passwörter und andere sensible Informationen aus Frontend-Webanwendungen abzugreifen.

🔘React weist einige Sicherheitslücken auf. In den Kernbibliotheken werden offenbar regelmäßig Sicherheitslücken entdeckt, die alle paar Jahre offengelegt werden.

🔘Das Next.js-Framework zeigte ein großes Engagement für Sicherheit: Alle fünf im Laufe der Projektgeschichte entdeckten Sicherheitslücken wurden zügig behoben – innerhalb von nur einer Woche.

🔘Nur einer Sicherheitslücke im React-Kernprojekt wurde offiziell eine CVE zugewiesen. Keine der gemeldeten Sicherheitslücken in Angular ist überhaupt in der CVE-Liste aufgeführt. Dies unterstreicht, wie wichtig eine Datenbank für Sicherheitslücken ist, die Aktivitäten der Open-Source-Community erfasst, um relevante Sicherheitsprobleme sichtbar zu machen.

🔘Snyk meldet 26 Sicherheitslücken in den Angular- und React-Kernprojekten, die in den Berichten von npm audit nicht erfasst werden.

Ein Wort zu CVE und Sicherheitslücken

Um die allgemeine Sicherheitslage der in diesem Bericht behandelten Ökosysteme zu untersuchen, betrachten wir unter anderem die in den jeweiligen relevanten Paketen ermittelten Sicherheitslücken. Wir ordnen diese in den Kontext bekannter Sicherheitslücken ein und vergleichen sie teilweise damit.

Bekannte Sicherheitslücken erhalten eine Identifikationsnummer in der Liste der Common Vulnerabilities and Exposures (CVEs), die von den CVE Numbering Authorities (CNAs) geführt wird. CVEs erhalten CVSS-Scores, anhand derer sich der Schweregrad der aufgeführten Sicherheitslücken einschätzen lässt. Erfahren Sie hier mehr darüber, wie der Schweregrad von Sicherheitslücken anhand ihrer CVSS-Scores bewertet wird.

Sicherheitslage bei Angular und React

Sicherheit von Frontend-Ökosystemen

🔘Angular bietet klare und gut zugängliche Sicherheitsrichtlinien, einen Sicherheitskontakt und eine Richtlinie für die verantwortungsvolle Offenlegung von Sicherheitslücken. All dies fehlt beim React-Projekt.

🔘jQuery wurde in den letzten zwölf Monaten mehr als 120 Millionen Mal heruntergeladen. Laut W3Techs kommt jQuery v1.x auf 84 % aller Websites zum Einsatz, die jQuery verwenden. Diese Version weist vier XSS-Sicherheitslücken mittleren Schweregrads auf. Wenn Sie nicht jQuery v3.4.0 oder höher verwenden – was auf die Mehrheit der jQuery-Nutzer zutrifft –, nutzen Sie eine Version mit Sicherheitslücken.

🔘Angular bietet eine umfassendere integrierte Unterstützung für die Bereinigung von Daten und die Ausgabekodierung in verschiedenen Kontexten, etwa bei URL-Attributen in HTML-Ankerelementen (oder Links).

🔘Bootstrap wurde in den vergangenen zwölf Monaten 79.185.409 Mal heruntergeladen und weist zugleich sieben Cross-Site-Scripting-Sicherheitslücken (XSS) auf. Drei davon wurden 2019 offengelegt. Bekannte Community-Module wie

bootstrap-markdown

wurden im gleichen Zeitraum mehr als 300.000 Mal heruntergeladen, obwohl es für ihre XSS-Sicherheitslücken weder eine Sicherheitskorrektur noch einen Upgrade-Pfad gibt.

bootstrap-select

verzeichnet mehr als zwei Millionen Downloads und weist eine XSS-Sicherheitslücke mit hohem Schweregrad auf, die das Snyk-Forschungsteam mithilfe seines proprietären Threat-Intelligence-Systems aufgedeckt hat.

🔘React verfügt nicht über integrierte Steuerelemente zur Datenbereinigung, kodiert die Ausgabe jedoch standardmäßig in den meisten Fällen. Für nicht abgedeckte Fälle, etwa refs und URL-Attribute (letztere werden ab React v16.9.0 berücksichtigt), müssen Entwickler selbst sorgen.

🔘Das Vue.js-Framework wurde in den vergangenen zwölf Monaten mehr als 40 Millionen Mal heruntergeladen und weist

insgesamt vier Schwachstellen im Vue.js-Kern

auf, die alle behoben wurden.

🔘Angular bietet in seinem HTTP-Service einen integrierten Sicherheitsmechanismus zum Schutz vor Cross-Site-Request-Forgery-Sicherheitslücken (CSRF). React-Entwickler müssen sich eigenständig um diese Probleme kümmern.


Lesen Sie weiter: Angular vs. React: Sicherheitsvergleich 2019, oder laden Sie den vollständigen Bericht herunter.

Dieser Bericht untersucht die allgemeine Sicherheit der einzelnen Frameworks, ihrer Community-basierten Modul-Ökosysteme und der damit verbundenen Risiken. Auf Grundlage dieser Erkenntnisse gibt er Angular- und React-Nutzern konkrete Sicherheitsempfehlungen und zeigt bewährte Sicherheitspraktiken auf, mit denen sich sicherer Code gewährleisten lässt.

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.