Dependabot начал обнаруживать вредоносные пакеты сразу в восьми экосистемах
🛡 Dependabot начал обнаруживать вредоносные пакеты сразу в восьми экосистемах
До сегодняшнего дня Dependabot искал вредоносные программы только в npm (с марта 2026 года). Теперь ещё и в PyPI, Maven, RubyGems, NuGet, Go, crates.io, PHP Composer. Обнаруживает всё то же: тайпосквоттинг, подмену зависимостей, скомпрометированные учётные записи, вредоносные бинарные файлы. Покрытие расширили за счёт одного источника — OpenSSF malicious-packages, где с 2023 года накопилось больше 15 000 отчётов в OSV-формате.
Вместо восьми механизмов обнаружения GitHub написал один модуль импорта. Но «просто читать поток данных» оказалось непросто. Названия экосистем не совпадают: репозиторий говорит PyPI, а база GitHub — pip. Версии в OSV — отдельные значения, Dependabot ждёт диапазоны, а иногда версий нет совсем. Отозванные уведомления лежат в папке osv/withdrawn: пакет может быть вредоносным в понедельник и безопасным в среду. Модуль импорта это обрабатывает. Отдельная головная боль — повторный импорт собственных отчётов. GitHub уже отправляет свои находки в OpenSSF, и если не фильтровать по метке источника “ghsa-malware”, каждая вторая npm-запись за месяц вернулась бы обратно.
Уведомления о вредоносных пакетах публикуются автоматически, без ручной проверки. Раньше для обычных уязвимостей человек проверял сопоставление пакетов, версии, уровень опасности. Здесь эту цепочку убрали сознательно. Пакет, крадущий учётные данные, не имеет права ждать проверки несколько дней. На этот случай есть три предохранителя. Ограничение числа уведомлений за один импорт: при превышении процесс останавливается, команда получает оповещение. Каждая запись содержит сведения о происхождении вплоть до конкретного коммита в исходном репозитории. И любую пачку можно откатить одной транзакцией.
Защита включается по выбору — в настройках репозитория, организации или корпоративной учётной записи. После включения Dependabot сопоставляет все зависимости с базой, включая уже существующие. По данным helpnetsecurity, Dependabot работает на 30 миллионах репозиториев и покрывает больше 34 экосистем. Теперь процесс обнаружения вредоносных пакетов видит не один угол, а всю поверхность.
Автоматическая публикация без проверки — честный компромисс. Лучше ложное срабатывание сейчас, чем утекшие ключи через три дня. Но главная проблема не в механике импорта, а в том, что уведомления о вредоносных пакетах по-прежнему нужно включать вручную. Пока команды сами не включат эти уведомления, Dependabot будет молчать о пакете, который уже три дня сливает переменные окружения.
#Dependabot #supplychain #malware #OpenSSF
Такие разборы выходят в канале каждый день — коротко и со ссылкой на первоисточник.