Ukázka útoku na editory kódu, který vede k úniku souborů při otevírání zdrojových kódů

Byl předveden způsob napadení editoru kódu VSCode umožňující přenos libovolných souborů v rámci práv aktuálního uživatele při otevření speciálně navrženého zdrojového kódu v editoru. V této ukázce při otevření kódu Rust, který používá procedurální makro, naváže spojení s hostitelem 127.0.0.1:8080 a odešle obsah souboru "~/.ssh/id_rsa" s uživatelskými SSH klíči.

Ke kompromisu stačí jednoduše otevřít soubor s kódem, aniž byste s projektem prováděli další akce. Aby příklad fungoval, VSCode vyžaduje plugin rust-analyzer (vazba nad standardním kompilátorem rustc) a přítomnost nástrojů v systému pro práci s kódem v jazyce Rust. Problém souvisí s rozšířením procedurálních maker během počáteční analýzy kódu. Podobného efektu lze také dosáhnout v době kompilace pomocí příkazu „cargo build“.

Je třeba poznamenat, že problém může ovlivnit jiné editory kódu a programovací jazyky. VSCode a analýza rzi se používají pouze k demonstraci vektoru útoku. Teoreticky je k problému náchylný jakýkoli editor kódu, který odhaluje procedurální makra, která vám umožňují vytvářet rozšíření syntaxe a spouštět kód v době kompilace. Výzkumník zpočátku zkoumal možnost škodlivých akcí vyskytujících se během kompilace kódu, ale zjistil, že procedurální makra byla rozšířena, když byl zdrojový kód zpracováván v editorech kódu. Útok se pravděpodobně může týkat i jiných programovacích jazyků, například v Javě lze podobným způsobem manipulovat se zpracováním anotací.



Zdroj: opennet.ru

Přidat komentář