Akses në të dhënat nga repo të largëta dhe private në GitHub, që kanë forke

Kompania Truffle Security publikoi skenarë sulmesh ndaj disa teknikave tipike të punës me depozitë në GitHub, të cilat lejojnë nxjerrjen e të dhënave nga depozita të largëta që kanë forka publike ose që janë krijuar si forka.

Mundësi për të aksesuar komitetet sipas hash-it në të gjitha fork përkatëse të depozitave është shkaktuar nga fakti se GitHub, për qëllime optimizimi dhe përjashtimi të kopjimeve, ruan së bashku të gjitha objektet nga depozitari kryesor dhe fork-et, duke i ndarë vetëm logjikisht përkatësinë e komiteteve. Ky ruajtje lejon të shikoni në depozitarin kryesor çdo komitet nga çdo fork, duke e treguar qartë hash-in në URL. Për shembull, përdoruesi mund të krijojë një fork të depozitës "/torvalds/linux" dhe të shtojë në të çdo kod, pas së cilës ky kod do të jetë i aksesueshëm përmes një lidhjeje hash të drejtpërdrejtë në depozitarin "/torvalds/linux". Në rast se depozita fshihet, nëse ka të paktën një fork publik, të dhënat nga depozita e fshirë mbeten të aksesueshme sipas hash-it të komitetit.

Propozohet tri skenarë që paraqesin kërcënim për sigurinë:

  • Skema e parĂ« trajton situatat kur zhvilluesit krijojnĂ« forka tĂ« repo publik, shtojnĂ« ndryshime nĂ« to, eksperimentojnĂ« dhe mĂ« pas i fshijnĂ«. PĂ«rveç rrjedhjes sĂ« kodit qĂ« nuk Ă«shtĂ« menduar pĂ«r publikim, rreziku paraqet situata kur gjatĂ« eksperimenteve nĂ« kodin e skedarĂ«ve me shembuj shtohen çelĂ«sa tĂ« punĂ«s pĂ«r akses nĂ« API. NĂ« kĂ«tĂ« rast, njĂ« sulmues mund tĂ« fitojĂ« qasje nĂ« ndryshimin sipas hash-it tĂ« komitit, qĂ« adresohet pas fshirjes sĂ« forkut pĂ«rmes repo kryesor. PĂ«r shembull, nĂ«pĂ«rmjet metodĂ«s sĂ« propozuar, hulumtuesit arritĂ«n tĂ« identifikojnĂ« 30 çelĂ«sa tĂ« punĂ«s pĂ«r akses nĂ« API duke studiuar tre repo tĂ« lidhura me mĂ«simin e makinerive me njĂ« numĂ«r tĂ« madh forkesh.
  • Skenari i dytĂ« ka tĂ« bĂ«jĂ« me mundĂ«sinĂ« e marrjes sĂ« qasjes nĂ« tĂ« dhĂ«na pas fshirjes sĂ« depozitĂ«s pĂ«rkatĂ«se, nĂ«se pĂ«r kĂ«tĂ« depozitĂ« janĂ« krijuar forka. Si njĂ« shembull jepet rasti kur nĂ« njĂ« depozite publike tĂ« njĂ« kompanie u publikuan aksidentalisht çelĂ«sat e mbyllur tĂ« njĂ« prej punonjĂ«sve, duke lejuar qasje tĂ« plotĂ« nĂ« tĂ« gjitha depozitĂ« e kĂ«saj kompanie nĂ« GitHub. Kompania e fshiu depozitĂ«n pĂ«rmes sĂ« cilĂ«s ndodhi rrjedhja, por çelĂ«sat ende mbetĂ«n tĂ« disponueshĂ«m pĂ«r t'u tĂ«rhequr pĂ«rmes thirrjeve me hash-in e komit nĂ« depozitĂ« me forkat.
    Akses në të dhënat nga repo të largëta dhe private në GitHub, që kanë forke
  • Skenari i tretĂ« lidhet me modelin e zhvillimit tĂ« projekteve, tĂ« cilat zhvillojnĂ« njĂ« version bazik tĂ« hapur nĂ« njĂ« depo publike dhe njĂ« version tĂ« zgjeruar pronar nĂ« njĂ« depo private. NĂ«se njĂ« kompani fillimisht zhvilloi projektin nĂ« njĂ« depo private dhe mĂ« pas, pas hapjes sĂ« kodit tĂ« projektit, e kaloi atĂ« nĂ« kategorinĂ« e projekteve publike, por vazhdoi zhvillimin e njĂ« versioni tĂ« mbyllur tĂ« brendshĂ«m ose tĂ« zgjeruar nĂ« njĂ« fork privat, atĂ«herĂ« ekziston mundĂ«sia e qasjes nĂ« ndryshimet e ndĂ«rlidhura me fork-un privat pĂ«rmes hash-eve tĂ« komiteteve pĂ«rmes depozites publike. NĂ« kĂ«tĂ« rast, qasja Ă«shtĂ« e mundur vetĂ«m pĂ«r ndryshimet, qĂ« janĂ« shtuar nĂ« fork-un privat pĂ«rpara se depoja kryesore tĂ« kalonte nĂ« kategorinĂ« e projekteve publike (depozitat e depozitimeve private dhe publike janĂ« tĂ« ndara, por, kur dy depozita ishin private, komitetet ruheshin sĂ« bashku, prandaj mbetĂ«n nĂ« depo pas kalimit tĂ« saj nĂ« kategorinĂ« e projekteve publike).
    Akses në të dhënat nga repo të largëta dhe private në GitHub, që kanë forke

Një truk që lejon qasje në komitetet në fork-et e një depoje përmes lidhjes me depozitën kryesore është njohur për shumë vite dhe përdoret herë pas here për shaka të ndryshme dhe për të mashtruar zhvilluesit (p.sh., shakatë ndonjëherë krijojnë një dukje të zëvendësimit të backdoor-ve në depozitën me thelb Linux në GitHub). Si një masë për të parandaluar këto shaka, GitHub ka shtuar një paralajmërim që komiteti i kërkuar nuk i përket degëve në depozitën aktuale dhe mund të përkasë një fork. Megjithatë, vetë mundësia për të aksesuar komitetet përmes hash-it në çdo fork të lidhur me depozitën është parë si e padëmshme, pasi kërkohet njohja e hash-it të komitetit për të aksesuar të dhënat në fork-et e largëta dhe private.

Të gjesh hash-in e komitetit, i formuar në bazë të algoritmit SHA-1 dhe që përmban 32 simbole, është e pamundur, por doli se as nuk është e nevojshme. GitHub mbështet një formë të shkurtuar të referimit në komitete, duke lejuar adresimin e ndryshimeve nga disa simbole të para të hash-it, nëse nuk ka pjesë të përbashkëta me komitete të tjera. Numri minimal i simboleve për adresimin e shkurtuar të hash-it është 4, që përkon me një provë të të gjitha 65 mijë kombinacioneve (16^4). Ndërkohë, provimi nuk mund të kërkohet, pasi API GitHub lejon lidhjen e përpunuesve për kapjen e ngjarjeve, që përdoren nga projekte të jashtme, duke mbajtur një arkiv me log-un e plotë të të gjitha operacioneve, në të cilin informacioni mbi hash-et e komiteteve mbetet edhe pas fshirjes së depozitave.

Burimi: opennet.ru

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster