Leitlinien

Verwendung von Komponenten mit bekannten Sicherheitslücken

Die meisten Anwendungen nutzen eine große Anzahl von Komponenten von Drittanbietern. Diese Komponenten bieten alles, von der Protokollierung über die Schablonenerstellung bis hin zum Datenbankzugriff und mehr. 

Das macht die Entwicklung von Software viel einfacher und spart viel Zeit. Allerdings werden diese Komponenten auch von Menschen gemacht und einige enthalten zwangsläufig Schwachstellen. Das bedeutet, dass Sie möglicherweise unwissentlich Schwachstellen haben, die ausgenutzt werden können.

Komponenten auf dem neuesten Stand halten

Als Faustregel gilt, dass Frameworks, Bibliotheken und andere Komponenten regelmäßig auf dem neuesten Stand gehalten werden sollten. Dies kann auf verschiedene Weise geschehen:

  • Viele Source-Control-Programme können Ihre Repositories analysieren und Sie warnen, wenn eine Sicherheitslücke in einer Abhängigkeit gefunden wurde.
  • Viele Paketmanager können Ihre Anwendung analysieren und alle anfälligen Abhängigkeiten identifizieren, die Sie möglicherweise haben
  • Es gibt zahlreiche Software Composition Analysis (SCA)-Lösungen, die alle anfälligen Abhängigkeiten identifizieren können 

Minderung des Risikos der technischen Schuld

Ein ziemlich heimtückisches Problem bei der Aktualisierung von Bibliotheken ist, dass sie codebrechende Änderungen enthalten können. Diese sind zwar oft dokumentiert, aber es kann auch undokumentierte Änderungen geben, die möglicherweise erst dann sichtbar werden, wenn Ihr Code in der Produktion läuft. 

Wenn Ihre Anwendung viele Versionen hinter der aktuellsten Version zurückliegt, kann ein Upgrade auf die neueste Version mit erheblichem Aufwand verbunden sein. Wenn eine zeitkritische Sicherheitslücke bekannt wird, ist es wichtig, dass Sie bei den Komponenten von Drittanbietern relativ aktuell sind, um zu vermeiden, dass das Upgrade Tage dauert. 

Es ist auch nicht empfehlenswert, Pakete blind zu aktualisieren, ohne zumindest die Versionshinweise zu lesen, da sie wichtige Informationen über Änderungen enthalten können, die nicht offensichtlich sind, aber die Funktionsweise Ihrer Anwendung verändern könnten. 

Könnte eine Aktualisierung Sie verunsichern?

Es ist zwar nicht üblich, aber es gibt Fälle, in denen eine Schwachstelle auftreten kann:

  • In älteren Versionen nicht vorhanden
  • Bei der Behebung einer Sicherheitslücke eingeführt werden

Diese Fälle könnten zu der Annahme verleiten, dass eine regelmäßige Aktualisierung von Paketen nicht wirklich wünschenswert ist. Dieses Denken sollte natürlich nach Möglichkeit vermieden werden, da es zum Aufbau technischer Schulden führt. 

In Anbetracht der relativen Seltenheit dieses Szenarios überwiegen die Vorteile einer häufigen Aktualisierung der Pakete bei weitem die Möglichkeit einer neu eingeführten Schwachstelle, die ohnehin leicht abgemildert werden sollte, wenn Sie regelmäßig auf dem neuesten Stand bleiben. 

Außerdem wird davon ausgegangen, dass die Hersteller Schwachstellen nicht stillschweigend beheben, ohne sie offenzulegen, was leider immer noch sehr häufig der Fall ist. 

Bemerkenswerte Beispiele

Im Folgenden sind einige bemerkenswerte Beispiele aufgeführt, von denen Sie in letzter Zeit wahrscheinlich gehört haben. Sie können sehen, wie und warum es wichtig ist, Ihre Bibliotheken zu überprüfen und sicherzustellen, dass Sie auf dem neuesten Stand sind.