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,允許攻擊者能夠遠程訪問受害機器。

前 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 包 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章