Il catalogo PyPI ha implementato un nuovo sistema di verifica dell'autenticità dei pacchetti.

Gli sviluppatori del repository dei pacchetti Python PyPI (Python Package Index) hanno annunciato l'implementazione del supporto per un meccanismo di attestazione digitale per la verifica dell'autenticità dei pacchetti pubblicati, che sostituisce la verifica attraverso firme PGP. La principale differenza dell'attestazione è che la pubblicazione di un pacchetto è firmata non dal sviluppatore, ma da una terza parte (un catalogo di pacchetti) dopo aver confermato la veridicità della pubblicazione tramite un provider esterno OpenID Connect (ad esempio, dopo aver verificato che il pacchetto pubblicato corrisponda al relativo repository su GitHub o GitLab).

Il sistema di attestazione elimina i difetti associati al meccanismo di verifica tramite firme PGP, precedentemente dichiarato obsoleto in PyPI. Questa decisione è stata presa a causa dei problemi nella verifica dell'appartenenza degli sviluppatori alle chiavi PGP pubbliche utilizzate per la verifica delle firme digitali: delle 1069 chiavi PGP utilizzate dal 2020 per la creazione di firme in PyPI, il 29% delle chiavi pubbliche mancava su importanti server pubblici server , e il 35% delle chiavi si è rivelato impossibile da confermare durante l'audit. Le chiavi PGP confermate coprivano solo il 36% e rappresentavano solo lo 0.3% di tutti i file firmati.

Nel nuovo sistema, le firme utilizzate per attestare i pacchetti sono generate utilizzando chiavi effimere a vita breve, create sulla base delle autorizzazioni confermate dai provider OpenID Connect. Nel momento in cui vengono generate le chiavi necessarie per creare la firma digitale, lo sviluppatore si identifica attraverso il provider OpenID, che conferma il suo legame con il progetto principale. L'infrastruttura per l'attestazione digitale è costruita utilizzando il sistema Sigstore e l'framework in-toto Attestation Framework.

Tra i vantaggi della certificazione c'è l'assenza di legami con chiavi PGP permanenti: la perdita o la compromissione della chiave privata distrugge la fiducia nelle firme create sulla base di essa, mentre nella certificazione la firma viene generata in relazione a un token che conferma le credenziali al momento del caricamento del pacchetto e il legame tra il pacchetto e il repository principale con il codice. Ad esempio, durante la pubblicazione di un pacchetto preparato tramite GitHub Action, la certificazione definisce un legame verificabile e confermato tra il file caricato su PyPI, il repository, il processo di workflow e l'hash del commit in base al quale è stato creato il pacchetto.

Il catalogo PyPI ha implementato un nuovo sistema di verifica dell'autenticità dei pacchetti.

Per tracciare l'autenticità delle chiavi e rilevare possibili compromissioni, viene utilizzato un registro centralizzato pubblico per la creazione dei pacchetti dei progetti e per PyPI stesso, per garantire l'integrità e proteggere dai falsificatori, nel quale è coinvolta la struttura «albero di Merkle» (Merkle Tree, ogni ramo verifica tutti i rami e nodi sottostanti grazie all'hashing ad albero).

In aggiunta, si può notare il rilevamento nel catalogo PyPI di un pacchetto malevolo chiamato «fabrice», che utilizzava il typosquatting (assegnazione di nomi simili, che si differenziano per singoli caratteri, ad esempio, exampl invece di example, djangoo invece di django, pyhton invece di python, ecc.) per mascherarsi da una popolare libreria chiamata «fabric», che conta 201 milioni di download (7 milioni di download nell'ultimo mese). Il pacchetto malevolo era rimasto inosservato dal 2021 e da allora era stato scaricato più di 37mila volte.

Il pacchetto «fabrice» replicava la funzionalità di base della libreria originale e includeva ulteriori codici per rilevare e inviare all'esterno le chiavi di accesso ad AWS (Amazon Web Services), installare una backdoor e eseguire determinati script. L'attivazione dei componenti malevoli avveniva sia su Linux che su Windows. Su Linux, i file legati all'attività malevola venivano caricati nella cartella ~/.local/bin/vscode.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster