Was ist Backporting?

Mai 19, 2022

Was ist ein Backport?

Von Backporting spricht man, wenn ein Software-Patch oder Software-Update einer neueren Software-Version auf eine ältere Version derselben Software angewendet wird.

Backports werden meist eingesetzt, um Sicherheitsmängel in veralteter Software oder in älteren Software-Versionen zu beheben, die noch vom Entwickler unterstützt werden. In vielen Fällen verwendet der Benutzer die ältere Software-Version, weil die neuere Version Stabilitätsprobleme aufweist oder mit Downstream-Anwendungen inkompatibel ist.

Funktionsweise von Backporting

Backporting ist ein Sammelbegriff für Aktivitäten, bei denen Updates oder Patches einer neueren Software-Version auf eine ältere Version angewendet werden.

Dieser Prozess kann unkompliziert sein, wenn nur wenige Codezeilen aktualisiert werden, er kann aber auch eine Grundüberholung bedeuten, die sich über mehrere Codedateien erstreckt.

Bei Letzterem kann ein Backport unpraktisch und deshalb eher ein Upgrade auf die neueste Version der Software angebracht sein. In bestimmten Fällen kann es aber erforderlich sein, eine ältere Anwendung zu behalten, wenn die neuere Version der Anwendung Stabilitätsprobleme aufweist und dadurch geschäftskritische Abläufe beeinträchtigt.

Der Backporting-Prozess

Das Backporting umfasst mehrere Schritte. Nachfolgend beschreiben wir die grundlegenden Schritte bei der Entwicklung und Bereitstellung eines Backports:

  1. Identifizieren des Sicherheitsmangels in der Software-Version, der ein Patch oder Update erfordert
  2. Ermitteln, welche Patches, Updates oder Änderungen verfügbar sind, um dieses Problem in neueren Versionen derselben Software zu beheben
  3. Adaptieren der Änderung, damit sie mit der älteren Codeversion kompatibel ist
  4. Durchführen gründlicher Tests, um sicherzustellen, dass der Backport-Code oder das Backport-Paket seine volle Funktionalität innerhalb der IT-Architektur behält und den zugrunde liegenden Sicherheitsmangel behebt
  5. Beheben aller unerwünschten Nebeneffekte, die im vorhergehenden Schritt erkannt wurden
  6. Installieren des Backport-Patches

Wer ist für das Backporting verantwortlich?

Backporting erfordert Zugriff auf den Quellcode der Software. Bei proprietärer Software kann der Backport vom Kernentwicklungsteam selbst entwickelt und bereitgestellt werden, z. B. im Rahmen eines offiziellen Patches oder Bugfixes. Für quelloffene Software wie Linux kann ein Backport von Dritten bereitgestellt und anschließend dem Software-Entwicklungsteam vorgelegt werden.

Wo kann das Backporting bei der Schwachstellenverwaltung angesiedelt werden?

Backporting hat viele Vorteile, stellt aber keine einfache Lösung für komplexe Sicherheitsprobleme dar. Darüber hinaus können Backports langfristig weitere Sicherheitsbedrohungen nach sich ziehen, deren Risiken schwerer wiegen als das ursprüngliche Problem.

Häufige Backporting-Probleme und -Überlegungen

Langfristige Support- und Wartungskosten

Backports können ein effektiver Ansatz bei der Behebung von Sicherheitsmängeln und Schwachstellen in älteren Software-Versionen sein. Jeder neue Backport bedeutet allerdings auch, dass die Systemarchitektur deutlich komplexer wird und hohe Wartungskosten anfallen können.

Ein Beispiel: Python 2.7.18 war die letzte offizielle Version von Python 2. Um auf dem aktuellen Stand der Sicherheitspatches zu bleiben und weiterhin von allen Neuentwicklungen von Python zu profitieren, mussten Unternehmen auf Python 3 upgraden oder die Anforderungen einfrieren und sich zu langfristigem Legacy-Support verpflichten. Vor genau diesem Dilemma stand auch das CrowdStrike Data Science Team. Dieser Artikel berichtet über den Entscheidungsfindungsprozess und die Schritte des Teams zur Aktualisierung von ca. 200.000 Zeilen Python zu einem modernen Framework.

Nebenwirkungen von Backporting

Wie in unserem Python-Blog-Beitrag erklärt, kann jeder Backport viele unerwünschte Nebenwirkungen innerhalb der IT-Umgebung haben. Genau wie eine Upstream-Software-Anwendung alle Downstream-Anwendungen beeinflusst, beeinflusst ein Backport die Kern-Software. Dies gilt auch, wenn der Backport innerhalb des Kernels angewendet wird.

Weitere Auswirkungen und Schwachstellen bei der Sicherheit

Backporting ist eine gängige Technik für die Behebung eines bekannten Fehlers innerhalb der IT-Umgebung. Gleichzeitig ergeben sich durch die Nutzung einer veralteten Codebasis andere potenziell bedeutsame Auswirkungen auf die Sicherheit im Unternehmen. Die Nutzung eines alten oder veralteten Codes könnte zu neuen Schwächen oder Schwachstellen in Ihrer Umgebung führen. Diese Probleme betreffen nicht nur die Hauptanwendung, sondern auch alle abhängigen Bibliotheken und Fork-Anwendungen in öffentlichen Repositorys. Dabei muss berücksichtigt werden, wie jeder Backport in die allgemeine Sicherheitsstrategie des Unternehmens und seine IT-Architektur passt. Dies gilt sowohl für Upstream-Software-Anwendungen als auch für den Kernel selbst.

Verwirrende Nummerierung

Backporting kann Benutzern einen falschen Sicherheitseindruck vermitteln, wenn sie den Nummerierungsprozess nicht vollständig verstehen. Ein Beispiel: Benutzer informieren sich in bestimmten Medien, wie sie ihre Software upgraden können, um Sicherheitsprobleme zu beheben. In Wirklichkeit installieren sie jedoch ein aktualisiertes Paket vom Hersteller und nicht die neueste Upstream-Version der Anwendung. In diesem Szenario führt der Benutzer immer noch eine ältere Upstream-Version der Software aus, auf die Backport-Pakete angewendet wurden. Diese Konstellation bietet nicht alle Sicherheitsfunktionen und Vorteile des Betriebs der neuesten Software-Version. Benutzer müssen unbedingt auf die Nummer des spezifischen Software-Updates beachten, um sicherzustellen, dass sie auf die neueste Version aktualisieren.