L’attacco di dirottamento di PyPi Revival è sia orribile che incredibilmente imbarazzante


Troppo bello per ID univoci

Il repository PyPi, propriamente chiamato Python Package deal Index, fornisce applicazioni e pacchetti Python sviluppati dalla comunità a chiunque ne abbia bisogno. È simile a GitHub in quanto chiunque può avviare e tracciare un progetto su PyPi e chiunque può usare il comando pip per scaricare e installare quei pacchetti. Sebbene non sia così popolare su Home windows come lo è sulle macchine basate su Linux, attualmente ospita 564.840 pacchetti, i più popolari dei quali vedono milioni di obtain ogni giorno. Ciò lo rende un bersaglio perfetto per i malintenzionati e li abbiamo sicuramente visti usarlo con successo per diffondere malware in passato. Ciò potrebbe farti supporre che PyPi includa una delle funzionalità di sicurezza più basilari; tuttavia sai cosa dicono sulle ipotesi.

È stato scoperto un nuovo vettore di attacco, denominato Revival Hijack, che sfrutta il fatto che PyPi non assegna uno degli attributi univoci più basilari che potresti assegnare a un pacchetto per assicurarti che sia ciò che cube di essere. Il nome di un pacchetto PyPi non è protetto in alcun modo, quindi se qualcuno abbandona un progetto per qualsiasi motivo e lo elimina dal database, chiunque altro può creare un pacchetto con lo stesso nome e pip non ha modo di sapere che è cambiato. Nella maggior parte degli scenari, potresti avere nomi di progetto o utente duplicati, ma a ognuno di essi viene assegnato un ID univoco in modo che se uno viene eliminato e in seguito sostituito con un nuovo utente o progetto con lo stesso nome, l’ID univoco è diverso in modo che i sistemi possano distinguere la differenza.

Bleeping Pc ha pubblicato una ricerca di JFrog che dimostra che un aggressore può aspettare che un progetto venga eliminato e poi crearne immediatamente uno nuovo con lo stesso nome, riempito con qualsiasi codice gli venga in mente, e pip lo scaricherà e installerà felicemente. PyPI mantiene una blocklist non pubblica, ma non c’è garanzia che un progetto eliminato verrà aggiunto per impedire che si verifichi un attacco come il Revival Hijack. Questo è stato notato dai black hat e ne è stato effettivamente tratto vantaggio.

Puoi ringraziare JFrog per essere stato proattivo e aver registrato un certo numero di progetti eliminati sotto il nome security_holding; potrebbero non mantenere i pacchetti precedenti ma impediranno a qualcuno di riportarli indietro con codice modificato. A meno di essere lo sviluppatore o di avere una conoscenza approfondita dell’eliminazione imminente di un progetto, c’è poco che tu possa fare per proteggerti.

Aspettiamo notizie se PyPi intende cambiare questa situazione.


Leave a Reply

Your email address will not be published. Required fields are marked *