Woher kommen Sicherheitspatches?
25. Januar 2018
0 Min. LesezeitBekannte Schwachstellen in Software sind ein weitverbreitetes Problem und waren die Ursache für einige der größten Sicherheitsvorfälle weltweit. Dazu zählen der Vorfall bei Mossack Fonesca (Panama Papers), der Vorfall bei VerticalScope, bei dem 45 Millionen Passwörter und IP-Adressen aus einem Netzwerk mit 1.100 Websites gestohlen wurden, und der Einbruch in die Ubuntu-Foren, bei dem zwei Millionen Benutzernamen und Passwörter entwendet wurden.
Die beste Lösung für bekannte Schwachstellen ist ein Software-Upgrade. Das ist jedoch nicht immer möglich. Für die Software, auf die Sie angewiesen sind, ist möglicherweise nicht sofort ein Sicherheitsupgrade verfügbar. Oder das Upgrade umfasst weitreichende funktionale Änderungen, sogenannte „Breaking Changes“, die beeinflussen, wie Menschen oder andere integrierte Systeme auf die Software zugreifen und sie nutzen. Dadurch werden Upgrades teuer und sind oft nicht praktikabel.
Die nächstbeste Lösung ist, Ihre Software mit einem Patch zu versehen. Ein Sicherheitspatch ist ein Update für eine Software, das ein konkretes Sicherheitsproblem behebt und dabei die Funktionalität so wenig wie möglich verändert.
Bei proprietärer Software erhalten Sie einen Sicherheitspatch nur vom Softwareanbieter, den Sie dann installieren. Ein bekanntes Beispiel ist Windows Update, über das regelmäßig Sicherheitspatches an Millionen Windows-PCs verteilt werden. Die Verwaltung von Patches kommerzieller Software ist ein wachsendes Fachgebiet. Über „Patch-Management“ – den Prozess zur Beschaffung, Prüfung und Installation von Sicherheitspatches für Ihre Anwendungen – wurde bereits viel geschrieben. Es wurden zahlreiche Tools entwickelt, mit denen IT-Fachkräfte erkennen können, wann neue Patches veröffentlicht wurden, und diese auf ihren Computerflotten installieren können.
Open-Source-Software entwickelt sich für viele Anwendungsfälle in Unternehmen zum De-facto-Standard – insbesondere als Infrastruktur für die Entwicklung neuer Software. Open-Source-Software ist genauso anfällig wie proprietäre Software, doch oft ist unklar, wo Sie einen Sicherheitspatch für die neueste Schwachstelle finden. Zudem betreuen viele Open-Source-Maintainer ihre Projekte in ihrer Freizeit. Deshalb kann es nach der Entdeckung einer Schwachstelle einige Zeit dauern, bis die Software aktualisiert oder mit einem Patch versehen wird.
Vier Möglichkeiten, Sicherheitspatches für Open-Source-Software zu finden
1. Upgrade oder Patch von den Open-Source-Entwicklern
Der naheliegendste Ort für einen Patch ist eine neue Version der anfälligen Open-Source-Software. In den meisten Fällen beheben die Maintainer der Bibliothek die Schwachstellen.
2. Pull Requests
In manchen Fällen erstellen Open-Source-Mitwirkende einen Pull Request mit Code, der eine Sicherheitslücke beheben kann. Es kann jedoch einige Zeit dauern, bis der Pull Request in die Hauptversion der Software übernommen wird – falls das überhaupt geschieht.
Die beliebte JavaScript-Bibliothek marked zum Parsen von Markdown hatte beispielsweise eine XSS-Schwachstelle mit einem offenen Pull Request zur Behebung, der ein ganzes Jahr lang unbearbeitet blieb, bevor die Korrektur in eine neue Version übernommen wurde.
Wenn ein offener Pull Request die Schwachstelle behebt, können Sie den darin enthaltenen Code herunterladen und als neue, gepatchte Version verwenden. Es besteht jedoch weiterhin das Risiko, dass die vorgeschlagenen Codeänderungen nicht wie erwartet funktionieren oder Regressionen in der Software verursachen. Prüfen Sie daher am besten, ob andere Mitglieder der Community den neuen Code bereits begutachtet haben, und testen Sie ihn, bevor Sie ihn einsetzen.
3. Forken und beheben
Nutzerinnen und Nutzer, die selbst entwickeln, können die Open-Source-Software forken – also eine eigene Version erstellen – und die Schwachstelle selbst beheben. Das bietet den Vorteil der Zuverlässigkeit: Sie wissen, dass Sie eine stabile Version haben, die Ihren Anforderungen entspricht und frei von der Schwachstelle ist.
Der Nachteil: Durch das Forken verlieren Sie den Anschluss an die Hauptlinie der Softwareupdates und Fehlerbehebungen und können sich mit der Zeit einer größeren Gefahr aussetzen. Schließlich werden ständig neue Schwachstellen entdeckt.
4. Update-Feeds
RedHat und Canonical, zwei Unternehmen, die das Linux-Ökosystem unterstützen, stellen Linux-Nutzern einen Feed mit Updates bereit, darunter auch Sicherheitsupdates.
Der Dienst LivePatch von Canonical installiert wichtige Ubuntu-Kernel-Patches, ohne dass das System neu gestartet werden muss.
RedHat stellt den Yum-Paketmanager bereit, mit dem Sie jedes Linux-Paket auf die neueste verfügbare Version aktualisieren können, die in vielen Fällen auch Sicherheitskorrekturen enthält. Der Befehl yum check-update prüft, für welche installierten Pakete Updates verfügbar sind. Mit dem Befehl yum update package werden diese automatisch auf die neueste Version aktualisiert.
Das Yum-Sicherheits-Plugin kennzeichnet sicherheitsrelevante Updates. Es ist für RedHat Enterprise Linux 5.0 verfügbar und ab RedHat Enterprise Linux 7.0 und höher integriert.
Auch Paketmanager wie npm (Node.js) und Maven (Java) können dabei helfen, Pakete aktuell zu halten und Sicherheitsupdates zu installieren. Sie erkennen jedoch nicht, welche Updates sicherheitsrelevant sind.
5. Snyk
Ein Tool zur Verwaltung bekannter Schwachstellen sollte in jedem Open-Source-Workflow zum Einsatz kommen. Wichtig ist jedoch, dass das Tool auch Patches bereitstellt. Deshalb haben wir Patching von Anfang an in unser Kernangebot integriert. In unserer Schwachstellendatenbank pflegen wir eigene Patches. Bei den meisten handelt es sich um Backports ursprünglicher Fehlerbehebungen für ältere Versionen, die weiterhin anfällig sind. Einige sind Pull Requests, die getestet und als direkt installierbare Patches bereitgestellt wurden. Andere stammen vom Snyk-Sicherheitsteam.

