Apps die oude repositorynamen op GitHub gebruiken als afhankelijkheden, leiden gebruikers mogelijk naar malware. Dit is wat u moet weten.
Het wordt steeds duidelijker dat GitHub-repojacking een legitiem risico vormt voor ontwikkelaars. Hackers kunnen misbruik maken van gebruikers en bedrijven die hun GitHub-naam wijzigen door oude repository te kapen namen in de hoop dat schadelijke bestanden die ze toevoegen kunnen worden opgehaald door toepassingen die de code gebruiken als een afhankelijkheid.
Het is daarom belangrijk dat u stappen onderneemt om uw eigen GitHub-project te beschermen als u onlangs uw gebruikersnaam heeft gewijzigd of als u naar andere repositories verwijst als afhankelijkheden.
Wat is repojacking?
GitHub repojacking is een type exploit dat kan plaatsvinden nadat de eigenaar van een repository zijn gebruikersnaam heeft gewijzigd. De oude combinatie van gebruikersnaam en repositorynaam komt beschikbaar en een repojacker kan profiteren van zijn afhankelijkheden door de gebruikersnaam en het creëren van een archief met dezelfde naam.
Repojacking kan twee verschillende soorten risico's met zich meebrengen:
- Repojacking kan een verder betrouwbare applicatie onbetrouwbaar maken. Als u een applicatie gebruikt die een GitHub-repository als afhankelijkheid gebruikt en de eigenaar de repository hernoemt, maakt het gebruik van de applicatie u kwetsbaar.
- Repojacking kan een applicatie die u aan het ontwikkelen bent in gevaar brengen. Als u naar een GitHub-repository verwijst als een afhankelijkheid en deze niet opmerkt of bijwerkt wanneer de repository wordt hernoemd, is uw toepassing kwetsbaar voor repojacking-exploits.
Repojacking vormt geen enorm risico voor gebruikers, maar er is een legitieme reden om aan te nemen dat het zou kunnen dienen als mechanisme voor een serieuze aanval op de toeleveringsketen. Als een applicatie een afhankelijkheid heeft die verwijst naar een repojacked repository, zal het code van de repojackers opvragen en ontvangen die mogelijk malware bevat.
Als je op GitHub ontwikkelt, weet je hoe je dat kunt minimaliseer uw risico op supply chain-aanvallen en repojacking - zowel als de gekaapte repository als als een derde partij met afhankelijkheden - is van vitaal belang.
Hoe RepoJacking-risico te minimaliseren
Repojacking-aanvallen zijn gebaseerd op een uiterst voorspelbaar mechanisme: de kapers nemen de controle over een niet-opgeëiste repository en profiteren vervolgens van alle toepassingen die ernaar verwijzen als een afhankelijkheid. Gelukkig is repojacking hierdoor eenvoudig te bestrijden.
Maak privéklonen van opslagplaatsen
Een repository klonen is een uitstekende manier om het risico dat gepaard gaat met afhankelijkheden in uw project te minimaliseren, omdat u absolute controle heeft over uw privékopie. U kunt een privékopie maken van een openbare repository door deze zonder kopie te klonen en te spiegelen, zoals beschreven op GitHub.
Houd uw projectafhankelijkheden zorgvuldig bij
Als u besluit dat u liever de problemen wilt vermijden en naar openbare repositories wilt verwijzen, moet u ervoor zorgen dat u uw projectafhankelijkheden regelmatig controleert. Een paar keer per jaar de status van uw afhankelijkheden controleren, duurt maximaal een uur en bespaart u een hoop stress.
Heroverweeg de naam van uw account te wijzigen
Idealiter zou het up-to-date houden van uw gebruikersnaam geen reden tot bezorgdheid zijn. Gezien het risico van repojacking, zou u echter moeten overwegen om uw verouderde naam te behouden. Als u uw gebruikersnaam moet wijzigen, moet u de oude naam claimen en reserveren door een ander account te registreren.
Gebruik externe bronnen verstandig
Afhankelijkheden vormen een inherent risico omdat ze toegangspunten van derden in uw toepassing creëren. Hoewel ze de tijd die ze besparen meestal waard zijn, is het van cruciaal belang om regelmatig uw projectafhankelijkheden te controleren. Neem ook andere beveiligingsmaatregelen, zoals het gebruik van SSH-authenticatie, om exploits te voorkomen.