专栏首页云计算D1net如何在开发生命周期之初改善软件质量

如何在开发生命周期之初改善软件质量

先人一步的企业正开始采用安全编程方法和工具,在软件开发生命周期的早期阶段处理安全问题。MaaS360 by Fiberlink公司的信息安全官David Lingenfelter说:“如果企业组织在软件开发生命周期的早期阶段采用安全编程方法,安全问题就比较少。”

对大多数云软件产品而言,开发和部署的节奏非常快,以至于如果在开发生命周期的开始阶段不兼顾安全,代码发布后,如果继续进行安全测试,随后会发现需要解决的问题。“这导致了第二次重大调整,没有采用安全编程方法的公司不得不发布更多的安全代码补丁,数量比改善产品的代码变更还要多。”

实施安全代码审查

一个合理的做法就是,一开始就执行安全代码审查。这有助于缓解新安全漏洞的一些威胁,无论是净化数据还是核实输入。这还可以帮助开发团队确立一套合适的安全编程方法,从而有助于尽量减少风险部位。此外,如果采用安全编程方法,发现和审查新安全漏洞的工作就不会沦为事后诸葛亮。

云应用程序和服务极具竞争力,而云的本质就是能够迅速变化、适应。这就需要迅速改变云服务,以便与对手不相上下,或者领先对手一步。Lingenfelter说:“一大挑战就是,安全的本质就是增加了开销,因为它延长了开发周期。”

这在传统老牌企业可能是个比较大的挑战。在项目启动后整合安全,甚至在生产环境中整合安全会给现有环境带来极大的破坏。这是由于,一开始可能会发现许多问题需要解决,不仅仅是代码方面,还有可能是整个流程方面。需要得到管理层的认可,才能面对这一现实:给开发生命周期增添安全将会在整个流程中增添一些障碍。这可能会阻碍或者延长升阶周期。别试图一下子实施所有安全做法,而是要逐渐分阶段实施。

将安全外包给PaaS

平台即服务(PaaS)提供商OutSystems公司的产品战略主管Sean Allen问道:“即使你让开发人员重视安全,但是如果你迫于赶期限,最初注意的事项有哪些会在开发周期的后期阶段也会注意到?要是根本没有一套严格的程序,最初注意的事项(比如安全)就会被忽略,因为你要么没有时间,要么认为这并不重要,或者是不想因浪费人才而分心。”

一种办法就是考虑采用合适的应用程序快速交付(RAD)平台。这有助于赶在最后期限前完工,可以处理开发安全应用程序的大多数繁琐事务。现代的RAD平台可以自动将安全纳入到开发的应用程序当中。

Allen说:“借助合适的基于云的安全RAD平台(作为PaaS来提供),你就让能自己准备好迎接最终的成功。你不仅一开始就奠定了安全基础,而且你开发的应用程序一开始就考虑到了安全。”

使用云端代码分析

就在不久前,企业组织要想确保其应用程序的安全性,还不得不购买成本高昂的软件包,并且安装在企业内部。Brian Russell是全美安全、健康和工程解决方案公司Leidos专门负责网络安全解决方案的工程师,他说:“如今,静态代码分析、动态代码分析和Web应用程序安全测试之类的工作现在可以通过云来实现,作为按需提供的服务。”他还负责云安全联盟(Cloud Security Alliance)的安全物联网项目。

IBM和惠普等传统的软件质量保证开发商分别通过各自的AppScan和Fortify产品线来提供这项服务。还有一些更新颖的方案,借助众包专家来审查代码,并提供发现的软件缺陷方面的报告。BugCrowd就是这方面的一个典例。Russell解释:“这些服务意味着,企业组织可以有效地外包这些关键的安全职能,不过有必要指出,企业自身仍然需要具备软件开发方面的专长。”

SDLC期间的不同活动

Russell建议,一个好的做法就是明确划定周期中每个阶段的安全活动。在软件设计阶段,确保执行威胁建模工作,发现代码的高价值方面,了解数据流动情况,并深入了解某人有可能如何滥用应用程序。

在开发阶段,充分利用安全开发最佳实践,比如代码安全审查。Russell补充说:“采用结对编程之类的做法也是明智之举,这同时带来了功能和安全方面的好处,如果之前已有所投入,训练开发人员掌握安全编程做法,更是明智。”

