GitHub Copilot Chat propust: Procurili podaci iz privatnih repozitorijuma

Skriveni komentari dozvoljavali potpunu kontrolu nad Copilot odgovorima i curenje osjetljivih informacija i izvornog koda.

Legit Security je objavio detalje o propustu u AI asistentu GitHub Copilot Chat koji je doveo do curenja osjetljivih podataka i omogućio potpunu kontrolu nad odgovorima Copilota.

Kombinovanjem zaobilaženja Politike bezbjednosti sadržaja (CSP) i daljinske injekcije prompta, istraživač Legit Securityja Omer Mayraz uspio je ukrasti AWS ključeve i zero-day ranjivosti iz privatnih repozitorijuma, kao i uticati na odgovore koje je Copilot davao drugim korisnicima.

Copilot Chat je dizajniran da pruža objašnjenja i sugestije vezane za kod, i dopušta korisnicima da sakriju sadržaj u prikazanom Markdownu koristeći HTML komentare.

Sakriveni komentar bi i dalje pokrenuo uobičajenu notifikaciju pull requesta vlasniku repozitorijuma, ali bez prikazivanja sadržaja komentara. Međutim, prompt bi bio injektovan i u kontekst drugih korisnika.

Funkcija skrivenih komentara, objašnjava Mayraz, dozvoljavala je korisniku da utiče na Copilot tako da prikazuje sugestije koda drugim korisnicima, uključujući maliciozne pakete.

Mayraz je takođe otkrio da može sastaviti prompt koji sadrži instrukcije za pristup privatnim repozitorijumima korisnika, enkodiranje njihovog sadržaja i dodavanje toga u URL.

„Zatim, kada korisnik klikne URL, podaci iscure nazad kod nas“, navodi on.

Međutim, restriktivna CSP politika GitHuba blokira dohvat slika i drugog sadržaja sa domena koji nisu u vlasništvu platforme, čime se sprečava curenje podataka putem injektovanog HTML <img> taga u razgovoru žrtve.

Kada su eksterne slike uključene u README ili Markdown fajl, GitHub ih parsira da identifikuje URL-ove i za svaki fajl generiše anonimni proxy URL koristeći open source projekat Camo.

Vanjski URL se prepiše u Camo proxy URL i, kada preglednik zatraži sliku, Camo proxy provjerava potpis URL-a i dohvaća izvornu sliku samo ako je URL prethodno potpisao GitHub.

Ovo sprječava eksfiltraciju podataka korišćenjem proizvoljnih URL-ova, osigurava bezbjedno dohvaćanje putem kontrolisanog proxy-a i ne izlaže originalni URL slike kada se prikaže u README-ju.

„Svaki <img> tag koji injektujemo u razgovor žrtve mora sadržavati validan Camo URL potpis koji je unaprijed generisan. Inače, GitHub-ov reverse proxy neće dohvatiti sadržaj“, objašnjava Mayraz.

Da bi zaobišao tu zaštitu, istraživač je kreirao rječnik svih slova i simbola u alfabetu, prethodno generisao odgovarajuće Camo URL-ove za svako od njih i ugradili taj rječnik u injektovani prompt.

On je postavio web server koji je odgovarao sa 1×1 transparentnim pikselom na svaki zahtjev, napravio Camo URL rječnik svih slova i simbola koje je mogao iskoristiti za curenje osjetljivog sadržaja iz repozitorijuma, i zatim konstruisao prompt da pokrene propust.

Mayraz je objavio PoC video zapise koji demonstriraju kako napad može biti iskorišćen za iscurenje zero-day ranjivosti i AWS ključeva iz privatnih repozitorijuma.

Dana 14. avgusta, GitHub je obavijestio istraživača da je problem riješen onemogućavanjem upotrebe Camo-e za curenje osjetljivih korisničkih informacija.

Izvor: SecurityWeek

Recent Articles

spot_img

Related Stories