Đã có TUF 1.0, một khuôn khổ để tổ chức phân phối các bản cập nhật một cách an toàn

Опубликован выпуск фреймворка TUF 1.0 (The Update Framework), предоставляющего средства для безопасной проверки наличия и загрузки обновлений. Основной целью проекта является защита клиента от типовых атак на репозитории и инфраструктуры, включая противодействие продвижению злоумышленниками фиктивных обновлений, созданных после получения доступа к ключам для формирования цифровых подписей или компрометации репозитория. Проект развивается под эгидой организации Linux Foundation и применяется для повышения безопасности доставки обновлений в таких проектах, как Docker, Fuchsia, Automotive Grade Linux, Bottlerocket и PyPI (включение верификации загрузок и метаданных в PyPI ожидается в ближайшее время). Код эталонной реализации TUF написан на языке Python и распространяется под лицензией Apache 2.0.

Проектом развивается серия библиотек, форматов файлов и утилит, которые могут легко интегрироваться в существующие системы обновления приложений, обеспечивая защиту в случае компрометация ключей на стороне разработчиков ПО. Для использования TUF достаточно добавить в репозиторий необходимые метаданные, а в клиентский код интегрировать предоставляемые в TUF процедуры для загрузки и верификации файлов.

Фреймворк TUF берёт на себя задачи проверки появления обновления, загрузки обновления и верификации его целостности. Система установки обновлений непосредственно не пересекается с дополнительными метаданными, проверку и загрузку которых берёт на себя TUF. Для интеграции с приложениями и системами установки обновлений предлагается низкоуровневый API для доступа к метаданным и реализация высокоуровневого клиентского API ngclient, готового для интеграции с приложениями.

Из атак, которым может противодействовать TUF, отмечаются подстановка старых выпусков под видом обновлений с целью блокирования исправления уязвимостей в ПО или отката пользователя на старую уязвимую версию, а также продвижение вредоносных обновлений, корректно подписанных с использованием скомпрометированного ключа, совершение DoS-атак на клиентов, таких как заполнение диска бесконечным обновлением.

Защита от компрометации инфраструктуры поставщика ПО достигается благодаря поддержанию отдельных верифицируемых записей о состоянии репозитория или приложения. Проверяемые TUF метаданные включают в себя информацию о ключах, которым можно доверять, криптографические хэши для оценки целостности файлов, дополнительные цифровые подписи для заверения метаданных, сведения о номерах версий и данные о времени жизни записей. Применяемые для верификации ключи имеют ограниченное время жизни и требуют постоянного обновления для защиты от формирования подписи старыми ключами.

Снижение риска компрометации всей системы реализуется за счёт использования модели с разделением доверия, в которой каждая сторона ограничена лишь той областью за которую она напрямую отвечает. В системе используется иерархия ролей со своими ключами, например, корневая роль подписывает ключи для ролей отвечающих за метаданные в репозитории, данные о времени формирования обновлений и целевые сборки, в свою очередь роль, отвечающая за сборки, подписывает роли, связанные с заверением доставляемых файлов.

Đã có TUF 1.0, một khuôn khổ để tổ chức phân phối các bản cập nhật một cách an toàn

Для защиты от компрометации ключей используется механизм оперативного отзыва и замены ключей. В каждом отдельном ключе сосредотачиваются только минимально необходимые полномочия, а для операций заверения требуется применение нескольких ключей (утечка отдельного ключа не позволяет сразу атаковать клиента, а для компрометации всей системы нужно захватить ключи всех участников). Клиент может принимать только файлы, созданные позднее, чем уже ранее полученные файлы, а данные загружаются только в соответствии с размером, заданным в заверенных метаданных.

Опубликованный выпуск TUF 1.0.0 предлагает полностью переписанную и стабилизированную эталонную реализацию спецификации TUF, которую можно использоваться в качестве готового примера при создании собственных реализаций или для интеграции в свои проекты. Новая реализация содержит существенно меньше кода (1400 строк вместо 4700), более проста в сопровождении и может легко расширяться, например, при необходимости добавления поддержки специфичных сетевых стеков, систем хранения или алгоритмов шифрования.

Nguồn: opennet.ru

Thêm một lời nhận xét