新代码进入到整合阶段后,就要充分利用持续整合(CI)软件来整合代码,并且定期测试以查找软件缺陷。在软件开发生命周期(SDLC)的这个环节,适合使用基于云的软件保证服务,其中许多服务直接整合到CI环境中。还有一些服务(比如Veracode提供的服务)可以对二进制代码执行静态分析,而不是非得提供整个代码库。Web应用程序部署后,继续使用基于云的服务,这些服务可以定期扫描,查找运行中软件所存在的安全漏洞。

Russell提醒道:“与软件配套的安全基础设施不应该在最后扩充上去了事。就最初的架构和实施而言,网络防火墙、Web应用程序防火墙和身份管理系统应该是设计的一部分。”在过去,由于这些安全硬件设备需要高昂成本,很难将这种安全基础设施部署到开发环境中。

安全厂商们正开始摈弃资本成本高企的安全硬件设备,改用可以迅速部署、价格灵活的虚拟安全设备。这让安全得以一开始就在云端成为开发流程的一部分。随着开发人员编写软件、扩建系统,虚拟安全环如同虚拟安全设备那样已经实施到位。Russell建议:“务必要与支持真正的动态云环境的安全厂商合作,那样才能够无缝、低成本地搭建安全基础设施,以支持整个软件开发生命周期。”

本文分享自微信公众号 - 云计算D1net(D1Net02),作者:布加迪编译

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-06-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 云安全合作生态链正经历一个服务价值重塑的过程

    在全球化互联互通趋势下,统一整合的一体化数据安全成为热点。此潮流正在推动信息安全向应用安全时代转变。中国安全市场将成为除美国以外全球最大的安全市场。 2014年...

    静一
  • 未来三年或是云安全服务蓝海

    云计算成为近十年来成长最快的一种IT技术,但是随之而来的也有很多问题,比如安全。对于企业级来说,安全是个不可逃避的话题,如何将云计算这种弹性、可扩展的资源池型产...

    静一
  • 云安全:这也是需要花大钱去建设的部分

    随着企业越来越重视云计算的使用,安全问题也愈发受到关注。对于一些销售云服务的人来说,这可能会让他们感到意外,因为云计算本身比传统的内部IT基础设施更安全,不过这...

    静一
  • 腾讯云安全专家 Killer 告诉你,企业上云怎么做更安全

    近年来,数据泄露事件频频发生,网络敲诈勒索也正在成为“黑产”掘金之道。一旦发生此类安全事件无论对用户还是企业来说都是巨大的损失。技术人其实应该可以把好第一道关,...

    腾讯技术工程官方号
  • 安全从业者,该凭什么赢得你的尊严

    前天,我写了一篇《赚了20亿美元GandCrab勒索病毒家族的故事》,其实里面还有很多内容我没有提及,在文章的最后,我留下了两段话:

    用户5878089
  • 如何构建高效协同的企业级重保体系?答案在这里!

    近年来,企业级安全建设面临混合云、DevSecOps、零信任体系、敏捷开发要求等综合复杂场景引入,安全问题出现了不同于以往的新形态。如何在新形态下做好IPO等关...

    腾讯安全
  • 【企业安全】企业安全架构建设

    aerfa
  • 谈谈开展信息安全工作的四个权力

    很多刚独立开展安全工作的小伙子本身技术都很好,但是初始做一个人的安全部容易莽撞。笔者尤其记得第一次接触甲方安全岗位时,领导面试问到:“为了公司安全建设,...

    糖果
  • 如何成为一个安全架构师

    如何成为一个安全架构师,安全架构师需要什么样的能力?首先要理解什么是安全架构,安全架构包含哪些组件,如何将这些安全组件合理的组织在一起形成一定的战斗力,这是非常...

    信安之路
  • 来谈一谈你对安全的理解

    在不同的学习阶段以及不同安全岗位对于安全的理解是不一样的,知识星球新推出一个作业功能,我在知识星球提出了一个作业也就是一个问题,问题如下:

    信安之路

扫码关注云+社区

领取腾讯云代金券