Sie können diese Patches über die CLI in Ihren automatisierten Build-Prozess einbinden oder sie per automatisiertem Pull Request direkt für Ihr Projekt vorschlagen lassen. Wenn Sie den Aufwand für das Patchen verringern, können Sie Patches schnell testen und im Rahmen Ihres normalen Workflows anwenden.
Fazit
Fast alle Softwareprodukte werden irgendwann anfällig und müssen aktualisiert oder mit Patches versehen werden. Entscheidend ist, wie schnell Sie einen Patch erhalten, der die Schwachstelle behebt, und wie einfach er sich anwenden lässt.
Bei proprietärer Software sind Sie auf die Anbieter angewiesen, die zunehmend schneller auf Sicherheitsprobleme reagieren. Bei Open-Source-Software ist eine aktive Community von Maintainerinnen und Maintainern der beste Schutz vor Sicherheitslücken und anderen Fehlern. In vielen Fällen stellt die Open-Source-Community den benötigten Patch jedoch nicht rechtzeitig bereit.
Sie können selbst nach einem Patch suchen oder einen erstellen – oder sich an Anbieter wie Canonical, RedHat oder Snyk wenden, um eine automatisierte Fehlerbehebung zu erhalten. Angesichts der wachsenden Komplexität des Open-Source-Ökosystems gehen wir davon aus, dass Tools zu einem unverzichtbaren Bestandteil der Sicherheitsstrategie jedes Unternehmens werden.