Nel repository dei pacchetti Python PyPI (Python Package Index) è stata introdotta una nuova modalità di pubblicazione sicura che consente di non dover memorizzare password fisse e token di accesso API su sistemi esterni (ad esempio, in GitHub Actions). Questo nuovo metodo di autenticazione, chiamato 'Trusted Publishers', è stato progettato per risolvere il problema della pubblicazione di aggiornamenti dannosi a causa della compromissione di sistemi esterni e dell'accesso da parte di malintenzionati a password o token predefiniti.
Il nuovo metodo di autenticazione si basa sull'utilizzo dello standard OpenID Connect (OIDC), che prevede l'uso di token di autenticazione a scadenza limitata. Questi token vengono scambiati tra i servizi esterni e il catalogo PyPI per confermare l'operazione di pubblicazione di un pacchetto, invece di utilizzare credenziali tradizionali come login/password o token di accesso API generati manualmente. Questa funzionalità di 'Trusted Publishers' è già stata implementata per i gestori eseguiti in GitHub Actions. In futuro, è prevista l'estensione del supporto per Trusted Publishers anche ad altri servizi esterni.
I pacchetti di supporto possono indicare sul lato PyPI la fiducia verso gli identificatori forniti da provider OpenID esterni (IdP, OpenID Connect Identity Provider), che il servizio esterno utilizzerà per richiedere token di breve durata a PyPI. I token generati da OpenID Connect confermano il legame tra il progetto e il gestore, consentendo a PyPI di effettuare ulteriore verifica dei metadati, ad esempio controllando che il pacchetto pubblicato corrisponda a un determinato repository. I token non vengono memorizzati, sono legati a specifiche API e scadono automaticamente dopo un breve periodo di validità.
Inoltre, è possibile notare il rapporto dell'azienda Sonatype riguardo all'individuazione di 6933 pacchetti dannosi nel catalogo PyPI nel marzo 2023. Dal 2019, il numero totale di pacchetti dannosi identificati in PyPI ha superato i 115 mila. La maggior parte dei pacchetti dannosi si traveste da librerie popolari attraverso il typosquatting (assegnazione di nomi simili, differente per alcuni caratteri, ad esempio, exampl invece di example, djangoo invece di django, pyhton invece di python, e così via) — i malintenzionati contano su utenti poco attenti che commettono errori di battitura o non notano le differenze nei nomi durante la ricerca. Le azioni dannose solitamente si traducono nell'invio di dati riservati, trovati sul sistema locale a seguito dell'identificazione di file di tipo con password, chiavi di accesso, cripto-portafogli, token, cookie di sessione e altre informazioni sensibili.
Fonte: opennet.ru
