Napad na PyTorch infrastrukturu, kompromitujući spremište i izdanja

Otkriveni su detalji napada na infrastrukturu korišćenu u razvoju PyTorch okvira za mašinsko učenje, koji je omogućio izdvajanje pristupnih ključeva dovoljnih za smeštanje proizvoljnih podataka u spremište sa izdanjima projekta na GitHub i AWS, kao i za zamenu koda u glavnoj grani spremišta i dodajte backdoor kroz zavisnosti. Podvaravanje izdanja PyTorcha moglo bi se koristiti za napad na velike kompanije kao što su Google, Meta, Boeing i Lockheed Martin koje koriste PyTorch u svojim projektima. Kao dio programa Bug Bounty, Meta je platila istraživačima 16250 dolara za informacije o problemu.

Suština napada je mogućnost pokretanja vašeg koda na serverima za kontinuiranu integraciju koji vrše ponovnu izgradnju i pokreću poslove za testiranje novih promjena koje se šalju u spremište. Problem utiče na projekte koji koriste sopstvene eksterne rukovaoce „Self-Hosted Runner“ sa GitHub akcijama. Za razliku od tradicionalnih GitHub akcija, samo-hostovani rukovaoci ne rade na GitHub infrastrukturi, već na sopstvenim serverima ili virtuelnim mašinama koje održavaju programeri.

Izvršavanje zadataka montaže na vašim serverima omogućava vam da organizirate pokretanje koda koji može skenirati internu mrežu poduzeća, pretraživati ​​lokalni FS za ključeve za šifriranje i pristupne tokene i analizirati varijable okruženja s parametrima za pristup vanjskoj pohrani ili uslugama u oblaku. U nedostatku odgovarajuće izolacije asemblerskog okruženja, pronađeni povjerljivi podaci mogu se poslati napadačima izvana, na primjer, putem pristupa vanjskim API-jima. Za utvrđivanje upotrebe Self-Hosted Runner-a od strane projekata, Gato komplet alata se može koristiti za analizu javno dostupnih datoteka toka posla i dnevnika pokretanja CI zadataka.

U PyTorch-u i mnogim drugim projektima koji koriste Self-Hosted Runner, samo programeri čije su promjene prethodno recenzirane i uključene u projektnu bazu koda smiju pokretati poslove izgradnje. Posjedovanje statusa „saradnika“ kada se koriste zadane postavke u spremištu omogućava pokretanje GitHub Actions rukovatelja prilikom slanja zahtjeva za povlačenjem i, shodno tome, izvršavanje vašeg koda u bilo kojem GitHub Actions Runner okruženju povezanom sa spremištem ili organizacijom koja nadgleda projekat.

Pokazalo se da je vezu sa statusom "suradnika" lako zaobići - dovoljno je prvo unijeti manju promjenu i pričekati da bude prihvaćena u bazu koda, nakon čega programer automatski dobija status aktivnog učesnika, čiji zahtjevi za povlačenjem mogu biti testirani u CI infrastrukturi bez posebne provjere. Da bi se postigao status aktivnog programera, eksperiment je uključio manje kozmetičke izmjene kako bi se ispravile greške u kucanju u dokumentaciji. Da bi se dobio pristup spremištu i skladištenju PyTorch izdanja, napad je tokom izvršavanja koda u „Self-Hosted Runneru“ presreo GitHub token koji se koristi za pristup spremištu iz procesa izgradnje, kao i AWS ključeve koji se koriste za čuvanje rezultata izgradnje .

Problem nije specifičan za PyTorch i utiče na mnoge druge velike projekte koji koriste zadane postavke za "Self-Hosted Runner" u GitHub akcijama. Na primjer, spomenuta je implementacija sličnih napada za instaliranje backdoor-a u neke velike novčanike kriptovaluta i blockchain projekte s kapitalizacijom od milijardu dolara, unošenje promjena u izdanja Microsoft Deepspeeda i TensorFlowa, kompromitaciju jedne od CloudFlare aplikacija, te izvršavanje koda na računaru na Microsoft mreži. Detalji ovih incidenata još nisu objavljeni. U okviru postojećih programa nagrada za greške, istraživači su podnijeli više od 20 aplikacija za nagrade u vrijednosti od nekoliko stotina hiljada dolara.

izvor: opennet.ru

Dodajte komentar