GitHub обяви нов механизъм за изчакване в Dependabot, който позволява на инструмента да изчака поне три дни след публикуването на нова версия, преди да отвори заявка за сливане (pull request).
„Опцията за конфигуриране на гратисния период в dependabot.yml все пак контролира поведението, така че можете да изберете различен параметър за изчакване, който съответства на вашия проект“, заявиха от дъщерното дружество на Microsoft.
Според GitHub тридневният гратисен период по подразбиране се прилага само за актуализации на версиите, които са предназначени да поддържат зависимостите на софтуера актуални. Обновяванията на сигурността ще продължат да се изпращат незабавно, позволяващи на Dependabot да изпрати известие и да отвори заявка за сливане за преминаване на проекта към версията с коригирана уязвимост.
С тази актуализация целта е да се справят със сценарии, при които злонамерен субект успее да качи компрометирана версия на популярен пакет, която след това бързо се изтегля от следващите проекти в веригата, преди тази версия да бъде премахната от регистъра. Въпреки че тези пакети с вградени троянски коне съществуват за кратко, времето, през което остават достъпни, е достатъчно за разширяване на обхвата на атаката по веригата за доставки.
GitHub посочи, че е избрал три дни като стойност по подразбиране, тъй като счита този период за оптимален баланс. „Три дни като време по подразбиране балансира две цели: превежда ви отвъд прозореца, в който се случват повечето от тези атаки, и не задържа обновяването на вашите зависимости по-дълго от необходимото“, добавят те.
В същото време платформата за разработка на софтуер подчерта, че този контрол трябва да бъде само един слой от защитата сред няколко други, включително фиксиране на зависимостите с lockfiles, деактивиране на инсталационни скриптове в среди за непрекъсната интеграция (CI), ограничаване на обхвата на токените в тръбопроводите за изграждане и преглед на актуализациите преди сливането им.
„Гратисният период е създаден за специфичен модел: злонамерена версия, която се доставя, разпространява и бива засечена бързо“, споделят от GitHub. „Той не помага особено срещу атаки, които разчитат на дългосрочна игра, включително задни врати, внедрени в релизи и оставени неактивни, саботаж от страна на поддържащите кода или компрометирана система за компилация.“
Заслужава да се отбележи, че подобни мерки за изчакване бяха обявени в различни софтуерни екосистеми през изминалата година, включително Microsoft Visual Studio Code (VS Code), Ruby, Bun, npm, pnpm и Yarn.
Защитата на GitHub, базирана на време, идва в момент, когато поддържащите Python Package Index (PyPI) обявиха планове да блокират възможността на разработчиците да добавят нови файлове към вече публикувана версия на пакет след изтичането на 14 дни от нейното публикуване.
„Мярката има за цел да попречи на атакуващи, които са компрометирали токени за публикуване или работни процеси, да инжектират зловреден код в стари, доверени версии“, отбелязват от PyPI.