第三方CDN資源成為前端供應鏈投毒攻擊

最近,發現了一個關於Ledger 前端庫的安全性問題。駭客獲得了該庫的發布權限,並在ledgerhq/connect-kit 庫中植入了惡意程式碼,隨後發布了一個新版本。通常情況下,這不會立刻造成安全性問題,因為只有那些更新了該程式庫版本並將新版本程式碼整合到他們網站中的用戶才會受到惡意程式碼的影響。

但是,這裡有一個特殊的風險點。由於ledgerhq/connect-kit 函式庫的版本更新策略,任何依賴ledgerhq/connect-kit-loader 函式庫並使用loadConnectKit 函數的網站,只要出現一個新的1.xx 版本,它們就會自動取得最新的程式碼。這是因為許多網站透過CDN 位址的@1 標記來引用這些函式庫,這種做法會預設拉取1.xx 版本的最新程式碼,這是三方CDN前端資源版本控制的常見做法。

駭客可以利用這種機制,透過動態載入的程式碼發起欺騙性交易。這種依賴第三方CDN 來源的npm 套件將成為新的供應鏈攻擊管道。更為嚴重的是,攻擊者發布新版本後,使用者無需主動更新就可能受到攻擊。

以premint 為例,許多前端網站依賴外部的CDN 來引用npm 上的套件,例如unpkg 或cdnjs。如下圖所示,premint 直接依賴了latest 版本。這就引入了一個風險:攻擊者只需發布一個新版本,不需要用戶更新,用戶就可能遭受攻擊。因此,使用外部CDN 資源時,必須高度警覺安全風險。這種方法可能成為一種新形式的CDN 投毒攻擊。

Previous:

Next:

發佈留言

登入後發表評論