新思科技软件质量与安全部门高级安全架构师杨国梁表示,“安全不应该是在最后被叠加上去的一些辅助性的功能,而应该是整个系统的天然特质。因此要想获得安全的软件,必须与软件开发生命周期进行深度集成。”20世纪90年代末期,软件安全作为独立于计算机和网络安全的新学科开始蓬勃发展。研究人员开始投入更多的精力去研究程序员如何能为计算机系统保驾护航,或在无意间破坏其安全:哪些错误和缺陷引发了安全问题?如何系统地识别问题?
软件安全问题通常可以分为漏洞与缺陷,漏洞指编码过程中出现的问题,而缺陷指设计过程中出现的问题。据调查,目前漏洞和缺陷占比大约为50/50。此外,Risk Based Security也曾有报告指出,单单2018年上半年,业界就发布了 10,644 个漏洞,超过 2017 年同期的 9,690 个,其中有近 17%属于高危级别的严重漏洞。这些漏洞以及设计缺陷影响着软件的可靠性、可用性,以及软件中信息的保密性和完整性,有可能造成信息泄露等安全问题。
近年来,软件安全行业达成了一个新共识:企业仅凭一己之力是无法创建安全软件的。要想实现软件安全,他们必须参与到软件开发流程之中,即使该流程不断发展演进也不例外。从那时起,软件安全公司便开始了解该流程,明白了仅凭开发者工具并不足以保证软件安全。
软件安全还涉及到业务、社会和组织层面。企业需要建立为构建安全软件而开展的所有活动,即“软件安全计划”(SSI)。
对此,新思科技软件质量与安全部门高级安全架构师杨国梁表示,“安全不应该是在最后被叠加上去的一些辅助性的功能,而应该是整个系统的天然特质。因此要想获得安全的软件,必须与软件开发生命周期进行深度集成。”
目前,针对软件安全性问题的解决方案有很多。大体分为两大类,一种是以微软SDL为代表的“指导性”模型。一种是新思科技BSIMM(软件安全构建成熟度模型)“描述性”模型。所谓指导性模型是指,在软件开发的每一个阶段提出相应的安全活动和规范,即告诉你每一个阶段“应该做什么”,从而提高软件产品的安全性。
SDL每阶段内容
而描述性模型并不是一个指导方案,它只进行事实陈述,告诉你“发生了什么”,即此模型会对你的企业进行评估,描述标记你的企业进行了哪些活动,与同行业相比,你们公司处于怎样的位置,描述性模型不会进行价值判断。杨国梁称其为“一个收集优秀实践、反应市场真实性的模型。”基于这样的特质,描述性模型可以评估各种各样的指导性模型。杨国梁认为,指导性模型是企业必备的,尤其是些中小企业,但是在使用指导性模型之后,还是需要BSIMM这样的描述性模型去评估这些活动到底开展的如何。对于小企业或是初创企业来说,使用描述性模型,可以让一个“学渣”巧妙地了解到“学霸”们都在“偷偷”开展些什么活动,没准稍不留神就获得了很多有启发性的想法,从此成就一番霸业。
BSIMM模型发展至今已经有了10年的历史,10月25日新思科技发布了BSIMM模型第十版,即BSIMM 10。在过去的十年里,新思科技采用BSIMM对185家公司进行了约450次评估,第十个版本反应了观察到的122家公司的软件安全活动,包括的数据是从真正建立SSI的公司收集而来,量化了119项活动来展示各个公司计划的共同以及不同之处。
BSIMM 10相较于之前的版本强调了DevOps对软件安全计划的影响、工程导向的安全工作的新浪潮,以及公司如何在软件安全成熟度的三个阶段前行。BSIMM模型经过10年的发展,其数据池已从最初的9家增加到如今BSIMM 10的122家企业,对于行业情况的反应越来越全面。在保证样本新鲜度方面,新思科技采取不断更新参与企业名单的方式,剔除时间超过36个月的评估结果。对越来越少被观察到的活动,在经过慎重考虑后进行降级处理。同时增加新的频繁被观察到的活动。由此看来,BSIMM模型更像是一个“活”的模型,始终尽可能快地反映着市场的真实情况。资料显示,2018年年初,华为云曾在BSIMM的安全评估中获得了高分。
新思科技首席科学家Sammy Migues曾说过:“领导一个有效的软件安全计划是富有挑战性的,而DevOps和CI/CD带来的巨大技术和组织变革并没有使这项任务变得更加容易。作为不断发展以反映全球数百个软件安全小组的经验的工具,无论你是刚刚开始软件安全旅程,还是寻求优化程序或者应对新的挑战,BSIMM以及社区都是宝贵的资源。”
软件安全对于软件的设计者而言是十分重要的事情,众所周知,如果在软件实际开发出来后发现安全问题,再进行修补甚至推翻重来代价十分高昂,因此将“安全”深度集成到软件开发的生命周期中是必要的。借助于新思科技BSIMM模型,希望我们的软件安全问题能够得到进一步的改善。
相关文章