当前位置: 首页 > news >正文

Trellix自动化大规模修复开源漏洞,已修补超6万个项目

Trellix自动化大规模修复开源漏洞

Charlie Osborne
2023年1月26日 13:52 UTC
更新:2023年1月55日 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总结道:“软件和供应链变得越来越复杂。有更多人和公司构建大量不同的软件。因此,试图减少攻击面是一场必败之战。相反,我们应该专注于通过自动化工具审计我们自己的供应链,保护攻击面,而不是在一场无法获胜的战斗中浪费时间。”
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
公众号二维码

http://www.hskmm.com/?act=detail&tid=13189

相关文章:

  • 爆款游戏背后:尚娱如何借助阿里云 Kafka Serverless 轻松驾驭“潮汐流量”?
  • Vben Admin5.0 keepAlive缓存和onActivated未生效
  • 版本速递 | 华为云Versatile智能体平台 新增特性介绍(2025年9月发布)
  • JVM体系结构
  • PE程序常见脱壳方案
  • 基于二值化断裂裂缝的裂缝拼接算法
  • spring ai基于内存RAG尝鲜
  • 想自己做大模型备案的企业看过来【评估测试题+备案源文件】
  • 基于 IOCP 的协程调度器——零基础深入浅出 C++20 协程
  • Gitee PPM风险矩阵:数字化转型中的项目管理预警雷达
  • 同一个灰色,POI取出来却是白色:一次Excel颜色解析的踩坑记录
  • 坤驰科技携国产化MTCA解决方案,亮相大科学装置控制系统研讨会
  • 找出所有项目引用了哪些 NuGet 包、版本号、对应项目路径,并筛选出“同一个包名但版本不同”的情况。
  • PC与基恩士PLC通信的C#实现
  • Excel 表格技能
  • labelme标注后的json文件和原图同步按角度旋转
  • rk3588的ai功能和deepseek
  • EPSON L1300打印机清零教程
  • 「线性代数」矩阵运算与初等变换
  • 移动号码线上复机
  • Uni-App 使用android studio打包最新教程
  • tomcat CPU数量和线程数的关系
  • NASA运货飞船天鹅座再次推迟,航天任务为什么总是“彩排”不断
  • Centos系统切换为光盘本地源
  • 基于Hilbert-Huang变换(HHT)的模态分解与瞬时频率计算
  • NIO
  • python处理Excel单机小程序:匹数据,增强版VLookup
  • var sql 的不同用法
  • CF623B Array GCD
  • Python爬虫实现双色球历史数据抓取