根據一項已發表的學術研究,使用WebAssembly的網站中大約有一半將其用于惡意目的。
WebAssembly由Mozilla、谷歌、微軟和蘋果這四個主要的瀏覽器供應商協同創建,它引入了一種新的二進制文件格式,用于將代碼從Web服務器傳輸到瀏覽器。一旦到達瀏覽器,WebAssembly代碼(Wasm)就會以接近本地的速度執行,類似于已編譯的C、C++或Rust代碼。創建WebAssembly的目的是兼顧速度和性能。由于Wasm代碼具有機器友好的二進制格式,因此它比等效的JavaScript格式小,但執行時速度也快許多倍。
WebAssembly于2017年首次被提出,并于2019年底被批準為正式的W3C(萬維網聯盟)標準,目前受到所有主流瀏覽器的支持。
在去年進行的一項學術研究項目中,來自德國布倫瑞克工業大學的四名研究人員研究了WebAssembly在Alexa上排名前100萬的流行站點上的使用情況,以評估這種新技術的普及程度。他們加載了100萬個網站中每個網站的三個隨機頁面,測量了WebAssembly的使用情況,以及每個網站運行代碼所花費的時間。
研究發現有1,639個站點裝載了總計1,950個Wasm模塊,只有150個模塊是獨一無二的,有很多站點都在使用相同的Wasm模塊。
研究小組還對每個網站正在加載的Wasm代碼的性質進行了研究。他們手動分析代碼,查看函數名稱和嵌入的字符串,然后映射出相似代碼的集群。研究人員表示,他們分析的絕大多數代碼樣本都用于加密貨幣挖掘(樣本的32%)和在線游戲(樣本的29.3%)。這兩類Wasm代碼在本質上是惡意的。
用于加密貨幣挖掘的Wasm模塊通常是所謂的加密劫持(通過挖礦驅動)攻擊的一部分。另一類涉及打包在混淆的Wasm模塊中的WebAssembly代碼,這些模塊有意隱藏其內容,一般來說是惡意廣告的一部分。
由于代碼經常在多個域中重復使用,這些模塊已被用于超過一半的樣本網站。且將WebAssembly代碼用于惡意目的的行為有在不斷增加的趨勢。研究小組還表示,這可能還只是“冰山一角”。為此,他們呼吁網絡安全公司參與進來,應對新技術帶來的新威脅。