監(jiān)測“event-stream”庫是否感染及修復(fù)方法

緣起

這兩天,一個被廣泛應(yīng)用的javascript第三方庫“event-steram”爆出被人植入惡意代碼,能夠竊取到用戶的錢包信息,造成財產(chǎn)(虛擬貨幣)受損。
爆出的鏈接在這里;360安全團(tuán)隊對于此次漏洞的分析做出了分析。(源碼分析那部分其實沒說太明白,至少我是沒看懂。。)

總的來說,這個漏洞主要針對的是國外一款熱錢包應(yīng)用,對其他項目不會有太大影響。但一想到自己的項目里有這么個“病毒”存在,心里總感覺別扭,所以還是盡早清除為妙。

檢測本地代碼是否有此漏洞

第一步,全局搜索flatmap-stream,找到哪些項目中使用到了

sudo find / -name flatmap-stream

如果你本地沒有項目用到這個庫,那么恭喜你沒有被感染;如果你搜索結(jié)果里顯示有項目用到了,就需要進(jìn)行下面的第二步了。

第二步,進(jìn)入該項目目錄下,列出event-streamflatmap-stream的版本號

remix-ide$ npm ls event-stream flatmap-stream
remix-ide@0.7.5 /Users/Franklin/Documents/blockchain/code/ethereum/remix-ide
└─┬ npm-run-all@4.1.3
  └─┬ ps-tree@1.1.0
    └─┬ event-stream@3.3.6
      └── flatmap-stream@0.1.1

如果event-stream的版本號是3.3.6,并且flatmap-stream的版本號是0.1.1,那就說明是已經(jīng)被感染了。

修復(fù)方法

這個漏洞在爆出來之后,大多數(shù)依賴event-stream的庫的作者,都做了緊急修復(fù),因此可以重裝一下看看是否已經(jīng)被修復(fù)了:先手動刪除node_modules目錄(如果有package-lock.json,也需要刪除),用npm install重新安裝;再用npm ls查看一下版本號是否已經(jīng)變了。如果沒變,說明庫的作者未做修復(fù),此時只能自己手動修改了:打開對應(yīng)庫的package.json文件,把event-stream的版本號顯式指定為一個早先沒有漏洞的,比如3.3.4。

// 以ps-tree為例,原代碼:
"dependencies": {
    "event-stream": "~3.3.0"
  },
// 修改成:
"dependencies": {
    "event-stream": "3.3.4"
  },

注意,package-lock.json文件內(nèi)的版本號也需要同步修改一下。
最后執(zhí)行npm install

多說兩句

這個漏洞的一個重要的危害是:你并不知道你使用的第三方庫里是不是引用了有漏洞的版本。所以會造成麻煩:每引入新的庫都要重復(fù)上面的檢測和修復(fù)的方法。

我一直覺得js的npm包管理方式太過開放太過簡單粗暴,之前就出過left-pad
的作者怒刪在npm上的庫,造成眾多依賴的項目無法工作,知乎鏈接
這次又出了這么嚴(yán)重的漏洞。npm作者確實是應(yīng)該考慮一下升級安全方面的機制了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,765評論 25 709
  • 用兩張圖告訴你,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 13,913評論 2 59
  • 微雨,從夢中醒來。夢見了陳佳悅,杜思雨,陳玉,付可心她們,一起在海邊,她們在海邊洗澡,讓我下去,我說我不會游泳,就...
    公子麻朵閱讀 151評論 0 0
  • 最近隨著比特幣價格突破30000元后又回落,其它幣種也出現(xiàn)了大幅回調(diào),相信又有無數(shù)韭菜被收割,相應(yīng)的還有...
    無悔歲月閱讀 195評論 0 0

友情鏈接更多精彩內(nèi)容