Le app che utilizzano vecchi nomi di repository su GitHub come dipendenze potrebbero effettivamente portare gli utenti al malware. Ecco cosa devi sapere.
È sempre più evidente che il repojacking di GitHub rappresenta un rischio legittimo per gli sviluppatori. Gli hacker possono trarre vantaggio dal fatto che utenti e aziende cambino i loro nomi GitHub dirottando il vecchio repository nomi nella speranza che i file dannosi che aggiungono possano essere recuperati da applicazioni che utilizzano il codice come a dipendenza.
È importante, quindi, adottare misure per proteggere il proprio progetto GitHub se di recente si è modificato il nome utente o si fa riferimento ad altri repository come dipendenze.
Che cos'è RepoJacking?
Il repojacking di GitHub è un tipo di exploit che può verificarsi dopo che il proprietario di un repository ha cambiato il proprio nome utente. La vecchia combinazione di nome utente e nome del repository diventa disponibile e un repojacker può sfruttare le sue dipendenze rivendicando il nome utente e creazione di un deposito con lo stesso nome.
Il repojacking può comportare due distinti tipi di rischio:
- Il repojacking può rendere inaffidabile un'applicazione altrimenti affidabile. Se utilizzi un'applicazione che utilizza un repository GitHub come dipendenza e il proprietario rinomina il repository, l'utilizzo dell'applicazione ti lascerà vulnerabile.
- Il repojacking può mettere a rischio un'applicazione che stai sviluppando. Se fai riferimento a un repository GitHub come dipendenza e non lo noti o non lo aggiorni quando il repository viene rinominato, la tua applicazione sarà vulnerabile agli exploit di repojacking.
Il repojacking non rappresenta un rischio enorme per gli utenti, ma vi sono motivi legittimi per credere che possa fungere da meccanismo per un grave attacco alla catena di approvvigionamento. Se un'applicazione ha una dipendenza che fa riferimento a un repository sottoposto a repojack, richiederà e riceverà codice dai repojacker che potrebbero contenere malware.
Se sviluppi su GitHub, sapendo come puoi ridurre al minimo il rischio di attacchi alla catena di approvvigionamento e il repojacking, sia in termini di repository dirottato che di terze parti con dipendenze, è vitale.
Come ridurre al minimo il rischio di RepoJacking
Gli attacchi di repojacking si basano su un meccanismo estremamente prevedibile: i dirottatori prendono il controllo di un repository non rivendicato e quindi sfruttano qualsiasi applicazione che lo fa riferimento come dipendenza. Fortunatamente, questo rende il repojacking facile da combattere.
Crea cloni privati di repository
Clonazione di un repository è un ottimo modo per ridurre al minimo il rischio associato alle dipendenze nel tuo progetto perché avrai il controllo assoluto sulla tua copia privata. È possibile creare una copia privata di un repository pubblico mediante semplice clonazione e mirror push, come documentato in Git Hub.
Tieni traccia delle dipendenze del tuo progetto con attenzione
Se decidi che preferiresti evitare i problemi e fare riferimento a repository pubblici, dovresti assicurarti di controllare frequentemente le dipendenze del tuo progetto. Controllare lo stato delle tue dipendenze un paio di volte all'anno richiederà meno di un'ora al massimo e ti farà risparmiare molto stress.
Riconsidera la possibilità di rinominare il tuo account
Idealmente, mantenere aggiornato il tuo nome utente non sarebbe motivo di preoccupazione. Dato il rischio di repojacking, tuttavia, dovresti considerare di mantenere il tuo nome obsoleto. Se devi cambiare il tuo nome utente, devi rivendicare e riservare il vecchio nome registrando un altro account.
Usa le risorse esterne con saggezza
Le dipendenze rappresentano un rischio intrinseco perché creano punti di accesso di terze parti nella tua applicazione. Anche se in genere valgono il tempo che risparmiano, è fondamentale controllare regolarmente le dipendenze del progetto. Dovresti anche adottare altre misure di sicurezza, come l'utilizzo dell'autenticazione SSH, per prevenire gli exploit.