GitHub beschreibt die neue Standardfrist als Schutz gegen ein sehr konkretes Muster in Lieferkettenangriffen: Ein Angreifer veröffentlicht eine vergiftete Version eines populären Pakets, nachgelagerte Projekte ziehen sie rasch ein, und erst danach wird die Version aus dem Paketregister entfernt. Auch wenn solche trojanisierten Pakete oft nur kurz verfügbar seien, reiche dieses Zeitfenster aus, um die Reichweite eines Supply-Chain-Angriffs deutlich zu vergrößern.

Die Standardeinstellung von drei Tagen gilt nach Angaben von GitHub ausschließlich für Versionsupdates. Sicherheitsupdates werden weiter ohne Verzögerung ausgeliefert. Dependabot kann damit weiterhin sofort eine Warnung ausgeben und einen Pull Request anlegen, um ein Projekt auf eine gepatchte Version anzuheben. Wer davon abweichen will, kann das Verhalten über die Konfigurationsoption „cooldown“ in dependabot.yml steuern und einen anderen Zeitraum festlegen.

Warum GitHub ausgerechnet drei Tage als Standard gewählt hat, begründet das Unternehmen mit einem Abwägen zwischen zwei Zielen. Die Frist liege in einem Bereich, der über das typische Zeitfenster vieler solcher Angriffe hinausgehe, ohne Abhängigkeiten länger als nötig zurückzuhalten. GitHub bezeichnet diesen Zeitraum als einen praktikablen Mittelweg.

Zugleich betont die Plattform, dass die Wartezeit nur eine Schutzschicht unter mehreren sein soll. Als weitere Maßnahmen nennt GitHub das Festschreiben von Abhängigkeiten mit Lockfiles, das Deaktivieren von Installationsskripten in CI-Umgebungen, eng begrenzte Token-Berechtigungen in Build-Pipelines sowie die Prüfung von Updates vor dem Zusammenführen.

GitHub weist außerdem auf die Grenzen des Ansatzes hin. Der Mechanismus sei für ein bestimmtes Angriffsmuster gedacht: eine bösartige Version, die veröffentlicht, schnell verbreitet und dann rasch entdeckt wird. Wenig Wirkung habe er dagegen gegen Angriffe, die langfristiger angelegt sind, etwa in Releases platzierte und zunächst ruhende Hintertüren, Sabotage durch Maintainer oder ein kompromittiertes Build-System.

Ganz allein steht GitHub mit solchen zeitbasierten Schutzmechanismen nicht. Ähnliche Warte- oder Abkühlphasen wurden im vergangenen Jahr laut dem Unternehmen in mehreren Paket-Ökosystemen angekündigt, darunter Microsoft Visual Studio Code (VS Code), Ruby, Bun, npm, pnpm und Yarn.

Im selben Zusammenhang verweisen die Maintainer des Python Package Index (PyPI) auf eine weitere Maßnahme: Sie wollen Maintainer daran hindern, nach Ablauf von 14 Tagen seit der Veröffentlichung einer Paketversion neue Dateien zu diesem Release hinzuzufügen. Nach Angaben von PyPI soll das verhindern, dass Angreifer nach einer Kompromittierung von Publishing-Token oder Workflows ältere, als vertrauenswürdig geltende Releases nachträglich vergiften.