Otkriveni su detalji napada na infrastrukturu korištenu za razvoj okvira za strojno učenje PyTorch. Ovaj napad omogućio je izdvajanje pristupnih ključeva dovoljnih za postavljanje proizvoljnih podataka u repozitorije izdanja projekta na GitHubu i AWS-u, kao i za ubrizgavanje koda u glavnu granu repozitorija i umetanje stražnjih vrata kroz ovisnosti. Lažno predstavljanje izdanja PyTorcha moglo se koristiti za napad na velike tvrtke poput Googlea, Mete, Boeinga i Lockheed Martina, koje koriste PyTorch u svojim projektima. Meta je istraživačima platila 16250 dolara putem svog programa nagrađivanja za informacije o problemu.
Suština napada je mogućnost izvršavanja vašeg koda na poslužitelji kontinuirana integracija, koja ponovno gradi i pokreće zadatke za testiranje novih promjena poslanih u repozitorij. Problem utječe na projekte koji koriste vlastite vanjske "Self-Hosted Runner" rukovatelje s GitHub Actions. Za razliku od tradicionalnih GitHub Actions, Self-Hosted rukovatelji rade samostalno, a ne unutar GitHubove infrastrukture. poslužitelji ili virtualni strojevi koje podržavaju programeri.
Pokretanje poslova izgradnje na vlastitim poslužiteljima omogućuje vam pokretanje koda koji može skenirati internu mrežu tvrtke, pretraživati lokalni datotečni sustav za ključeve za šifriranje i tokene za pristup te analizirati varijable okruženja s parametrima za pristup vanjskoj pohrani ili uslugama u oblaku. Bez odgovarajuće izolacije okruženja izgradnje, otkriveni povjerljivi podaci mogu se poslati napadačima izvana, na primjer, putem poziva vanjskim API-jima. Gato, alat koji analizira javno dostupne datoteke tijeka rada i zapisnike izvršavanja CI poslova, može se koristiti za utvrđivanje koriste li projekti Self-Hosted Runner.
U PyTorchu i mnogim drugim projektima koji koriste Self-Hosted Runner, samo programeri čije su promjene prethodno pregledane i uključene u kodnu bazu projekta smiju pokretati poslove izgradnje. Status "suradnika" pri korištenju zadanih postavki repozitorija omogućuje vam pokretanje rukovatelja GitHub Actions prilikom slanja zahtjeva za povlačenjem i stoga izvršavanje vašeg koda u bilo kojem okruženju GitHub Actions Runnera povezanom s repozitorijem ili organizacijom koja hostira projekt.
Veza na status "suradnika" pokazala se lakom za zaobići: jednostavno se pošalje manja promjena i pričekuje da se prihvati u kodnu bazu. Nakon toga, programer je automatski dobio status aktivnog suradnika, što je omogućilo testiranje zahtjeva za povlačenjem u CI infrastrukturi bez zasebnog pregleda. Kako bi se dobio status aktivnog programera tijekom eksperimenta, napravljene su manje kozmetičke promjene kako bi se ispravile tipografske pogreške u dokumentaciji. Kako bi se dobio pristup PyTorch repozitoriju i oslobodila pohrana, napad je, tijekom izvršavanja koda u "Self-Hosted Runneru", presreo GitHub token koji se koristi za pristup repozitoriju iz procesa izgradnje, kao i AWS ključeve koji se koriste za spremanje rezultata izgradnje.
Problem nije specifičan za PyTorch i utječe na mnoge druge velike projekte koji koriste zadane postavke "Self-Hosted Runner" u GitHub Actions. Na primjer, prijavljeni su slični napadi, uključujući instaliranje backdoora u nekoliko velikih kriptovaluta novčanika i blockchain projekata s tržišnom kapitalizacijom od milijardu dolara, mijenjanje izdanja Microsoft Deepspeeda i TensorFlowa, kompromitiranje jedne od CloudFlareovih aplikacija i izvršavanje koda na računalu unutar Microsoftove mreže. Detalji ovih incidenata još nisu objavljeni. Istraživači su podnijeli preko 20 zahtjeva za nagradu u ukupnom iznosu od nekoliko stotina tisuća dolara putem postojećih programa za nagradu za greške.
Izvor: opennet.ru
