В блоге GitHub рассказали, что теперь пользователи могут видеть происхождение npm-пакетов. Обновление призвано повысить безопасность и информирование пользователей, а злоумышленникам будет сложнее выдавать вредоносный код за популярные библиотеки.
Компания рассказала, что обычно пользователи не подключают к своему устройству чужие USB-накопители из-за того, что нет уверенности в безопасности их содержимого. Такая же ситуация обстоит и с npm-пакетами, которые собираются из источников с открытым исходным кодом, но иногда бывает сложно проверить происхождение пакета. Этим часто пользуются злоумышленники, пытающиеся выдать вирусы за популярные пакеты.
GitHub будет бороться с этой проблемой с помощью детального отслеживания происхождения npm-пакетов. Теперь платформа использует спецификацию SLSA (Supply-chain Levels for Software Artifacts) для отслеживания авторов кода, базового репозитория и пути кода от момента сборки и до публикации. Эти данные должны помочь разработчикам пакетов подтвердить безопасность своих проектов, а пользователи могут быть уверены, что не устанавливают на своё устройство вредоносный код.
Кроме этого, GitHub отслеживает цифровые подписи разработчиков. Процесс построен на базе сервиса Sigstore и работает с облачными CI/CD. Пока заявлена поддержка GitHub Actions, но в будущем добавят и другие сервисы. Все пакеты, прошедшие новый способ верификации, будут отображаться на портале npmjs со специальным значком безопасности и с дополнительной информацией. В официальной документации доступен пример.
Разработчики npm‑пакетов, публикующие код с помощью GitHub Actions, уже могут использовать новую систему верификации. Для этого необходимо включить флаг --provenance
.