Кібербезпека

GitHub запроваджує затримку оновлень Dependabot для боротьби з малварою

S

Sinisa Markovic

3 хв читання

Концептуальна ілюстрація, що зображує захисну затримку або "cooldown" для потоку оновлень програмного забезпечення.

Новий підхід до оновлень Dependabot

GitHub запроваджує зміни у роботі свого інструменту Dependabot, щоб підвищити безпеку ланцюгів поставок програмного забезпечення. Раніше автоматичні інструменти оновлення негайно створювали запити на злиття (pull requests) для нових релізів пакетів, щойно вони публікувалися. Ця швидкість, хоч і корисна для підтримки актуальності залежностей, виявилася вразливою для зловмисників.

Інцидент 2025 року та його наслідки

У вересні 2025 року стався інцидент, коли зловмисник отримав облікові дані одного з супроводжувачів npm і випустив шкідливі версії пакетів, таких як chalk, debug та близько десятка інших. Ці пакети завантажуються понад 2 мільярди разів на тиждень. Введений код переписував адреси криптовалютних гаманців у будь-яких браузерних додатках, що їх завантажували. Шкідливі версії були активні приблизно дві години, перш ніж спільнота їх виявила, а npm видалив. Цього часу було достатньо, щоб інструмент оновлення побачив реліз, створив pull request і представив шкідливий код на розгляд розробників.

Триденна затримка для версійних оновлень

У відповідь на подібні загрози, GitHub Dependabot тепер запроваджує затримку. Для оновлень версій, які не стосуються безпеки, Dependabot чекатиме щонайменше три дні після публікації релізу, перш ніж відкрити pull request. Ця опція, відома як cooldown, може бути налаштована у файлі dependabot.yml, дозволяючи проектам збільшувати або зменшувати період очікування.

Важливо зазначити, що ця затримка стосується лише оновлень версій. Оновлення безпеки, які відповідають на відомі вразливості, все ще відкриваються негайно, оскільки затримка у виправленні вже відомої проблеми може бути небезпечною.

Чому саме три дні?

Аналіз 21 широко висвітленого інциденту в ланцюгах поставок за останні кілька років показав, що шкідливі версії зазвичай виявляються та видаляються протягом кількох годин після публікації. Затримка дозволяє релізу пройти певну перевірку спільнотою, перш ніж він досягне користувачів. Триденний період обрано, оскільки він виводить за межі вікна, в якому відбувається більшість таких атак, і водночас не затримує оновлення залежностей довше, ніж це необхідно. Інші інструменти в спільноті також використовують подібний період.

За рік до травня 2026 року база даних GitHub Advisory Database зафіксувала понад 6500 повідомлень про шкідливе програмне забезпечення в npm, що становить близько 18 нових шкідливих пакетів на день.

Обмеження та додаткові заходи безпеки

Карлін Черрі, менеджер з продуктів GitHub, який працює над Dependabot, зазначає, що затримка малоефективна проти атак, які передбачають тривалий період очікування. До таких атак належать бекдори, закладені в релізи та залишені в сплячому режимі, саботаж з боку супроводжувачів або скомпрометовані системи збірки.

Таким чином, затримка є лише одним із багатьох шарів захисту. Серед інших рекомендованих заходів безпеки: закріплення залежностей за допомогою lock-файлів, вимкнення скриптів встановлення в CI, обмеження токенів у конвеєрах збірки та ретельний перегляд оновлень перед їх злиттям. Затримка увімкнена за замовчуванням, і проекти можуть налаштовувати її або встановлювати різні затримки для довірених внутрішніх пакетів та публічних реєстрів. Це усуває один швидкий і поширений шлях для шкідливого програмного забезпечення на машини, але решта ланцюга поставок все ще потребує пильного нагляду.

Що це означає для розробників

Розробники тепер зіткнуться з триденною затримкою для автоматичних оновлень версій (не безпекових) у Dependabot, що вимагатиме адаптації робочих процесів. Хоча це може уповільнити отримання найновіших функцій, це значно зменшує ризик швидкого впровадження шкідливого коду зі скомпрометованих пакетів. Розробники можуть налаштовувати цей період за допомогою опції cooldown у dependabot.yml.

Ключові факти

  • Автоматичні інструменти оновлення раніше негайно створювали запити на злиття (pull requests) для нових релізів пакетів.

  • У вересні 2025 року зловмисник скомпрометував облікові дані супроводжувача npm та випустив шкідливі версії популярних пакетів, які завантажуються понад 2 мільярди разів на тиждень.

  • Шкідливий код переписував адреси криптовалютних гаманців у браузерних додатках.

  • Шкідливі версії були активні близько двох годин, перш ніж їх виявили та видалили.

  • GitHub Dependabot тепер затримує створення pull requests для оновлень версій (не пов'язаних з безпекою) щонайменше на три дні після публікації релізу.

Джерела

КібербезпекаРозробка ПЗOpen Source

Попередні статті

Робоче місце розробника з кодом ядра Linux на екрані та рукою людини, що символізує взаємодію ШІ та людського контролю

Лінус Торвальдс про ШІ в Linux: «Використовуйте інструмент, вимагайте розкриття, зберігайте відповідальність людини»

Лінус Торвальдс чітко висловив позицію Linux щодо ШІ: ядро не заборонятиме роботу за допомогою ШІ. Він наголошує на корисності інструментів, але й на важливості людської відповідальності.

Концептуальна ілюстрація цифрового сховища, наповненого стилізованими монетами Ethereum, що символізує накопичення та стейкінг активів BitMine Immersion.

BitMine Immersion наближається до цілі в 6 мільйонів ETH та готується до стейкінгу

Компанія BitMine Immersion (BMNR) майже досягла своєї мети з накопичення 6 мільйонів Ethereum, що може припинити розмивання акцій та перетворити її на генератора готівки завдяки стейкінгу.

Наступні статті