Richtlinien

Verwendung von Komponenten mit bekannten Sicherheitslücken

Die meisten Anwendungen nutzen eine große Anzahl von Drittanbieter-Komponenten. Diese Komponenten bieten alles von Logging und Templating bis hin zu Datenbankzugriffen und mehr.

Dies erleichtert die Softwareentwicklung erheblich und spart viel Zeit. Da diese Komponenten jedoch von Menschen entwickelt werden, enthalten einige zwangsläufig Schwachstellen. Das bedeutet, dass Sie möglicherweise unwissentlich Sicherheitslücken ausgesetzt sind, die ausgenutzt werden könnten.

Komponenten auf dem neuesten Stand halten

Als allgemeine Faustregel gilt: Es wird dringend empfohlen, Frameworks, Bibliotheken und andere Komponenten regelmäßig zu aktualisieren. Dies kann auf verschiedene Weise geschehen:

  • Viele Versionsverwaltungssysteme können Ihre Repositories analysieren und Sie benachrichtigen, wenn eine Schwachstelle in einer Abhängigkeit gefunden wurde
  • Zahlreiche Paketmanager können Ihre Anwendung analysieren und anfällige Abhängigkeiten identifizieren
  • Es gibt eine Vielzahl von Software Composition Analysis (SCA)-Lösungen, die anfällige Abhängigkeiten aufspüren können

Das Risiko technischer Schulden mindern

Ein tückisches Problem bei der Aktualisierung von Bibliotheken ist, dass sie Änderungen enthalten können, die den bestehenden Code beschädigen. Obwohl diese oft dokumentiert sind, kann es auch undokumentierte Änderungen geben, die sich möglicherweise erst zeigen, wenn Ihr Code in der Produktionsumgebung läuft.

Wenn Ihre Anwendung viele Versionen hinter der aktuellsten zurückliegt, kann ein erheblicher Aufwand erforderlich sein, um auf die neueste Version zu aktualisieren. Falls eine zeitkritische Schwachstelle bekannt wird, ist es entscheidend, dass Ihre Drittanbieter-Komponenten relativ aktuell sind, um zu vermeiden, dass das Update tagelange Arbeit erfordert.

Es ist zudem nicht ratsam, Pakete blind zu aktualisieren, ohne zumindest die Release Notes zu lesen. Diese können wichtige Informationen über Änderungen enthalten, die nicht offensichtlich sind, aber die Funktionsweise Ihrer Anwendung beeinträchtigen könnten.

Könnte ein Update die Sicherheit verringern?

Obwohl es selten vorkommt, gab es Fälle, in denen eine Schwachstelle:

  • In älteren Versionen nicht existierte
  • Durch die Behebung einer anderen Schwachstelle neu eingeführt wurde

Solche Fälle könnten zu der Annahme führen, dass eine regelmäßige Aktualisierung von Paketen nicht erstrebenswert sei. Diese Denkweise sollte jedoch nach Möglichkeit vermieden werden, da sie zum Aufbau technischer Schulden führt.

Angesichts der relativen Seltenheit dieses Szenarios überwiegen die Vorteile häufiger Updates bei weitem die Möglichkeit einer neu eingeführten Schwachstelle – die ohnehin leicht behoben werden kann, wenn Sie Ihre Komponenten regelmäßig auf dem neuesten Stand halten.

Dies setzt zudem voraus, dass Anbieter Schwachstellen nicht stillschweigend ohne Offenlegung beheben, was leider immer noch sehr häufig vorkommt.

Nennenswerte Beispiele

Einige nennenswerte Beispiele, von denen Sie in letzter Zeit wahrscheinlich gehört haben, sind unten aufgeführt. Sie verdeutlichen, warum es wichtig ist, Ihre Bibliotheken zu überprüfen und sicherzustellen, dass Sie auf dem neuesten Stand bleiben.

‍

Slogan

Sichere Programmierung in der Praxis

Entdecken Sie Richtlinien für sicheres Programmieren, um Schwachstellen wie die OWASP Top 10 zu verstehen und zu beheben, und tauchen Sie in geführte Trainingsmissionen ein, um diese in realistischen Anwendungssimulationen zu üben.

Weitere Richtlinien
Demo buchen