Categories
程式開發

NPM 移除4 個惡意軟件包:洩露用戶數據已有數月,4 個包分工明確


近日,NPM 移除了多個託管在其倉庫中的包,原因是這些包會向遠程服務器建立連接並洩露用戶數據。

這4 個包在過去幾個月中累計有超過1000 次下載,直到10 月15 日被NPM 移除。

這4 個包是:

  1. plutov-slack-client- manifest 中的信息聲稱是一個“Node.JS Slack 客戶端”。
  2. nodetest199- 沒有描述。
  3. nodetest1010- 沒有描述。
  4. npmpubman- manifest 中的信息聲稱是“一個關於Linux shell 登錄的簡單實現”。

向攻擊者的服務器建立一個反向shell

儘管惡意軟件已經被NPM 曝光和移除,但我依然從Sonatype 的自動惡意軟件檢測系統檔案中獲得了這些包的源代碼,就像它曾經在NPM 下載時一樣。

前3 個包plutov-slack-client、nodetest1010 和nodetest199 共享相同的代碼。

這些包中包含的非常簡單的代碼能夠在Windows 和基於Unix 的系統上運行。

用戶安裝了這些包之後,這些包的代碼會向攻擊者的服務器建立一個反向shell,允許攻擊者能夠遠程訪問受害機器。

NPM 移除4 個惡意軟件包:洩露用戶數據已有數月,4 個包分工明確 1

前3 個包(plutov-slack-client, nodetest1010, and nodetest199) 向攻擊者的服務器建立了一個反向shell

來源:BleepingComputer

在這裡我發現了一個關鍵的點,那就是儘管這3 個包共享相同的代碼,但這3 個包所包含的manifest 文件(package.json)中關於作者介紹和他們的GitHub 簡介的元數據卻完全不同。

很可能,packge.json 中的數據是惡意軟件的作者偽造的,或者惡意軟件使用屬於不同受害開發者的GitHub 和npm 賬號發布了這些惡意軟件包。

向一個遠程服務器上傳用戶數據

列表中的最後一個包npmpubman 的代碼結構和目標完全不同。

它從環境變量收集用戶數據,並將這些信息發送到一個遠程主機。

由NodeJS process.env 提供的環境信息會暴露開發者環境的敏感信息,例如PATH 變量、數據庫服務器、端口、API 密鑰等等。

NPM 移除4 個惡意軟件包:洩露用戶數據已有數月,4 個包分工明確 2

惡意軟件NPM 包npmpubman 向一個遠程服務器洩露環境變量

來源: BleepingComputer

儘管package.json 文件中提供的數據衝突,但很可能這4 個軟件包都是由相同的攻擊者創建的。

在實際的場景中,npmpubman 可以被攻擊者當作“偵查工具”來使用,收集系統信息,而其它包則是負責在攻擊者和受害者的計算機之間建立一個直接連接。

正如BleepingComputer 觀察到的,與這4 個包有關的不同的NPM 作者賬戶已經被npm 關閉了。然而,開發人員的GitHub 倉庫並沒有顯示最近託管包的痕跡,儘管package.json 文件表明了這種可能性。

滲透到開源生態系統中的惡意軟件案例一直在增加。就在上個月,我在博客上寫了一篇關於npm 惡意軟件的弘文,這些惡意軟件沒有被發現,一直在公共GitHub 頁面上實時發布用戶信息。

通過利用開源社區的信任,攻擊者可以將其惡意代碼“下流”到任何可能錯誤地將這些惡意軟件包作為依賴包含在他們的應用程序中的開發人員或客戶。

Sonatype 在他們的十月份惡意軟件包清單中對這些包進行了說明,並追踪到sonatype-2020-1013。

作者介紹:

Ax Sharma 是一名安全研究員、工程師和技術專欄作家。他的作品和專業分析經常被頭部媒體發表,例如Fortune、The Register、TechRepublic、CIO 等等。 Ax 的專長在於漏洞研究、逆向工程、軟件開發和web 應用程序安全。他是OWASP 基金會和英國記者協會(BAJ)的一名活躍社區成員。

原文鏈接:

https://www.bleepingcomputer.com/news/security/npm-nukes-nodejs-malware-opening-windows-linux-reverse-shells