Åtkomst till data frĂ„n externa och privata repository pĂ„ GitHub som har forkar

Företaget Truffle Security har publicerat attackscenarier baserat pÄ flera typiska metoder för att arbeta med repositories pÄ GitHub, vilket gör att man kan extrahera data frÄn fjÀrrrepositories som har offentliga forks eller som skapades som forks.

Möjligheten att fÄ tillgÄng till commits via hash i alla relaterade forks av repositories beror pÄ att GitHub, för att optimera och undvika dubbletter, lagrar alla objekt frÄn huvudrepositoryn och forks tillsammans, men separerar logiskt Àgarskapet av commits. Denna typ av lagring gör det möjligt att se vilken commit som helst frÄn en fork i huvudrepositoryn genom att uttryckligen ange dess hash i URL:en. Till exempel kan en anvÀndare skapa en fork av repositoryn "/torvalds/linux" och lÀgga till vilken kod som helst, efter vilket denna kod blir tillgÀnglig via en direkt hash-lÀnk i repositoryn "/torvalds/linux". Om repositoryn tas bort kvarstÄr data frÄn den borttagna repositoryn tillgÀngliga via commit-hashen sÄ lÀnge det finns Ätminstone en offentlig fork.

Tre scenarier föreslÄs som utgör en sÀkerhetshot:

  • Det första scenariot berör situationer dĂ€r utvecklare skapar forks av offentliga repositories, lĂ€gger till Ă€ndringar i dem, experimenterar och sedan tar bort dem. Utöver lĂ€ckage av kod som inte Ă€r avsedd för publicering utgör situationen dĂ€r arbetsnycklar till API:n lĂ€ggs till i exempel pĂ„ kod under experiment ett allvarligt hot. I sĂ„dana fall kan en angripare fĂ„ tillgĂ„ng till Ă€ndringar via commit-hashen, riktad efter att forken tagits bort genom huvudrepositoryn. PĂ„ det föreslagna sĂ€ttet lyckades forskare identifiera 30 fungerande API-nycklar genom att studera tre relaterade repositories om maskininlĂ€rning med ett stort antal forks.
  • Det andra scenariot handlar om möjligheten att fĂ„ Ă„tkomst till data efter att det primĂ€ra förrĂ„det har raderats, om det har skapats forkar för detta förrĂ„d. Ett exempel pĂ„ detta Ă€r nĂ€r en offentlig förrĂ„d hos ett företag av misstag publicerade de privata nycklarna för en av sina anstĂ€llda, vilket gav fullstĂ€ndig tillgĂ„ng till alla förrĂ„d av företaget pĂ„ GitHub. Företaget raderade förrĂ„det dĂ€r lĂ€ckan skedde, men nycklarna var fortfarande tillgĂ€ngliga för extraktion via förfrĂ„gningar med kommittens hash i förrĂ„den med forkar.
    Åtkomst till data frĂ„n externa och privata repository pĂ„ GitHub som har forkar
  • Det tredje scenariot Ă€r kopplat till utvecklingsmodellen för projekt som utvecklar en grundlĂ€ggande öppen version i ett offentligt förrĂ„d och en utökad proprietĂ€r version i ett privat. Om ett företag ursprungligen utvecklade ett projekt i ett privat förrĂ„d och sedan efter att koden öppnades, flyttade det till en offentlig version, men fortsatte att utveckla en stĂ€ngd intern eller utökad version i en privat fork, finns det möjlighet att fĂ„ Ă„tkomst till Ă€ndringar som lagts till i den privata forken genom kommittens hash via det offentliga förrĂ„det. Åtkomst Ă€r endast möjlig till de Ă€ndringar som lagts till i den privata forken innan huvudförrĂ„det flyttades till den offentliga kategorin (lagring av privata och offentliga förrĂ„d Ă€r uppdelad, men nĂ€r tvĂ„ förrĂ„d var privata lagrades kommittĂ©er tillsammans, och dĂ€rför finns de kvar i förrĂ„det efter att det flyttades till en offentlig kategori).
    Åtkomst till data frĂ„n externa och privata repository pĂ„ GitHub som har forkar

Tricket att fÄ Ätkomst till kommittéer i forkar av ett förrÄd genom en lÀnk till huvudförrÄdet har varit kÀnt i mÄnga Är och anvÀnds ibland för olika skÀmt och för att vilseleda utvecklare (till exempel skÀmtare skapar periodvis en illusion av att bakdörrar har införts i förrÄdet med Linux-kÀrnan pÄ GitHub). Som en ÄtgÀrd för att motverka sÄdana skÀmt har GitHub lagt till en varning om att den begÀrda kommittén inte tillhör grenarna i det aktuella förrÄdet och kan tillhöra en fork. Samtidigt har möjligheten att fÄ Ätkomst till kommittéer via hash i alla relaterade forkar av förrÄdet betraktats som harmlös, eftersom Ätkomst till data i fjÀrr- och privata forkar krÀver kÀnnedom om kommittens hash.

Att förbereda en commit hash, som Àr baserad pÄ SHA-1 algoritmen och som innehÄller 32 tecken, Àr inte möjligt, men det visar sig att det inte Àr nödvÀndigt. GitHub stödjer en förkortad form av att hÀnvisa till commits, vilket gör det möjligt att adressera Àndringar med hjÀlp av de första tecknen av hashen, sÄ lÀnge det inte finns nÄgra överlappningar med andra commits. Det minimiantal tecken som krÀvs för att förkorta hashen Àr 4, vilket motsvarar en genomsökning av 65 000 kombinationer (16^4). Vid denna tidpunkt kan det hÀnda att genomsökningen inte ens behövs, eftersom GitHub API tillÄter att ansluta hÀndelsehanterare som anvÀnds av tredjepartsprojekt som leder en arkiv med en komplett logg av alla operationer, dÀr informationen om commit hashes förblir kvar Àven efter att repositorier har raderats.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster