Aplikacije koje koriste stare nazive spremišta na GitHubu kao ovisnosti mogle bi zapravo dovesti korisnike do zlonamjernog softvera. Evo što trebate znati.
Sve je očitije da GitHub repojacking predstavlja legitiman rizik za programere. Hakeri mogu iskoristiti korisnike i tvrtke koji mijenjaju svoja GitHub imena otimanjem starog repozitorija imena u nadi da bi zlonamjerne datoteke koje dodaju mogle dohvatiti aplikacije koje koriste kod kao ovisnost.
Stoga je važno da poduzmete korake za zaštitu vlastitog GitHub projekta ako ste nedavno promijenili svoje korisničko ime ili referencirali druga spremišta kao ovisnosti.
Što je RepoJacking?
GitHub repojacking je vrsta iskorištavanja koja se može dogoditi nakon što vlasnik spremišta promijeni svoje korisničko ime. Stara kombinacija korisničkog imena i imena spremišta postaje dostupna, a repojacker može iskoristiti svoje ovisnosti traženjem korisničkog imena i stvaranje spremišta s istim imenom.
Repojacking može predstavljati dvije različite vrste rizika:
- Repojacking može učiniti aplikaciju koja je inače pouzdana nepouzdanom. Ako koristite aplikaciju koja koristi GitHub repozitorij kao ovisnost, a vlasnik preimenuje repozitorij, korištenje te aplikacije učinit će vas ranjivima.
- Repojacking može ugroziti aplikaciju koju razvijate. Ako referirate na GitHub repozitorij kao na ovisnost i ne primijetite ga ili ažurirate kada se repozitorij preimenuje, vaša će aplikacija biti ranjiva na iskorištavanje ponovnog jackanja.
Repojacking ne predstavlja ogroman rizik za korisnike, ali postoji opravdan razlog vjerovati da bi mogao poslužiti kao mehanizam za ozbiljan napad na opskrbni lanac. Ako aplikacija ima ovisnost koja upućuje na repojacked repozitorij, ona će pozvati i primiti kod od repojackera koji može sadržavati zlonamjerni softver.
Ako razvijate na GitHubu, znajući kako možete smanjite rizik od napada u opskrbnom lancu i repojacking—i u smislu da ste oteti repozitorij i da ste treća strana sa ovisnostima—od vitalnog je značaja.
Kako minimizirati rizik od RepoJackinga
Napadi repojackinga oslanjaju se na izuzetno predvidljiv mehanizam: otmičari preuzimaju kontrolu nad repozitorijem za koji nisu zatraženi, a zatim iskorištavaju sve aplikacije koje ga navode kao ovisnost. Srećom, ovo čini repojacking lakšim za borbu.
Stvorite privatne klonove spremišta
Kloniranje spremišta je izvrstan način da minimizirate rizik povezan s ovisnostima u vašem projektu jer ćete imati apsolutnu kontrolu nad svojom privatnom kopijom. Možete stvoriti privatnu kopiju javnog repozitorija golim kloniranjem i zrcalnim guranjem, kao što je dokumentirano na GitHub.
Pažljivo pratite svoje ovisnosti o projektu
Ako odlučite da biste radije izbjegli probleme i referencirali javna spremišta, trebali biste se pobrinuti da često provjeravate svoje ovisnosti o projektu. Provjera statusa vaših ovisnosti nekoliko puta godišnje trajat će najviše manje od sat vremena—i uštedjet će vam mnogo stresa.
Ponovno razmislite o preimenovanju svog računa
U idealnom slučaju, ažuriranje korisničkog imena ne bi bilo razlog za brigu. Međutim, s obzirom na rizik od ponovnog preuzimanja, razmislite o zadržavanju zastarjelog imena. Ako morate promijeniti svoje korisničko ime, trebali biste zatražiti i rezervirati staro ime registracijom drugog računa.
Mudro koristite vanjske resurse
Ovisnosti predstavljaju inherentni rizik jer stvaraju pristupne točke trećih strana u vašoj aplikaciji. Iako su obično vrijedni vremena koje štede, redovita revizija ovisnosti o vašem projektu ključna je. Također biste trebali poduzeti druge sigurnosne mjere, kao što je korištenje SSH autentifikacije, kako biste spriječili iskorištavanje.