软件安全性测试工具

安全性测试工具以自动化或半自动化的方式验证系统安全功能运行是否正确、安全机制是否有效和查找潜在的安全漏洞,可以有效地提高测试效率,降低软件安全风险。

根据功能的不同将安全性测试工具分为如下11类:

1.源代码分析器

静态源代码分析器扫描源代码匹配安全缺陷代码模式,对代码执行数据流/控制流分析以降低误报率,并根据安全漏洞类型或优先级生成问题报告。

2.字节码扫描器

字节码扫描器与源代码分析器类似,不同的是,它扫描Java字节码漏洞模式以发现可能的安全漏洞。

3.二进制代码扫描器

二进制代码扫描器采用反汇编技术与模式识别技术扫描可执行的二进制代码或DLL文件来发现安全漏洞,误报率较高。

4.数据库脆弱性扫描器

数据库脆弱性扫描器充当客户端执行各种SQL查询,有效地查找数据库安全配置相关弱点,如弱口令、授权、访问控制等,有渗透攻击和审计两种典型工作模式,易于使用,但对数据库中敏感数据缺乏语义理解。

5.网络漏洞扫描器

网络漏洞扫描器远程扫描目标主机开放的端口、运行的服务、操作系统类型等,发现其相关的安全漏洞。

6.Web应用漏洞扫描器

Web应用漏洞扫描器模拟Web客户端,执行特权URL扫描,脆弱CGI扫描等,记录HTTP交互,在后续交互中注入恶意负载,观察响应数据,可以有效地发现跨站脚本、SQL注入、目录遍历、Cookie中毒等安全漏洞。

7.Web服务扫描器

Web服务扫描器测试Web服务的安全功能并识别安全漏洞,可扫描WSDL文件,列举Web服务提供的方法,生成各种输入参数操纵方法调用,测试XML消息加密、XML消息签名、签名验证等安全功能,WS-Security安全规范一致性测试。

8.动态分析工具

动态分析工具在软件运行时构造异常场景,测试软件是否存在安全缺陷,可以截获系统调用,记录函数执行信息,执行边界检查,执行文件系统、网络接口、系统资源等故障注入,识别内存泄漏、竞争条件、不可达代码、类型不匹配等安全问题。

9.配置分析工具

配置分析工具对应用程序、主机、应用服务器等的配置文件执行静态分析,发现配置相关安全问题。

10.需求验证工具

需求验证工具验证软件安全需求说明的正确性、完备性、一致性和准确性。

11.设计模型验证工具

设计模型验证工具验证软件的设计模型是否存在安全缺陷。