Demonstracija napada na uređivače koda koji propušta datoteke prilikom otvaranja izvornog koda

Demonstrirana je metoda napada na VSCode editor koda, koja omogućava prijenos proizvoljnih datoteka u okviru prava trenutnog korisnika prilikom otvaranja posebno dizajniranog izvornog koda u editoru. U ovoj demonstraciji, prilikom otvaranja Rust koda koji koristi proceduralni makro, on uspostavlja vezu sa hostom 127.0.0.1:8080 i šalje sadržaj datoteke "~/.ssh/id_rsa" sa SSH ključevima korisnika.

Da biste napravili kompromis, dovoljno je jednostavno otvoriti datoteku s kodom, bez izvođenja bilo kakvih drugih radnji s projektom. Da bi primjer funkcionirao, VSCode zahtijeva dodatak za analizu rđe (vezivanje na vrhu standardnog rustc kompajlera) i prisustvo alata u sistemu za rad sa kodom na jeziku Rust. Problem je vezan za proširenje proceduralnih makroa tokom početne analize koda. Sličan efekat se također može postići u vrijeme kompajliranja korištenjem naredbe "cargo build".

Napominje se da problem može uticati na druge uređivače koda i programske jezike. VSCode i rust-analyze se koriste samo za demonstriranje vektora napada. U teoriji, svaki uređivač koda koji izlaže proceduralne makroe koji vam omogućavaju da kreirate proširenja sintakse i izvršavate kod u vrijeme kompajliranja je podložan problemu. Istraživač je u početku istraživao mogućnost zlonamjernih radnji koje se dešavaju tokom kompilacije koda, ali je otkrio da su proceduralni makroi prošireni kada se izvorni kod obrađuje u uređivačima koda. Napad vjerovatno može utjecati na druge programske jezike; na primjer, u Javi se obradom napomena može manipulirati na sličan način.



izvor: opennet.ru

Dodajte komentar