新思科技(Synopsys)在Forrester Wave™发布的《2021年第一季度静态应用安全测试》报告中被评为领导者。在此次评估中,新思科技Coverity静态分析解决方案在“现有产品”类别中获得最高分,并且在“策略”类别中名列前三。多年来,全球许多企业和组织都采用Coverity,以降低安全风险、确保应用程序灵活性,并迅速向市场提供新功能。NGINX是其中一家。
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的代码分析。”
上一篇:Mendix预测Low-CodeOps将大幅提升IT运营效率
下一篇:借助 Sitara™ AM2x MCU革新实时控制、网络和分析性能
推荐阅读最新更新时间:2024-11-11 15:54
- 燃气表
- 使用 Analog Devices 的 LT3467AIS6 的参考设计
- LTC1798CS8-3 低功率、低电压电源基准的典型应用电路
- EVAL-AD7477ACB,使用 AD7477A、10 位、1 MSPS 高速、低功耗模数转换器的评估板
- EVAL-RS485HDEBZ,用于 ADM3483E 半双工 RS-485 收发器的评估板,采用 8 引脚 SOIC 封装
- NCV1117 1.0 A 低压降正可调稳压器的典型应用
- 使用 Microchip Technology 的 MIC2774N-XXBM5 的参考设计
- EVAL-ADAU1467Z,用于评估 ADAU1463 和 ADAU1467 SigmaDSP 音频处理器的评估板
- 使用 Diodes Incorporated 的 AP1509-12S 的参考设计
- DER-949 - 使用 InnoSwitch4-CZ PowiGaN 和 ClampZero 的 70 W 墙壁插座电源,具有 USB Type-C/A 端口