Napad na PyTorch infrastrukturu, ugrožavanje repozitorija i izdanja

Otkriveni su detalji napada na infrastrukturu korištenu u razvoju okvira za strojno učenje PyTorch, koji je omogućio izdvajanje pristupnih ključeva dovoljnih za postavljanje proizvoljnih podataka u repozitorij s izdanjima projekta na GitHub i AWS, kao i za zamjenu koda u glavnoj grani repozitorija i dodajte stražnja vrata kroz ovisnosti. Lažiranje izdanja PyTorcha moglo bi se koristiti za napad na velike tvrtke kao što su Google, Meta, Boeing i Lockheed Martin koje koriste PyTorch u svojim projektima. U sklopu programa Bug Bounty, Meta je istraživačima platila 16250 dolara za informacije o problemu.

Bit napada je mogućnost pokretanja vašeg koda na kontinuiranim integracijskim poslužiteljima koji izvode ponovne izgradnje i pokreću poslove za testiranje novih promjena poslanih u repozitorij. Problem utječe na projekte koji koriste vlastite vanjske rukovatelje "Self-Hosted Runner" s GitHub radnjama. Za razliku od tradicionalnih GitHub akcija, Self-Hosted rukovatelji ne rade na GitHub infrastrukturi, već na vlastitim poslužiteljima ili u virtualnim strojevima koje održavaju programeri.

Izvršavanje zadataka sklapanja na vašim poslužiteljima omogućuje vam organiziranje pokretanja koda koji može skenirati internu mrežu poduzeća, pretraživati ​​lokalni FS za ključeve šifriranja i pristupne tokene te analizirati varijable okoline s parametrima za pristup vanjskoj pohrani ili uslugama u oblaku. U nedostatku odgovarajuće izolacije okruženja sklopa, pronađeni povjerljivi podaci mogu se poslati izvana napadačima, na primjer, putem pristupa vanjskim API-jima. Kako bi se odredilo korištenje Self-Hosted Runnera po projektima, Gato toolkit može se koristiti za analizu javno dostupnih datoteka tijeka rada i dnevnika pokretanja CI zadataka.

U PyTorchu i mnogim drugim projektima koji koriste Self-Hosted Runner, samo programeri čije su promjene prethodno recenzirane i uključene u bazu koda projekta smiju pokretati poslove izgradnje. Status "suradnika" pri korištenju zadanih postavki u repozitoriju omogućuje pokretanje GitHub Actions rukovatelja prilikom slanja zahtjeva za povlačenjem i, sukladno tome, izvršavanje vašeg koda u bilo kojem okruženju GitHub Actions Runner povezanom s repozitorijem ili organizacijom koja nadzire projekt.

Pokazalo se da je poveznicu na status "suradnika" lako zaobići - dovoljno je prvo poslati manju promjenu i pričekati da bude prihvaćena u bazu koda, nakon čega je programer automatski dobio status aktivnog sudionika, čije je zahtjeve za povlačenjem dopušteno testirati u CI infrastrukturi bez posebne provjere. Kako bi se postigao status aktivnog razvojnog programera, eksperiment je uključivao manje kozmetičke promjene za ispravljanje tipfelera u dokumentaciji. Kako bi se dobio pristup repozitoriju i pohrani izdanja PyTorcha, napad tijekom izvršavanja koda u "Self-Hosted Runner" presreo je 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 za "Self-Hosted Runner" u GitHub Actions. Na primjer, spomenuta je implementacija sličnih napada za instaliranje stražnjih vrata u neke velike kriptovalutne novčanike i blockchain projekte s kapitalizacijom od milijardu dolara, izmjene u izdanjima Microsoft Deepspeeda i TensorFlowa, kompromitiranje jedne od CloudFlare aplikacija, te također izvršavanje kod na računalu na Microsoftovoj mreži. Detalji ovih incidenata još nisu objavljeni. U okviru postojećih programa nagrada za bugove, istraživači su podnijeli više od 20 zahtjeva za nagrade u vrijednosti od nekoliko stotina tisuća dolara.

Izvor: opennet.ru

Dodajte komentar