Python 官方的第三方軟體存儲庫——PyPI 上發現10個惡意庫

看到個新聞,PyPI居然出現了10個惡意庫。。。新聞來源於 FreeBuf.COM

近日,斯洛伐克國家安全局(NBU)在 Python 官方的第三方軟體存儲庫——PyPI 上發現10個惡意庫。

我們對於 typosquatting 其實並不陌生,上一次類似的攻擊是出現在 NPM 平台,而這一次攻擊者又使用了類似的方法將目標對準了 PyPI。

NBU 專家表示,攻擊者使用 typosquatting 的方法來上傳這些惡意庫到 PyPI 平台上,他們上傳的惡意庫的名字和那些正常的庫的名字非常相似,很容易讓人混淆,比如將」urlib」 寫成 「urllib」。

當開發者上傳一個新庫到 PyPi上時,平台本身並不會對庫做任何的安全檢查,所以攻擊者很容易就可以將庫上線。

那些手誤打錯名字的開發人員會無意間下載這些惡意庫,並將其載入到軟體的安裝腳本中。

腳本中包含惡意軟體,但是功能完好

NBU解釋道,這些惡意庫和那些正常名字的庫代碼相同,所以它們的功能是相同的,但是在其安裝腳本 setup.py 中包含惡意代碼。

這些惡意代碼只會收集被感染主機的信息,比如這些惡意庫的版本和名字,那些安裝了惡意庫的用戶的名字,還有計算機的主機名。

這些被收集的數據,格式就像 「Y:urllib-1.21.1 admin testmachine」,被上傳到一個中國的 IP 地址「121.42.217.44:8080″。

惡意庫上周就已經被移除了

NBU 的官員上周聯繫了 PyPi 管理員,管理員在周六之前就已經從 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 版本編寫的,它們會在 Python 3.x 版本中報錯。用戶在調試應用程序時發現了它們。

證據表明,惡意庫已經被用在正式的軟體中

NBU表示,這些惡意庫在今年6月到9月之間就一直活躍,有證據表明在一些正式版軟體中也發現了它們的蹤影。

專家建議 Python 開發人員檢查他們的軟體,看是否也使用了被感染的庫,並使用最初安全的庫重新編譯軟體包。

並且,專家建議 Python 開發人員不要使用 pip(一個Python 包安裝程序)來安裝第三方庫,因為 pip 在下載第三方庫時不會進行加密簽名的驗證。


你想更深入了解學習Python知識體系,你可以看一下我們花費了一個多月整理了上百小時的幾百個知識點體系內容:

【超全整理】《Python自動化全能開發從入門到精通》筆記全放送


推薦閱讀:

VS Code + Anaconda打造舒適的Python環境
python 中文亂碼出現,不知道是什麼原因?
Scrapy之斷點續爬
Python 中 Requests 庫的用法

TAG:Python | Python入门 | Python库 |