數以千計的惡意npm包威脅著Web應用程序的安全
過去的6個月中,在開發者最常下載的JavaScript包庫npm中發現了1300多個惡意包。這種惡意組件數量的快速增長也反映出了npm正在成為惡意軟件的傳播平臺。
開源安全和管理公司WhiteSource最新研究發現,惡意npm包數量的不斷增加使人感到很不安,這些包主要是被用作網絡應用的組件。任何使用該惡意代碼塊的應用程序都可能使其用戶遭到數據盜竊、加密劫持以及僵尸網絡等攻擊。
該公司表示,在發現的惡意軟件包中,有14%是為了竊取證書等敏感信息,而近82%的軟件包則是在偵查用戶的信息,攻擊者采用主動或被動的方式來收集目標的相關信息。
研究人員在周三的報告中說,由于npm包每周的下載量超過了200億次,因此這些惡意代碼會被安裝在全球無數的軟件和應用程序的網絡組件中,攻擊者可以利用它們獲得大量的資產。據WhiteSource稱,平均每個月有32,000個新的npm軟件包版本發布(每天17,000個),有整整68%的開發者依賴它來創建在線功能。
研究人員說,這種水平的攻擊活動可以使威脅者發起一系列的軟件供應鏈攻擊。因此,WhiteSource調查了npm中的惡意攻擊活動,在2021年發現了1300多個惡意包,這些惡意包之后被刪除,但是在被刪除之前,可能就已經被引入了大量的應用程序內。
他們在報告中寫道,攻擊者正在集中精力利用npm惡意包來達到自己的攻擊目的,在這些供應鏈攻擊中,攻擊者通過感染現有的組件將他們的攻擊轉移到上游,隨之這些組件被分發到下游并很可能已經被安裝了數百萬次。
研究人員指出,由于每月都有眾多npm軟件包被發布,一些惡意軟件包也很容易成為漏網之魚。
為什么要攻擊npm?
據WhiteSource報道,JavaScript是目前最常用的編程語言,全球約有1640萬JavaScript開發人員。
研究人員說,正是由于它在互聯網應用程序和系統中的廣泛應用,使得JavaScript生態系統成為攻擊者的目標。研究人員說,Npm本身就是最受歡迎的軟件包管理器和注冊中心之一,其中包含了180多萬個活躍的軟件包,平均每個軟件包有12.3個版本。
像Npm這樣的軟件包注冊處還存儲了軟件包、與之相關的元數據以及安裝它們所需的參數配置,這些都可能成為攻擊載體。所以特別是當需要跟蹤軟件包的版本時,也就使得IT部門很難跟上。
此外,盡管npm和其他注冊機構在JavaScript的開發過程中發揮著不可或缺的作用,但他們所執行的相關安全標準是最低的,因為它們其中大多數都是由開源社區維護和驗證的,這也就使得攻擊者的攻擊時機已經成熟。
事實上,攻擊者肯定已經注意到了利用npm進行攻擊的可能性,而且在去年的幾次攻擊中還對用戶的注冊表進行了攻擊。
1月,攻擊者利用npm傳播CursedGrabber惡意軟件,該軟件可以竊取Discord令牌,從而實現對用戶賬戶和服務器的攻擊。然后在7月,研究人員發現了一個惡意的npm包,該npm包通過使用Chrome的賬戶恢復工具來竊取密碼。
12月,攻擊者再次使用npm針對Discord進行攻擊。通過在軟件包管理器中隱藏惡意代碼,獲取Discord令牌,接管那些毫無防備的用戶的賬戶和服務器。
常見的惡意軟件、攻擊目標以及影響
WhiteSource的研究人員在報告中提到了他們觀察到的隱藏在惡意npm包中的一些常見的惡意軟件,其主要的功能是進行憑證竊取并運行僵尸網絡。
WhiteSource在調查中發現的一些惡意包及其功能主要包括以下內容:
mos-ass-loader和css-resources-loader,它們可以實現遠程代碼執行(RCE)攻擊。
circle-admin-web-app和browser-warning-ui,它們可以選擇惡意的外部包進行下載。
@grubhubprod_cookbook,它主要從事依賴性混淆。
H98dx,一個在安裝時運行的遠程shell可執行文件,可以感染機器。
Azure-web-pubsub-express,它可以收集主機的信息。
研究人員還描述了他們在10月份觀察到的供應鏈攻擊,該攻擊使用了一個流行的npm庫,ua-parser-js,該庫用于解析用戶代理字符串來識別用戶的瀏覽器、操作系統、設備和其他屬性。他們說,該庫每周有超過700萬次的下載。
研究人員解釋說,攻擊者使用ua-parser-js來利用軟件供應鏈來獲得敏感數據。
研究人員寫道:"攻擊者在接管了開發者的npm賬戶后,將惡意代碼插入到了三個版本的ua-parser-js文件內。同時發布了這個包的三個新版本,試圖讓用戶下載它們。"
該軟件包未受感染的版本是0.7.28,但攻擊者發布了相同的0.7.29、0.8.0和1.0.0軟件包,每個包都含有惡意代碼,并且在安裝時被激活。
研究人員補充說,該軟件包的作者迅速做出回應,通過發布0.7.30、0.8.1和1.0.1三個版本來緩解攻擊,并試圖將那些在無意中安裝惡意軟件包的人數降到最低。
研究人員發現,開發人員在周末下載npm包時應非常警惕,因為周末是攻擊者發布惡意包最多的時間段。這可能是因為有較少人在工作,因此他們的活動更容易不被注意到。
本文翻譯自:https://threatpost.com/malicious-npm-packages-web-apps/178137/如若轉載,請注明原文地址。