Вышла новость, что на GitHub вынесено на обсуждение предложение по реализации сервис Sigstore для проверки пакетов с цифровыми подписями и вести общедоступную запись для подтверждения подлинности при распространении релизов.
О предложении упоминается, что использование Sigstore позволит реализовать дополнительный уровень защиты от атак, направленных на подмену программных компонентов и зависимостей (цепочка поставок).
Обеспечение безопасности цепочки поставок программного обеспечения — одна из самых серьезных проблем безопасности, стоящих перед нашей отраслью прямо сейчас. Это предложение является важным следующим шагом, но действительное решение этой проблемы потребует приверженности и инвестиций со стороны всего сообщества…
Эти изменения помогают защитить потребителей с открытым исходным кодом от атак на цепочку поставок программного обеспечения; другими словами, когда злоумышленники пытаются распространять вредоносное ПО, взламывая учетную запись сопровождающего и добавляя вредоносное ПО в зависимости с открытым исходным кодом, используемые многими разработчиками.
Например, реализованное изменение защитит исходники проекта в случае, если учетная запись разработчика одной из зависимостей в NPM будет скомпрометирована и злоумышленник сгенерирует обновление пакета с вредоносным кодом.
Стоит отметить, что Sigstore — это не просто еще один инструмент для подписи кода, поскольку его обычный подход заключается в устранении необходимости управлять ключами подписи путем выдачи краткосрочных ключей на основе идентификаторов OpenID Connect (OIDC), в то же время записывая действия. в неизменном реестре под названием rekor, в дополнение к которому у Sigstore есть собственный центр сертификации под названием Fulcio.
Благодаря новому уровню защиты, разработчики смогут связать сгенерированный пакет с используемым исходным кодом и среда сборки, дающая пользователю возможность убедиться, что содержимое пакета соответствует содержимому исходников в основном репозитории проекта.
Использование Sigstore значительно упрощает процесс управления ключами и устраняет сложности, связанные с регистрацией, отзывом и управлением криптографическими ключами. Sigstore позиционирует себя как Let's Encrypt для кода, предоставляя сертификаты для цифровой подписи кода и инструменты для автоматической проверки.
Сегодня мы открываем новый запрос комментариев (RFC), в котором рассматривается привязка пакета к его исходному репозиторию и среде сборки. Когда сопровождающие пакетов выбирают эту систему, потребители их пакетов могут быть более уверены в том, что содержимое пакета соответствует содержимому связанного репозитория.
Вместо постоянных ключей, Sigstore использует недолговечные эфемерные ключи, которые генерируются на основе разрешений. Материал, используемый для подписи, отражается в общедоступной записи, защищенной от изменений, что позволяет вам убедиться, что автор подписи является именно тем, за кого он себя выдает, и подпись была сформирована тем же участником, который был ответственным.
Проект получил раннее внедрение в другие экосистемы менеджеров пакетов. В сегодняшнем RFC мы предлагаем добавить поддержку сквозной подписи пакетов npm с помощью Sigstore. Этот процесс будет включать создание сертификатов о том, где, когда и как был создан пакет, чтобы его можно было проверить позже.
Для обеспечения целостности и защита от повреждения данных, используется древовидная структура Merkle Tree в котором каждая ветвь проверяет все нижележащие ветви и узлы с помощью совместного хэша (дерева). Имея конечный хеш, пользователь может проверить правильность всей истории операций, а также правильность прошлых состояний базы данных (корневой контрольный хэш нового состояния базы данных вычисляется с учетом прошлого состояния).
Наконец, стоит упомянуть, что Sigstore разработан совместно Linux Foundation, Google, Red Hat, Purdue University и Chainguard.
Если вы хотите узнать больше об этом, вы можете ознакомиться с деталями в по следующей ссылке.