您当前的位置是:  首页 > 资讯 > 国内 >
 首页 > 资讯 > 国内 >

新思科技凭借Coverity Scan帮助NGINX查找并修复代码中缺陷

2021-07-13 09:24:47   作者:   来源:CTI论坛   评论:0  点击:


  软件厂商期望在软件开发生命周期 (SDLC) 的早期发现和解决安全和质量缺陷。有效的工具可以帮助开发人员构建更好的代码,而不会减慢其开发和构建速度。他们期望快速准确的增量分析在后台运行,以尽量减少干扰,直接在 IDE 内为开发人员提供实时结果,包括 CWE 信息、补救指南和相关安全培训。
  NGINX背景介绍
  NGINX开源(发音为“engine x”)是全球最广泛的Web服务器之一,为Netflix、Hulu、Pinterest和GitHub等站点提供支持,凭借其高性能、稳定性、丰富的功能集、简单的配置和资源消耗低等优势而广受赞誉。 NGINX开源系列的其它成员包括NGINX JavaScript(njs),一个向NGINX添加JavaScript支持的模块; NGINX Unit,动态应用服务器,支持用Perl、Python、Ruby、Node. Js、Go、Java和PHP.njs编写的应用。
  所有三个NGINX开源项目的开发人员都使用新思科技Coverity Scan查找并修复其代码中的缺陷。新思科技(Synopsys)提供免费在线服务,并由与新思科技商业Coverity静态分析工具使用的一样的引擎提供支持,Scan可帮助开源开发人员识别代码缺陷,以便快速、轻松地进行补救。
  NGINX软件编写者兼联合创始人Igor Sysoev在2014年的一次采访中说:“我坚信开源的力量。NGINX是一个针对非常具体问题的实验,即如何在单个现有服务器上处理更多客户。原来这是一个普遍的问题。当意识到NGINX确实有助于提高Web性能时,我希望人们使用它,因此我将其设为开源。”
  NGINX开放源代码版本还可以用作反向代理、负载平衡器、邮件代理和HTTP缓存的Web服务器,为超过4亿个网站提供支持,其中包括Netflix、Hulu、Pinterest和GitHub等品牌。Igor Sysoev在2011年与合作伙伴共同创立了NGINX,以提供对NGINX 开源的正式支持,并提供商业版本NGINX Plus,该版本在NGINX 开源中增加了企业级功能。
  2019年,NGINX被应用安全和交付公司F5 Networks收购。如今,NGINX的开源项目家族包括njs(向NGINX添加JavaScript支持的模块)和NGINX Unit(动态应用服务器)。
  挑战:确保开源代码的质量及安全
  NGINX联合创始人兼工程副总裁Maxim Konovalov介绍道:“在创立NGINX不久之后,我们就将Coverity Scan集成到了CI / CD流程中。自2012年以来,我们每天都在提交NGINX构建工件。”
  Maxim Konovalov继续说:“在许多情况下,NGINX充当互联网前端,其安全性和稳定性对其用户至关重要。我的团队对提升代码质量孜孜不倦,并一直在寻找最佳实践和工具以改进代码质量。诸如Coverity Scan之类的静态代码分析工具为我们提供了很大的帮助。”
  NGINX将公司视为数百万个应用程序和网站的基础技术,并严格要求自己。代码质量和安全是NGINX企业精神的一部分。对于开发实践来说,有效的工具必不可少。
  解决方案:采用Coverity Scan进行静态代码分析
  人们通常认为大多数软件漏洞是因为恶意攻击,但其实不然,这主要是由于代码错误导致的。GitHub发布的2020年度安全报告“2020 State of the Octoverse”显示,GitHub从2019年到2020年发送警报的漏洞中,有83%是由于编码错误引起的,而不是恶意攻击。
  但是恶意攻击确实会利用代码中的缺陷,开发人员需要使用主动检测工具来发现他们编写的代码中的错误。静态分析根据一组编码规则检查源代码,以发现常见的编码错误。已在scan.coverity.com注册项目的开源开发人员可以免费使用这项服务,与新思科技的商业Coverity静态分析工具 所使用的引擎是相同的,该功能可帮助开源开发人员识别代码缺陷,以便快速、轻松地进行补救。Linux Foundation在2020年的一份开源贡献者的报告中指出,受访者“绝大多数都引用Coverity Scan和Clang安全检查器”作为主要静态分析工具。
  成效:扫描了658,000行代码,缺陷密度为0.02%
  2021年1月, Coverity Scan为NGINX分析了658,665行代码,并发现了各种代码缺陷,其中包括两个CWE Top 25缺陷。由于F5 Networks定期使用Coverity Scan,NGINX项目的缺陷密度(每1,000行代码的缺陷数)仅为0.02%。
  Maxim Konovalov赞赏道:“Coverity Scan为我们增加价值。我经常推荐Coverity Scan及其在代码提交中提供特定缺陷ID的功能。实际上,我是FreeBSD提交者小组的成员,我们也使用Coverity Scan进行FreeBSD的代码分析。”
【免责声明】本文仅代表作者本人观点,与CTI论坛无关。CTI论坛对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。

专题

CTI论坛会员企业