Demonstracija napada na uređivače koda koji dovodi do curenja datoteka prilikom otvaranja izvornih kodova

Pokazana je metoda napada na uređivač koda VSCode, koji omogućuje prijenos proizvoljnih datoteka unutar prava trenutnog korisnika prilikom otvaranja posebno dizajniranog izvornog koda u uređivaču. U ovoj demonstraciji, prilikom otvaranja Rust koda koji koristi proceduralnu makronaredbu, uspostavlja vezu s hostom 127.0.0.1:8080 i šalje sadržaj datoteke "~/.ssh/id_rsa" s korisničkim SSH ključevima.

Za kompromis je dovoljno jednostavno otvoriti datoteku s kodom, bez izvođenja bilo kakvih drugih radnji s projektom. Da bi primjer radio, VSCode zahtijeva plugin rust-analyzer (vezivanje na vrhu standardnog rustc prevoditelja) i prisutnost alata u sustavu za rad s kodom u Rust jeziku. Problem je povezan s proširenjem proceduralnih makronaredbi tijekom početne analize koda. Sličan učinak može se postići i tijekom kompajliranja pomoću naredbe "cargo build".

Napominje se da problem može utjecati na druge uređivače koda i programske jezike. VSCode i rust-analyze koriste se samo za demonstraciju vektora napada. U teoriji, svaki uređivač koda koji izlaže proceduralne makronaredbe koje vam omogućuju stvaranje sintaktičkih proširenja i izvršavanje koda tijekom kompilacije osjetljiv je na problem. Istraživač je u početku istraživao mogućnost zlonamjernih radnji koje se događaju tijekom kompilacije koda, ali je otkrio da su proceduralne makronaredbe proširene kada je izvorni kod obrađen u uređivačima koda. Napad vjerojatno može utjecati na druge programske jezike; na primjer, u Javi se obradom komentara može manipulirati na sličan način.



Izvor: opennet.ru

Dodajte komentar