在purescript npm安裝程序中發現惡意代碼

npm 純腳本

幾天前 使用PureScript安裝程序在npm軟件包的依賴項中檢測到惡意代碼,這在嘗試安裝purescript軟件包時表現出來。

惡意代碼 通過從cwd或npm加載依賴項嵌入 和速度圖依賴關係。 應該注意的是,PureScript安裝程序的npm軟件包的原始作者直到最近才從事維護此npm軟件包的工作,但是該軟件包已發送給其他維護者,他負責與這些依賴項相關的軟件包。

關於問題

該問題是由該軟件包的一位新分析師發現的,在與npm purescript軟件包的原始作者進行了許多分歧和醜陋的討論之後,將維護權轉移給了他們。

新的維護者 負責PureScript編譯器和 他們堅持認為,帶有安裝程序的NPM軟件包應由維護者自己修復,而不是由項目外的開發人員修復。

帶有PureScript安裝程序的npm軟件包的作者很長一段時間不同意,但是隨後放棄了,並允許訪問該存儲庫。 但是,有些依賴項仍由他控制。

上週,宣布了PureScript 0.13.2編譯器的發布。 新的維護者準備了與安裝程序相應的npm軟件包更新, 已檢測到惡意代碼。

惡意代碼首先被插入npm包“ load-from-cwd-or-npm” 在3.0.2版中,然後在1.0.3版的rate-map包中。 在最後幾天,兩個軟件包的多個版本都發布了。

他從與npm軟件包作者一起使用PureScript安裝程序的帖子轉移到其他地方,他說他的帳戶被未知的攻擊者破壞了。

黃大仙禁運, 在當前形式下,僅通過破壞軟件包安裝來限制惡意代碼的行為,這是新維護者的第一個版本。 嘗試使用“ npm i -g purescript”命令安裝軟件包而沒有執行任何明確的惡意活動時,惡意行為被排除。

確定了兩次襲擊

簡而言之, 該代碼破壞了purescript npm安裝程序,以防止下載完成,導致安裝程序在“檢查是否為您的平台提供了預編譯的二進製文件”步驟期間掛起。

第一個漏洞利用是通過破壞load-from-cwd-or-npm軟件包來實現的 這樣,對loadFromCwdOrNpm()的任何調用都將返回傳遞序列,而不是預期的程序包(在這種情況下,是用於下載編譯器二進製文件的請求程序包)。 漏洞利用的第二次迭代是通過修改源文件來防止觸發下載回調的。

4天后 開發人員了解了漏洞的根源,並準備發布更新以從依賴項中排除cwd-o-npm的負載,攻擊者發布了從cwd-or-npm 3.0.4加載的另一個更新,其中已刪除了惡意代碼。

但是,幾乎立即發布了對另一個Rate-Map 1.0.3依賴項的更新,其中添加了一個修復程序,該阻止程序用於下載的回調調用。

也就是說,在兩種情況下,新版本的從cwd或npm加載和映射速率的更改都具有明顯的偏差。

另外,在惡意代碼中,只有在安裝新維護者的版本時,該檢查才會觸發失敗的操作,而在安裝先前版本時,該檢查根本不會出現。

開發人員通過發布已刪除有問題的依賴關係的更新來解決該問題。

為防止在嘗試安裝有問題的PureScript版本之後在用戶的系統上安裝受破壞的代碼。

終於 開發者推薦 給在其係統上具有上述版本軟件包的所有人 刪除node_modules目錄和package-lock.json文件的內容,然後設置純腳本版本0.13.2。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。