Apper som bruker gamle depotnavn på GitHub som avhengigheter, kan faktisk føre brukere til skadelig programvare. Her er det du trenger å vite.

Det blir stadig tydeligere at GitHub-repojacking utgjør en legitim risiko for utviklere. Hackere kan dra nytte av brukere og selskaper som endrer GitHub-navnene sine ved å kapre gammelt depot navn i håp om at ondsinnede filer de legger til kan hentes av programmer som bruker koden som en avhengighet.

Det er derfor viktig at du tar skritt for å beskytte ditt eget GitHub-prosjekt hvis du nylig endret brukernavnet ditt eller refererer til andre depoter som avhengigheter.

Hva er RepoJacking?

GitHub-repojacking er en type utnyttelse som kan finne sted etter at en depoteier endrer brukernavnet sitt. Den gamle kombinasjonen av brukernavn og depotnavn blir tilgjengelig, og en repojacker kan dra nytte av avhengighetene ved å kreve brukernavnet og opprette et depot med samme navn.

Repojacking kan utgjøre to forskjellige typer risiko:

  • Repojacking kan gjøre en ellers pålitelig applikasjon upålitelig. Hvis du bruker en applikasjon som bruker et GitHub-depot som en avhengighet og eieren gir nytt navn til depotet, vil bruk av applikasjonen gjøre deg sårbar.
  • Repojacking kan sette en applikasjon du utvikler i fare. Hvis du refererer til et GitHub-depot som en avhengighet og ikke merker eller oppdaterer det når depotet får nytt navn, vil applikasjonen din være sårbar for repojacking-utnyttelser.

Repojacking utgjør ikke en enorm risiko for brukere, men det er legitim grunn til å tro at det kan tjene som mekanismen for et alvorlig forsyningskjedeangrep. Hvis en applikasjon har en avhengighet som refererer til et repojacket depot, vil den kalle etter og motta kode fra repojackerne som kan inneholde skadelig programvare.

Hvis du utvikler på GitHub, vet du hvordan du kan minimer risikoen for forsyningskjedeangrep og repojacking – både når det gjelder å være det kaprede depotet og å være en tredjepart med avhengigheter – er avgjørende.

Hvordan minimere RepoJacking-risiko

Repojacking-angrep er avhengige av en ekstremt forutsigbar mekanisme: kaprerne tar kontroll over et uavhentet depot og drar deretter nytte av alle applikasjoner som refererer til det som en avhengighet. Heldigvis gjør dette repojacking lett å bekjempe.

Lag private kloner av depoter

Kloning av et depot er en utmerket måte å minimere risikoen forbundet med avhengigheter i prosjektet ditt fordi du vil ha absolutt kontroll over din private kopi. Du kan opprette en privat kopi av et offentlig depot ved å blotte kloning og speilskyve den, som dokumentert på GitHub.

Spor prosjektavhengighetene dine nøye

Hvis du bestemmer deg for at du foretrekker å unngå problemer og referere til offentlige depoter, bør du sørge for å revidere prosjektavhengighetene dine ofte. Å sjekke statusen til avhengighetene dine noen ganger i året vil ta under en time på det meste – og det vil spare deg for mye stress.

Vurder på nytt å endre navn på kontoen din

Ideelt sett vil det ikke være noen grunn til bekymring å holde brukernavnet ditt oppdatert. Gitt risikoen for repojacking, bør du imidlertid vurdere å beholde ditt utdaterte navn. Hvis du må endre brukernavnet ditt, bør du kreve og reservere det gamle navnet ved å registrere en annen konto.

Bruk eksterne ressurser klokt

Avhengigheter utgjør en iboende risiko fordi de oppretter tredjeparts tilgangspunkter i applikasjonen din. Selv om de vanligvis er verdt tiden de sparer, er regelmessig revisjon av prosjektavhengighetene avgjørende. Du bør også ta andre sikkerhetstiltak, for eksempel å bruke SSH-autentisering, for å forhindre utnyttelse.