关注我们 带你读懂网络安全 近日,Trellix高级研究中心在Python的tarfile模块中发现一个存在长达15年之久的漏洞(CVE-2007-4559),全球数十万个开源和闭源项目受漏洞影响。研究人员警告说,这无意中产生了一个规模超大的软件供应链攻击面,大多数受影响的组织甚至都不知道。 据Trellix分析师透露,该漏洞是Python tarfile模块中的一个与路径遍历相关的漏洞,被跟踪为CVE-2007-4559,目前有超过35万个开源存储库存在该尚未修补的漏洞,使得软件应用程序非常容易被利用。 在9月21日发布的博客文章中,Trellix首席工程师兼漏洞研究主管Douglas McKee表示,有问题的代码库存在于多个行业的软件中——主要是软件开发、人工智能/机器学习和代码开发,也包括网络安全、IT管理和媒体等不同领域。 研究人员指出,Python tarfile模块是任何使用Python的开发项目的默认模块,目前广泛存在于AWS、Facebook、Google、Intel和Netflix创建的框架中,以及用于机器学习、自动化和Docker容器化的应用程序中。 该漏洞允许攻击者将文件提取到指定目录之外,同时攻击者也可以利用该漏洞执行恶意代码。 “今天,这个漏洞已被无意中添加到全球数十万个开源和闭源项目中,造成了巨大的软件供应链攻击面。”McKee说道。 McKee在帖子中写道,最近一次企业设备的路径遍历漏洞检查中发现Python tarfile模块表现异常,Trellix研究人员认为他们偶然发现了一个新的零日Python漏洞。然而,随着调查的深入他们很快意识到这个漏洞“年份久远”。 通过对GitHub的进一步挖掘,研究者发现在大约58.8万个存储库中,大约有287万个包含Python tarfile模块的开源文件。Trellix的分析结果发现,这些实例中约有61%易受攻击,研究人员据此估算有35万个易受攻击的Python存储库。 该漏洞能够逃避检查,在整个软件供应链中传播这么长时间的原因有很多。但McKee认为,将具体责任归咎于Python项目的维护者或任何使用该平台的开发人员是不公平的。 “尽管问题已经暴露,但我们首先要明确一点,漏洞CVE-2007-4559的问题不应该归咎于任何一方、组织或个人。”McKee写道。 由于像Python这样的开源项目是由一群志愿者而不是一个组织运行和维护的,因此更难及时跟踪和修复已知问题。 此外,“很多时候,安全使用库或软件开发工具包的API被看作是开发人员的责任。”McKee指出。 事实上,Python在Tarfile函数文档中明确警告开发人员注意目录遍历风险,不要“在没有事先检查的情况下从不受信任的源中提取档案”。但是,显然该警告并未阻止漏洞的持续存在和蔓延。 McKee补充说,加剧这个问题的原因是,大多数为开发人员提供的关于如何使用平台模块的Python教程——包括Python自己的文档和流行的网站,如tutorialspoint、geeksforgeeks和askpython.com——并未清楚指出如何避免不安全地使用tarfile模块。 McKee指出,这种差异使得漏洞被写入整个供应链中,这种趋势可能会持续数年,除非对该问题有更广泛的认识。 从技术层面分析,CVE-2007-4559是Python tarfile模块中的路径遍历攻击,它允许攻击者通过在TAR存档中的攐件名中添刚“..”序列来覆约学慠斋件。 Trellix漏洞研究人员Charles McFarland在周三发表的一篇博文中指出,实际的漏洞来自使用未经处理的tarfile.extract()或tarfile.extractall()的内置默认值的两三行代码。 “未能在调用tarfile.extract()或tarfile.extractall()之前编写任何安全代码来清理成员的文件会导致目录遍历漏洞,从而使不良行为者能够访问提䤺系统㈸怟跖憙聄。 攻击者起通用此漏洞,需要嚄斌仴名中添准。俥您廖分海通∸/”戶⸭\的)和“..”,将文件提卄勎险嬌篷取以夒%老Python的tarfile模圬送开寑而姆能够做到这䮢点。 Trellix漏洞研究实习生Kasimir Schulz在周三发表的博客文章中详细描述了利用该漏洞是多么“难以置信的容易”。(https://www.trellix.com/en-us/about/newsroom/stories/threat-labs/tarfile-exploiting-the-world.html) Schulz在他的文章中解释说,Python中的Tarfile包含多个不同文件和元数据的集合,这些文件和元数据后来用于解压缩Tarfile本身。TAR存档中包含的元数据包括但不限于文件名、文件大小和校验和等信息,以及文件存档时文件所有者的信息。 “tarfile模块允许用户在文件添加到TAR存档之前添鋘云选过滤噐ᆬ该过滤器)用于解析和修改文件的元数据,”Schulz写道:这使攻击者能够用短短六行代码创建他们的漏洞利用。 Schulz在他的帖子中详细解释了他如何使用该漏洞和一个名为Creosote的定制脚本(该脚本在目录中搜索并分析Python文件)在Spyder IDE中执行恶意代码,后者一个免费和开源的为Python编写的科学开发环境︋屇䀻了Windows和macOS䇑融壥程
Tarfile的漏洞再次凸显了软件供应链作为一个攻击面存在的严重问题,因为攻击者可以通过攻击广泛存在于多个平台和企业环境中的有缺陷代码来实施大规模恶意攻击活动。
类似的齯飶彏应因攻市崺繍搎很多案例䚋对霺惁净球㚄SolarWinds璌Log4j方漏毷参〃后項是2021《12耈上毬沫霴的在幁泛⼔用的Java日志工具中的䛊分布为Log4Shell的漏淹X规漏洞忛行交多次利用,并使数百万应用程序容易受到攻击,其中许多应用程序至今仍未修补。
最近,攻击者已经开始直接在开源代码存储库注入恶意代码并尝到甜头。这仾⁕毒化”代码可被利用来进行供应链攻击。事实上,Python项目此前已经遭受过类似攻击。
今年8月下旬,攻击者针对Python包索引(PyPI)的用户进行了首次网络钓鱼攻击,试图窃取用户的凭据,以便将恶意包加载到存储库中。当月早些时候,在一家安全供应商警告攻击者将恶意代码嵌入包安装脚本后,PyPI从项目库中删除了10个恶意代码包。
推荐阅读
网安智库平台长期招聘兼职研究员
欢迎加入“安全内参热点讨论群”
文僠づ源:GoUpSec
还没有评论,来说两句吧...