某 PyPI 软件包出现异常更新,黑客利用其传播 Nova Sentinel 恶意软件

💡 原文中文,约1000字,阅读约需3分钟。
📝

内容提要

Python软件包索引(PyPI)中的一个休眠软件包被恶意更新,威胁攻击者利用其传播名为Nova Sentinel的恶意软件。

🔎

延伸解读

休眠包异常更新的风险信号

django-log-tracker 自2022年4月发布后,其GitHub存储库两年未更新,但PyPI上的包却突然发布新版本。这种开发活动与代码仓库不同步的现象,往往是账户被盗用的信号。依赖该包的项目如果未锁定版本,可能自动拉取恶意更新。

恶意更新的技术手法

攻击者几乎删除了包内所有原始文件,仅保留 __init__.py 和 example.py,并添加了从远程服务器下载可执行文件(Updater_1.4.4_x64.exe)的代码,通过 os.startfile() 启动。该可执行文件嵌入了 Nova Sentinel 窃取恶意软件,曾在虚假游戏下载网站传播。

供应链攻击的潜在影响

此次事件是通过受损的 PyPI 账户进行的供应链攻击。如果该包被广泛依赖,任何在依赖文件中未指定版本或使用灵活版本的项目,都会自动获取最新恶意版本。尽管该包下载量不高,但攻击模式值得警惕。

对开发者的防护建议

开发者应锁定依赖版本,避免自动升级;定期审查依赖包的活动状态,如发现长期未更新却突然发布新版本,需保持警惕。同时,关注 PyPI 的安全公告,及时移除可疑依赖。

❓

Q&A

django-log-tracker 软件包发生了什么异常?

django-log-tracker 是一个在 PyPI 上休眠了两年的软件包,最近被恶意更新,用于传播 Nova Sentinel 恶意软件。恶意版本 1.0.4 在发布当日被下载了 107 次,目前该软件包已无法从 PyPI 下载。

攻击者是如何通过 django-log-tracker 传播恶意软件的?

攻击者入侵了开发者的 PyPI 账户,上传了恶意版本 1.0.4。该版本会从远程服务器(45.88.180[.]54)获取一个名为 Updater_1.4.4_x64.exe 的可执行文件,并使用 Python 的 os.startfile() 函数启动它,该可执行文件嵌入了 Nova Sentinel 窃取恶意软件。

Nova Sentinel 恶意软件是什么?

Nova Sentinel 是一种信息窃取恶意软件,曾在 2023 年 11 月被 Sekoia 首次记录,当时它以虚假 Electron 应用程序的形式在提供视频游戏下载的虚假网站上传播。

这次攻击对依赖 django-log-tracker 的项目有什么影响?

如果项目将 django-log-tracker 列为依赖项,并且没有指定版本或指定了灵活版本,那么它们会获取到最新的恶意版本,从而可能被植入 Nova Sentinel 恶意软件。

django-log-tracker 软件包之前的下载情况如何?

自 2022 年 4 月首次发布以来,django-log-tracker 已被下载了 3866 次,但其 GitHub 存储库自 2022 年 4 月 10 日以来没有更新过。

这次 PyPI 软件包恶意更新事件有什么特殊之处?

这次事件特殊之处在于,攻击向量似乎是通过一个受损的 PyPI 账户进行了一次供应链攻击,如果该软件包是一个非常流行的包,那么任何依赖它的项目都可能受到影响。

🏷️

标签

➡️

继续阅读