Ukážka útoku na editory kódu, ktorý vedie k úniku súborov pri otváraní zdrojových kódov

Bol demonštrovaný spôsob napadnutia editora kódu VSCode umožňujúci prenos ľubovoľných súborov v rámci práv aktuálneho používateľa pri otvorení špeciálne navrhnutého zdrojového kódu v editore. V tejto ukážke pri otvorení kódu Rust, ktorý používa procedurálne makro, vytvorí spojenie s hostiteľom 127.0.0.1:8080 a odošle obsah súboru „~/.ssh/id_rsa“ s kľúčmi SSH používateľa.

Na kompromis stačí jednoducho otvoriť súbor s kódom bez vykonania akýchkoľvek ďalších akcií s projektom. Aby príklad fungoval, vyžaduje VSCode plugin analyzátora hrdze (väzba nad štandardným kompilátorom rustc) a prítomnosť nástrojov v systéme na prácu s kódom v jazyku Rust. Problém súvisí s rozširovaním procedurálnych makier počas počiatočnej analýzy kódu. Podobný efekt je možné dosiahnuť aj v čase kompilácie pomocou príkazu „cargo build“.

Je potrebné poznamenať, že problém môže ovplyvniť iné editory kódu a programovacie jazyky. VSCode a analýza hrdze sa používajú iba na demonštráciu vektora útoku. Teoreticky každý editor kódu, ktorý odhaľuje procedurálne makrá, ktoré vám umožňujú vytvárať rozšírenia syntaxe a spúšťať kód v čase kompilácie, je náchylný na problém. Výskumník spočiatku skúmal možnosť škodlivých akcií vyskytujúcich sa počas kompilácie kódu, ale zistil, že procedurálne makrá sa rozšírili, keď sa zdrojový kód spracovával v editoroch kódu. Útok môže pravdepodobne zasiahnuť aj iné programovacie jazyky, napríklad v Jave sa dá podobným spôsobom manipulovať so spracovaním anotácií.



Zdroj: opennet.ru

Pridať komentár