Demonstrasjon av et angrep på koderedigerere som fører til fillekkasjer ved åpning av kildekoder

En metode for å angripe VSCode-kodeeditoren er demonstrert, som tillater overføring av vilkårlige filer innenfor rettighetene til gjeldende bruker når en spesialdesignet kildekode åpnes i editoren. I denne demoen, når du åpner Rust-kode som bruker en prosedyremakro, etablerer den en forbindelse til vert 127.0.0.1:8080 og sender innholdet i filen "~/.ssh/id_rsa" med brukerens SSH-nøkler.

For å kompromittere er det nok å åpne filen med koden, uten å utføre noen andre handlinger med prosjektet. For at eksemplet skal fungere, krever VSCode rust-analyzer-plugin (en binding på toppen av standard rustc-kompilatoren) og tilstedeværelsen av verktøy i systemet for å jobbe med kode på Rust-språket. Problemet er relatert til utvidelsen av prosedyremakroer under innledende kodeanalyse. En lignende effekt kan også oppnås ved kompilering ved å bruke kommandoen "lastbygg".

Det bemerkes at problemet kan påvirke andre koderedigerere og programmeringsspråk. VSCode og rust-analyse brukes kun for å demonstrere angrepsvektoren. I teorien er enhver koderedigerer som avslører prosedyremakroer som lar deg lage syntaksutvidelser og kjøre kode på kompileringstidspunktet, utsatt for problemet. Forskeren undersøkte først muligheten for ondsinnede handlinger under kodekompilering, men oppdaget at prosedyremakroer ble utvidet når kildekoden ble behandlet i koderedigerere. Angrepet kan sannsynligvis påvirke andre programmeringsspråk; for eksempel i Java kan merknadsbehandling manipuleres på lignende måte.



Kilde: opennet.ru

Legg til en kommentar