编写程序的最初期就引入安全的概念还处于起步阶段,软件业巨头微软公司在这方面做出了贡献,微软公司共享了其内部软件开发生命周期(Software Development Lifecycle)框架免费的模式和工具。Fortify和Cigital结合了目前市场上应用最为成功的九种不同软体安全标准的长处,研究人员还广泛的访问了包括EMC、微软、Adobe等知名软体厂商在内的25家厂商,从中吸取了很多软体安全领域的经验和教训,最终形成了构建安全的成熟模式(Building Security In a Maturity Model,BSIMM),现在金融服务公司开始在BSIMM中分析安全编码策略和方法。
但是在经济衰退预算紧缩的时期,目前还不清楚是否会有企业愿意投资于安全开发计划。Forrester研究公司和Veracode的调查发现,45%的公司表示,程序安全是他们整个安全策略的重要组成部分,但是他们会将该计划推迟到下一个预算周期。大约有18%的企业表示他们的程序安全资金预算将保持不变。
资金只是其中一个问题,调整应用程序卡法同样是企业文化上的大转变,BSIMM和OpenSAMM发起了安全代码编写的新格局,但是将这些概念在企业内广泛部署并不容易。
“这对于安全市场而言是好事,提高了应用程序开发的安全意识,但是企业会部署吗?这就像早期的网络漏洞扫描一样,有太多需要安全专家去部署,”Veracode公司的CEOMatt Moynahan表示,“这是个很难解决的问题。”
基于真实世界的安全软件开发情况,BSIMM建立了企业范围内软件安全项目的基准。DTCC公司的首席信息安全官Jim Routh表示,他们公司的内部安全开发计划为公司节省了劳动力和其他成本。“这些节省的费用可以用于更高价值的活动,”Routh表示,“我们的控制了在开发周期早期出现的缺陷和漏洞。”
但是Veracode公司(提供应用程序安全测试服务)的Moynahan表示,单靠BSIMM是不够的,我们需要的是应用程序安全开发产品能够进入大众市场,但是对于缺乏安全知识、资金有限的小型企业而言,他们真的回去部署这些最佳做法么?
另一个类似的模式,OpenSAMM(软件确保成熟模型)也在今日推出,这是一个开源模式,旨在成为行业内安全软件开发的标准。该模型由OWASP成员Prayir Chandra发起,OpenSAMM最初是由Fortify建立的,后来该公司帮助建立BSIMM。
这些建立安全程序计划的模型,以及国土安全局的Build Security In和其他,也可以作为检查标准,以确保开发更安全的软件,执行了更多的扫描工具和渗透测试。“我认为我们开始意识到应用程序需要对整个开发周期的各个阶段内进行大量投资,然而很多企业一直希望有更有效的方法能够解决这个问题,这些成熟模型的推出表明,还需要做很多工作。”ABN AMRO银行的技术安全评估副总裁Cory Scott表示。
良好的开始
Scott表示,像BSIMM和OpenSAMM这些模型,对于希望改变的企业来说,都是个好的开始。“这些是成熟模型,不一定是指令性的战略建议,”Scott表示,“安全应用程序开发需要有利的过程和组织结构,这也是这两个成熟模型的初衷。”
对于如何实现安全程序开发的战略在某段时间是有效的,如OWASP Top10、19 Sins of Software Security、SAFECode和其他项目等。“我认为有安全意识的项目经历可以采取成熟模型中的意见,向高层管理人员展示在软件成熟保证计划中可能存在的差距,应该在开发初期就引入安全概念。”Scottt表示。
但是采用这些应用程序计划的大型金融公司(如ABN AMRO和DTCC等)都只是例外,在为编写和运行更安全软件建立程序时,大多数内部开发人员都不太愿意。Mitre公司的主要信息安全工程师Steve Christey(同时也在参与CVE项目)表示,CVE数据显示,在主要软件产品中的漏洞(如微软公司的产品),已经变得越来越猖獗。
“大型供应厂商(如微软公司)的漏洞问题每个月都在发布,但是很难检测出这些漏洞,需要花费大量的时间和投资来发现这些漏洞。这也是衡量软件是否安全的依据之一,需要花费多久时间来找出软件中的重大漏洞。”
Christey表示,好消息就是这些很难发现的漏洞通常也很难被攻击者所利用,坏消息就是这使第三方应用程序成为攻击者的靶心,尤其是在Web 2.0环境,“Web 2.0在开发期间就从来没有考虑过安全问题,软件保证必须成为贯穿开发阶段的整体思路,但是很多第三方开发商没有走这条路。”
与此同时,像BSIMM这些模型也开始引起了安全代码开发社区以外的人们的关注。Cigital的CTO Gary McGraw表示,很多公司开始要求加入BSIMM模型,并且Financial Services Technology Consortium已经讲BSIMM作为金融公司的检验标准。国土安全局同样也有兴趣讲BSIMM加入其Build Security In计划的网站中,“BSIMM不是软件开发项目的处方,它是关于建设和衡量软件安全的模型。”
这也是让高层管理人员支持安全编码计划的途径,Fortify公司的Brian Chess表示,“有很多事情并没有设计写代码。”
. 那么,企业应该如何使用像BSIMM 和OpenSAMM这些资源呢?你需要搞清楚动机因素以及每种模型后面的主要思想,以确保适合你的企业。微软公司的第一个SDLC是以产品开发为导向的,他们的SDL优化模型也是如此,但是更加侧重于开发。而DHS十亿个政府保证模型。
虽然多个甚至是重叠的安全软件程序会造成一些混乱,但安全专家表示,在10年前,这方面的信息少之又少,希望企业们尽早运用这些成熟模型,帮助减少软件漏洞。