开发人员应用软件安全编码的最佳实践

日期: 2012-04-12 作者:茫然 来源:TechTarget中国

信息安全并不仅仅是保护计算机、网络、信息免受攻击和危害。应用软件缺乏安全性日益成为许多企业的一种巨大漏洞!   无论是软件开发者,还是安全专家,在与攻击者斗争的过程中,永远不可能一劳永逸地解决安全问题。因为攻击者往往富有创造性并且坚忍不拔,还有金钱的巨大诱惑。除了利用操作系统的漏洞之外,攻击者还喜欢利用应用软件的漏洞,而软件工程师们似乎忽视了这一点。

  软件安全的目标是什么?是构建更好的、无缺陷的软件。一般情况下,应用软件都会存在许多缺陷,其中的相当一部分都成为安全问题的源头。在开发软件时,将安全性牢记在心,有助于应对风险并挫败攻击;在成功的攻击面前,这样做也有助于更快地从灾难中恢复过来。 ……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

信息安全并不仅仅是保护计算机、网络、信息免受攻击和危害。应用软件缺乏安全性日益成为许多企业的一种巨大漏洞!

  无论是软件开发者,还是安全专家,在与攻击者斗争的过程中,永远不可能一劳永逸地解决安全问题。因为攻击者往往富有创造性并且坚忍不拔,还有金钱的巨大诱惑。除了利用操作系统的漏洞之外,攻击者还喜欢利用应用软件的漏洞,而软件工程师们似乎忽视了这一点。

  软件安全的目标是什么?是构建更好的、无缺陷的软件。一般情况下,应用软件都会存在许多缺陷,其中的相当一部分都成为安全问题的源头。在开发软件时,将安全性牢记在心,有助于应对风险并挫败攻击;在成功的攻击面前,这样做也有助于更快地从灾难中恢复过来。

  负责软件开发的项目管理者需要认真考虑其开发团队的知识、技术、技能、能力。构建安全的最佳途径是在编码和测试时就考虑应用软件的安全性。那么,有哪些成熟的做法可有助于软件开发安全呢?

  1、培训软件开发人员,实施特定语言的安全编码实践并确保其应用。

  2、使用静态分析和其它的代码分析工具来执行源代码的检查。

  3、理解软件安全测试与传统的软件测试之间的区别,并将其反映到软件测试中。

  4、执行基于风险的安全测试,查找常见的错误、可疑的软件缺陷,并实施减轻风险的方法,确保其运行。

  5、使用一种确定的过程,确认安全需求的原因、安全需求的分类、安全需求的优先级等内容,根据优先级的高低解决安全问题。

  6、利用威胁建模和攻击模式来确认安全威胁。攻击模式包括发动攻击的先决条件、相关漏洞、执行攻击所要求的技巧和资源等。

  7、执行架构风险分析,评估架构和设计满足安全需求的能力,以及从相关威胁中的恢复能力。

  不管从哪里开始,下面的方法对于开发安全的软件总是有帮助的:

  1、在确定架构、进行设计和实施、测试、部署应用软件的过程中,选择并将安全实践(如上面所描述的)集成到现有的软件开发过程中。将安全性纳入到软件开发过程中并不是完全推翻现有的过程,而是加入健全的安全实践和方法。应对安全问题,需要与软件工程人员解决性能和可靠问题一样。

  2、像攻击者一样思考。除了考虑应用软件的功能、特性,还要思考应用软件应当做什么,不应当做什么,考虑应用软件如何才能更好地对抗攻击,或在遭受攻击后进行恢复。

  3、安全是一个风险管理问题。在每一个软件的生命周期中,开发人员和测试人员必须评估和减轻最高级的漏洞和风险。随着应用软件的设计、开发、测试、部署,风险及其优先级也会发生变化。风险管理方法的实施依赖于应用软件的特征。例如,对一个集成系统的风险分析和评估,就与评估商业级应用软件或评估一个基础架构的组件的风险的需求不同。

  每家公司在开发每个项目时,都要根据自己的目标、限制条件和应用软件的重要程度,在开发过程中选择并调整自己特定的安全实践和方法,而不要一味地追求速度和性能。

作者

茫然
茫然

暂无

相关推荐

  • 敏捷开发时代:软件安全测试需更灵活

    持续的测试方法已经日益重要,其动态性就像新的开发过程一样。幸运的是,企业越来越明白这种不断增长的需要,并且重新思考整个过程……

  • 关于软件开发安全的CISSP秘籍(二)

    对于软件问题,最好的办法是在一开始构建软件开发安全流程。然而,软件程序通常将功能摆在首位,而不是安全性。事实上,从一开始将安全构建到每个软件中要比随后增加安全性更为有效。

  • 关于软件开发安全的CISSP秘籍(一)

    对于软件问题,最好的办法是在一开始构建软件开发安全流程。然而,软件程序通常将功能摆在首位,而不是安全性。而其实,从一开始将安全构建到每个软件中要比随后增加安全性更为有效。

  • 为何Java序列化漏洞并未被修复?

    据我所知,Java序列化漏洞一年多前已被披露,它由一位安全研究人员在PayPal的服务器中发现。那么,这是个什么样的漏洞,为什么它还未被修复?攻击者是如何利用它的?