Security testing aims at verifying that the software meets its security properties. In modern Web systems, however, this often entails the verification of the outputs generated when exercising the system with a very large set of inputs. Full automation is thus required to lower costs and increase the effectiveness of security testing. Unfortunately, to achieve such automation, in addition to strategies for automatically deriving test inputs, we need to address the oracle problem, which refers to the challenge, given an input for a system, of distinguishing correct from incorrect behavior. In this paper, we propose Metamorphic Security Testing for Web-interactions (MST-wi), a metamorphic testing approach that integrates test input generation strategies inspired by mutational fuzzing and alleviates the oracle problem in security testing. It enables engineers to specify metamorphic relations (MRs) that capture many security properties of Web systems. To facilitate the specification of such MRs, we provide a domain-specific language accompanied by an Eclipse editor. MST-wi automatically collects the input data and transforms the MRs into executable Java code to automatically perform security testing. It automatically tests Web systems to detect vulnerabilities based on the relations and collected data. We provide a catalog of 76 system-agnostic MRs to automate security testing in Web systems. It covers 39% of the OWASP security testing activities not automated by state-of-the-art techniques; further, our MRs can automatically discover 102 different types of vulnerabilities, which correspond to 45% of the vulnerabilities due to violations of security design principles according to the MITRE CWE database. We also define guidelines that enable test engineers to improve the testability of the system under test with respect to our approach.
翻译:安全测试的目的是核实软件是否符合其安全特性。 然而,在现代网络系统中,这往往需要核查在使用系统时产生的产出,同时提供大量投入。因此,需要完全自动化才能降低费用,提高安全测试的效能。不幸的是,实现这种自动化,除了自动生成测试投入的战略外,还需要解决关节问题,这是指挑战,为系统提供一种输入信息,以区分正确行为。在本文中,我们提议对网络互动(MST-wi)进行变形安全测试,这是一种变形测试方法,根据突变的模糊,将输入生成生成的测试战略整合起来,从而降低安全测试的难度。不幸的是,为了实现这种自动化,除了自动生成测试输入输入输入内容的策略外,我们需要解决关节问题,为系统提供一种特定的域语言,同时为系统提供正确的输入数据,并将MRMR(M-W)自动转换成可执行的DA(M)代码,以自动进行安全测试。我们自动测试网络系统测试了MR(M)的系统,用于在网络测试系统内部测试(MR)下进行安全测试。</s>