Appar som använder gamla förvarsnamn på GitHub som beroenden kan faktiskt leda användare till skadlig programvara. Här är vad du behöver veta.
Det blir allt mer uppenbart att GitHub-ompoackning utgör en legitim risk för utvecklare. Hackare kan dra fördel av användare och företag som ändrar sina GitHub-namn genom att kapa gamla arkiv namn i hopp om att skadliga filer som de lägger till kan hämtas av program som använder koden som en beroende.
Det är därför viktigt att du vidtar åtgärder för att skydda ditt eget GitHub-projekt om du nyligen ändrat ditt användarnamn eller refererar till andra förråd som beroenden.
Vad är RepoJacking?
GitHub repojacking är en typ av exploatering som kan ske efter att en förvarsägare ändrar sitt användarnamn. Den gamla kombinationen av användarnamn och förvarsnamn blir tillgängliga, och en repojackare kan dra fördel av dess beroenden genom att göra anspråk på användarnamnet och skapa ett arkiv med samma namn.
Repojacking kan utgöra två olika typer av risker:
- Repojacking kan göra en annars pålitlig applikation opålitlig. Om du använder ett program som använder ett GitHub-förråd som ett beroende och ägaren byter namn på förvaret, kommer användningen av programmet att göra dig sårbar.
- Repojacking kan sätta en applikation som du utvecklar i fara. Om du hänvisar till ett GitHub-förråd som ett beroende och misslyckas med att lägga märke till eller uppdatera det när förvaret byter namn, kommer din applikation att vara sårbar för utnyttjande av ompoackning.
Repojacking utgör inte en enorm risk för användarna, men det finns berättigade skäl att tro att det skulle kunna fungera som mekanismen för en allvarlig supply chain attack. Om en applikation har ett beroende som refererar till ett repojackat arkiv, kommer det att begära och ta emot kod från repojackers som kan innehålla skadlig programvara.
Om du utvecklar på GitHub, att veta hur du kan minimera din risk för attacker i leveranskedjan och repojacking – både när det gäller att vara det kapade förvaret och att vara en tredje part med beroenden – är avgörande.
Hur man minimerar RepoJacking-risken
Repojacking-attacker förlitar sig på en extremt förutsägbar mekanism: kaparna tar kontroll över ett outnyttjat förråd och drar sedan fördel av alla applikationer som refererar till det som ett beroende. Lyckligtvis gör detta ompojackning lätt att bekämpa.
Skapa privata kloner av förråd
Kloning av ett arkiv är ett utmärkt sätt att minimera risken förknippade med beroenden i ditt projekt eftersom du kommer att ha absolut kontroll över din privata kopia. Du kan skapa en privat kopia av ett offentligt arkiv genom att blottklona och spegelskjuta det, som dokumenterats på GitHub.
Spåra dina projektberoenden noggrant
Om du bestämmer dig för att du föredrar att undvika problem och referera till offentliga arkiv, bör du se till att du granskar dina projektberoenden ofta. Att kontrollera statusen för dina beroenden några gånger om året tar högst under en timme – och det kommer att spara dig mycket stress.
Överväg att byta namn på ditt konto
Helst skulle det inte vara någon anledning till oro att hålla ditt användarnamn uppdaterat. Med tanke på risken för repojackning bör du dock överväga att behålla ditt föråldrade namn. Om du måste ändra ditt användarnamn bör du göra anspråk på och reservera det gamla namnet genom att registrera ett annat konto.
Använd externa resurser klokt
Beroenden utgör en inneboende risk eftersom de skapar åtkomstpunkter från tredje part i din applikation. Även om de vanligtvis är värda den tid de sparar, är det avgörande att regelbundet granska dina projektberoenden. Du bör också vidta andra säkerhetsåtgärder, som att använda SSH-autentisering, för att förhindra utnyttjande.