GitHub объявил о расширении функциональности Dependabot по обнаружению вредоносного ПО: теперь предупреждения о вредоносных пакетах покрывают восемь основных экосистем, включая PyPI, Maven, RubyGems, NuGet, Go, crates.io и PHP Composer. Ранее эта возможность была доступна только для npm.
Как сообщается в блоге GitHub, инженерная команда, отвечающая за Dependabot, интегрировала данные из репозитория OpenSSF malicious-packages в GitHub Advisory Database. Это позволило автоматически импортировать информацию о вредоносных пакетах и генерировать предупреждения для пользователей.
Как это работает
Репозиторий OpenSSF malicious-packages, запущенный в 2023 году, содержит более 15 000 отчетов в формате OSV. Он пополняется ежедневно за счет сообщества и автоматизированных систем обнаружения. GitHub создал единый импортер, который читает записи OSV, проверяет их на соответствие схеме и нормализует данные для своей базы данных.
Импортер обрабатывает только те записи, которые прошли валидацию. Данные, не соответствующие требованиям, отклоняются и логируются. Это позволяет избежать попадания в базу некорректных или неполных предупреждений.
Особенности интеграции
При импорте данных GitHub учитывает несколько нюансов:
- Различия в названиях экосистем (например, PyPI в OpenSSF и pip в GitHub).
- Представление версий: OSV использует дискретные значения, а GitHub — диапазоны.
- Возможность отзыва отчетов: в репозитории OpenSSF есть папка osv/withdrawn для ошибочных предупреждений.
- Дедупликацию: GitHub сам является источником данных для OpenSSF, поэтому импортер отфильтровывает записи, созданные самим GitHub, чтобы избежать зацикливания.
При проверке на реальных данных более половины новых npm-отчетов, поступающих в репозиторий OpenSSF, оказались собственными предупреждениями GitHub и были пропущены.
Меры безопасности
GitHub внедрил три уровня защиты для обработки потенциально некорректных данных:
- Ограничение пакетов: каждый импорт имеет настраиваемый лимит на количество создаваемых предупреждений. Если лимит превышен, импорт останавливается полностью.
- Происхождение: каждая запись хранит информацию о конкретном коммите в репозитории OpenSSF, что позволяет быстро определить источник проблемы.
- Откат: если ошибочные данные все же попали в базу, можно откатить весь пакет изменений целиком.
Что это значит
Расширение предупреждений о вредоносном ПО на восемь экосистем — значительный шаг в повышении безопасности цепочки поставок. Разработчики, использующие Dependabot, теперь получат более полную защиту от вредоносных пакетов, включая те, которые не были обнаружены ранее. Однако важно помнить, что предупреждения основаны на данных OpenSSF, которые могут содержать ошибки, поэтому GitHub предусмотрел механизмы для быстрого реагирования на инциденты.
Пользователи могут включить предупреждения о вредоносном ПО в настройках репозитория, организации или предприятия. Dependabot начнет проверять зависимости сразу после включения, включая обратное заполнение по существующим предупреждениям.

Комментарии · 0
Войдите, чтобы участвовать в обсуждении.