斯洛伐克國(guó)家安全局( NBU )研究人員近期在編程語(yǔ)言 Python 的第三方存儲(chǔ)庫(kù) PyPI 中發(fā)現(xiàn) 10 款含有惡意代碼的 Python 安裝包,旨在感染目標(biāo)主機(jī)系統(tǒng)、竊取用戶敏感信息。
調(diào)查顯示,攻擊者主要使用一種被稱為 “誤植域名” 的技術(shù),即在上傳類(lèi)似合法程序安裝包至索引時(shí)( 例如:“ urlib ” 而并非 “ urllib ” ),PyPI 存儲(chǔ)庫(kù)不會(huì)執(zhí)行任何類(lèi)型的安全檢查或?qū)徲?jì),因此攻擊者在線傳播這些模塊并不困難。另外,攻擊者還會(huì)將惡意代碼植入軟件安裝腳本,以便快速感染目標(biāo)用戶系統(tǒng)。
研究人員表示,由于這些軟件安裝包的惡意代碼基本相同,因此它們的功能大同小異。不過(guò),盡管在安裝腳本 setup.py 時(shí)將會(huì)被植入惡意代碼,但它們對(duì)于主機(jī)系統(tǒng)來(lái)說(shuō)相對(duì)無(wú)害。此外,惡意代碼只收集受感染主機(jī)的使用信息,例如偽造安裝包的名稱、版本、用戶名以及計(jì)算機(jī)主機(jī)名。據(jù)悉,NBU 安全研究人員于上周聯(lián)系 PyPI 管理員后,他們立即刪除了這些含有惡意代碼的安裝包。其中存在惡意代碼的軟件安裝包包括:
– acqusition (uploaded 2017-06-03 01:58:01, impersonates acquisition)
– apidev-coop (uploaded 2017-06-03 05:16:08, impersonates apidev-coop_cms)
– bzip (uploaded 2017-06-04 07:08:05, impersonates bz2file)
– crypt (uploaded 2017-06-03 08:03:14, impersonates crypto)
– django-server (uploaded 2017-06-02 08:22:23, impersonates django-server-guardian-api)
– pwd (uploaded 2017-06-02 13:12:33, impersonates pwdhash)
– setup-tools (uploaded 2017-06-02 08:54:44, impersonates setuptools)
– telnet (uploaded 2017-06-02 15:35:05, impersonates telnetsrvlib)
– urlib3 (uploaded 2017-06-02 07:09:29, impersonates urllib3)
– urllib (uploaded 2017-06-02 07:03:37, impersonates urllib3)
安全研究人員表示,惡意代碼主要與 Python 2.x 一起使用,而運(yùn)行在 Python 3.x 應(yīng)用程序時(shí)將會(huì)發(fā)生錯(cuò)誤。這些惡意軟件安裝包于 2017 年 6 – 9 月一直處于活躍狀態(tài),目前也有證據(jù)表明,多個(gè)惡意安裝包已被開(kāi)發(fā)人員使用。對(duì)此,安全專家除了要求 Python 程序人員檢查他們的軟件安裝包是否遭受感染外,還建議他們?cè)谙螺d Python 安裝包時(shí)避免使用 “ pip ”(一個(gè) Python 包安裝程序),因?yàn)?pip 不支持加密簽名。