您的位置:首页 > 理论基础 > 计算机网络

软件漏洞---安全问题的根源

2005-07-11 12:35 344 查看
作者: Kevin Kernan
评论:大多数人都赞同,安全问题的最佳长期解决方案就是使软件本身更加安全可靠。
几乎每一个引起身分被盗、网络中断、数据丢失与网站崩溃的安全破坏都有一个根本的原因,即软件本身代码编写粗糙。
研究公司Gartner估计,有约70%的安全攻击发生在应用层;在发展阶段修补漏洞比在应用阶段修补漏洞要便宜很多。
在行业安全灾难的长期解决方案问题上,人们达成了广泛的一致,那到底是什么阻碍了这方面的进展呢?简单来说,问题主要在于安全与应用发展人员之间存在语言代沟。
在很大程度上,这个问题并没有引起人们的注意。许多组织并没有发现在开发人员与传统的安全人员之间存在的这一语言代沟。他们并没有意识到:让开发人员给一个已经在发展阶段的产品增加安全性,就像是让汽车制造者为一个已经投入生产线的汽车添加安全带、气囊、钢铁加固的,防翻车的车体一样不可能。这一做法忽略了这样一个事实,即软件开发只是一个过程,提高终端产品质量的唯一手段是在过程中不断改进。
安全专业人员想帮助开发者写出更完善的代码,但他们的唯一做法却只能是在这一问题上否决更多的软件。美国系统网络安全协会(SANS Institute)出版的研究(research)资料表明:黑客与病毒编写者正以公司用来保护计算机的产品为攻击目标。实际上,既然如微软这样的操作系统开发者似乎已经知道如何保护它们的产品,黑客正日益以防病毒软件为目标。
清楚地说,黑客现在正攻击保护我们软件的软件。
这是否意味着我们应该加上另外一个保护层呢?我们将要使用新软件来保护正保护我们软件的软件吗?
感到困惑,是吗?我们也是!
软件开发专业人员与安全专业人员的处境迥然不同。开发过程是一个步骤与任务都极端明确定义的过程,改变这一过程可能会导致产品开发或运输的延迟,这会让管理方、销售方甚至是股东相当不满。
开发组需要迅速将产品推向市场,并要不断为产品添加新特性,而不是写出更完善的代码。只有在高度引人注目的情况下,安全问题才会促使开发组采取行动在开发过程中对代码进行修订。许多开发者并不了解安全编码与测试的第一步,即将两行正确编写的代码放在一起,你就能发现新的易受攻击点。
软件行业需要在开发与安全之间找到协作的通用语言。软件行业必须制定一个标准,将安全过程、任务与产品整合成一个生命循环,以使破坏及对产品推出的时间的影响达到最小化。即使这一方法程式化,且要花时间去执行,标准的制定也是改善软件安全至关重要的一步。
如果我们想确实改变软件开发的方式,并提高最终产品的安全质量,这样的标准必不可少。
作者简介:
Kevin Kernan是在应用软件开发市场有着17年经验的资深人士,也是Secure Software公司的首席执行官。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息