调查显示,攻击者主要使用一种被称为 “误植域名” 的技术,即在上传类似合法程序安装包至索引时( 例如:“ urlib ” 而并非 “ urllib ” ),PyPI 存储库不会执行任何类型的安全检查或审计,因此攻击者在线传播这些模块并不困难。另外,攻击者还会将恶意代码植入软件安装脚本,以便快速感染目标用户系统。
研究人员表示,由于这些软件安装包的恶意代码基本相同,因此它们的功能大同小异。不过,尽管在安装脚本 setup.py 时将会被植入恶意代码,但它们对于主机系统来说相对无害。此外,恶意代码只收集受感染主机的使用信息,例如伪造安装包的名称、版本、用户名以及计算机主机名。据悉,NBU 安全研究人员于上周联系 PyPI 管理员后,他们立即删除了这些含有恶意代码的安装包。其中存在恶意代码的软件安装包包括:
– acqusition (uploaded 2017-06-03 01:58:01, impersonates acquisition)[出自:jiwo.org]
– 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 不支持加密签名。