Skip to main content

Sicherheitslücken in Angular und React im Vergleich: Stand 2019

Artikel von
JavaScript Report feature

30. Oktober 2019

0 Min. Lesezeit

Willkommen beim Snyk-Bericht zum Sicherheitsstatus von JavaScript-Frameworks 2019.

In diesem Abschnitt betrachten wir die Auswirkungen von Sicherheitslücken anhand ihrer Schweregrade, CVSS-Scores und weiterer Faktoren im Laufe der Jahre für Angular und React. Außerdem untersuchen wir, wie lange es dauert, Sicherheitslücken in den jeweiligen Frameworks zu beheben und entsprechende Releases bereitzustellen, und zeigen, wie sich dies im Laufe der Jahre entwickelt hat.

Laden Sie hier den Bericht herunter!

Angular vs. React: Schweregrade von Sicherheitslücken im Vergleich

Die Schweregrade der für React- und Angular-basierte Frontend-Projekte gefundenen Sicherheitsprobleme geben weitere Einblicke in das Gesamtrisiko, das von ihnen ausgeht.

Was ist CVSS?

Dazu sollten wir kurz das Bewertungssystem CVSS betrachten. Ähnlich wie allgemeine Fehler im Quellcode mit einem Schweregrad wie „hoch“ oder „mittel“ eingestuft werden, erhalten auch Sicherheitsfehler – die wir als Sicherheitslücken bezeichnen – einen Schweregrad. Dieser trägt dazu bei, das potenzielle Risiko für ein Unternehmen zu bestimmen.

Sicherheitslücken werden anhand des Common Vulnerability Scoring System (CVSS) eingestuft. Es gilt bei der Organisation FIRST de facto als Standard und wird häufig zur Bewertung von Common Vulnerabilities and Exposures verwendet, kurz CVEs.

Damit sich Sicherheitslücken einfach vergleichen lassen, ordnet CVSS den numerischen Scores Wertebereichen zu, die jeweils einem Schweregrad entsprechen.

Eine ausführliche Erklärung von CVSS und seinen Herausforderungen finden Sie unter https://snyk.io/blog/scoring-security-vulnerabilities-101-introducing-cvss-for-cve/

Im gesamten Bericht beziehen wir uns auf die CVSS-v2-Bewertung, die in der folgenden Tabelle dargestellt ist:

Schweregrad

Score

0.1 - 3.9

niedrig

4.0 - 6.9

mittel

7.0 - 10.00

hoch

Angular und React: CVSS-Ergebnisse

Obwohl in den React-Core-Paketen nur sehr wenige Sicherheitslücken entdeckt wurden, handelt es sich bei allen um Cross-Site-Scripting-Sicherheitslücken, die regelmäßig alle paar Jahre offengelegt wurden. Ihre CVSS-Scores liegen zwischen 6,5 und 7,1 – sie haben also alle einen mittleren bis hohen Schweregrad.

Die folgende Grafik zeigt die Schweregrade der Sicherheitslücken im React-Core-Projekt im Zeitverlauf:

Zeitleiste zu Sicherheitslücken im React-Kernprojekt: 7,1 XSS im Dezember 2013, gefolgt von der Offenlegung von XSS-Sicherheitslücken mit einem Wert von 6,5 im März 2015 und August 2018.

Bei den Sicherheitslücken in Angular v1.x sehen wir, dass Angular v1.5 die meisten aufweist: insgesamt sieben, davon drei mit hohem und vier mit mittlerem Schweregrad. Glücklicherweise nimmt die Zahl der Sicherheitslücken mit zunehmender Reife der Versionen ab – sowohl hinsichtlich des Schweregrads als auch der Anzahl. 2019 wurden bislang für keine Angular-Version neue Sicherheitslücken offengelegt!

Die folgende Grafik zeigt die Anzahl der Sicherheitslücken in Angular v1.x pro Jahr, aufgeschlüsselt nach Schweregrad:

Balkendiagramm zu Angular-V1.x-Schwachstellen nach Jahr und Schweregrad von 2013 bis 2018; mittelschwere Schwachstellen erreichen 2015 mit vier ihren Höchststand.

Die Vielfalt der über alle Angular-1.x-Versionen hinweg offengelegten Arten von Sicherheitslücken ist kaum bedenklich. Sicherheitsrisiken zeigen sich vielmehr in anderen Aspekten. Besonders auffällig ist der Schweregrad der am häufigsten auftretenden Sicherheitslücken, die wiederholt in verschiedenen Versionen offengelegt wurden. Cross-Site-Scripting-Sicherheitslücken (XSS) stellen in der gesamten Frontend-Welt ein großes Sicherheitsrisiko dar. Das gilt auch für Angular. Dies spiegeln die hier erhobenen Daten wider: In den Angular-1.x-Versionen traten insgesamt zehn XSS-Sicherheitslücken auf.

