Trellix自动化大规模修复开源漏洞
Charlie Osborne
2023年1月26日 13:52 UTC
更新:2023年1月26日 13:55 UTC
Trellix借助自动化工具加速修复过程,已修补超过61,000个开源项目中的一个严重Python漏洞。
去年,Trellix高级研究中心团队偶然发现Python的tarfile模块中嵌入了一个存在15年的漏洞。该漏洞被追踪为CVE-2007-4559,描述为路径遍历问题,导致“用户辅助的远程攻击者”能够通过“TAR存档文件名中的..(点点)序列”覆盖任意文件。
背景:2007年的Tarfile路径遍历漏洞仍存在于35万个开源仓库中
据Trellix研究员Douglas McKee称,虽然这个安全漏洞在2017年被报告,但“未被检查”或未解决。结果,该漏洞被无意中包含在大约350,000个开源项目中——并且在许多闭源项目中被认为“普遍存在”。
然而,根据1月23日的一篇博客文章,Trellix一直与GitHub合作以遏制这个漏洞——当这么多项目易受攻击时,这是一项艰巨的任务。
这家网络安全公司表示:“易受攻击的tarfile模块包含在基础Python包中[…]如果没有Python的直接修复,它也会牢牢嵌入许多项目的供应链中。”
由Kasimir Schulz和Charles McFarland领导的这个长达数月的项目专注于自动修补包含易漏洞代码的开源仓库。
批量拉取请求策略
灵感显然来自Jonathan Leitschuh在DEFCON 2022的演讲,该演讲讨论了使用自动化批量拉取请求生成作为修复开源漏洞的可扩展方法。
Trellix和GitHub将过程分为两个阶段,两个阶段都是自动化的,只需要执行,质量控制和接受则由项目所有者负责。
第一步是开发补丁本身。Trellix获取包含关键字“import tarfile”的仓库和文件列表,然后使用Creosote克隆和扫描每个仓库。
McKee解释说:“如果一个仓库被确定包含漏洞,我们修补文件并创建一个包含修补文件的本地补丁差异,以便用户可以轻松比较两个文件、原始文件以及一些关于仓库的元数据。”
在拉取请求阶段,网络安全团队创建仓库分支,克隆它们,如果原始文件没有更改,则用修补版本替换原始文件。实施此检查是为了确保修补替换避免忽略或覆盖项目代码的最新添加。
最后,提交文件,生成拉取请求,并发送一条消息解释分支,并要求所有者接受或拒绝更改。
扩大规模
Trellix高级研究中心的漏洞研究员Kasimir Schulz告诉The Daily Swig,Creosote和修补程序可以在几秒钟内一起执行仓库扫描、检测错误并应用补丁——而即使是最熟练的开发人员在没有工具帮助的情况下也需要几分钟才能完成相同的操作。
Schulz指出:“虽然这种差异对于少数仓库来说并不重要,但随着规模的扩大,可以很快感受到。”
通过GitHub,Trellix团队迄今已修补了61,895个开源项目。
Schulz表示,最近在ShmooCon上的讨论为在Python本身中修补该漏洞创造了“新动力”,甚至可能“为修复提供经济奖励的可能性”。
Schulz总结道:“软件和供应链变得越来越复杂。有更多人和公司构建大量不同的软件。因此,试图减少攻击面是一场必输的战斗。相反,我们应该专注于通过自动化工具审计我们自己的供应链,保护攻击面,而不是在一场无法获胜的战斗中浪费时间。”
您可能还喜欢 Git安全审计揭示严重溢出漏洞