Demonstraasje fan in oanfal op koade-bewurkers dy't liedt ta triemlekken by it iepenjen fan boarnekoades

In metoade foar it oanfallen fan 'e VSCode-koade-bewurker is oantoand, wêrtroch de oerdracht fan willekeurige bestannen binnen de rjochten fan' e hjoeddeistige brûker mooglik makket by it iepenjen fan in spesjaal ûntwurpen boarnekoade yn 'e bewurker. Yn dizze demo, by it iepenjen fan Rust-koade dy't in prosedurele makro brûkt, makket it in ferbining mei host 127.0.0.1: 8080 en stjoert de ynhâld fan it bestân "~/.ssh/id_rsa" mei de SSH-kaaien fan 'e brûker.

Om te kompromittearjen is it genôch om it bestân gewoan te iepenjen mei de koade, sûnder oare aksjes mei it projekt út te fieren. Foar it foarbyld om te wurkjen fereasket VSCode de rust-analyzer-plugin (in ferbining boppe op 'e standert rustc-kompiler) en de oanwêzigens fan ark yn it systeem foar wurkjen mei koade yn' e Rust-taal. It probleem is relatearre oan de útwreiding fan prosedurele makro's by inisjele koade-analyse. In ferlykber effekt kin ek berikt wurde op kompilaasjetiid mei it kommando "cargo build".

It wurdt opmurken dat it probleem kin beynfloedzje oare koade bewurkers en programmeartalen. VSCode en rust-analyze wurde allinich brûkt om de oanfalvektor te demonstrearjen. Yn teory is elke koade-bewurker dy't prosedurele makro's bleatstelt wêrmei jo syntaksis-útwreidingen kinne oanmeitsje en koade útfiere op kompilaasjetiid is gefoelich foar it probleem. De ûndersiker ûndersocht earst de mooglikheid fan kweade aksjes dy't foarkomme tidens koade kompilaasje, mar ûntduts dat prosedurele makro's waarden útwreide doe't boarnekoade waard ferwurke yn koade-bewurkers. De oanfal kin wierskynlik oare programmeartalen beynfloedzje; bygelyks yn Java kin annotaasjeferwurking op in fergelykbere manier manipulearre wurde.



Boarne: opennet.ru

Add a comment