当前位置:首页 > 行业资讯 > 软件安全开发保障不靠测试靠什么?
软件安全开发保障不靠测试靠什么?
作者:本无网络 来源:本无网络 发布时间:2019-08-29 13:52:31

软件编码规范和测试一直被认为是达到软件质量和安全性的重要手段。人们提出了一系列编码规范,希望能约束程序员的不良开发习惯并减少安全漏洞。


但是编码规范不是规避安全漏洞的充分条件,如果程序员不能真正理解信息安全,照样会写出完全符合编码规范但实际上安全漏洞很多的代码。

软件测试的实质根据软件开发各阶段的规范说明和程序的内部结构设计测试用例,并依次测试用例观察软件运行结果与预期结果是否一致。通常来说,软件测试的主要目的是检查代码编码的功能和性能的符合性,在测试中也可以检测出一部分软件安全漏洞,但是对于软件在需求和设计阶段存在的安全漏洞问题,软件测试时发现不了的。


一个典型例子是,假设某网络软件中网络传输的数据较为敏感,包括用户名、口令等,甚至还包括用户的银行账户,但软件的设计软硬未采用可靠的加密算法对网络传输数据进行加密,而是仅对这些数据进行简单的数值变化处理,如何某个固定值进行异或,这种“加密”手段保密性极低,很容易被黑客识破并“解密”。缺少安全经验的测试人员可能不会发现这种安全问题,他们只能证明该“加密”功能已经被正确实现。

软件安全开发期望在软件的各个阶段添加安全措施和安全手段,致力于从一开始就创建一个安全的软件,而不仅仅是软件的编码和测试阶段。


美国国家标准与技术研究所研究显示,如果软件开发企业能够在软件开发过程中更多地重视软件安全问题,并尽可能在软件开发生命周期的早起就发现软件中存在的安全漏洞,那么就能够节约大量的成本。在软件系统发布以后再修复漏洞,代价是最高的,也会给软件系统的使用者带来无法估量的损失。研究数据表明,在软件发布后对安全漏洞的修复所需的成本至少是在软件设计和编码阶段进行修复的30倍。

因此,要使软件的安全性达到较高的水平,不仅要从整个软件开发生命周期来考虑安全问题,还要注意在软件开发需求分析和系统设计阶段就开开始考虑安全性。这样不仅可以最大程度保障软件安全性,还可以极大节约成本,实现市场价值性价比更高的软件系统。