Aplikacije, ki kot odvisnosti uporabljajo stara imena skladišč na GitHubu, lahko uporabnike dejansko vodijo do zlonamerne programske opreme. Tukaj je tisto, kar morate vedeti.
Vse bolj je očitno, da vnovični vložek GitHub predstavlja upravičeno tveganje za razvijalce. Hekerji lahko izkoristijo uporabnike in podjetja, ki spreminjajo svoja imena GitHub, tako da ugrabijo staro skladišče imena v upanju, da bodo zlonamerne datoteke, ki jih dodajo, pridobile aplikacije, ki uporabljajo kodo kot odvisnost.
Pomembno je torej, da sprejmete ukrepe za zaščito lastnega projekta GitHub, če ste pred kratkim spremenili svoje uporabniško ime ali druge repozitorije navajate kot odvisnosti.
Kaj je RepoJacking?
GitHub repojacking je vrsta izkoriščanja, ki se lahko zgodi, ko lastnik repozitorija spremeni svoje uporabniško ime. Staro uporabniško ime in kombinacija imena skladišča postaneta na voljo in repojacker lahko izkoristi svoje odvisnosti tako, da zahteva uporabniško ime in ustvarjanje repozitorija z istim imenom.
Ponovno vgrajevanje lahko predstavlja dve različni vrsti tveganja:
- Prevzemanje lahko povzroči, da je sicer zaupanja vredna aplikacija nezanesljiva. Če uporabljate aplikacijo, ki uporablja repozitorij GitHub kot odvisnost in lastnik preimenuje repozitorij, boste z uporabo aplikacije ranljivi.
- Ponovna pridobitev lahko ogrozi aplikacijo, ki jo razvijate. Če repozitorij GitHub navajate kot odvisnost in ga ne opazite ali posodobite, ko je repozitorij preimenovan, bo vaša aplikacija ranljiva za izkoriščanja ponovnega prevzema.
Ponovni prevzem ne predstavlja velikega tveganja za uporabnike, vendar obstaja upravičen razlog za domnevo, da bi lahko služil kot mehanizem za resen napad na dobavno verigo. Če ima aplikacija odvisnost, ki se sklicuje na repojacked repozitorij, bo poklicala in prejela kodo od repojackerjev, ki lahko vsebuje zlonamerno programsko opremo.
Če razvijate na GitHubu, veste, kako lahko zmanjšajte tveganje napadov v dobavni verigi in repojacking - tako v smislu ugrabljenega repozitorija kot tretje osebe z odvisnostmi - je ključnega pomena.
Kako zmanjšati tveganje RepoJacking
Napadi ponovnega vgrajevanja se zanašajo na izjemno predvidljiv mehanizem: ugrabitelji prevzamejo nadzor nad nezahtevanim repozitorijem in nato izkoristijo vse aplikacije, ki se nanj sklicujejo kot na odvisnost. Na srečo se je zaradi tega ponovnega vgrajevanja enostavno boriti.
Ustvarite zasebne klone repozitorijev
Kloniranje repozitorija je odličen način za zmanjšanje tveganja, povezanega z odvisnostmi v vašem projektu, saj boste imeli popoln nadzor nad svojo zasebno kopijo. Ustvarite lahko zasebno kopijo javnega repozitorija z golim kloniranjem in zrcalnim potiskanjem, kot je dokumentirano na GitHub.
Skrbno spremljajte svoje odvisnosti od projekta
Če se odločite, da bi se raje izognili težavam in se sklicevali na javna skladišča, se prepričajte, da pogosto revidirate odvisnosti svojih projektov. Preverjanje statusa odvisnosti nekajkrat na leto vam bo vzelo največ eno uro in vam bo prihranilo veliko stresa.
Ponovno razmislite o preimenovanju računa
V idealnem primeru posodabljanje uporabniškega imena ne bi bilo razlog za skrb. Glede na tveganje ponovnega prevzema pa razmislite o tem, da obdržite svoje zastarelo ime. Če morate spremeniti uporabniško ime, zahtevajte in rezervirajte staro ime z registracijo drugega računa.
Pametno uporabljajte zunanje vire
Odvisnosti predstavljajo inherentno tveganje, ker ustvarjajo dostopne točke tretjih oseb v vaši aplikaciji. Čeprav so običajno vredni časa, ki ga prihranijo, je redno preverjanje odvisnosti vaših projektov ključnega pomena. Uvesti morate tudi druge varnostne ukrepe, kot je uporaba avtentikacije SSH, da preprečite zlorabe.