最近兩個月,蠕蟲開始在NPM套件儲存庫、Open VSX與Visual Studio Code(VS Code)延伸套件市集現身,如今又有相關攻擊事故出現,引起多家資安業者高度關注。

資安業者SourceCodeREDEndor Labs,以及Sonatype本週提出警告,他們在NPM儲存庫發現名為IndonesianFoods的蠕蟲程式,此惡意軟體已透過數萬個套件散布,而且,相關套件的數量正在指數成長,迄今恐突破10萬大關。

不過,有別於先前出現於NPM儲存庫的蠕蟲程式,IndonesianFoods似乎不會對下載安裝的開發人員發動攻擊,並未建置後門或是搜括開發環境存放的憑證與帳密,相當耐人尋味。不過,如此龐大數量的惡意套件出現在儲存庫,再加上攻擊是自動化進行,此情況恐導致廣泛的供應鏈破壞。

較早提出警告的SourceCodeRED指出,此蠕蟲至少在NPM儲存庫上架7.8萬個套件,影響11個NPM套件開發者帳號,且相關攻擊已持續超過兩年。目前該公司也公開受影響套件清單,供開發人員比對,並且陸續找到55個NPM帳號被用於蠕蟲攻擊。

SourceCodeRED提及該活動有幾個特別的地方,首先這是長時間運作的活動,採用一致性命名模式,以及使用不尋常的內部術語與命令,並非單純的隨機犯案。再者,他們使用至少7個帳號分散活動,使得偵測及刪除變得更加困難。

更令人驚訝的是,攻擊者平均每7秒就上架一個惡意套件,他們以印尼語人名與食品術語隨機組合出套件名稱,修改檔案package.json強制設定套件為公開,分配隨機的版本號,最終使用命令上架到NPM,然後不斷重複上述流程。

另一家資安廠商Endor Labs的調查指出,這批惡意套件最早在去年4月曝光的攻擊事故出現,攻擊者之所以大量上架無用套件,疑似為了牟取獎勵貢獻開源專案開發人員的Tea加密貨幣。實際上,這些套件的惡意元件不會運作。根據Endor Labs的分析,它們都具備標準的Next.js專案結構,包含正確的組態檔案與正常的相依套件,惡意元件出現在未參照的指令碼裡,而且,該指令碼在套件安裝過程不會自動執行,也不會在套件部署完啟動。換言之,這些套件的惡意元件實際上不會運作。

然而,這些套件可怕的地方在於,不僅透過SourceCodeRED提及的手法自我複製及上架,還會互相引用,而變成彼此的相依套件,形成自我複製的套件網路,只要使用者安裝其中一個套件,NPM就會自動擷取整個相依性樹狀結構,若是每個套件納入8至10個相依套件,就有可能在安裝套件的過程裡,一口氣拉取超過100個垃圾套件,如此將會大幅增加NPM頻寬的負擔,後續NPM清理惡意套件的難度也會變得更加複雜。

Sonatype也對此事進行追蹤調查,該公司偵測到上架的惡意NPM套件超過10萬個,並指出他們在2個月前偵測到幾乎相同的NPM套件fajar-donat9-breki,具備相同的自我散布邏輯、結構,以及行為,唯一的差別在於它並未像IndonesianFoods大量散布。雖然此套件未出現攻擊活動的原因不得而知,但很有可能是歹徒的事前演練,代表相關的活動已有徵兆。

值得留意的是,儘管三家資安業者都指出這波攻擊首當其衝的是NPM套件庫與開源生態圈,開發人員安裝這些垃圾套件不會直接導致開發環境受害,不過他們認為,日後攻擊者還是能透過版本更新的方式,向開發人員發動進一步攻擊。

熱門新聞

Advertisement