Balkendiagramm zu Angular-1.x-Schwachstellen nach Typ: Cross-Site-Scripting (XSS) führt mit 10 Fällen, zwei weitere Kategorien weisen jeweils 2 Fälle auf.

Zeit bis zur Behebung und bis zum Release

Ein wichtiger Faktor bei der Bewertung der Sicherheitslage von Open-Source-Projekten ist, wie schnell Maintainer und Mitwirkende auf Sicherheitslücken reagieren, zeitnah Korrekturen vornehmen und Releases für ihre Nutzer veröffentlichen können. Wir haben diese Kennzahlen für die Angular- und React-Core-Projekte untersucht und den Verlauf der bekannten, bereits behobenen Sicherheitslücken erfasst, um die Daten grafisch darzustellen.

Für Angular v1.x ist die folgende Grafik chronologisch aufsteigend sortiert. Sie beginnt im Juni 2013 mit der ersten Sicherheitslücke in AngularJS und reicht bis Juni 2018. Die Grafik zeigt, wie viele Tage es dauerte, eine Sicherheitslücke zu beheben – vom Zeitpunkt ihrer öffentlichen Meldung an das Projekt bis zur Veröffentlichung einer Version mit der Korrektur, auf die nachgelagerte Nutzer aktualisieren konnten. Eine kurze Zeit bis zur Behebung zeigt, dass das Entwicklungsteam schnell auf eine Sicherheitsmeldung reagieren konnte. Eine kurze Zeit bis zum Release zeigt, dass das Team schnell eine offizielle, für Nutzer verfügbare Korrekturversion veröffentlichen konnte.

Liniendiagramm mit der durchschnittlichen Zeit bis zur Veröffentlichung und Behebung nach Jahr von 2013 bis 2018, gemessen in Tagen.

Wie zu sehen ist, wurde die erste für Angular gemeldete Sicherheitslücke innerhalb eines Tages im Code-Repository behoben. Es dauerte jedoch 74 Tage, bis die Korrektur als offizielles Release veröffentlicht wurde, auf das Nutzer aktualisieren konnten.

Bei Angular-v1.x-Releases dauerte es durchschnittlich 7,47 Tage, eine Sicherheitslücke zu beheben, und durchschnittlich 20,5 Tage, ein Release mit einer Sicherheitskorrektur zu veröffentlichen.

Eine Ausnahme in den Daten auf der vorherigen Seite ist eine JSONP-Callback-Attacke. Ihre Behebung mit einer tatsächlichen Korrektur dauerte 570 Tage. Vom Commit der Korrektur im Quellcode-Repository bis zur offiziellen Veröffentlichung vergingen weitere 64 Tage.

Bei React gibt es deutlich weniger Sicherheitslücken: Lediglich drei betreffen das Core-Projekt. Zwei der drei Sicherheitslücken wurden intern vom React-Team gemeldet und behoben. Daher beträgt die Zeit bis zur Behebung 0 Tage; bis zur Veröffentlichung eines offiziellen Releases verging nur ein Tag. Die dritte Sicherheitslücke ist eine Cross-Site-Scripting-Sicherheitslücke aus der Zeit von React v0.4 und v0.5. Ihre Behebung dauerte mit 176 Tagen erheblich länger; anschließend vergingen weitere 27 Tage bis zur Veröffentlichung einer Sicherheitskorrektur.


Wir empfehlen Ihnen dringend, die vollständige Version des Berichts im digitalen Format herunterzuladen. Die folgenden allgemeinen Abschnitte haben wir außerdem als Blogbeiträge veröffentlicht:

Weiterlesen

blog feature snyk container custom base recommendations
Blog

Evo Agentic AppSec: Sicherheit, die mit der KI-Entwicklung Schritt hält

KI-gestützte Entwicklung überholt herkömmliche Security-Workflows. Snyk Agentic AppSec setzt Security-Agenten ein, die Schwachstellen kontinuierlich finden, beheben und überprüfen – während Menschen die Maßstäbe festlegen.

blog feature ai violet
Blog

VulnBump: Können KI-Agenten anfällige Abhängigkeiten beheben, ohne den Build zu beschädigen?

VulnBump testet KI-Agenten anhand von 307 realen Dependency-Upgrades. Eine Lösung zählt nur, wenn die Sicherheitslücke behoben ist und Build sowie Tests weiterhin erfolgreich sind.

Blog

Frontier-Modelle fanden die Schwachstellen. Nur der Angreifer fand die Angriffsketten.

Die statische Analyse fand die Schwachstellen, doch erst Live-Angriffstests bewiesen, wie sie sich zu Angriffen verketten lassen. Ein Vergleich von Evo COS, Claude Security und Claude Code Security.