Demonstrasi serangan terhadap editor kode yang menyebabkan kebocoran file saat membuka kode sumber

Sebuah metode menyerang editor kode VSCode telah didemonstrasikan, memungkinkan transfer file arbitrer dalam hak pengguna saat ini saat membuka kode sumber yang dirancang khusus di editor. Dalam demo ini, saat membuka kode Rust yang menggunakan makro prosedural, ia membuat koneksi ke host 127.0.0.1:8080 dan mengirimkan konten file "~/.ssh/id_rsa" dengan kunci SSH pengguna.

Untuk berkompromi, cukup buka file dengan kode tanpa melakukan tindakan lain apa pun dengan proyek tersebut. Agar contoh berfungsi, VSCode memerlukan plugin penganalisis karat (pengikatan di atas kompiler Rustc standar) dan keberadaan alat dalam sistem untuk bekerja dengan kode dalam bahasa Rust. Masalahnya terkait dengan perluasan makro prosedural selama analisis kode awal. Efek serupa juga dapat dicapai pada waktu kompilasi menggunakan perintah "cargo build".

Perlu dicatat bahwa masalah ini mungkin mempengaruhi editor kode dan bahasa pemrograman lain. VSCode dan analisis karat hanya digunakan untuk mendemonstrasikan vektor serangan. Secara teori, editor kode apa pun yang mengekspos makro prosedural yang memungkinkan Anda membuat ekstensi sintaksis dan mengeksekusi kode pada waktu kompilasi rentan terhadap masalah ini. Peneliti awalnya menyelidiki kemungkinan tindakan berbahaya yang terjadi selama kompilasi kode, namun menemukan bahwa makro prosedural diperluas ketika kode sumber diproses dalam editor kode. Serangan tersebut mungkin dapat mempengaruhi bahasa pemrograman lain; misalnya, di Java, pemrosesan anotasi dapat dimanipulasi dengan cara yang sama.



Sumber: opennet.ru

Tambah komentar