Dostępny jest TUF 1.0, platforma do organizowania bezpiecznego dostarczania aktualizacji

Opublikowano wersję TUF 1.0 (The Update Framework), udostępniającą narzędzia do bezpiecznego sprawdzania i pobierania aktualizacji. Głównym celem projektu jest ochrona klienta przed typowymi atakami na repozytoria i infrastrukturę, w tym przeciwdziałanie promowaniu przez atakujących fikcyjnych aktualizacji powstałych po uzyskaniu dostępu do kluczy służących do generowania podpisów cyfrowych lub włamaniu się do repozytorium. Projekt rozwijany pod patronatem Linux Foundation i służy poprawie bezpieczeństwa dostarczania aktualizacji w projektach takich jak Docker, Fuchsia, Automotive Grade Linux, Bottlerocket i PyPI (w projekcie przewidywane jest włączenie weryfikacji pobrań i metadanych w PyPI bliska przyszłość). Referencyjny kod implementacyjny TUF jest napisany w języku Python i rozpowszechniany na licencji Apache 2.0.

W ramach projektu opracowywana jest seria bibliotek, formatów plików i narzędzi, które można łatwo zintegrować z istniejącymi systemami aktualizacji aplikacji, zapewniając ochronę w przypadku kluczowych kompromisów po stronie twórców oprogramowania. Aby korzystać z TUF-a, wystarczy dodać do repozytorium niezbędne metadane, a także zintegrować z kodem klienta udostępnione w TUF procedury pobierania i weryfikacji plików.

Struktura TUF przejmuje zadania sprawdzania dostępności aktualizacji, pobierania aktualizacji i sprawdzania jej integralności. System instalacji aktualizacji nie ingeruje bezpośrednio w dodatkowe metadane, których weryfikacją i wczytaniem zajmuje się TUF. Do integracji z aplikacjami i systemami instalacji aktualizacji oferowane jest niskopoziomowe API umożliwiające dostęp do metadanych oraz implementacja wysokopoziomowego klienckiego API ngclient, gotowego do integracji z aplikacjami.

Do ataków, którym TUF może przeciwdziałać, należy podmienianie starych wydań pod przykrywką aktualizacji w celu zablokowania korekty luk w oprogramowaniu lub powrotu użytkownika do starszej, podatnej na ataki wersji, a także promowanie złośliwych aktualizacji poprawnie podpisanych przy użyciu skompromitowanego key, ataki DoS na klientów, takie jak zapełnianie dysku niekończącymi się aktualizacjami.

Ochronę przed naruszeniem infrastruktury dostawcy oprogramowania osiąga się poprzez prowadzenie odrębnych, możliwych do sprawdzenia zapisów stanu repozytorium lub aplikacji. Metadane zweryfikowane przez TUF obejmują informacje o kluczach, którym można zaufać, skróty kryptograficzne służące do oceny integralności plików, dodatkowe podpisy cyfrowe umożliwiające weryfikację metadanych, informacje o numerach wersji oraz informacje o czasie życia rekordów. Klucze używane do weryfikacji mają ograniczony czas życia i wymagają ciągłej aktualizacji, aby zabezpieczyć się przed tworzeniem podpisu przez stare klucze.

Ograniczenie ryzyka kompromitacji całego systemu osiąga się poprzez zastosowanie modelu zaufania współdzielonego, w którym każda ze stron ograniczona jest jedynie do obszaru, za który jest bezpośrednio odpowiedzialna. System wykorzystuje hierarchię ról posiadających własne klucze, np. główne znaki roli klucze dla ról odpowiedzialnych za metadane w repozytorium, dane o czasie generowania aktualizacji oraz docelowe złożenia, z kolei rola odpowiedzialna za złożenia oznacza role związane z certyfikacją dostarczanych plików.

Dostępny jest TUF 1.0, platforma do organizowania bezpiecznego dostarczania aktualizacji

Aby zabezpieczyć się przed naruszeniem klucza, stosowany jest mechanizm szybkiego unieważniania i wymiany kluczy. Każdy indywidualny klucz zawiera jedynie minimalne niezbędne uprawnienia, a operacje uwierzytelniania wymagają użycia kilku kluczy (wyciek jednego klucza nie pozwala na natychmiastowy atak na klienta, a narażanie na szwank całego systemu, klucze wszystkich uczestników muszą zostać złapany). Klient może akceptować jedynie pliki nowsze od plików otrzymanych wcześniej, a dane pobierane są wyłącznie w rozmiarze określonym w certyfikowanych metadanych.

Opublikowana wersja TUF 1.0.0 oferuje całkowicie przepisaną i ustabilizowaną referencyjną implementację specyfikacji TUF, którą możesz wykorzystać jako gotowy przykład podczas tworzenia własnych implementacji lub do integracji ze swoimi projektami. Nowa implementacja zawiera znacznie mniej kodu (1400 linii zamiast 4700), jest łatwiejsza w utrzymaniu i można ją łatwo rozszerzać, np. w przypadku konieczności dodania obsługi określonych stosów sieciowych, systemów przechowywania danych czy algorytmów szyfrowania.

Źródło: opennet.ru

Dodaj komentarz