演示對程式碼編輯器的攻擊,導致開啟原始程式碼時導致檔案洩漏

已經演示了一種攻擊 VSCode 程式碼編輯器的方法,允許在編輯器中開啟專門設計的原始程式碼時傳輸當前使用者權限內的任意檔案。在此示範中,當開啟使用流程巨集的 Rust 程式碼時,它會建立與主機 127.0.0.1:8080 的連接,並使用使用者的 SSH 金鑰傳送檔案「~/.ssh/id_rsa」的內容。

為了妥協,只需打開包含程式碼的檔案就足夠了,而不需要對專案執行任何其他操作。為了使範例正常運作,VSCode 需要 rust-analyzer 外掛程式(標準 rustc 編譯器之上的綁定)以及系統中存在用於處理 Rust 語言程式碼的工具。該問題與初始程式碼分析期間過程巨集的擴展有關。使用“cargo build”指令在編譯時也可以達到類似的效果。

請注意,該問題可能會影響其他程式碼編輯器和程式語言。 VSCode 和 rust-analyze 僅用於示範攻擊向量。理論上,任何公開允許您建立語法擴充並在編譯時執行程式碼的過程巨集的程式碼編輯器都容易受到此問題的影響。研究人員最初調查了程式碼編譯期間發生惡意操作的可能性,但發現在程式碼編輯器中處理原始程式碼時過程巨集被擴展。該攻擊可能會影響其他程式語言;例如,在 Java 中,可以以類似的方式操縱註解處理。



來源: opennet.ru

添加評論