领先的组织开始采用安全编程方法和工具来在软件开发生命周期的早期解决安全问题。FiberlinkMaaS360的信息安全官DavidLingenfelter表示:“如果组织在软件开发生命周期的早期采用安全编程方法,那么安全问题就会减少。”对于大多数云软件产品来说,开发和部署的节奏太快,如果在开发生命周期之初不考虑安全性,代码发布后,如果继续进行安全测试,就会发现需要解决的问题之后。“这导致了第二个重大转变,即不采用安全编程方法的公司必须发布比改进产品的代码更改更安全的代码补丁。”实施安全代码审查的一种合乎逻辑的方法是从安全代码审查开始。这有助于减轻新安全漏洞的一些威胁,无论是清理数据还是验证输入。它还可以帮助开发团队建立适当的安全编程方法,帮助最大限度地减少风险区域。此外,使用安全编程方法,发现和审查新安全漏洞的工作就不会事后才想到了。云应用和服务是最具竞争力的,云的本质就是能够快速变化和适应。这需要快速变化的云服务来匹配或领先竞争对手一步。Lingenfelter说:“挑战之一是安全性的本质是增加开销,因为它延长了开发周期。”这在传统老牌企业中可能是一个比较大的挑战。在项目开始后甚至在生产中集成安全性可能会对现有环境造成极大的破坏。这是因为很多问题可能一开始就发现要解决,不仅是代码,整个过程也是如此。管理层需要接受这样一个现实,即在开发生命周期中增加安全性会在此过程中增加一些障碍。这可能会阻碍或延长升级周期。与其尝试一次实施所有安全措施,不如逐步和分阶段实施。将安全外包给PaaS平台即服务(PaaS)提供商OutSystems的产品战略总监SeanAllen问道:“即使您让开发人员专注于安全,但如果您被迫在最后期限前完成任务,那么什么是将进入开发的初步考虑?”周期的后期阶段也有通知吗?如果根本没有一套严格的程序,最初的考虑(例如安全)就会被忽视,因为您要么没有时间,要么认为这不重要,要么不想浪费人才和分心。“实现此目的的一种方法是考虑合适的快速应用程序交付(RAD)平台。这有助于按时完成并处理开发安全应用程序的大部分繁琐工作。现代RAD平台可以自动将安全性融入您开发的应用程序中。Allen说:“有了正确的基于云的安全RAD平台(以PaaS形式交付),您就可以为最终的成功做好准备。”您不仅从一开始就为安全奠定了基础,而且从一开始就在开发应用程序时考虑到了安全性。“在云中使用代码分析不久前,如果组织想确保其应用程序的安全性,就必须购买昂贵的软件包并将其安装在本地。”BrianRussell,国家安全、健康和工程解决方案,Inc.专门研究网络安全解决方案的工程师Leidos说:“今天,静态代码分析、动态代码分析和Web应用程序安全测试等事情现在都可以通过云作为按需服务。他还领导云安全联盟的安全物联网计划。IBM和HP等传统软件质量保证开发商通过各自的AppScan和Fortify产品线提供此服务。还有更多新颖的解决方案,使用众包专家来审查代码并提供所发现软件缺陷的报告。BugCrowd就是一个很好的例子。Russell解释说:“这些服务意味着组织可以有效地外包这些关键的安全功能。然而,重要的是要指出,公司本身仍然需要具备软件开发方面的专业知识。SDLCRussell期间的不同活动表明,一个好的做法是清楚地描述周期每个阶段的安全活动。在软件设计阶段,确保执行威胁建模工作以发现代码的高价值方面,了解数据流,并深入了解某人可能如何滥用应用程序。在开发阶段,利用安全开发最佳实践,例如代码安全审查。Russell补充说,“使用结对编程之类的东西也很聪明,除了功能和安全方面的好处外,对开发人员进行培训也是明智的安全的编程实践,如果你之前已经投资过它们。“新代码进入集成阶段后,有必要o充分利用持续集成(CI)软件来集成代码,并定期测试以发现软件缺陷。在软件开发生命周期(SDLC)的这一部分,适合使用基于云的软件保障服务,其中许多直接集成到CI环境中。还有一些服务(例如Veracode提供的服务)可以对二进制文件执行静态分析,而不必提供整个代码库。部署Web应用程序后,它会继续使用基于云的服务,这些服务会定期扫描正在运行的软件中的安全漏洞。Russell告诫说:“软件附带的安全基础设施不应该是安全扩展的问题。网络防火墙、Web应用程序防火墙和身份管理系统应该是初始架构和实施方面的设计的一部分。”过去,由于这些安全硬件设备的成本很高,很难将这种安全基础设施部署到开发环境中。安全供应商开始放弃高资本成本的安全硬件设备,转而使用可快速部署、价格灵活的虚拟安全设备。这使得安全性从一开始就成为云中开发过程的一部分。随着开发人员编写软件和构建系统,虚拟安全环被实现为虚拟安全设备。Russell建议:“务必与支持真正动态云环境的安全供应商合作,这样你就可以无缝且经济高效地构建安全基础架构,以支持整个软件开发生命周期。”尽早关注应用程序安全
