Schwachstellen mit Zuversicht beheben – mit ML-gestütztem Merge Advice von Snyk
2. Juni 2020
0 Min. LesezeitWir freuen uns, die Beta-Version von Merge Advice anzukündigen – die neueste Erweiterung der Snyk-Funktionen zur Behebung von Schwachstellen, mit der Sie diese zuverlässig beheben können. Merge Advice nutzt Machine Learning und gibt Entwicklern mehr Sicherheit dabei, Schwachstellen in ihren Open-Source-Abhängigkeiten zu beheben.
Mehr Sicherheit für Entwickler
Das Risiko, durch Änderungen einen Branch zu beschädigen, kann dafür sorgen, dass sich ein Klick auf die Schaltfläche zum Zusammenführen wie Russisches Roulette anfühlt. Selbst etwas so Einfaches wie ein Paket-Upgrade kann mitunter Code beeinträchtigen, der von dieser Abhängigkeit abhängt.
Pull Requests mit Zuversicht zusammenzuführen ist entscheidend. Deshalb investieren wir weiterhin in die Genauigkeit der Fix- und Upgrade-Pull-Requests von Snyk und nehmen so wenige Änderungen wie möglich vor, um die Schwachstelle zu beseitigen. Bei Sicherheitskorrekturen empfehlen wir beispielsweise immer die niedrigste nicht anfällige Version, die mit Ihrem Projekt kompatibel ist. Merge Advice geht noch einen Schritt weiter und nutzt Machine Learning, damit sich mehr Schwachstellen zuverlässig beheben lassen.
Jeder kompatible Pull Request, der von Snyk oder über Snyk erstellt wurde, erhält ein Badge, das anzeigt, ob der Fix wahrscheinlich zu Breaking Changes führt. Entwickler verfügen nun über die nötigen Informationen, um fundierte Merge-Entscheidungen zu treffen.
Wie funktioniert es?
Um Merge Advice für jeden PR zu ermitteln, werden umfangreiche Daten ausgewertet:
Die PR-Aktivität wird sowohl in öffentlichen GitHub-Repositories als auch in den von Snyk überwachten Repositories erfasst.
Dabei werden drei Kennzahlen gemessen: CI-Testergebnisse, Merge-Raten und Rollbacks von PRs.
Anschließend sagt Machine Learning den Erfolg eines PR-Merges voraus.
Das Ergebnis dieses Prozesses ist ein Merge Advice-Badge, das oben in kompatiblen Pull Requests angezeigt wird:

Präzise Prognosen mithilfe von Machine Learning
Der Algorithmus hinter Merge Advice wurde dafür entwickelt, den Erfolg von Merge-Pull-Requests mit hoher Zuverlässigkeit vorherzusagen. Grundlage ist ein statistisches Modell, das sowohl die Anzahl der Datenpunkte als auch deren beobachtete Verteilung für ein Upgrade einer bestimmten Abhängigkeit von Version X auf Version Y berücksichtigt. Wenn nicht genügend Daten für eine verlässliche Prognose vorliegen, wird für ein Upgrade KEINE Empfehlung angezeigt.
Das Modell hinter Snyks Merge Advice verfolgt einen besonderen Ansatz und erfasst mehrere Kennzahlen:
die Bestehens- und Fehlerrate der CI-Test-Suites beim Upgrade eines Pakets von Version X auf Y,
die Merge-Rate dieser Upgrades
und die Anzahl der Rollbacks eines Upgrades.
Diese Kennzahlen werden außerdem über mehrere Datenquellen hinweg erfasst. Mithilfe von GHArchive überwachen wir die Aktivität in öffentlichen GitHub-Repositories. Das Projekt zeichnet öffentliche GitHub-Aktivitäten auf, archiviert sie und stellt sie für weitere Analysen zur Verfügung. Natürlich beziehen wir auch die derzeit über 750.000 Repositories ein, die von Snyk-Nutzern geschützt werden.
Durch die Kombination dieser Datenquellen entsteht ein umfangreicher Datensatz, aus dem sich Erkenntnisse ableiten lassen und der dem von Merge Advice verwendeten Modell mehr statistische Aussagekraft verleiht.
Zusammenführen oder nicht zusammenführen – das ist hier die Frage!
Wie sieht das also in Ihrem GitHub-Alltag aus? Sehen wir uns das genauer an.
Wie bisher können Snyk-Nutzer über die Snyk-Oberfläche manuell einen PR erstellen, um eine bestimmte Schwachstelle oder eine Gruppe von Schwachstellen zu beheben. Snyk kann außerdem in zwei Fällen automatisch einen Pull Request erstellen: wenn eine neue Schwachstelle in vorhandenen Abhängigkeiten erkannt wird oder wenn eine veraltete Abhängigkeit festgestellt wird.
Unabhängig vom Auslöser enthalten diese Pull Requests jetzt das neue Merge Advice-Badge. Die angezeigte Empfehlung basiert auf dem oben beschriebenen Prognosemodell.

Jetzt beheben!
Merge Advice soll Entwickler dabei unterstützen, fundierte Entscheidungen zu treffen, wenn sie Pull Requests zum Schutz ihrer Open-Source-Abhängigkeiten zusammenführen. Damit die Ergebnisse stets optimal sind, verbessern wir kontinuierlich den Algorithmus hinter dieser Funktion. Auch Faktoren wie saisonale Schwankungen können die Ergebnisse beeinflussen und fließen deshalb ebenfalls in die Berechnungen ein.
Derzeit sind Merge Advice-Badges nur für einen kleinen Teil der GitHub-Pull-Requests für Yarn- und npm-Pakete sichtbar, bei denen jeweils nur ein einzelnes Paket aktualisiert wird. Im Laufe der Beta-Version werden wir die Unterstützung ausweiten und vertiefen. Bleiben Sie also auf dem Laufenden.
Merge Advice ist für alle Nutzer und alle Tarife verfügbar, einschließlich des Free-Tarifs.
Viel Erfolg beim Zusammenführen!
Starten Sie mit Capture the Flag
Erfahren Sie in unserem virtuellen On-Demand-Workshop für Einsteiger, wie Sie Capture-the-Flag-Herausforderungen lösen.



