现在,软件产品迭代地越来越快,代码量越来越大,向外暴露的接口越来越多,为漏洞攻击者留下了更多利用漏洞的机会。开发和安全团队需要借助可靠的自动化工具,尽量在软件开发生命周期 (SDLC) 的早期解决安全问题和质量缺陷,才能构建可信软件。
Visuality Systems Ltd. 总部位于以色列约克尼穆,是全球领先的服务器消息块 (SMB) 协议解决方案开发商和供应商。该解决方案是一种数据和打印机通信协议,可跨网络节点提供对文件和打印机的共享访问。 Visuality Systems 拥有超过 150 家客户,提供最全面的 Microsoft SMB 客户端和 SMB 服务器解决方案,用于各种嵌入式产品、基于 Java 的应用程序和存储系统。
挑战:代码质量和安全测试愈加严格
Visuality Systems自动化经理Limor Segal-Shevah表示:“软件安全是我们客户的优先事项,他们期望Visuality Systems等合作伙伴可以提供可信软件。Visuality Systems希望清楚地证明,我们的解决方案经过了严格的测试,以保护客户的产品和应用。”
Visuality Systems致力于开发 SMB 客户端和基于服务器的解决方案,主要客户包括消费设备、航空航天和国防、汽车以及工业和医疗设备领域的行业领导者。 Visuality Systems的 NQ 产品线是当今世界上最常用的商业 SMB 解决方案。
Limor Segal-Shevah指出:“无论是打印机、家用电器、Java应用程序、医疗设备还是汽车娱乐系统,我们的客户创建了运行在不同硬件和软件上的各种软件应用,并且每个应用都有特定的要求。”
Limor Segal-Shevah 补充道:“所有设备都需要网络连接,因为在当今世界,设备和应用程序不能单独运作。许多应用程序和嵌入式设备通过服务器消息块或SMB协议(Windows系统的默认标准)与后端Windows系统进行通信。网络漏洞可以让黑客有机会获得机密信息或使用系统进行攻击。”
她说:“软件漏洞通常是编码错误的结果,恶意攻击会利用代码中的漏洞。Visuality Systems开发人员需要主动的检测工具来发现他们编写的代码中的漏洞,以降低风险。”
解决方案:新思科技Coverity 静态应用安全测试
Visuality Systems已经在使用新思科技(Synopsys)的Defensics®模糊测试来识别运行代码中的漏洞,并在2019年添加了 Coverity®静态应用安全测试(SAST),以帮助其开发团队在软件开发生命周期的早期解决编码漏洞。Coverity是一个快速、准确和高度可扩展的静态分析解决方案,帮助开发和安全团队处理安全和质量漏洞,确保符合安全和编码标准。
凭借Coverity 静态应用安全测试,Visuality Systems开发人员可以在不中断正常工作流程的情况下扫描代码,以查找安全漏洞和质量缺陷。 开发人员可以通过选择Coverity的快速桌面、增量或完整分析模式,来确定分析的速度和深度。快速桌面分析和增量分析可以帮助开发人员在编码时发现漏洞,这些漏洞最容易发现,也最容易修复。Coverity的完整分析模式与构建/CI工具集成,如果缺陷违反了安全或质量规定,则构建失败。DevOps团队可以根据不断变化的需求来调整和管理代码分析。
Coverity已集成到Visuality Systems的CI/CD流程中。公司使用Bitbucket和Jira Cloud为软件团队管理他们的工作流程,并动态显示在pull-request构建中发现的新问题的信息。Coverity 通过 Python 和 Jenkins CI 集成到构建流程中。 编写的每一段代码都由 Coverity 检查,并且在 Coverity 通过之前不能合并到开发的主分支中。 当第一次检测到漏洞时,负责的开发人员会在 Slack bot 中收到失败通知,修复问题,然后将代码推送到云端,从而触发新的pull-request构建。 循环往复,直到成功编写出安全、优质的代码。
Limor Segal-Shevah赞赏道:“新思科技的Coverity 是一个强大的工具,可以帮助 Visuality Systems 不断改进产品,并最终编写出更优质、更安全的代码。”
成效:更健壮的代码,更高的客户满意度
Visuality Systems的代码质量和稳定性都有所提高。Visuality Systems在软件发布之前就已经解决了代码缺陷和漏洞问题。而不是等到客户发现了问题,反馈至公司,然后来来回回进行修复。在编码开发过程中解决安全和质量缺陷,可以为客户交付更健壮的代码。
Limor Segal-Shevah表示:“在我看来,Coverity最出色的地方在于能提供全面的信息,并拥有过滤这些信息的能力,例如识别优先级、风险和单个开发人员所有者等。我可以只看最新版本中发现的新问题;可以过滤掉我不需要的信息,只设置我想要的信息。非常便利。我们经常使用过滤功能,每当数据库发生变化时,也会使用通知功能。”