近年來,隨著開源軟體生態系的快速發展,駭客逐漸將目光轉向開發人員,透過套件市集進行攻擊的案例屢見不鮮。此篇文章指出,駭客常用的一種手法是,利用已下架的套件名稱,重新上架帶有惡意程式的套件,誘騙使用者下載與安裝。這種情況在NPM、PyPI等程式語言套件市集中已相當氾濫,為此,PyPI軟體基金會(PSF)採取了行動,每日追蹤網域名稱的使用情況,以降低此類攻擊風險。然而,文章也指出,類似的問題如今已延伸至開源IDE工具Visual Studio Code(VS Code)的套件市集,形成新的資安威脅。
文章中以資安業者ReversingLabs的發現為例,說明今年6月他們在VS Code市集中發現新的惡意延伸套件,這些套件可被用來引發勒索軟體攻擊。然而,更讓該公司關注的是,這個6月的惡意套件名稱 ahbanC.shiba,竟與3個月前出現的套件 ahban.shiba 名稱高度相似。經查證,兩者名稱相同,但開發者帳號不同,功能上也與先前的 ahban.shiba 和 ahban.cychelloworld 類似,皆可能在使用者安裝後,觸發勒索軟體下載與執行。作者強調,根據微軟發布的VS Code官方文件,所有套件名稱應該是專屬且唯一的,理論上不應該出現相同名稱的套件,但實際上卻出現漏洞,讓攻擊者得以重新利用已下架的套件名稱。
文章進一步說明,攻擊者之所以能夠成功,是因為VS Code市集允許開發者在原套件選擇「移除(Remove)」後,其他開發者就能立即使用相同名稱重新上架新套件。本文指出,這意味著一旦熱門套件不再維護,被原開發者移除後,攻擊者就能迅速搶下套件名稱,進一步植入惡意程式。與此不同的是,如果原開發者選擇「取消發布(Unpublish)」,雖然使用者無法下載套件,但同時也禁止其他開發者使用相同名稱上架新套件。這顯示出市集管理策略上的微妙差異,可能直接影響攻擊者能否得逞。
ReversingLabs還比對了惡意套件的上架時間,發現新套件 ahbanC.shiba 很可能在舊套件被移除不久後上架,並在6月17日前後設置為取消發布。雖然使用者當時無法下載這個惡意套件,但仍能存取相關統計資料,意味著攻擊者未來仍可能重新發布以進行其他攻擊活動。文章也提到,對於駭客為何採取取消發布的策略,ReversingLabs並未提供明確解釋,但這顯示駭客在策略設計上已具備一定的計算與隱蔽性。
總結來說,此篇文章不僅揭示了VS Code套件市集存在的管理漏洞,也反映出開源生態系中對套件名稱管理與套件安全策略的重要性。事件提醒開發者與使用者,在安裝套件時應保持警覺,尤其對於已下架或不再維護的熱門套件名稱,更需謹慎,以避免落入惡意套件的攻擊陷阱。同時,也呼籲微軟與其他開源平台,必須持續強化套件市集的審核與管理機制,防止類似攻擊再次發生。