Demonstratie van een aanval op code-editors die leidt tot bestandslekken bij het openen van broncodes

Er is een methode gedemonstreerd om de VSCode-code-editor aan te vallen, waarbij willekeurige bestanden binnen de rechten van de huidige gebruiker kunnen worden overgedragen bij het openen van een speciaal ontworpen broncode in de editor. In deze demo wordt bij het openen van Rust-code die een procedurele macro gebruikt, een verbinding tot stand gebracht met host 127.0.0.1:8080 en wordt de inhoud van het bestand "~/.ssh/id_rsa" verzonden met de SSH-sleutels van de gebruiker.

Om een ​​compromis te sluiten, volstaat het om eenvoudigweg het bestand met de code te openen, zonder enige andere actie met het project uit te voeren. Om het voorbeeld te laten werken, heeft VSCode de plug-in rust-analyzer nodig (een binding bovenop de standaard rustc-compiler) en de aanwezigheid van tools in het systeem voor het werken met code in de Rust-taal. Het probleem houdt verband met de uitbreiding van procedurele macro's tijdens de initiële codeanalyse. Een soortgelijk effect kan ook tijdens het compileren worden bereikt met behulp van de opdracht "cargo build".

Opgemerkt wordt dat het probleem andere code-editors en programmeertalen kan beïnvloeden. VSCode en roestanalyse worden alleen gebruikt om de aanvalsvector aan te tonen. In theorie is elke code-editor die procedurele macro's beschikbaar stelt waarmee u syntaxisextensies kunt maken en code kunt uitvoeren tijdens het compileren, vatbaar voor dit probleem. De onderzoeker onderzocht aanvankelijk de mogelijkheid dat er kwaadaardige acties plaatsvonden tijdens het compileren van code, maar ontdekte dat procedurele macro's werden uitgebreid wanneer de broncode werd verwerkt in code-editors. De aanval kan waarschijnlijk andere programmeertalen beïnvloeden; in Java kan de annotatieverwerking bijvoorbeeld op een vergelijkbare manier worden gemanipuleerd.



Bron: opennet.ru

Voeg een reactie