减少软件开发bug数的策略- 软件开发安全- TT安全- TechTarget中国
正在加载数据...

【TechTarget中国原创】作为软件开发团队的成员,你将如何采取什么方式来减少编码中出现的bug?

  SANS协会和MITRE公司上周更新了CWE/SANS 排名前25位的编程错误列表,焦点落在能够应用于安全开发周期中以避免多重安全bug的减灾技术。但有专家称虽然编码错误列表有助于改进软件开发进程,而在实际情况下让公司执行更加安全的软件开发过程是不太可行的,这会……

【TechTarget中国原创】SANS协会和MITRE公司上周更新了CWE/SANS 排名前25位的编程错误列表,焦点落在能够应用于安全开发周期中以避免多重安全bug的减灾技术。但有专家称虽然编码错误列表有助于改进软件开发进程,而在实际情况下让公司执行更加安全的软件开发过程是不太可行的。Veracode的合作创始人兼首席技术官Chris Wysopal说,这会加重开发者的负担,然而很多公司可以小幅度地向软件开发进程中引入安全要素。Wysopal作为一位安全软件编码者帮助创建了{dy}个安全研究智慧库L0pht Heavy Industries,它之后加入了咨询和研究机构@stake,2005年Symantec将其收购。

  问:如果你是小型软件开发团队的成员,你将如何应用这些编码错误示例?

  Chris Wysopal:我认为有两种方式使用这一25大编程错误列表(简称top 25)。如果你在做测试,在你提交软件或部署之前,你可以确保所有出现于top 25中的易错点均经受了测试。确保你拥有软件开发工具,手动进程或其他的技术可供测试。自动化会更好。对于开发者来说,软件的设计人员和开发人员都应当对照top 25,并确保他们使用了那些技术,这样会防止软件中出现多种漏洞。你必须有预防措施,并进行测试。

  问:软件开发的速度和项目完成的期限是否会使防御技术和测试的应用更加困难呢?

  Wysopal:事实上,安全软件{zd0}的障碍是遵照进程按部就班地工作。我们有这些列表,我们知道哪些错误不能犯,我们有减灾列表来防范安全错误。现在还出现了很好的静态和动态测试工具。我们面临的挑战在于大家都试图不影响开发的进程,不延误开发的时间或让更多的人加入其中。我认为,挑战在于我们该如何以轻量级的方式插入信息并测试开发的进程,而且仍然能让软件如期完成。这是软件行业如今面临的真正挑战。

  问:软件开发工具变得更加容易检测漏洞,但与此同时,他们是否给开发团队带来了更多的压力,让他们改正错误,并由此带来更多的问题?

  Wysopal:要求他们xxtop 25中列出的所有错误会是个挑战。Veracode没有为我们的软件提供黑白评级系统。只是对于{zg}保证级的软件(我们将其称为五级重要业务软件)才必须xxtop 25中列出的所有错误。当然,对于业务级别不太重要的软件,如果不是运行股票交易或开飞机,标准自然可以降低一些。你不能把要求定得千篇一律。所以我建议对业务性要求不太高的行业软件可以适度放松要求。

  问:几年的时间里,Hewlett-Packard收购了SPI Dynamics,IBM Internet Security Systems收购了Watchfire,微软开始真正推进安全软件的开发,环境是否会发生巨大的变化呢?

  Wysopal: 三年半前我在Veracode的时候,我们告诉潜在客户要在软件开发周期中进行静态分析,很多人那时并不知道这一概念。他们不理解为什么要在软件开发的时候考虑安全问题。微软和其他的一些大型公司意识到了这一问题,但95%的软件开发者都用异样的眼光看待我提出的这一问题,然而如今情况已经发生了很大的变化。我认为开放式网页应用程序安全项目OWASP Top 10,top 25以及向开发人员讲述这一问题的其他方式已让他们意识到:如果在软件开发过程中不作质量检测,就会造成产品出现漏洞。我发现客户也意识到了安全的重要性,他们会敦促开发人员注意这方面的问题。

  问:这种意识已上升到了商业层面了吗?

  Wysopal:在某些行业已出现了变化,例如金融和政府。当这些组织开展内部软件开发时,他们会进行外包或购买一些种类的定制软件;他们知道必须对开发团队在安全性能上提出一定的要求,因为如果不这样的话就不会安全。

  问:旧版软件是否带来了许多重大问题?开发团队又被迫检查过去的软件,而这类软件有些是没有源代码的?

  Wysopal:这是个很大的问题。微软的Michael Howard称,软件版本越早安全性方面的bug就越多,因为后辈们在平台级别、语言级别或使用到的库方面都不够理解,没有人还会考虑其安全性。所以说软件版本越旧,问题也越多。这是一个很大的挑战,因为我们的软件开发都是建立在旧代码的重用基础上的。任何软件都是需要基础支撑的,除非是在全新的平台上或完成全新的任务时才有可能从底层开始。许多的业务中都会出现代码重用。库的共享或仅仅重用任务流程。如果你要保障应用程序的安全性,你不能忽视新代码之外的旧代码重用部分。你不能要求你的开发人员保证写出来的每一行代码都是安全的,因为那样只能解决一半问题。你还必须检查重用的旧代码中的问题。另一方面,公司内部可能运行着几年间都没有经过检查的软件包。它们会成为定时xx,公司{zh1}将不得不解决这些问题。

郑重声明:资讯 【减少软件开发bug数的策略- 软件开发安全- TT安全- TechTarget中国】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——