服务热线:400-710-8008

首页>>公司新闻 >> 行业动态>>GitHub发布年度Octoverse状态报告,指出发现开源软件中的漏洞平均需要四年以上的时间
详细内容

GitHub发布年度Octoverse状态报告,指出发现开源软件中的漏洞平均需要四年以上的时间

    本周三GitHub发布了年度Octoverse状态报告,报告中指出发现开源软件中的漏洞平均需要四年以上的时间。

    GitHub分析了45000多个仓库,以深入了解开源软件的安全性,以及开发人员在漏洞发现、告警和修复等方面的进度。


    上图是漏洞的完整生命周期,首先是查找漏洞,然后是创建补丁,接着是通知用户,最后是终端用户修复漏洞。

    一般情况下,研究人员需要218周才能检测到漏洞,然后社区需要2.4周的时间复现漏洞并创建补丁,接着要到10周后才会发布安全告警,最后终端用户还得花费一周时间解决漏洞。

    按照这个周期来讲,当前的开源软件中还存在着大量未被检测到的漏洞,发现漏洞的速度大大落后于引入的速度。专家表示,这是安全社区必须要解决的一个问题,有必要减少漏洞检测和修复的时间。

    漏洞可以直接或通过依赖关系影响软件

    代码易受攻击可能是因为它本身包含漏洞,或者是因为它依赖的关系中包含漏洞。

    GitHub表示:“绝大多数软件项目中都使用了开源组件,相互之间存在着依赖关系。开源软件的代码可以说是全球大部分经济的关键基础设施,这使得开源软件的安全性至关重要。”

    依赖关系指的是通过引用或被引用以使得软件包正常运行,GitHub上的大多数仓库都会引用至少一种依赖关系,其中JavaScript(94%)、Ruby(90%)和.NET(90%)占比最高。GitHub分析了每个仓库中每种包生态系统的依赖关系数量,若只看直接依赖关系,JavaScript最多(10),接着是Ruby和PHP(9)、Java(8)以及.NET和Python (6);然后还有可传递依赖关系,JavaScript包含的可传递依赖关系最多可达到683个。

    开源软件中大多数漏洞是由bug引起

    通过对521份安全报告(随机抽查)的研究分析,研究人员发现,有17%的安全事件与后门尝试有关,且绝大多数来自NPM生态系统包。

    后门是指被故意植入软件中便于利用的漏洞,是否具有恶意意图不太好判断,因为大多数后门是程序员为了方便调试而留出。用户是否能够信任开源软件,我们还是从数据上来看,据统计仅有0.2%的漏洞与直接恶意活动有关,这表明多数漏洞是由编译错误造成的。