论文标题

为什么查尔斯可以进行测试:脆弱性测试的进化方法

Why Charles Can Pen-test: an Evolutionary Approach to Vulnerability Testing

论文作者

Costa, Gabriele, Valenza, Andrea

论文摘要

在现实世界复杂性应用程序中发现漏洞是一项艰巨的任务:漏洞可能会影响一条代码,但它损害了整个应用程序的安全性。更糟糕的是,漏洞只能在应用程序正常操作中不出现的特殊情况下表现出来。人们普遍认识到,最新的渗透测试工具起着至关重要的作用,并且经常使用以挖掘脆弱性。然而,穿透测试仍然主要是一项人为驱动的活动,其有效性仍然取决于驾驶工具的安全分析师的技能和创造力。在本文中,我们提出了一种自动发现基于事件系统(例如Web和移动应用程序)中漏洞的技术。我们的方法基于一个协作,共同进化和合同驱动的搜索策略,该策略(i)执行测试用例库,(ii)确定最有希望的搜索案例,(iii)从中生成了新的测试案例。该方法是进化算法的协同组合,其中几种“物种”有助于解决该问题:一种物种,测试物种,进化以找到目标测试案例,即其执行导致其执行陈述的指令集,而在其他物种(称为合同)中为程序触发的参数触发了验证的参数而导致其他物种,以触摸vulnerability。为了评估我们方法的有效性,我们实施了一个工作原型,并对案例研究和基准Web应用程序进行了运行。实验结果证实,我们的工具会自动发现并执行许多注射缺陷攻击,这些攻击是最先进的Web扫描仪。

Discovering vulnerabilities in applications of real-world complexity is a daunting task: a vulnerability may affect a single line of code, and yet it compromises the security of the entire application. Even worse, vulnerabilities may manifest only in exceptional circumstances that do not occur in the normal operation of the application. It is widely recognized that state-of-the-art penetration testing tools play a crucial role, and are routinely used, to dig up vulnerabilities. Yet penetration testing is still primarily a human-driven activity, and its effectiveness still depends on the skills and ingenuity of the security analyst driving the tool. In this paper, we propose a technique for the automatic discovery of vulnerabilities in event-based systems, such as web and mobile applications. Our approach is based on a collaborative, co-evolutionary and contract-driven search strategy that iteratively (i) executes a pool of test cases, (ii) identifies the most promising ones, and (iii) generates new test cases from them. The approach makes a synergistic combination of evolutionary algorithms where several "species" contribute to solving the problem: one species, the test species, evolves to find the target test case, i.e., the set of instruction whose execution lead to the vulnerable statement, whereas the other species, called contract species, evolve to select the parameters for the procedure calls needed to trigger the vulnerability. To assess the effectiveness of our approach, we implemented a working prototype and ran it against both a case study and a benchmark web application. The experimental results confirm that our tool automatically discovers and executes a number of injection flaw attacks that are out of reach for state-of-the-art web scanners.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源