Доступний TUF 1.0, фреймворк для організації безпечної доставки оновлень

Опубліковано випуск фреймворку 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 включають інформацію про ключі, яким можна довіряти, криптографічні хеші для оцінки цілісності файлів, додаткові цифрові підписи для засвідчення метаданих, відомості про номери версій і дані про час життя записів. Ключі, що застосовуються для верифікації, мають обмежений час життя і вимагають постійного оновлення для захисту від формування підпису старими ключами.

Зниження ризику компрометації всієї системи реалізується рахунок використання моделі з поділом довіри, у якій кожна сторона обмежена лише тієї областю яку вона безпосередньо відповідає. У системі використовується ієрархія ролей зі своїми ключами, наприклад, коренева роль підписує ключі для ролей відповідальних за метадані в репозиторії, дані про час формування оновлень і цільові збірки, у свою чергу роль, що відповідає за складання, підписує ролі, пов'язані із засвідченням файлів, що доставляють.

Доступний TUF 1.0, фреймворк для організації безпечної доставки оновлень

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

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

Джерело: opennet.ru

Додати коментар або відгук