È disponibile TUF 1.0, un framework per organizzare la consegna sicura degli aggiornamenti

È stato pubblicato il rilascio del TUF 1.0 (The Update Framework), che fornisce strumenti per la verifica e il download degli aggiornamenti in modo sicuro. L'obiettivo principale del progetto è proteggere il cliente dai tipici attacchi ai repository e alle infrastrutture, anche contrastando la promozione da parte degli aggressori di aggiornamenti fittizi creati dopo aver ottenuto l'accesso alle chiavi per generare firme digitali o compromettere il repository. Il progetto è sviluppato sotto gli auspici della Linux Foundation e viene utilizzato per migliorare la sicurezza della consegna degli aggiornamenti in progetti come Docker, Fuchsia, Automotive Grade Linux, Bottlerocket e PyPI (l'inclusione della verifica del download e dei metadati in PyPI è prevista nel progetto prossimo futuro). Il codice di implementazione di riferimento TUF è scritto in Python e distribuito sotto la licenza Apache 2.0.

Il progetto sta sviluppando una serie di librerie, formati di file e utilità che possono essere facilmente integrati nei sistemi di aggiornamento delle applicazioni esistenti, fornendo protezione in caso di compromissione chiave da parte degli sviluppatori di software. Per utilizzare TUF è sufficiente aggiungere i metadati necessari al repository e integrare nel codice client le procedure previste dal TUF per il download e la verifica dei file.

Il framework TUF assume i compiti di verificare la presenza di un aggiornamento, scaricare l'aggiornamento e verificarne l'integrità. Il sistema di installazione degli aggiornamenti non interferisce direttamente con metadati aggiuntivi, la cui verifica e caricamento è curata dal TUF. Per l'integrazione con applicazioni e sistemi di installazione di aggiornamenti vengono offerte un'API di basso livello per l'accesso ai metadati e un'implementazione di un'API client di alto livello ngclient, pronta per l'integrazione con le applicazioni.

Tra gli attacchi che TUF può contrastare vi sono la sostituzione di vecchie versioni con il pretesto di aggiornamenti al fine di bloccare la correzione delle vulnerabilità del software o il rollback dell'utente a una vecchia versione vulnerabile, nonché la promozione di aggiornamenti dannosi correttamente firmati utilizzando un codice compromesso chiave, attacchi DoS ai client, come riempire il disco con infiniti aggiornamenti.

La protezione contro la compromissione dell'infrastruttura del fornitore del software viene ottenuta mantenendo registrazioni separate e verificabili dello stato del repository o dell'applicazione. I metadati verificati dal TUF includono informazioni sulle chiavi di cui ci si può fidare, hash crittografici per valutare l'integrità dei file, firme digitali aggiuntive per verificare i metadati, informazioni sui numeri di versione e informazioni sulla durata dei record. Le chiavi utilizzate per la verifica hanno una durata limitata e richiedono un aggiornamento costante per proteggerle dalla formazione di firme da parte di vecchie chiavi.

La riduzione del rischio di compromissione dell'intero sistema si ottiene attraverso l'utilizzo di un modello di fiducia condivisa, in cui ciascuna parte è limitata solo all'area di cui è direttamente responsabile. Il sistema utilizza una gerarchia di ruoli con le proprie chiavi, ad esempio, il ruolo root firma le chiavi per i ruoli responsabili dei metadati nel repository, i dati sull'ora di generazione degli aggiornamenti e gli assembly di destinazione, a sua volta, il ruolo responsabile degli assembly firma ruoli associati alla certificazione dei file consegnati.

È disponibile TUF 1.0, un framework per organizzare la consegna sicura degli aggiornamenti

Per proteggersi dalla compromissione delle chiavi, viene utilizzato un meccanismo per la revoca e la sostituzione tempestive delle chiavi. Ogni singola chiave contiene solo i poteri minimi necessari e le operazioni di autenticazione richiedono l'utilizzo di più chiavi (la fuga di una sola chiave non consente un attacco immediato al client, e per compromettere l'intero sistema è necessario che le chiavi di tutti i partecipanti siano catturato). Il client può accettare solo file più recenti rispetto a quelli ricevuti in precedenza e i dati vengono scaricati solo in base alla dimensione specificata nei metadati certificati.

La versione pubblicata di TUF 1.0.0 offre un'implementazione di riferimento completamente riscritta e stabilizzata della specifica TUF che puoi utilizzare come esempio già pronto quando crei le tue implementazioni o per l'integrazione nei tuoi progetti. La nuova implementazione contiene molto meno codice (1400 righe invece di 4700), è più facile da mantenere e può essere facilmente estesa, ad esempio, se è necessario aggiungere il supporto per specifici stack di rete, sistemi di storage o algoritmi di crittografia.

Fonte: opennet.ru

Aggiungi un commento