Apps, der bruger gamle lagernavne på GitHub som afhængigheder, kan faktisk føre brugere til malware. Her er hvad du behøver at vide.

Det er mere og mere tydeligt, at GitHub repojacking udgør en legitim risiko for udviklere. Hackere kan drage fordel af, at brugere og virksomheder ændrer deres GitHub-navne ved at kapre gammelt lager navne i håb om, at ondsindede filer, de tilføjer, kan blive hentet af programmer, der bruger koden som en afhængighed.

Det er derfor vigtigt, at du tager skridt til at beskytte dit eget GitHub-projekt, hvis du for nylig har ændret dit brugernavn eller refererer til andre depoter som afhængigheder.

Hvad er RepoJacking?

GitHub-repojacking er en type udnyttelse, der kan finde sted, efter at en lagerejer ændrer deres brugernavn. Den gamle kombination af brugernavn og lagernavn bliver tilgængelig, og en repojacker kan drage fordel af sine afhængigheder ved at gøre krav på brugernavnet og oprettelse af et depot med samme navn.

Repojacking kan udgøre to forskellige typer risiko:

  • Repojacking kan gøre en ellers troværdig applikation upålidelig. Hvis du bruger et program, der bruger et GitHub-lager som en afhængighed, og ejeren omdøber lageret, vil brugen af ​​programmet efterlade dig sårbar.
  • Repojacking kan sætte en applikation, du er ved at udvikle, i fare. Hvis du refererer til et GitHub-lager som en afhængighed og undlader at lægge mærke til eller opdatere det, når lageret omdøbes, vil din applikation være sårbar over for repojacking.

Repojacking udgør ikke en enorm risiko for brugerne, men der er legitim grund til at tro, at det kan tjene som mekanismen for et alvorligt forsyningskædeangreb. Hvis en applikation har en afhængighed, der refererer til et repojacket depot, vil det opfordre til og modtage kode fra repojackerne, der kan indeholde malware.

Hvis du udvikler på GitHub, ved at vide, hvordan du kan minimer din risiko for forsyningskædeangreb og repojacking – både i forhold til at være det kaprede depot og være en tredjepart med afhængigheder – er afgørende.

Sådan minimerer du RepoJacking-risikoen

Repojacking-angreb er afhængige af en ekstremt forudsigelig mekanisme: flykaprerne tager kontrol over et uopkrævet lager og drager derefter fordel af alle applikationer, der henviser til det som en afhængighed. Heldigvis gør dette repojacking let at bekæmpe.

Opret private kloner af depoter

Kloning af et depot er en glimrende måde at minimere risikoen forbundet med afhængigheder i dit projekt, fordi du vil have absolut kontrol over din private kopi. Du kan oprette en privat kopi af et offentligt lager ved blot at klone og spejle det, som dokumenteret på GitHub.

Spor dine projektafhængigheder omhyggeligt

Hvis du beslutter dig for, at du foretrækker at undgå problemerne og henvise til offentlige arkiver, bør du sørge for at revidere dine projektafhængigheder ofte. At tjekke status for dine afhængigheder et par gange om året vil højst tage under en time – og det vil spare dig for en masse stress.

Overvej at omdøbe din konto igen

Ideelt set ville det ikke være nogen grund til bekymring at holde dit brugernavn opdateret. I betragtning af risikoen for genudtagning bør du dog overveje at beholde dit forældede navn. Hvis du skal ændre dit brugernavn, skal du gøre krav på og reservere det gamle navn ved at registrere en anden konto.

Brug eksterne ressourcer klogt

Afhængigheder udgør en iboende risiko, fordi de skaber tredjepartsadgangspunkter i din applikation. Selvom de typisk er den tid værd, de sparer, er regelmæssig revision af dine projektafhængigheder afgørende. Du bør også tage andre sikkerhedsforanstaltninger, såsom at bruge SSH-godkendelse, for at forhindre udnyttelse.