| Fuzzing is a technique commonly used in software testing.The most popular fuzzing technique is coveraged-based grey box fuzzing because of its feedback mechanism and speed.However,fuzzing takes a lot of time to generate test cases for covering all parts of the programs,the efficiency of it is relatively low.Nowadays,the scale of computing resources is huge,using distributed computing resources is different from the traditional approach to improve the algorithm,which accelerates the grey box fuzzing process.This paper focuses on how to deal with large-scale distributed resources for fuzzing and making fuzzing process continuous.First,this paper adopts a database-centric architecture to solve the problem of fuzzing information sharing,task and resource dynamic scheduling in distributed parallel environment.Secondly,fuzzing in distributed parallel environment will produce a series of conflicts and computing nodes state changes,this paper designs different strategies and maintains the continuous of the framework.Thirdly,in order to extend the database-centric distributed parallel fuzzing environment to large-scale clusters,Pfuzz,an automated prototype system is designed.On this basis,large-scale experimental verification is carried out.Finally,this paper analyzes a special application scenario of the distributed parallel fuzzing framework.For the programs with highly structured inputs,a description language is designed and a multi-level test case mutation strategy is proposed,which effectively maintains the structure of inputs.The experimental results show that the large-scale distributed parallel resource fuzzing has greater efficiency improvement than the previous tools,which ensures that the fuzzing tool can find more vulnerabilities more quickly. |