Дэманстрацыя нападу на рэдактары кода, якая прыводзіць да ўцечкі файлаў пры адкрыцці зыходных тэкстаў.

Прадэманстраваны метад нападу на рэдактар ​​кода VSCode, які дазваляе перадаць адвольныя файлы ў рамках мае рацыю бягучага карыстача пры адкрыцці ў рэдактары адмыслова аформленага зыходнага кода. У прапанаванай дэманстрацыі пры адкрыцці кода на мове Rust, у якім выкарыстоўваецца працэдурны макрас, выконваецца ўстаноўка злучэння з хастом 127.0.0.1:8080 і адпраўка змесціва файла "~/.ssh/id_rsa" з SSH-ключамі карыстальніка.

Для кампраметацыі дастаткова проста адкрыць файл з кодам, без выканання якіх-небудзь іншых дзеянняў з праектам. Для працы прыкладу патрабуецца наяўнасць у VSCode плагіна rust-analyzer (абвязка над штатным кампілятарам rustc) і наяўнасць у сістэме інструментара для працы з кодам на мове Rust. Праблема звязана з раскрыццём працэдурных макрасаў падчас пачатковага аналізу кода. Аналагічнага эфекту таксама можна дабіцца падчас кампіляцыі з выкарыстаннем каманды «cargo build».

Адзначаецца, што праблема можа закранаць іншыя рэдактары кода і мовы праграмавання. VSCode і rust-analyze скарыстаны толькі для дэманстрацыі вектара нападу. Тэарэтычна праблеме схільны любы рэдактар ​​кода, які расчыняе працэдурныя макрасы, якія дазваляюць ствараць пашырэнні сінтаксісу і выконваць код на этапе кампіляцыі. Першапачаткова даследнік вывучаў магчымасць здзяйснення шкоднасных дзеянняў падчас кампіляцыі кода, але выявіў, што працэдурныя макрасы расчыняюцца пры апрацоўцы зыходных тэкстаў у рэдактарах кода. Верагодна напад можа закранаць і іншыя мовы праграмавання, напрыклад, у Java падобнай выявай можна маніпуляваць з апрацоўкай анатацый.



Крыніца: opennet.ru

Дадаць каментар