Aplicațiile care folosesc nume vechi de depozite pe GitHub ca dependențe ar putea conduce utilizatorii la programe malware. Iată ce trebuie să știți.
Este din ce în ce mai evident că reinstalarea GitHub prezintă un risc legitim pentru dezvoltatori. Hackerii pot profita de faptul că utilizatorii și companiile își schimbă numele GitHub prin deturnarea vechiului depozit nume în speranța că fișierele rău intenționate pe care le adaugă pot fi preluate de aplicațiile care folosesc codul ca a dependenţă.
Prin urmare, este important să luați măsuri pentru a vă proteja propriul proiect GitHub dacă ți-ai schimbat recent numele de utilizator sau ai referit la alte depozite ca dependențe.
Ce este RepoJacking?
Repozitarea GitHub este un tip de exploit care poate avea loc după ce proprietarul unui depozit își schimbă numele de utilizator. Vechea combinație de nume de utilizator și de nume de depozit devin disponibile, iar un repojacker poate profita de dependențele sale revendicând numele de utilizator și crearea unui depozit cu acelasi nume.
Repozitarea poate prezenta două tipuri distincte de risc:
- Repozitarea poate face ca o aplicație altfel demnă de încredere să nu fie de încredere. Dacă utilizați o aplicație care folosește un depozit GitHub ca dependență și proprietarul redenumește depozitul, utilizarea aplicației vă va lăsa vulnerabil.
- Repozitarea poate pune în pericol o aplicație pe care o dezvoltați. Dacă faceți referire la un depozit GitHub ca dependență și nu reușiți să îl observați sau să îl actualizați atunci când depozitul este redenumit, aplicația dvs. va fi vulnerabilă la exploatările de repojacking.
Repozitarea nu prezintă un risc enorm pentru utilizatori, dar există motive legitime să credem că ar putea servi drept mecanism pentru un atac serios al lanțului de aprovizionare. Dacă o aplicație are o dependență care face referire la un depozit repojacat, va solicita și va primi cod de la utilizatorii repojackers care poate conține malware.
Dacă dezvoltați pe GitHub, știind cum puteți minimizați riscul atacurilor lanțului de aprovizionare iar repojarea – atât în ceea ce privește depozitul deturnat, cât și a fi o terță parte cu dependențe – este vitală.
Cum să minimizezi riscul de RepoJacking
Atacurile de repoziție se bazează pe un mecanism extrem de previzibil: piratatorii preiau controlul asupra unui depozit nerevendicat și apoi profită de orice aplicație care face referire la el ca dependență. Din fericire, acest lucru face ca repojarea să fie ușor de combatet.
Creați clone private de depozite
Clonarea unui depozit este o modalitate excelentă de a minimiza riscul asociat cu dependențele din proiectul dvs. deoarece veți avea control absolut asupra copiei private. Puteți crea o copie privată a unui depozit public prin clonarea simplă și împingerea în oglindă, așa cum este documentat mai jos GitHub.
Urmăriți cu atenție dependențele proiectului dvs
Dacă decideți că preferați să evitați problemele și să faceți referire la depozitele publice, ar trebui să vă asigurați că auditați frecvent dependențele proiectului. Verificarea stării dependențelor dvs. de câteva ori pe an va dura cel mult mai puțin de o oră - și vă va scuti de mult stres.
Reconsiderați redenumirea contului dvs
În mod ideal, păstrarea numelui de utilizator actualizat nu ar fi un motiv de îngrijorare. Cu toate acestea, având în vedere riscul de repojcare, ar trebui să vă gândiți să vă păstrați numele învechit. Dacă trebuie să vă schimbați numele de utilizator, trebuie să revendicați și să rezervați vechiul nume înregistrând un alt cont.
Utilizați cu înțelepciune resursele externe
Dependența prezintă un risc inerent, deoarece creează puncte de acces terță parte în aplicația dvs. Deși de obicei merită timpul pe care îl economisesc, auditarea regulată a dependențelor proiectului este crucială. De asemenea, ar trebui să luați alte măsuri de securitate, cum ar fi utilizarea autentificării SSH, pentru a preveni exploatările.