A fost publicată versiunea 1.0 a framework-ului TUF (The Update Framework), care oferă instrumente pentru verificarea sigură a disponibilității și descărcării actualizărilor. Obiectivul principal al proiectului este de a proteja clientul împotriva atacurilor standard asupra repositoarelor și infrastructurii, inclusiv împotriva promovării de către rău-voitori a actualizărilor false, create după ce au obținut acces la cheile pentru generarea semnăturilor digitale sau compromiterea repositoarelor. Proiectul se dezvoltă sub egida organizației Linux Foundation și este utilizat pentru a îmbunătăți securitatea livrării actualizărilor în proiecte precum Docker, Fuchsia, Automotive Grade Linux, Bottlerocket și PyPI (includerea verificării descărcărilor și metadatelor în PyPI este așteptată în curând). Codul de referință al implementării TUF este scris în Python și este distribuit sub licența Apache 2.0.
Proiectul dezvoltă o serie de biblioteci, formate de fișiere și utilitare, care pot fi integrate ușor în sistemele existente de actualizare a aplicațiilor, oferind protecție în caz de compromitere a cheilor pe partea dezvoltatorilor de software. Pentru a utiliza TUF, este suficient să adăugați în repositar metadatele necesare, iar în codul client să integrați procedurile oferite în TUF pentru descărcarea și verificarea fișierelor.
Framework-ul TUF se ocupă cu sarcinile de verificare a disponibilității actualizărilor, descărcarea actualizărilor și verificarea integrității acestora. Sistemul de instalare a actualizărilor nu se intersectează direct cu metadatele suplimentare, a căror verificare și descărcare sunt gestionate de TUF. Pentru integrarea cu aplicațiile și sistemele de instalare a actualizărilor, este oferit un API de nivel scăzut pentru accesul la metadate și implementarea unui API client de nivel înalt, ngclient, gata pentru a fi integrat în aplicații.
Printre atacurile la care TUF poate răspunde se numără substituirea versiunilor vechi sub forma actualizărilor pentru a bloca remedierile vulnerabilităților din software sau revenirea utilizatorului la o versiune veche vulnerabilă, precum și promovarea actualizărilor malițioase, semnate corect cu o cheie compromisă, realizarea atacurilor DoS asupra clienților, cum ar fi umplerea discului cu actualizări infinite.
Protecția împotriva compromiterii infrastructurii furnizorului de software se realizează prin menținerea unor înregistrări separate și verificabile ale stării repositoarelor sau aplicațiilor. Metadatele TUF verificabile includ informații despre cheile de care se poate avea încredere, hash-uri criptografice pentru evaluarea integrității fișierelor, semnături digitale suplimentare pentru certificarea metadatelor, detalii despre numerele de versiune și date despre durata de viață a înregistrărilor. Cheile utilizate pentru verificare au o durată de viață limitată și necesită actualizări constante pentru a se proteja împotriva semnării cu chei vechi.
Reducerea riscului de compromitere a întregului sistem se realizează prin utilizarea unui model de separare a încrederii, în care fiecare parte este limitată doar la domeniul pe care îl gestionează direct. Sistemul folosește o ierarhie de roluri cu propriile sale chei; de exemplu, rolul rădăcină semnează cheile pentru rolurile responsabile de metadatele din repository, informațiile despre momentul în care au fost create actualizările și versiunile țintă; la rândul său, rolul care se ocupă de construcții semnează rolurile legate de certificarea fișierelor livrate.

Pentru a proteja împotriva compromiterii cheilor, se utilizează un mecanism de revocare și înlocuire a cheilor. Fiecare cheie conține doar puterile minime necesare, iar pentru operațiunile de certificare este necesară utilizarea mai multor chei (scurgerea unei chei individuale nu permite atacarea imediată a clientului, iar pentru compromiterea întregului sistem este nevoie de capturarea cheilor tuturor participanților). Clientul poate accepta doar fișiere create ulterior față de cele deja primite, iar datele sunt încărcate doar conform dimensiunii stabilite în metadatele certificate.
Lansarea publicată TUF 1.0.0 propune o implementare de referință complet rescrisă și stabilizată a specificației TUF, care poate fi utilizată ca exemplu gata făcut pentru crearea propriilor implementări sau pentru integrarea în proiectele proprii. Noua implementare conține semnificativ mai puțin cod (1400 de linii în loc de 4700), este mai ușor de întreținut și poate fi extinsă cu ușurință, de exemplu, atunci când este necesară adăugarea suportului pentru stive de rețea specifice, sisteme de stocare sau algoritmi de criptare.
Sursa: opennet.ro
