Esittely koodieditoreihin kohdistuvasta hyökkäyksestä, joka johtaa tiedostovuotoon lähdekoodeja avattaessa

Menetelmä hyökätä VSCode-koodieditoria vastaan ​​on esitelty, mikä mahdollistaa mielivaltaisten tiedostojen siirtämisen nykyisen käyttäjän oikeuksien puitteissa, kun editorissa avataan erityisesti suunniteltu lähdekoodi. Kun tässä esittelyssä avataan prosessimakroa käyttävä Rust-koodi, se muodostaa yhteyden isäntään 127.0.0.1:8080 ja lähettää tiedoston "~/.ssh/id_rsa" sisällön käyttäjän SSH-avaimilla.

Kompromissiksi riittää, että avaat tiedoston koodilla suorittamatta muita toimintoja projektin kanssa. Jotta esimerkki toimisi, VSCode vaatii rust-analyzer-laajennuksen (sidos tavallisen rustc-kääntäjän päällä) ja työkalujen läsnäolon järjestelmässä rust-kielen koodin kanssa työskentelemiseen. Ongelma liittyy prosessimakrojen laajentamiseen alkuperäisen koodianalyysin aikana. Samanlainen vaikutus voidaan saavuttaa myös kääntämisen aikana käyttämällä "cargo build" -komentoa.

On huomattava, että ongelma voi vaikuttaa muihin koodieditoreihin ja ohjelmointikieliin. VSCodea ja rust-analyzea käytetään vain hyökkäysvektorin osoittamiseen. Teoriassa mikä tahansa koodieditori, joka paljastaa prosessimakroja, joiden avulla voit luoda syntaksilaajennuksia ja suorittaa koodia käännöshetkellä, on herkkä ongelmalle. Tutkija tutki aluksi haitallisten toimintojen mahdollisuutta koodin kääntämisen aikana, mutta havaitsi, että prosessimakrot laajenivat, kun lähdekoodia käsiteltiin koodieditoreissa. Hyökkäys voi todennäköisesti vaikuttaa muihin ohjelmointikieliin, esimerkiksi Javassa merkintöjen käsittelyä voidaan käsitellä samalla tavalla.



Lähde: opennet.ru

Lisää kommentti