<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          只是pip安裝輸錯(cuò)字母,你就可能中了挖礦病毒

          共 2069字,需瀏覽 5分鐘

           ·

          2021-06-30 20:00

          量子位 報(bào)道 | 公眾號(hào) QbitAi

          用PyPI包管理工具安裝python軟件很方便,但你今后要三思而后行了。

          當(dāng)輸入這樣一句命令后:

          pip install openvc

          你也許并未發(fā)現(xiàn)異常,仔細(xì)一看可能才會(huì)察覺(jué)自己剛剛手抖,把opencv輸錯(cuò)了。

          但此時(shí)安裝命令已經(jīng)開(kāi)始運(yùn)行了,因?yàn)閛penvc其實(shí)也是一個(gè)真實(shí)存在的軟件包,不過(guò)卻是個(gè)惡意軟件包。

          最近,安全公司Sonatype發(fā)現(xiàn),很多惡意軟件都偽裝成常見(jiàn)的PyPI包,往往只差幾個(gè)字母。

          隨著加密貨幣的火爆,黑客們開(kāi)始把挖礦軟件植入其中。如果用戶手打pip安裝命令手滑一下,自己的電腦就可能變成“礦機(jī)”。

          PyPI里的挖礦軟件

          常用的繪圖工具包matplotlib首當(dāng)其沖。PyPI今年有多個(gè)與之類似的惡意軟件包,如mplatlib、maratlib(記住這個(gè)軟件包名稱)等等。

          這類“李鬼”共有7種之多,都是一個(gè)叫做nedog123的用戶上傳到PyPI。其中像maratlib還是今年4月份發(fā)布的。

          這一組惡意軟件以“maratlib”為核心,其他軟件都是把它作為依賴項(xiàng),比如“l(fā)earninglib”就是這種情況:

          這代碼還算是比較“直白”的,有些惡意軟件將依賴項(xiàng)稍微隱藏了一下,比如“mplatlib”:

          它把依賴項(xiàng)偽裝成“LKEK”,從第47行代碼可以看出LKEK就是maratlib。

          接著Sonatype的安全工程師又對(duì)maratlib 1.0安裝包進(jìn)行了分析,發(fā)現(xiàn)它已經(jīng)偽裝得很深了,使用一般工具已經(jīng)很難分析這些代碼里到底藏了什么。

          他只好把版本倒回0.6,這個(gè)版本的maratlib沒(méi)有對(duì)代碼做偽裝,它會(huì)從GitHub下載和運(yùn)行Bash腳本代碼:

          但服務(wù)bash腳本的網(wǎng)址拋出404錯(cuò)誤,說(shuō)明這個(gè)地址已經(jīng)被GitHub刪除,或者被黑客nedog123廢棄不用。

          經(jīng)過(guò)更深的挖掘,這名安全工程師發(fā)現(xiàn),黑客將代碼遷移到了“Marat Nedogimov”和“maratoff”用戶名下。

          這個(gè)aza2.sh腳本會(huì)下載一個(gè)名為“Ubqminer”的挖礦軟件,而上圖中那一長(zhǎng)串字符就是黑客的數(shù)字錢包地址。

          至此,案件已經(jīng)告破。好消息是,PyPI已經(jīng)刪除了這些惡意軟件包。

          但是,據(jù)Sonatype公司統(tǒng)計(jì),這7個(gè)李鬼軟件已經(jīng)總共被下載超過(guò)5000次

          惡意PyPI包防不勝防

          這次發(fā)現(xiàn)的maratlib,可能只是PyPI惡意軟件包的冰山一角。PyPI包管理工具的問(wèn)題一直為用戶所詬病。

          今年2月,有人將CUDA加速包CuPy換成了惡意軟件。還有一位白帽黑客發(fā)現(xiàn),只要向公共庫(kù)上傳PyPI軟件包,就能輕易替換掉私有化的同名軟件包,大大增加了科技公司中毒風(fēng)險(xiǎn)。

           每月PyPI惡意軟件包數(shù)量

          早在2016年,就有人用相似名稱的方法發(fā)布PyPI惡意軟件包,騙過(guò)了1.7萬(wàn)名程序員,導(dǎo)致這個(gè)惡意程序被運(yùn)行了4.5萬(wàn)次,甚至連美國(guó)軍方都中招了。

          使用pip請(qǐng)謹(jǐn)慎

          那么,我們?nèi)绾晤A(yù)防被安裝惡意的PyPI軟件包?

          你以為只要認(rèn)真檢查安裝命令就行了?No!

          由于PyPI絕大部分軟件包都是第三方編寫和維護(hù)的,這體現(xiàn)了開(kāi)源的優(yōu)勢(shì),但也埋下了審核不嚴(yán)的危險(xiǎn)種子。

          如今,很多軟件都需要安裝依賴項(xiàng),個(gè)人不可能一一檢查,甚至大公司也做不到。有時(shí)候一個(gè)軟件里寫了上百個(gè)依賴項(xiàng),根本沒(méi)法審查代碼。

          最好的辦法就是監(jiān)控setup.py的行為,在安裝不太放心的軟件包時(shí),可以在容器中通過(guò)pip安裝包,同時(shí)收集系統(tǒng)調(diào)用和網(wǎng)絡(luò)流量,來(lái)分析其是否有惡意行為。

          最后再提醒一下大家,不僅pip命令有風(fēng)險(xiǎn),使用npm、gem等軟件包安裝命令也可能中毒,一定要對(duì)來(lái)源不明的軟件包仔細(xì)核查。

          參考鏈接:
          [1]
          https://blog.sonatype.com/sonatype-catches-new-pypi-cryptomining-malware-via-automated-detection
          [2]https://arstechnica.com/gadgets/2021/06/counterfeit-pypi-packages-with-5000-downloads-installed-cryptominers/
          [3]https://www.freebuf.com/articles/web/254820.html
          [4]https://github.com/rsc-dev/pypi_malware

          往期推薦


          1、Win11來(lái)啦!ISO下載與多圖賞析?。?!

          2、這11款chrome神器,用起來(lái)爽到爆!

          3、快手宣布取消“大小周”,到底是誰(shuí)薅誰(shuí)的羊毛?

          4、Python 之父:移動(dòng)設(shè)備中的Python應(yīng)用“又大又慢”!

          5、985研究生組團(tuán)詐騙,一個(gè)中招就關(guān)App,涉案金額超1億!


          今天因?yàn)槟狞c(diǎn)贊和在看,讓我元?dú)鉂M滿!

          瀏覽 47
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩V在线观看 | 中文字幕免费在线观看 | 经典无码一区二区三区 | 成人精品视频网址 | www欧美区 |