GitHub e PyPI aggiungono nuovi controlli per ridurre i rischi della supply chain dei pacchetti

GitHub e il Python Package Index (PyPI) stanno introducendo misure pensate per limitare due rischi della supply chain del software: la rapida distribuzione di nuove versioni dannose e la successiva mo...

GitHub e il Python Package Index (PyPI) stanno introducendo misure pensate per limitare due rischi della supply chain del software: la rapida distribuzione di nuove versioni dannose e la successiva modifica di versioni rimaste stabili per mesi o anni.

La modifica di GitHub aggiunge un ritardo predefinito di tre giorni alle pull request di Dependabot per i normali aggiornamenti delle dipendenze. Dependabot attenderà almeno 72 ore dalla disponibilità di una nuova versione prima di proporre l’aggiornamento, offrendo ai manutentori, ai ricercatori di sicurezza e ai sistemi di scansione automatizzati più tempo per identificare codice sospetto o far rimuovere un pacchetto compromesso.

Il periodo di attesa si applica agli aggiornamenti di versione non legati alla sicurezza. Le organizzazioni possono modificare questo comportamento tramite il file di configurazione dependabot.yml, mentre gli aggiornamenti relativi alla sicurezza non sono soggetti allo stesso ritardo predefinito. GitHub ha dichiarato che il periodo di tre giorni mira a bilanciare l’esposizione ai pacchetti dannosi appena pubblicati con la necessità di mantenere le dipendenze ragionevolmente aggiornate.

PyPI limita le modifiche alle versioni meno recenti

PyPI sta adottando una protezione diversa, limitando il caricamento di nuovi file alle versioni pubblicate da più di 14 giorni. La policy mira a impedire agli aggressori che ottengano le credenziali di pubblicazione di un progetto o compromettano il relativo flusso di rilascio di aggiungere un wheel dannoso o un altro artefatto a una versione consolidata.

La restrizione dovrebbe entrare in vigore dopo che l’API Upload 2.0 e i meccanismi di anteprima graduale saranno standardizzati tramite la PEP 694. PyPI ha dichiarato che l’impatto dovrebbe essere limitato, poiché relativamente pochi progetti continuano ad aggiungere file specifici per una piattaforma a versioni meno recenti. In un’analisi dei 15.000 pacchetti più scaricati, solo 56 avevano pubblicato un wheel compatibile con Python 3.14 oltre due settimane dopo la disponibilità iniziale della versione interessata.

Oltre a proteggere gli utenti, PyPI ha dichiarato che la regola dovrebbe semplificare la risposta agli incidenti. Se una versione meno recente non può più ricevere nuovi file, gli investigatori possono distinguere più facilmente gli artefatti legittimi dai file aggiunti durante una compromissione.

Nel complesso, le policy affrontano punti diversi del ciclo di vita delle dipendenze: GitHub rallenta l’adozione iniziale di versioni non affidabili, mentre PyPI riduce la possibilità di modificare versioni che gli utenti considerano già affidabili. Nessuno dei due controlli elimina gli attacchi alla supply chain, ma entrambi aggiungono tempo e visibilità per rilevare modifiche dannose prima che si diffondano ampiamente.