Python包索引(PyPi)中大约三分之一的软件包容易受到一个设计特性的攻击,该特性允许攻击者在计算机上下载时自动执行代码。
Checkmarx发现并于周五公布的这些发现,强调了像PyPi这样的开源软件仓库是如何越来越多地成为恶意行为者的目标和利用对象的。该公司表示,“我们发现大量的恶意软件包在安装时使用这种代码执行特性,以达到更高的感染率。”
Checkmarx供应链安全主管扎奇佐伦什坦(TzachiZorenshtain)表示,当开发人员从PyPi等软件仓库安装软件包时,大多数人都明白,安装任何与之相关的恶意代码也存在风险。
他在以色列接受SCMedia采访时表示:“当我们实际检查这种行为并寻找新的攻击载体时,我们发现,如果你下载一个恶意软件包ーー只要下载它ーー它就会自动在你的电脑上运行。所以我们试图理解其中的原因,因为对我们来说,下载这个词并不一定意味着代码会自动运行。”
另一款软件供应链安全管理平台UniSCA的调查显示,年截止目前在公共领域下载的软件包数量比去年增加了37.6%,但同时,这些未经审核的软件包中也可能包含大量恶意脚本,据估计,该比例可能不低于9%。
“也就是说,你每下载10个软件包,其中就有一个包含恶意代码或缺陷。”UniSCA团队称,“这对于个人和企业来说是一件非常头疼的事情,因为仅依靠人工审核很难一个一个将它们区分与进行隔离,最好的办法是使用类似UniSCA这种软件供应链管理平台,从源头开始就把控潜在风险,维护自身的软件资产安全。”
对于PyPi来说,这两个进程所需的命令运行一个名为pip的脚本,执行另一个名为setup.py的文件,该文件旨在为包管理器提供一个数据结构,使其了解如何处理包。该脚本和进程还由自动运行的Python代码组成,这意味着攻击者可以在下载该代码的任何人的设备上插入并执行该恶意代码。
事实上,这个特定的漏洞早在年就在GitHub上被提出来了,但是还没有被直接解决,因为这个漏洞更多的是一个软件如何经常从存储库下载和安装的特性,而不是一个bug,不能直接修补。
一位GitHub用户在年7月写道:“Python打包生态系统中的一个不幸事实是,任何与打包相关的事情都涉及到任意的代码执行。”
详见: