Aanval op PyTorch-infrastruktuur, wat die bewaarplek en vrystellings in gevaar stel

Besonderhede van die aanval op die infrastruktuur wat in die ontwikkeling van die PyTorch-masjienleerraamwerk gebruik is, is onthul, wat dit moontlik gemaak het om toegangsleutels te onttrek wat voldoende was om arbitrêre data in die bewaarplek te plaas met projekvrystellings in GitHub en AWS, asook om kode te vervang in die hooftak van die bewaarplek en voeg 'n agterdeur by deur afhanklikhede. PyTorch-vrystellingspoofing kan gebruik word om groot maatskappye soos Google, Meta, Boeing en Lockheed Martin aan te val wat PyTorch in hul projekte gebruik. As deel van die Bug Bounty-program het Meta navorsers $16250 XNUMX betaal vir inligting oor die probleem.

Die essensie van die aanval is die vermoë om jou kode op deurlopende integrasiebedieners uit te voer wat herbou en take uitvoer om nuwe veranderinge wat na die bewaarplek gestuur is, te toets. Die probleem raak projekte wat hul eie eksterne "Self-Hosted Runner"-hanteerders met GitHub Actions gebruik. Anders as tradisionele GitHub-aksies, loop Self-Hosted-hanteerders nie op die GitHub-infrastruktuur nie, maar op hul eie bedieners of in virtuele masjiene wat deur ontwikkelaars onderhou word.

Deur samestellingstake op u bedieners uit te voer, kan u die bekendstelling van kode organiseer wat die interne netwerk van 'n onderneming kan skandeer, die plaaslike lêerstelsel vir enkripsiesleutels en toegangstekens kan deursoek, en omgewingsveranderlikes kan ontleed met parameters vir toegang tot eksterne berging of wolkdienste. In die afwesigheid van behoorlike isolasie van die samestelling-omgewing, kan die gevind vertroulike data aan aanvallers buite gestuur word, byvoorbeeld deur toegang tot eksterne API's. Om te bepaal of projekte Self-Hosted Runner gebruik, kan die Gato-gereedskapstel gebruik word om publieke beskikbare werkvloeilêers en CI-werkbekendstellinglogboeke te ontleed.

In PyTorch en baie ander projekte wat die Self-Hosted Runner gebruik, word slegs ontwikkelaars wie se veranderinge voorheen eweknie-geëvalueer is en by die projek se kodebasis ingesluit is, toegelaat om boutake uit te voer. Deur die "bydraer"-status te hê wanneer die verstekinstellings in die bewaarplek gebruik word, maak dit moontlik om GitHub Actions-hanteerders te begin wanneer trekversoeke gestuur word en dienooreenkomstig jou kode uit te voer in enige GitHub Actions Runner-omgewing wat verband hou met die bewaarplek of die organisasie wat toesig hou oor die projek.

Die skakel na die "bydraer" -status blyk maklik te wees om te omseil - dit is genoeg om eers 'n geringe verandering in te dien en te wag dat dit in die kodebasis aanvaar word, waarna die ontwikkelaar outomaties die status van 'n aktiewe deelnemer ontvang het, wie se trekversoeke toegelaat word om in die CI-infrastruktuur getoets te word sonder afsonderlike verifikasie. Om aktiewe ontwikkelaarstatus te bereik, het die eksperiment geringe kosmetiese veranderinge ingesluit om tikfoute in die dokumentasie reg te stel. Om toegang tot die bewaarplek en berging van PyTorch-vrystellings te verkry, het die aanval, terwyl kode in die Self-Hosted Runner uitgevoer is, die GitHub-token onderskep wat gebruik is om toegang tot die bewaarplek te verkry vanaf bouprosesse, sowel as die AWS-sleutels wat gebruik is om die bouresultate te stoor.

Die probleem is nie spesifiek vir PyTorch nie en raak baie ander groot projekte wat die verstekinstellings vir "Self-Hosted Runner" in GitHub Actions gebruik. Byvoorbeeld, die implementering van soortgelyke aanvalle is genoem om 'n agterdeur in 'n paar groot cryptocurrency-beursies en blokkettingprojekte met 'n miljard-dollar-kapitalisasie te installeer, veranderinge aan die vrystellings van Microsoft Deepspeed en TensorFlow te maak, een van die CloudFlare-toepassings te kompromitteer, en ook uit te voer kode op 'n rekenaar op die Microsoft-netwerk. Besonderhede van hierdie voorvalle is nog nie bekend gemaak nie. Onder bestaande foute-bounty-programme het navorsers meer as 20 aansoeke vir belonings ter waarde van etlike honderdduisende dollars ingedien.

Bron: opennet.ru

Voeg 'n opmerking