Skip to main content

Wissen Sie, wie sicher Ihre .NET-Abhängigkeiten sind?

Artikel von
Headshot of Hayley Denbraver

Hayley Denbraver

Snyk: Develop fast. Stay Secure.

3. Mai 2019

0 Min. Lesezeit

Anfang des Jahres hat Snyk die Integration mit Ihren Git-Repository-.NET-Projekten ermöglicht. Erst diese Woche haben wir die neueste Ergänzung veröffentlicht: Support für Microsoft Azure.

In diesem Blog werfen wir einen Blick auf die Bibliotheken, die aufgrund der häufigsten aktuellen Sicherheitslücken auch am häufigsten in Snyk-Projekt-Scans auftauchen. Wir ermitteln die zehn Bibliotheken, die unsere Nutzer derzeit am stärksten betreffen, und sehen uns diese genauer an. Zunächst werfen wir einen kurzen Blick auf die Merkmale der Top 10 und untersuchen anschließend drei dieser Bibliotheken eingehender, die besonders interessante Sicherheitslücken aufweisen. Mithilfe der Snyk Vulnerability Database und Daten aus der NuGet-Registry untersuchen wir, wie die einzelnen Bibliotheken verwendet werden, wie beliebt sie sind und welche bekannten Sicherheitslücken sie enthalten.

Die zehn wichtigsten Bibliotheken

Die folgende Tabelle beschreibt diese zehn wichtigsten Bibliotheken:

Rang

Bibliothek

Verwendung

Sicherheitslücken*

Downloads insgesamt

1

Programmierschnittstelle für moderne HTTP-Anwendungen

5 schwerwiegende
1 mittelschwere Sicherheitslücke

81 Mio.

2

Tool zur Verwaltung von Byte-Puffern mit einem Produzenten und einem Konsumenten

1 schwerwiegende Sicherheitslücke


8,5 Mio.

3

Kernkomponente des plattformübergreifenden Webservers Kestrel für ASP.NET Core

2 schwerwiegende
2 mittelschwere Sicherheitslücken

22,1 Mio.

4

Protokoll für persistente bidirektionale Kommunikationskanäle über TCP-Verbindungen

1 mittelschwere Sicherheitslücke

3,6 Mio.

5

Datenzugriffsprotokoll für das Web

1 schwerwiegende Sicherheitslücke

42,4 Mio.

6

WebSocket-Middleware für den Einsatz auf intransparenten Servern

1 schwerwiegende
1 mittelschwere Sicherheitslücke

12,5 Mio.

7

Bibliothek mit Klassen zur Unterstützung der Erstellung und Überprüfung digitaler XML-Signaturen

1 schwerwiegende Sicherheitslücke

13,6 Mio.

8

Transportabstraktionen für den plattformübergreifenden Webserver Kestrel für ASP.NET Core

1 schwerwiegende Sicherheitslücke

22,1 Mio.

9

Bibliothek für sichere Netzwerkkommunikation zwischen Client- und Serverendpunkten

3 schwerwiegende
1 mittelschwere Sicherheitslücke

42,6 Mio.

10

Mitgliedschaftssystem für die Entwicklung von ASP.NET-Core-Webanwendungen

1 schwerwiegende Sicherheitslücke

18,3 Mio.

*Kumuliert über alle Versionen

Bei der Betrachtung dieser Tabelle fallen einige Dinge auf.

Erstens ist der plattformübergreifende Webserver Kestrel für ASP.NET Core sehr beliebt und weist derzeit eine Reihe schwerwiegender Sicherheitslücken auf, die sich auf mehrere verwandte Bibliotheken verteilen.

Zweitens ist die Gesamtzahl der Sicherheitslücken in diesen Bibliotheken generell niedrig, ihr Schweregrad jedoch meist hoch.

Interessant ist schließlich, dass die Anzahl der Downloads insgesamt nicht direkt mit dem Rang einer Bibliothek in unserer Liste zusammenhängt, obwohl alle diese Bibliotheken weit verbreitet zu sein scheinen. Die Bibliothek system.net.http verzeichnet sowohl die meisten Downloads insgesamt als auch die größten Auswirkungen auf unsere Nutzer. Bei den Bibliotheken auf den Plätzen 2 bis 10 besteht jedoch kein vergleichbarer direkter Zusammenhang.

Sehen wir uns nun die drei Bibliotheken an, die unsere Nutzer am stärksten betreffen.

System.Net.Http

Zunächst sehen wir uns die Bibliothek system.net.http an, auf die die Sicherheitslücken entfallen, die in unseren Scans am häufigsten auftreten.

Wozu dient die Bibliothek?

System.net.http ist eine Bibliothek, die eine Programmierschnittstelle für moderne HTTP-Anwendungen bereitstellt. Dazu gehören HTTP-Clientkomponenten, mit denen Anwendungen Webdienste über HTTP nutzen können, sowie HTTP-Komponenten zum Analysieren von HTTP-Headern, die sowohl von Clients als auch von Servern verwendet werden können.

Wie beliebt ist die Bibliothek?

System.net.http wurde insgesamt rund 81 Millionen Mal heruntergeladen. Auf die aktuelle Version (4.3.4), die zum Zeitpunkt der Erstellung dieses Artikels sieben Monate alt war, entfallen rund 3,4 Millionen Downloads. System.http.net wird durchschnittlich etwa 31.000 Mal pro Tag heruntergeladen.

Was wissen wir über Sicherheitslücken in dieser Bibliothek?

Bei den Sicherheitslücken in system.net.http gibt es gute und schlechte Nachrichten.

Zunächst die gute Nachricht: Die neueste Version dieser Bibliothek (4.3.4) weist keine bekannten Sicherheitslücken auf. Wenn Sie diese Bibliothek verwenden, aktualisieren Sie auf die neueste Version!

Nun die schlechte Nachricht: Andere Versionen dieser Bibliothek weisen eine Reihe schwerwiegender Sicherheitslücken auf. Eine davon tritt nur in sehr alten Versionen auf. Für Versionen unter 4.1.2 sowie für Versionen der Reihe 4.3.X unter 4.3.4 gibt es jedoch vier schwerwiegende und eine mittelschwere Sicherheitslücke.

Diese Sicherheitslücken unterschiedlicher Art umfassen die Offenlegung von Informationen, eine fehlerhafte Zertifikatsvalidierung, Rechteausweitung, Authentifizierungsumgehung und Denial-of-Service-Angriffe. NuGet bietet einige interessante Statistiken zu dieser Bibliothek, darunter Informationen dazu, welche Versionen wie oft heruntergeladen wurden, sowie detaillierte Daten zu den letzten sechs Wochen.

Leider zeigen diese Statistiken, dass in den vergangenen sechs Wochen nur 16 % der Downloads dieser Bibliothek auf die neueste Version entfielen – die einzige Version, die vollständig frei von bekannten Sicherheitslücken ist. Das bedeutet, dass derzeit die meisten Nutzer, die die Bibliothek herunterladen, Versionen mit mehreren bekannten, schwerwiegenden Sicherheitslücken beziehen.

Die Zahlen auf NuGet geben jedoch Anlass zur Hoffnung. Die neueste Version (4.3.4) ist zwar seit sieben Monaten verfügbar, doch die Akzeptanz scheint zuletzt gestiegen zu sein. Version 4.3.4 wurde etwa 3,3 Millionen Mal heruntergeladen, davon 1,2 Millionen Mal in den letzten sechs Wochen.

Die Empfehlung von Snyk? Wenn Sie diese Bibliothek verwenden, aktualisieren Sie auf die aktuelle Version (4.3.4).

System.IO.Pipelines

Sehen wir uns nun die zweite Bibliothek unserer Liste an: system.io.pipelines. Diese Bibliothek ist relativ neu und gibt es erst seit Ende 2017. In unserer Top-10-Liste belegt sie bei den Downloads insgesamt den vorletzten Platz – angesichts ihrer erst kürzlich erfolgten Veröffentlichung ist das nicht überraschend.

Wozu dient die Bibliothek?

Die Bibliothek system.io.pipelines ist ein Tool zur Verwaltung von Byte-Puffern mit einem Produzenten und einem Konsumenten. Kurz gesagt: Diese Bibliothek erleichtert leistungsstarke Ein- und Ausgabevorgänge (I/O) in .NET.

Wie beliebt ist die Bibliothek?

System.io.pipelines wurde etwa 8,4 Millionen Mal heruntergeladen, darunter rund 600.000 Downloads der neuesten Version (4.5.3). Version 4.6.0 ist derzeit als Vorschauversion verfügbar.

Was wissen wir über Sicherheitslücken in dieser Bibliothek?

Derzeit ist nur eine Sicherheitslücke im Zusammenhang mit der Bibliothek system.io.pipelines bekannt. Ähnlich wie bei der zuvor besprochenen Bibliothek system.net.http gibt es auch bei der Sicherheitslücke in system.io.pipelines gute und schlechte Nachrichten.

Zunächst die schlechte Nachricht: Die einzige schwerwiegende Sicherheitslücke in dieser Bibliothek ist eine Denial-of-Service-Sicherheitslücke, durch die Ihre Website abstürzen kann. Sie hat einen hohen Schweregrad. Wird sie ausgenutzt, kann sie legitime Nutzer daran hindern, auf Ihre Website zuzugreifen, Ihre Serverkosten in die Höhe treiben und Ihnen viel Kopfzerbrechen bereiten.

Nun die gute Nachricht: Bei der einzigen schwerwiegenden Sicherheitslücke in dieser Bibliothek handelt es sich um eine Denial-of-Service-Sicherheitslücke. Ja, auch das ist eine gute Nachricht. Im Gegensatz zu anderen Sicherheitslücken zielen Denial-of-Service-Angriffe (DoS) in der Regel nicht darauf ab, die Sicherheit zu verletzen. Trotz der Probleme, die eine solche Sicherheitslücke verursachen kann, ist es beruhigend, dass sie zwar wahrscheinlich Ihre Verfügbarkeitsrate beeinträchtigt, aber voraussichtlich nicht zum Verlust von Daten oder personenbezogenen Informationen führt.

Die Empfehlung von Snyk? Aktualisieren Sie system.io.pipelines auf Version 4.5.1 oder höher und behalten Sie den Sicherheitsstatus dieser neuen und nützlichen Bibliothek im Auge!

Microsoft.AspNetCore.Server.Kestrel.Core

Zum Schluss sehen wir uns die dritte Bibliothek unserer Liste an: microsoft.aspnetcore.server.kestrel.core.

Wozu dient die Bibliothek?

Die Bibliothek microsoft.aspnetcore.server.kestrel.core ist die Kernkomponente des plattformübergreifenden Webservers Kestrel für ASP.NET Core. Kestrel ist ein ereignisgesteuerter Server, der auf asynchroner Ein- und Ausgabe (I/O) basiert und allgemein als bevorzugter Webserver für neue ASP.NET-Anwendungen gilt. Dem Kestrel-Webserver fehlen einige Funktionen, die für einen eigenständigen Webserver erforderlich sind. Bei asynchroner Ein- und Ausgabe ist er jedoch sehr schnell und kann zusammen mit IIS oder NGINX verwendet werden.

Wie beliebt ist die Bibliothek?

Microsoft.aspnetcore.server.kestrel.core gibt an, insgesamt mehr als 22 Millionen Downloads zu verzeichnen. Etwa 630.000 davon entfallen auf die neueste Version (2.2.0), die Ende 2018 veröffentlicht wurde.

Was wissen wir über Sicherheitslücken in dieser Bibliothek?

Diese Bibliothek weist derzeit vier bekannte Sicherheitslücken auf, darunter zwei mittelschwere Denial-of-Service-Sicherheitslücken sowie eine schwerwiegende Denial-of-Service-Sicherheitslücke und eine schwerwiegende Rechteausweitung. Die gute Nachricht: Die beiden neuesten Versionen (2.1.7 und 2.2.0) weisen keine bekannten Sicherheitslücken auf.

Die schlechte Nachricht: Eine verwandte Bibliothek (microsoft.aspnet.core.server.kestrel.transport.abstractions) steht ebenfalls auf der Liste. Wenn Sie microsoft.aspnetcore.server.kestrel.core verwenden, nutzen Sie wahrscheinlich auch microsoft.aspnet.core.server.kestrel.transport.abstractions. Außerdem sollten Sie bedenken, dass Kestrel kein voll ausgestatteter Webserver ist und oft hinter einer anderen Bibliothek betrieben wird. Ob Sie Kestrel eigenständig oder hinter einer Bibliothek wie NGINX oder IIS betreiben, wirkt sich auf Ihre Sicherheitsstrategie aus.

Fazit

Wir hoffen, Ihnen hat dieser genauere Blick auf die .NET-Bibliotheken gefallen, die unseren Scans zufolge für die meisten Sicherheitslücken in den Projekten unserer Nutzer verantwortlich sind. Freuen Sie sich auf weitere .NET-Inhalte von uns, während wir unsere neue Azure-Partnerschaft feiern. Verwenden Sie eine dieser Bibliotheken? Möchten Sie Ihre .NET-Projekte schützen? Testen Sie Snyk noch heute kostenlos.

Starten Sie mit Capture-the-Flag

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