两位应用程序安全专家正在研究一种方法,通过集成应用程序数据流图和其他通常由软件质量保证测试人员使用的信息来对Web应用程序测试进行优化。
上周三,惠普公司网络安全研究小组的Rafal Los和Matt Wood在波士顿举行的2010年SOURCE会议上提出了一套新的测试过程。他们表示,他们提出的新过程就目前而言过于复杂还无法执行,但最终将合并到一个自动化的工具中。
Wood说,“我们正在试图采用一些人的要素,并把它更多的融合到扫描工具中”。
Los表示,在很长一段时间内,网络应用程序渗透测试人员慢慢的已经不能发挥多大的作用。网络应用程序安全扫描工具减少了用来检测和识别出现在JavaScript、AJAX以及其他现代编码技术中漏洞位置的时间,但到目前越发复杂的应用程序也导致能测试出的攻击点越来越少。
Los说,“在测试高度复杂的应用程序时,目前的安全分析工具已经不够用了。网络应用程序越复杂,自动化测试所占的比例就越低,除非我们能对其做点什么。而这正是我们现在所做的事情。”
这两位研究人员研发出了一个他们称为 “基于执行流”的方法来进行应用程序安全测试。他们利用来自质量评价测试员的数据,来映射网络应用程序中所有攻击点的位置,以更好地了解一个应用程序怎么发挥作用,更重要的是,数据流是怎么通过它的。Los表示,一旦安全测试者拥有这些数据,他们就可以迅速深入探寻一个特定的区域,并找出能造成更多风险的漏洞。
Los说,“质量评价团队一般都熟悉被测试的应用程序,他们测试的是熟悉实物中某些理应测试的部分。他们会告诉你,他们已经测试了整个应用程序的所有功能。”
这两位研究人员把他们的处理过程称作一个激进的测试方法,其数据需求和功能路径被用于创建一个执行流图,以了解一个应用程序的关键业务逻辑层。这一过程将导致以函数为基础的自动化测试。该技术可以帮助测试人员识别改变应用程序文档流的行为,或者改变应用程序状态的行为。那些可以修改文档状态的间接流量和外部数据,也被纳入其中。
例如,在一个支付页面中,Wood说,“当一个用户选择美国运通或Visa时,一个质量评价人员会知道在应用程序内由于客户选择而产生的不同行为,而扫描工具是不会知道这些事情的。“由于扫描工具只能在一个很小攻击面上识别错误,提供应用程序流数据就可以帮助“优化“扫描工具,提高整体的测试效果。
使用基于流的威胁分析,渗透测试人员就可以知道在应用程序中处理信用卡区域的两个漏洞的处理优先级别应该高于产品浏览区域的漏洞。研究人员表示,该过程还可以帮助提高安全性测试的可靠性,而程序安全团队往往要在很短的时间内对应用程序进行测试。