写点什么

新思科技凭借 Coverity Scan 帮助 NGINX 确保代码质量和安全

发布于: 41 分钟前
新思科技凭借Coverity Scan帮助NGINX确保代码质量和安全

新思科技(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 的代码分析。”

 

用户头像

还未添加个人签名 2020.11.13 加入

还未添加个人简介

评论

发布
暂无评论
新思科技凭借Coverity Scan帮助NGINX确保代码质量和安全