Dostupan je TUF 1.0, okvir za organiziranje sigurne isporuke ažuriranja

Objavljeno je izdanje TUF 1.0 (The Update Framework) koje pruža alate za sigurno traženje i preuzimanje ažuriranja. Glavni cilj projekta je zaštititi klijenta od tipičnih napada na repozitorije i infrastrukturu, uključujući suzbijanje napadača na promoviranje fiktivnih ažuriranja stvorenih nakon dobivanja pristupa ključevima za generiranje digitalnih potpisa ili kompromitiranja repozitorija. Projekt je razvijen pod pokroviteljstvom Linux Foundationa i koristi se za poboljšanje sigurnosti isporuke ažuriranja u projektima kao što su Docker, Fuchsia, Automotive Grade Linux, Bottlerocket i PyPI (uključivanje provjere preuzimanja i metapodataka u PyPI očekuje se u Bliska budućnost). TUF referentni implementacijski kod napisan je u Pythonu i distribuiran pod licencom Apache 2.0.

Projekt razvija niz biblioteka, formata datoteka i uslužnih programa koji se mogu jednostavno integrirati u postojeće sustave ažuriranja aplikacija, pružajući zaštitu u slučaju kompromitacije ključa od strane programera softvera. Za korištenje TUF-a dovoljno je dodati potrebne metapodatke u repozitorij i integrirati postupke predviđene u TUF-u za preuzimanje i provjeru datoteka u kod klijenta.

Okvir TUF preuzima zadatke provjere ažuriranja, preuzimanja ažuriranja i provjere njegovog integriteta. Sustav instalacije ažuriranja ne ometa izravno dodatne metapodatke, čiju provjeru i učitavanje preuzima TUF. Za integraciju s aplikacijama i sustavima za instalaciju ažuriranja nudi se API niske razine za pristup metapodacima i implementacija klijentskog API-ja visoke razine ngclient, spremnog za integraciju s aplikacijama.

Među napadima kojima se TUF može suprotstaviti su zamjena starih izdanja pod krinkom ažuriranja kako bi se blokiralo ispravljanje ranjivosti softvera ili vraćanje korisnika na staru ranjivu verziju, kao i promoviranje zlonamjernih ažuriranja ispravno potpisanih pomoću kompromitiranog ključni, DoS napadi na klijente, kao što je punjenje diska beskrajnim ažuriranjima.

Zaštita od ugrožavanja infrastrukture dobavljača softvera postiže se održavanjem zasebnih, provjerljivih zapisa o stanju repozitorija ili aplikacije. Metapodaci koje je provjerio TUF uključuju informacije o ključevima kojima se može vjerovati, kriptografske hashove za procjenu integriteta datoteka, dodatne digitalne potpise za provjeru metapodataka, informacije o brojevima verzija i informacije o vijeku trajanja zapisa. Ključevi koji se koriste za provjeru imaju ograničen vijek trajanja i zahtijevaju stalno ažuriranje kako bi se zaštitili od stvaranja potpisa starim ključevima.

Smanjenje rizika kompromitacije cijelog sustava postiže se korištenjem modela zajedničkog povjerenja, u kojem je svaka strana ograničena samo na područje za koje je direktno odgovorna. Sustav koristi hijerarhiju uloga s vlastitim ključevima, na primjer, glavna uloga označava ključeve za uloge odgovorne za metapodatke u repozitoriju, podatke o vremenu generiranja ažuriranja i ciljne sklopove, zauzvrat, ulogu odgovornu za znakove sklopova uloge povezane s certifikacijom isporučenih datoteka.

Dostupan je TUF 1.0, okvir za organiziranje sigurne isporuke ažuriranja

Za zaštitu od kompromitacije ključa koristi se mehanizam za promptno opoziv i zamjenu ključeva. Svaki pojedinačni ključ sadrži samo minimalne potrebne ovlasti, a operacije autentifikacije zahtijevaju korištenje nekoliko ključeva (curenje jednog ključa ne dopušta trenutni napad na klijenta, a za kompromitiranje cijelog sustava ključevi svih sudionika moraju biti uhvaćen). Klijent može prihvatiti samo datoteke koje su novije od prethodno primljenih datoteka, a podaci se preuzimaju samo prema veličini navedenoj u certificiranim metapodacima.

Objavljeno izdanje TUF 1.0.0 nudi potpuno prepisanu i stabiliziranu referentnu implementaciju TUF specifikacije koju možete koristiti kao gotov primjer pri izradi vlastitih implementacija ili za integraciju u svoje projekte. Nova implementacija sadrži značajno manje koda (1400 redaka umjesto 4700), lakša je za održavanje i može se lako proširiti, na primjer, ako je potrebno dodati podršku za specifične mrežne stekove, sustave za pohranu ili algoritme za šifriranje.

Izvor: opennet.ru

Dodajte komentar