软件安全测试是检验软件安全等级以及检查程序中的漏洞、bug、风险并防止外来的恶意攻击,目的是确定软件系统的所有可能漏洞和弱点,这些漏洞和弱点可能导致信息、收入损失以及用户声誉受损等不良后果。
一、软件安全测试的常用方法
1.静态代码检查
通过代码走读的方式对源代码的安全性进行测试,常用的代码检查方法有控制流、数据流、信息流等,通过这些测试方法与安全规则库进行匹配,进而发现潜在的安全漏洞。该方法主要是在编码阶段进行测试,能够尽可能早地发现安全性问题。
2.动态渗透测试
主要是借助工具或手工来模拟黑客的输入,对软件产品安装、运行过程的行为监测和分析,进而发现软件中的安全性问题。该阶段一般在系统测试时进行,但覆盖率较低,因为在测试过程中很难覆盖到所有的可能性,只能是尽量提供更多的测试数据来达到较高的覆盖率。
3.扫描程序中的数据
安全性测试,也就是在运行时需要保证数据不能被破坏,必须是安全的,不然就遭受缓冲区溢出的攻击。数据扫描主要是对内存进行测试,尽可能的多发现诸如缓冲区溢出之类的漏洞,这也是静态代码检查和动态渗透测试很难测试到的。