如何使用ThreadingTest提高软件安全性检测效率(上)
一般来说,对安全性要求不高的软件,其安全性测试可以混在单元测试、集成测试、系统测试里一起做。但对安全性有较高需求的软件,则必须做专门的安全性测试,以便在破坏之前预防并识别软件的安全问题。安全性测试(Security Testing)是指有关验证应用程序的安全等级和识别潜在安全性缺陷的过程。应用程序级安全测试的主要目的是查找软件自身程序设计中存在的安全隐患,并检查应用程序对非法侵入的防范能力, 根据安全指标不同测试策略也不同。注意:安全性测试并不最终证明应用程序是安全的,而是用于验证所设立策略的有效性,这些对策是基于威胁分析阶段所做的假设而选择的。例如,测试应用软件在防止非授权的内部或外部用户的访问或故意破坏等情况时的运作。
让我们先来了解一下ThreadingTest测试工具:
ThreadingTest(简称“TT”)是创新型的系统级白盒测试工具和数字化软件测试装置,它的设计基于融合了4项国家发明专利而打造成的软件测试行业的革新性测试理念-“穿线测试”。TT首次将黑盒测试与白盒测试过程以及方法进行完美的融合,以黑盒的测试过程及方法,产生白盒测试的数据,真正将软件测试带入数字化测试时代。除了支持传统的JavaEE应用,同时TT也是全球首款商用级别的移动端白盒测试工具,可以对各种类型的移动类应用进行测试。
TT的所有特性基于对代码、测试等的深度量化分析和智能计算,TT除了可以进行白盒测试外,也可以为软件的安全性测试提供全过程、系统性的方法支持,TT可以在安全性测试黑盒方法的过程中,从辅助分析,自动诊断,快速定位等多个层面提供软件安全性测试解决方案。TT提供的功能远超越了传统安全性白盒测试的功能范畴,配合流行Fuzzing安全性测试方法,可以将安全性测试的效率、质量进行大幅度的提升。
下面就针对软件安全性测试的所必须检测的特性,展示TT对于安全性测试提供的一系列方法:
ThreadingTest率先将引入的测试示波器概念,在实际测试的过程中,可以实时的看到从程序中各种逻辑执行的速率、频率等信息,测试人员可以从传统的对被测应用的黑盒子测试(仅能看到功能的反馈无法看到程序内部的反馈)进而转换成为类似于对于硬件测试的示波器一样,能够对整个测试过程的关键测试数据进行实时的分析和查看。示波器本身具有如下功能:
示波器功能体现:
1. 实时记录被测程序的运行信息:块,函数,条件,运行堆栈
2. 实时记录测试用例对应的程序执行逻辑:
3. 支持源码分离的测试模式
4. 支持分布式的实时记录被测程序的运行信息
5. 可视化观察程序运行情况。波形可直观反应程序行为。
6. 通过波形分析程序在各种硬件平台上的运行性能。
7. 支持真机、模拟器等各类设备的接入
8. 支持各种自动化操作和单元测试所产生的测试数据的记录
9. 支持USB、WIFI、蓝牙等各种设备的连接方式
TT示波器的创意来自于电气设备测试中的电子示波器,它能够精准的、实时的捕捉到程序运行的各种特性运行指标,TT通过实时的单位时间内程序执行块、条件数、函数的数量等指标图形,分析出来程序的各种运行特性以及运行异常。针对于安全性测试,它可以结合黑盒安全性测试工具,在安全性测试工具进行例如渗透性测试等过程中,实时给出程序的响应的情况。例如在进行代码的渗透性测试过程中,通过TT示波器我们可以展示如下的数据,用来辅助分析渗透性测试的结果:
1. 被测试程序是否会因为攻击行为,而进行持续大量的运算,例如面对DDOS攻击等情况下的反应;
2. 被测试程序在各种攻击行为时,是否会出现瞬时的、或者永久性的拒绝服务(DDos),DDos攻击通常会表现为部署被测试应用服务器CPU、内存、网络等资源的消耗,从程序内部角度,将会有一些函数和方法会被密集的非常规调用,这些TT示波器将会进行详细的分析程序执行序列流,以便于快速确定、排查和修复问题;
3. 在模拟非授权攻击的情况下,在没有正常的用户权限的情况下,其后台代码是否会被执行到,通过观察示波器的函数执行的堆栈序列可以检出本类问题。
TT示波器可以对帐号权限进行精准的检测,TT示波器的指标本身具有等价类划分功能,他们可以用来精确的分析程序对于各种用户权限是否有正确处理:
通过运行事先准备好的具有各种权限类别的用例,TT示波器通过用例运行监控数据,会对这些用例进行等价类划分,其原理是软件通常会针对不同的用户执行不同的逻辑,不同的逻辑就会执行程序内部不同的代码序列,并进而导致TT示波器的三个指标会发生变化,通过分析各个用例TT示波器给出的运行指标,就可以确定,用户权限的代码处理是否存在问题,例如分析出本不应该具有相同权限的用户,示波器却给出了相同的执行指标。本应该相同权限的用户,示波器却给出了不相同的执行指标等安全性风险。
对于存在多线程操作的软件中,TT示波器可以对多线程的运行情况精细分析,多线程通常会比较容易出现资源争用甚至导致死锁等情况发生,TT示波器可以对线程的运行进行分析,当线程发生死锁的情况下,TT示波器会给出直观的图形给予显示。同时也可以给出在处理大量数据情况下,线程数量和程序处理数据吞吐速率的比例关系。
目前ThreadingTest高级个人版是免费使用的,还有云测试的试用版,可以在线申请获得,可以在技术网站了解详情,网址:http://www.teststars.cc/,如果您在安装与试用过程中有任何疑问,您可以加入QQ技术群-"符号执行-穿线测试“,QQ号为:“339834199"