Skip to main content

Snyk kooperiert mit den Machern von Greenkeeper, um Entwickler bei der proaktiven Pflege gesunder Abhängigkeiten zu unterstützen

Artikel von
Headshot of Dan Mckean

Dan Mckean

5. März 2020

0 Min. Lesezeit

Wir freuen uns, die Einführung von Automatic Dependency Upgrades bekannt zu geben – einer Funktion von Snyk Open Source, die Entwicklern hilft, Sicherheitslücken proaktiv zu reduzieren und beim Einsatz von Open-Source-Software gesunde Abhängigkeiten zu pflegen. Automatic Dependency Upgrades ist das Ergebnis einer spannenden neuen Partnerschaft zwischen Snyk und Neighbourhoodie Software, den Machern von Greenkeeper und Innovatoren im Bereich Entwickler-Tools.

Das Greenkeeper-Team unterstützt Entwickler bereits seit 2015 dabei, ihre Software aktuell und zuverlässig zu halten, und gehörte zu den Pionieren auf diesem Gebiet. Die Zusammenarbeit mit einem weiteren entwicklerfreundlichen Team war für uns eine naheliegende Entscheidung. Wir sind stolz darauf, dass das Ergebnis dieser Partnerschaft nun sowohl Snyk- als auch Greenkeeper-Nutzern zur Verfügung steht.

Die (wachsende) Herausforderung durch Open-Source-Abhängigkeiten

Entwickler binden große Mengen direkter und indirekter Open-Source-Abhängigkeiten in ihren Code ein. Viele davon weisen Sicherheitslücken auf. Wie gut sich diese beheben lassen, hängt maßgeblich davon ab, wie aktuell die Abhängigkeiten sind: Je weiter Ihre Version zurückliegt, desto schwieriger wird ein Upgrade.

Veraltete und anfällige Abhängigkeiten im Blick zu behalten, ist entscheidend, damit Anwendungen sicher und zuverlässig bleiben. Ohne Automatisierung ist das selbst für das erfahrenste Entwicklerteam praktisch unmöglich. Abhängigkeiten projektübergreifend manuell zu prüfen und bei Bedarf zu aktualisieren, ist gelinde gesagt eine gewaltige Aufgabe.

Mit Automatic Dependency Upgrades überwacht Snyk Open Source kontinuierlich alle integrierten Projekte und erstellt automatisch umsetzbare Pull Requests mit umfassendem Kontext, sobald neue Abhängigkeitsversionen erkannt werden. Dank der vollständigen Kontrolle über Tempo und Umfang werden Entwickler nicht mit zu vielen Upgrades überfordert. Automatic Dependency Upgrades nutzt außerdem die umfassende und stets aktuelle Schwachstellendatenbank von Snyk und stellt so sicher, dass empfohlene Versionen keine neuen Sicherheitslücken einführen.

Entwicklerfreundliche Upgrade-Workflows

Bei Snyk war es schon immer unser Ziel, Entwicklern Tools bereitzustellen, die sich in ihre bestehenden Workflows einfügen, statt neue zu schaffen. Automatic Dependency Upgrades bildet da keine Ausnahme: Die Funktion lässt sich direkt in Code-Repositories integrieren und löst automatische Abhängigkeits-Upgrades aus – genau wie jeder andere Pull Request.

GitHub-Pull-Request mit einem Snyk-Upgrade von react-scripts von 1.0.14 auf 1.1.5 und einer Liste der behobenen Sicherheitslücken.

Wie jeden Pull Request können Sie auch Pull Requests für Abhängigkeits-Upgrades prüfen und verifizieren, bevor Sie sie zusammenführen. So lässt sich sicherstellen, dass kein Risiko besteht, etwas zu beschädigen. Aus demselben Grund erstellt Snyk keinen Upgrade-Pull-Request für eine Abhängigkeitsversion, die weniger als 21 Tage alt ist. Unsere Untersuchungen zeigen, dass sich so illegitime Versionen vermeiden lassen, falls das Konto eines Maintainers kompromittiert und absichtlich eine schädliche Version veröffentlicht wird.

GitHub-Pull-Request mit Änderungen an package-lock.json, die das Paket content-disposition von Version 0.5.2 auf 0.5.3 aktualisieren

Fundierte Entscheidungen zu Upgrades treffen

Im Gegensatz zu anderen automatisierten Lösungen, die neue Versionen einfach einspielen, liefert Snyk kontextbezogene, umsetzbare Informationen, damit Entwickler fundiertere Upgrade-Entscheidungen treffen können. Das ist besonders wichtig bei Projekten mit vielen veralteten Abhängigkeiten und hilft dabei, die zu aktualisierenden Abhängigkeiten zu priorisieren.

Die automatisierten Upgrade-Pull-Requests von Snyk enthalten Details zum Reifegrad des vorgeschlagenen Upgrades sowie die Versionshinweise der Abhängigkeit. Außerdem werden Informationen zu den Sicherheitslücken bereitgestellt, die durch das Upgrade behoben werden – einschließlich ihres Schweregrads und der Frage, ob bekannte Exploits für die jeweilige Sicherheitslücke existieren.

GitHub-Pull-Request von snyk-bot zum Upgrade des express-Pakets von Version 4.16.0 auf 4.17.1 mit angezeigten Versionshinweisen.

Das Tempo von Upgrades steuern

Aktuelle Abhängigkeiten sind entscheidend für den Zustand eines Projekts. Pull Requests für jede neue Version jeder Abhängigkeit durchzugehen, kann jedoch eine gewaltige und zeitaufwendige Aufgabe sein. Wir wollten sicherstellen, dass Entwickler nicht von zu vielen Benachrichtigungen überfordert werden. Deshalb haben wir die Kontrolle über Tempo und Umfang der Upgrade-Pull-Requests ergänzt.

Da Upgrades auf Hauptversionen in der Regel riskanter sind, erstellt Snyk standardmäßig nur Upgrade-Pull-Requests für Minor-Versionen und Patches. Sie können dieses Verhalten ändern und Snyk auch mit Upgrade-Pull-Requests für Hauptversionen beauftragen – eine der Funktionen, die Neighbourhoodie im Rahmen unserer Partnerschaft mit uns umgesetzt hat.

Mit Snyk können Sie die Anzahl der gleichzeitig offenen Upgrade-Pull-Requests begrenzen und außerdem festlegen, welche Abhängigkeiten ignoriert werden sollen.

Snyk-Einstellungsseite für automatische Dependency-Upgrade-Pull-Requests: Upgrades sind aktiviert, Patch- und Minor-Versionen ausgewählt und react-scripts ignoriert.

Wie fange ich an?

Automatic Dependency Upgrades ist in allen Snyk Open Source-Plänen verfügbar: Free, Standard, Pro und Enterprise. Um die Funktion zu nutzen, registrieren Sie sich einfach bei Snyk, integrieren Sie Ihre Projekte und warten Sie auf einen Pull Request mit empfohlenen Upgrades für Ihre Abhängigkeiten.

Automatic Dependency Upgrades wird derzeit für npm-, Maven-Central- und Yarn-Projekte auf GitHub/GitHub Enterprise und Bitbucket Cloud unterstützt. Weitere Projekttypen folgen in Kürze. Bleiben Sie auf dem Laufenden.

Weitere Informationen zu dieser Funktion und Snyk Open Source finden Sie hier:

Viel Erfolg beim Aktualisieren!