查看原文
其他

开源代码的最大风险:半日漏洞

GoUpSec 2024-03-26


对开源软件(包括其他IT系统)威胁最大的往往不是“零日漏洞”,而是那些已经披露,甚至已经发布补丁的漏洞。


Aqua Security最新发布的开源安全报告指出,越来越多的攻击者会利用开源项目漏洞披露流程的缺陷,在漏洞已经披露但尚未发布补丁之前收集攻击所需信息。


主要风险来自“半日”和“0.75天”漏洞


对于开源项目维护者来说,所谓“半日”漏洞,就是漏洞信息已经在GitHub或国家漏洞数据库上披露,但仍然没有官方修复补丁的漏洞。


“0.75天”漏洞则指那些已经有官方修复程序,但没有分配CVE编号或CPE标识符的漏洞,这意味着漏洞扫描工具暂时无法检测到IT环境中的易受攻击组件,安全团队也不知道需要安装补丁。


安全研究人员指出:攻击者会积极收集在公共平台(GitHub、NVD)上暴露或披露的“半日漏洞”或“0.75天漏洞”的蛛丝马迹,例如,攻击者可以在拉取请求、提交和问题中发现的消息和元数据中,找到对易受攻击代码的引用,使用公布的漏洞利用PoC(如果存在),甚至编写自己的漏洞利用。


有时,漏洞从“零日”(维护者不知情)切换到“壹日”状态(维护者已知晓,分配了CVE,并且通常有可用的补丁)之间的时间很短,攻击者在此期间开发漏洞利用实施攻击的风险很小。例如,Log4Shell的从公开漏洞披露到补丁发布的窗口约为10天(编者:PoC与补丁同一天发布,但依然造成了全球性的慌乱)。


值得注意的是,还有很多漏洞从披露到补丁的敞口可能长达数月,这给攻击者提供了充裕的时间。Kenna Security公司的研究显示,当漏洞利用PoC代码先于补丁发布时(约三分之一的漏洞属于这种情况),攻击者针对漏洞资产实施漏洞利用的时间,比防御者采取缓解措施止损的时间,要早三个月以上。


弥补开源软件漏洞披露机制的缺陷


“尽管没有具体证据表明攻击者正在积极利用(漏洞披露流程中的缺陷),但可以合理地假设攻击者可能会从开源项目中收集信息。他们可能会利用这些数据来更深入地了解这些项目并寻找潜在的漏洞。“研究人员指出:“有时,CVE在正式补丁发布之前就被上传到NVD,这在披露过程的生命周期中发生得太早了。”


Aqua Security的研究人员展示了如何大规模识别半日漏洞:“通过NVDAPI获取最近推送的CVE并搜索GitHub引用,我们可以检查NVD引用的提交(PR)在GitHub上是否有包含它们的版本。”


研究人员还发布了一个名为“半日漏洞监控器”的概念验证工具(https://github.com/Aqua-Nautilus/CVE-Half-Day-Watcher),不过提交或拉取请求是否包含有用信息的最终检查取决于用户。


半日漏洞监控器(CVE Half-Day Watcher)来源:Aqua Security


当然,研究人员开发半日漏洞监控工具并不是为了帮助攻击者。相反,是希望通过以下方式推动开源项目维护人员尽量减少或关闭攻击者的机会窗口:


  • 制定负责任的披露政策,概述漏洞管理的安全流程(如果他们还没有)

  • 利用GitHub的私有报告功能谨慎地管理漏洞

  • 定期扫描代码提交、问题和拉取请求以查找触发词,以防止漏洞过早披露。


END

相关阅读

微软Copilot涉嫌“盗版”开源代码,遭索赔90亿美元

针对开源代码库的攻击年均增长742%

主流大语言模型威胁检测能力评测:GPT4不敌开源模型

可用于生产环境的大语言模型开源安全工具:LLM Guard

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存