Pagpapakita ng pag-atake sa mga editor ng code na humahantong sa mga pagtagas ng file kapag binubuksan ang mga source code

Ang isang paraan ng pag-atake sa VSCode code editor ay ipinakita, na nagpapahintulot sa paglipat ng mga arbitrary na file sa loob ng mga karapatan ng kasalukuyang user kapag binubuksan ang isang espesyal na idinisenyong source code sa editor. Sa demo na ito, kapag binubuksan ang Rust code na gumagamit ng procedural macro, nagtatatag ito ng koneksyon sa host 127.0.0.1:8080 at ipinapadala ang mga nilalaman ng file na "~/.ssh/id_rsa" gamit ang mga SSH key ng user.

Upang ikompromiso, sapat na buksan lamang ang file gamit ang code, nang hindi nagsasagawa ng anumang iba pang mga aksyon sa proyekto. Para gumana ang halimbawa, kailangan ng VSCode ang rust-analyzer plugin (isang binding sa ibabaw ng standard rustc compiler) at ang pagkakaroon ng mga tool sa system para sa pagtatrabaho sa code sa Rust language. Ang problema ay nauugnay sa pagpapalawak ng mga procedural macro sa panahon ng paunang pagsusuri ng code. Ang isang katulad na epekto ay maaari ding makamit sa oras ng pag-compile gamit ang command na "cargo build".

Nabanggit na ang problema ay maaaring makaapekto sa iba pang mga code editor at programming language. Ginagamit lang ang VSCode at rust-analyze para ipakita ang attack vector. Sa teorya, ang anumang editor ng code na naglalantad ng mga procedural macro na nagbibigay-daan sa iyong lumikha ng mga extension ng syntax at magsagawa ng code sa oras ng pag-compile ay madaling kapitan ng problema. Una nang sinisiyasat ng mananaliksik ang posibilidad ng mga nakakahamak na aksyon na nagaganap sa panahon ng pag-compile ng code, ngunit natuklasan na ang mga procedural macro ay pinalawak kapag ang source code ay naproseso sa mga editor ng code. Ang pag-atake ay maaaring makaapekto sa iba pang mga programming language; halimbawa, sa Java, ang pagproseso ng anotasyon ay maaaring manipulahin sa katulad na paraan.



Pinagmulan: opennet.ru

Magdagdag ng komento