Demonstrasie van 'n aanval op kode-redigeerders wat lêers uitlek wanneer bronkode oopgemaak word

'n Metode om die VSCode-kode-redigeerder aan te val, is gedemonstreer, wat die oordrag van arbitrêre lêers binne die regte van die huidige gebruiker moontlik maak wanneer 'n spesiaal ontwerpte bronkode in die redigeerder oopgemaak word. In hierdie demo, wanneer Rust-kode oopgemaak word wat 'n prosedurele makro gebruik, vestig dit 'n verbinding met gasheer 127.0.0.1:8080 en stuur die inhoud van die lêer "~/.ssh/id_rsa" met die gebruiker se SSH-sleutels.

Om 'n kompromie te maak, is dit genoeg om die lêer bloot met die kode oop te maak, sonder om enige ander aksies met die projek uit te voer. Vir die voorbeeld om te werk, vereis VSCode die roes-analiseerder-inprop ('n binding bo-op die standaard rustc-samesteller) en die teenwoordigheid van gereedskap in die stelsel om met kode in die Rust-taal te werk. Die probleem hou verband met die uitbreiding van prosedurele makros tydens aanvanklike kode-analise. 'n Soortgelyke effek kan ook tydens samestelling bereik word deur die "vrag bou" opdrag te gebruik.

Daar word kennis geneem dat die probleem ander koderedakteurs en programmeertale kan beïnvloed. VSCode en roes-analise word slegs gebruik om die aanvalvektor te demonstreer. In teorie is enige koderedigeerder wat prosedurele makro's blootstel wat jou toelaat om sintaksisuitbreidings te skep en kode uit te voer tydens samestellingstyd, vatbaar vir die probleem. Die navorser het aanvanklik die moontlikheid van kwaadwillige aksies wat tydens kodesamestelling plaasvind, ondersoek, maar het ontdek dat prosedurele makro's uitgebrei is wanneer bronkode in koderedigeerders verwerk is. Die aanval kan waarskynlik ander programmeertale beïnvloed; byvoorbeeld in Java kan annotasieverwerking op 'n soortgelyke manier gemanipuleer word.



Bron: opennet.ru

Voeg 'n opmerking