如果你的網站正在使用Polyfill.io,我們建議應該盡快移除,因為該服務被發現對訪客傳送惡意代碼,以下將會講解繼續使用的危險,以及正在使用的話應該採取的行動。
甚麼是polyfills和Polyfill.io
Polyfill是一段用於實行某些瀏覽器版本不支援功能的程式碼,通常是JavaScript編碼增加對HTML5、CSS3、JavaScript API和其他標準和技術的支援,使網頁開發人員不用因為支援奇怪或過時的瀏覽器而煩惱,隨著HTML5和CSS3逐漸成為網絡的主流,polyfills在2010年代最為盛行。而Polyfill.io則是協助自動傳達瀏覽器需求,以顯示特定網站的服務,服務因為能提高效率以及定期更新使用的技術和標準而廣受歡迎,部署簡單直接也是另一個原因,開發者只需要加一小段字串到網站代碼,就能啟動服務腳本使用Polyfill.io。
Polyfill.io原本由Financial Times網頁開發團隊所創作,在今年2月該服務以及相關網域及GitHub帳號被出售予中國CDN提供者Funnull,但不到六個月麻煩便開始了。
從cdn.polyfill.io的惡意代碼
在今年的6月25日,研究人員發現cdn.polyfill.io開始向使用Polyfill.io的網站用戶傳送惡意代碼,代碼使用一個錯字的域名假裝是Google Analytics (www.googie-anaiytics[.]com),並重新導引用戶到越南運動賭博網站,據報這次並非Polyfill.io首次被發現散佈惡意代碼,發現者嘗試透過GitHub的評論進行投訴,但Polyfill.io的新持有人瞬間移除所有批評,暫時潛在惡意腳本存在於超過10萬個網站,部份具有一定規模。
Google Ads:另一個原因移除Polyfill.io
如果訪客收到惡意腳本聽起來不算太過需要憂慮,Google Ads則給予網站營運商一個正當的理由盡快修復問題,因為該廣告服務已經暫停連繫到散播惡意腳本的網站廣告,除了Polyfill.io以外,還包括Bootcss.com、Bootcdn.net和Staticfile.org同樣被列入暫停廣告行列,如果不停用上述有問題的服務,網站將會失去Google Ads的推薦而損失流量。
防範Polyfill.io攻擊
應對攻擊有以下幾個步驟:
- 把Polyfill.io腳本從網站中盡快移除,此外還包括Bootcss.com、Bootcdn.net和Staticfile.org。
- 考慮放棄使用Polyfill,Polyfill.io的開發者也如此建議,並表示與polyfills再無關係。
- 如果有原而不能遵循以上建議,使用Cloudflare或Fastly的替代方案。
- 盡量滅少網站使用外部腳本的數量,多一條就多一個潛在安全漏洞。
資料來源:Kaspersky Blog