PyPI (Python Package Index) ha annunciato l'introduzione di "Project Archival". Si tratta di un nuovo sistema che consente agli editori di archiviare i propri progetti, indicando agli utenti che non sono previsti aggiornamenti. I progetti saranno comunque ospitati su PyPI e gli utenti potranno comunque scaricarli. Tuttavia, questi visualizzeranno un avviso sullo stato di manutenzione, per aiutarli a prendere decisioni informate sulle loro dipendenze. La nuova funzionalità cerca di migliorare la sicurezza della supply chain, poiché il dirottamento degli account degli sviluppatori e l'invio di aggiornamenti dannosi a progetti utilizzati ma abbandonati è uno scenario comune nello spazio open source. Project Archival protegge quindi gli utenti e riduce le richieste di supporto garantendo una comunicazione chiara sullo stato del ciclo di vita del progetto.
Secondo un post dettagliato di TrailofBits, sviluppatore di Project Archival, la funzionalità fornisce uno stato controllato dal manutentore che consente ai proprietari di progetti di contrassegnare come archiviati i propri progetti. Ciò permetterà di segnalare agli utenti che non ci saranno ulteriori aggiornamenti, correzioni o manutenzione. PyPI raccomanda ai manutentori di rilasciare una versione finale prima di archiviare un progetto. Naturalmente, i responsabili possono dearchiviare il loro progetto in qualsiasi momento per poterci lavorare nuovamente. Inoltre, il nuovo sistema utilizza un modello LifecycleStatus, originariamente sviluppato per la quarantena del progetto, che consente transizioni tra diversi stati.
PyPI: con Project Archival più trasparenza per gli utenti
Una volta che il proprietario del progetto fa clic sull'opzione "Archivia progetto" nella pagina delle impostazioni PyPI, la piattaforma aggiorna automaticamente i suoi metadati per riflettere il nuovo stato. TrailofBits afferma che ci sono piani per aggiungere altri stati di progetto come "obsoleto", "funzionalità completata" e "non mantenuto". Ciò darà agli utenti un'idea più chiara sulle condizioni del progetto. Il banner di avviso serve a informare gli sviluppatori che devono cercare dipendenze alternative attivamente mantenute. Continuare a fare affidamento su progetti obsoleti e potenzialmente insicuri è infatti un grande rischio. Inoltre, spesso gli hacker prendono di mira i pacchetti abbandonati, assumendo il controllo di progetti non più aggiornati. Ciò permette loro di iniettare codice dannoso tramite un aggiornamento che può arrivare anche anni dopo l'ultimo.
In altri casi, i manutentori scelgono di eliminare i progetti quando pianificano di interrompere lo sviluppo, il che porta a scenari come attacchi "Revival Hijack". Dare a questi manutentori un'opzione di archiviazione è molto meglio dal punto di vista della sicurezza. In definitiva, a causa della natura dell'open source, molti progetti vengono abbandonati senza preavviso, lasciando gli utenti a chiedersi se siano ancora mantenuti. Il nuovo sistema dovrebbe migliorare la trasparenza nella manutenzione dei progetti open source, fornendo un segnale esplicito sullo stato di un progetto.