Demonstration af et angreb på kodeeditorer, der fører til fillækager ved åbning af kildekoder

En metode til at angribe VSCode-kodeeditoren er blevet demonstreret, som tillader overførsel af vilkårlige filer inden for den aktuelle brugers rettigheder, når en specialdesignet kildekode åbnes i editoren. I denne demo etablerer den en forbindelse til vært 127.0.0.1:8080, når den åbner Rust-kode, der bruger en proceduremæssig makro, og sender indholdet af filen "~/.ssh/id_rsa" med brugerens SSH-nøgler.

For at gå på kompromis er det nok blot at åbne filen med koden uden at udføre andre handlinger med projektet. For at eksemplet skal fungere, kræver VSCode rust-analyzer-plugin'et (en binding oven på standard rustc-kompileren) og tilstedeværelsen af ​​værktøjer i systemet til at arbejde med kode i Rust-sproget. Problemet er relateret til udvidelsen af ​​proceduremæssige makroer under indledende kodeanalyse. En lignende effekt kan også opnås på kompileringstidspunktet ved hjælp af kommandoen "cargo build".

Det bemærkes, at problemet kan påvirke andre kodeeditorer og programmeringssprog. VSCode og rust-analyse bruges kun til at demonstrere angrebsvektoren. I teorien er enhver kodeeditor, der afslører proceduremæssige makroer, der giver dig mulighed for at oprette syntaksudvidelser og udføre kode på kompileringstidspunktet, modtagelig for problemet. Forskeren undersøgte i første omgang muligheden for ondsindede handlinger under kodekompilering, men opdagede, at proceduremæssige makroer blev udvidet, når kildekoden blev behandlet i kodeeditorer. Angrebet kan sandsynligvis påvirke andre programmeringssprog; for eksempel i Java kan annotationsbehandling manipuleres på lignende måde.



Kilde: opennet.ru

Tilføj en kommentar