斯洛伐克國家安全局( NBU )研究人員近期在編程語言 Python 的第三方存儲庫 PyPI 中發現 10 款含有惡意代碼的 Python 安裝包,旨在感染目標主機系統、竊取用戶敏感信息。
調查顯示,攻擊者主要使用一種被稱為 “誤植域名” 的技術,即在上傳類似合法程序安裝包至索引時( 例如:“ urlib ” 而并非 “ urllib ” ),PyPI 存儲庫不會執行任何類型的安全檢查或審計,因此攻擊者在線傳播這些模塊并不困難。另外,攻擊者還會將惡意代碼植入軟件安裝腳本,以便快速感染目標用戶系統。
研究人員表示,由于這些軟件安裝包的惡意代碼基本相同,因此它們的功能大同小異。不過,盡管在安裝腳本 setup.py 時將會被植入惡意代碼,但它們對于主機系統來說相對無害。此外,惡意代碼只收集受感染主機的使用信息,例如偽造安裝包的名稱、版本、用戶名以及計算機主機名。據悉,NBU 安全研究人員于上周聯系 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 應用程序時將會發生錯誤。這些惡意軟件安裝包于 2017 年 6 – 9 月一直處于活躍狀態,目前也有證據表明,多個惡意安裝包已被開發人員使用。對此,安全專家除了要求 Python 程序人員檢查他們的軟件安裝包是否遭受感染外,還建議他們在下載 Python 安裝包時避免使用 “ pip ”(一個 Python 包安裝程序),因為 pip 不支持加密簽名。