Objavljen je izdajni okvir TUF 1.0 (The Update Framework), ki zagotavlja sredstva za varno preverjanje prisotnosti in prenos posodobitev. Glavni cilj projekta je zaščita strank pred tipičnimi napadi na repo in infrastrukturo, vključno s preprečevanjem širjenja zlonamernih posodobitev, ustvarjenih po pridobitvi dostopa do ključev za ustvarjanje digitalnih podpisov ali kompromitaciji repozitorija. Projekt poteka pod okriljem organizacije Linux Foundation in se uporablja za povečanje varnosti dostave posodobitev v projektih, kot so Docker, Fuchsia, Automotive Grade Linux, Bottlerocket in PyPI (pričakuje se vključitev overitve prenosov in metapodatkov v PyPI v bližnji prihodnosti). Koda referenčne implementacije TUF je napisana v jeziku Python in je dostopna pod licenco Apache 2.0.
Projekt razvija niz knjižnic, formatov datotek in orodij, ki se lahko enostavno integrirajo v obstoječe sisteme za posodabljanje aplikacij ter zagotavljajo zaščito v primeru kompromitacije ključev s strani razvijalcev programske opreme. Za uporabo TUF zadostuje dodati potrebne metapodatke v repozitorij, v odjemalsko kodo pa integrirati postopke za prenos in preverjanje datotek, ki jih zagotavlja TUF.
Okvir TUF prevzame naloge preverjanja prisotnosti posodobitev, prenosa posodobitev in preverjanja njihove celovitosti. Sistem namestitve posodobitev se neposredno ne prekriva z dodatnimi metapodatki, preverjanje in prenos katerih prevzame TUF. Za integracijo z aplikacijami in sistemi namestitve posodobitev je na voljo nizko-nivojski API za dostop do metapodatkov ter implementacija visok-nivojskega odjemalskega API-jaa ngclient, pripravljenega za integracijo z aplikacijami.
Med napadi, proti katerim se lahko TUF bori, so označena ponarejanje starih izdaj kot posodobitev z namenom blokiranja popravkov ranljivosti v programski opremi ali vrnitve uporabnika na staro ranljivo različico, prav tako razširjanje zlonamernih posodobitev, ki jih pravilno podpišejo z uporabo kompromitiranega ključa, ter izvajanje DDoS napadov na odjemalce, kot je neskončno posodabljanje, ki zapolni prostor na disku.
Zaščita pred kompromitacijo infrastrukture dobavitelja programske opreme se doseže z vzdrževanjem ločenih preverljivih zapisov o stanju repozitorija ali aplikacije. Preverljivi TUF metapodatki vključujejo informacije o ključih, kterim lahko zaupamo, kriptografske hashe za oceno celovitosti datotek, dodatne digitalne podpise za overitev metapodatkov, podatke o številkah različic in podatke o življenjski dobi zapisov. Ključi, uporabljeni za preverjanje, imajo omejeno življenjsko dobo in zahtevajo stalno posodabljanje za zaščito pred podpisovanjem s starimi ključi.
Zmanjšanje tveganja kompromitacije celotnega sistema se doseže z uporabo modela z delitvijo zaupanja, kjer je vsaka stran omejena le na tisto področje, za katerega neposredno odgovarja. V sistemu je uporabljena hierarhija vlog s svojimi ključi, na primer, korenska vloga podpisuje ključe za vloge, odgovorne za metapodatke v repozitoriju, podatke o času nastajanja posodobitev in ciljnih gradnjah, v svoji vrsti pa vloga, odgovorna za gradnje, podpisuje vloge, povezane z overitvijo dostavljenih datotek.

Za zaščito pred kompromitacijo ključev se uporablja mehanizem operativnega odpoklica in zamenjave ključev. V vsakem posameznem ključu so osredotočene le minimalno potrebne pristojnosti, za operacije overitve pa je potrebno uporabiti več ključev (uhajanje posameznega ključa ne omogoča takojšnjega napada na stranko, za kompromitacijo celotnega sistema pa je potrebno prevzeti ključe vseh udeležencev). Stranka lahko sprejema le datoteke, ustvarjene pozneje kot že prej prejeti datoteki, podatki pa se nalagajo le v skladu z velikostjo, določeno v overjenih metapodatkih.
Objavljen izdelek TUF 1.0.0 ponuja popolnoma predelano in stabilizirano referenčno implementacijo specifikacije TUF, ki jo je mogoče uporabiti kot pripravljen primer pri ustvarjanju lastnih implementacij ali za integracijo v svoje projekte. Nova implementacija vsebuje bistveno manj kode (1400 vrstic namesto 4700), je bolj enostavna za vzdrževanje in se lahko zlahka razširi, na primer ob potrebi po dodajanju podpore specifičnim mrežnim steklom, sistemom shranjevanja ali šifrirnim algoritmom.
Izvor: opennet.ru
