GitHub oraz Python Package Index (PyPI) wdrożyły nowe mechanizmy bezpieczeństwa, których celem jest wzmocnienie ochrony łańcucha dostaw oprogramowania. Zmiany mają zapobiegać szybkiemu rozprzestrzenianiu się zainfekowanych wersji pakietów oraz chronić długo utrzymywane, stabilne wydania przed nieautoryzowanymi modyfikacjami.
Nowe zasady działania Dependabot
GitHub wprowadził tzw. okno karencji (cooldown) dla narzędzia Dependabot. Od teraz, po opublikowaniu nowej wersji pakietu, automatyczne narzędzie do aktualizacji zależności będzie czekać co najmniej trzy dni, zanim wygeneruje żądanie typu pull request. Rozwiązanie to ma na celu ograniczenie ryzyka automatycznego pobierania złośliwego kodu, który mógłby zostać wprowadzony w bardzo wczesnej fazie życia nowej wersji.
Czekanie kilku dni przed wdrożeniem nowego wydania daje opiekunom projektów, badaczom bezpieczeństwa oraz zautomatyzowanym skanerom czas na wykrycie złośliwej wersji i jej usunięcie, zanim trafi ona do Twoich żądań pull request.
Warto zaznaczyć, że trzy-dniowy okres oczekiwania dotyczy wyłącznie standardowych aktualizacji wersji. W przypadku poprawek bezpieczeństwa mechanizm ten nie będzie blokował działań. Użytkownicy mają również możliwość modyfikacji tego zachowania poprzez konfigurację w pliku dependabot.yml, jeśli uznają, że domyślny czas oczekiwania nie odpowiada ich potrzebom.
Ochrona stabilnych wydań w PyPI
Platforma PyPI wprowadziła restrykcje dotyczące aktualizacji starszych wydań pakietów. Obecnie zablokowano możliwość przesyłania nowych plików do wydań, które mają więcej niż 14 dni. Celem tej zmiany jest uniemożliwienie atakującym „zatrucia” stabilnych wersji oprogramowania w przypadku, gdyby udało im się przejąć tokeny autoryzacyjne lub przepływy pracy (workflows) twórców projektu.
Choć według dostępnych informacji mechanizm ten nie był dotychczas aktywnie wykorzystywany przez cyberprzestępców, PyPI zdecydowało się na prewencyjne uszczelnienie systemu. Zmiana ta wpłynie na niewielką grupę projektów, które wciąż praktykują dodawanie plików do starszych wydań. Z przeprowadzonych analiz wynika, że jedynie 56 z 15 000 najpopularniejszych pakietów publikowało kompatybilne pliki typu wheel po upływie dwóch tygodni od pierwotnego wydania.
Wdrożenie tych zasad ma nie tylko podnieść poziom bezpieczeństwa użytkowników, ale również ułatwić pracę administratorom w przypadku wystąpienia incydentu. Dzięki ograniczeniom znacznie łatwiej będzie odróżnić wersje bezpieczne od tych, które mogły zostać skompromitowane.
