Back to Search Start Over

Confuzz—a concurrency fuzzer

Authors :
Vinesh, Nischai
Rawat, Sanjay
Bos, Herbert
Giuffrida, Cristiano
Sethumadhavan, M.
Luhach, Ashish Kumar
Kosa, Janos Arpad
Poonia, Ramesh Chandra
Gao, Xiao-Zhi
Singh, Dharm
Computer Systems
Network Institute
Systems and Network Security
Luhach, Ashish Kumar
Kosa, Janos Arpad
Poonia, Ramesh Chandra
Gao, Xiao-Zhi
Singh, Dharm
Source :
First International Conference on Sustainable Technologies for Computational Intelligence: Proceedings of ICTSCI 2019, 667-691, STARTPAGE=667;ENDPAGE=691;TITLE=First International Conference on Sustainable Technologies for Computational Intelligence, First International Conference on Sustainable Technologies for Computational Intelligence ISBN: 9789811500282, Vinesh, N, Rawat, S, Bos, H, Giuffrida, C & Sethumadhavan, M 2020, Confuzz—a concurrency fuzzer . in A K Luhach, J A Kosa, R C Poonia, X-Z Gao & D Singh (eds), First International Conference on Sustainable Technologies for Computational Intelligence : Proceedings of ICTSCI 2019 . Advances in Intelligent Systems and Computing, vol. 1045, Springer, pp. 667-691, 1st International Conference on Sustainable Technologies for Computational Intelligence, ICTSCI 2019, Jaipur, India, 29/03/19 . https://doi.org/10.1007/978-981-15-0029-9_53
Publication Year :
2020
Publisher :
Springer, 2020.

Abstract

Concurrency bugs are as equally vulnerable as the bugs found in the single-threaded programs and these bugs can be exploited using concurrency attacks. Unfortunately, there is not much literature available in detecting various kinds of concurrency issues in a multi-threaded program due to its complexity and uncertainty. In this paper, we aim at detecting concurrency bugs by using directed evolutionary fuzzing with the help of static analysis of the source code. Concurrency bug detection involves two main entities: an input and a particular thread execution order. The evolutionary part of fuzzing will prefer inputs that involve memory access patterns across threads (data flow interleaving) and thread ordering that disturb the data dependence more and direct them to trigger concurrency bugs. This paper suggests the idea of a concurrency fuzzer, which is first of its kind. We use a combination of LLVM, Thread Sanitizer and fuzzing techniques to detect various concurrency issues in an application. The source code of the application is statically analyzed for various paths, from the different thread related function calls to the main function. Every basic block in these paths are assigned a unique ID and a weight based on the distance of the basic block from the thread function calls. These basic blocks are instrumented to print their ID and weight upon execution. The knowledge about the basic blocks in the sliced paths are used to generate new sets of inputs from the old ones, thus covering even more basic blocks in the path and thereby increasing the chances of hitting a concurrency warning. We use Thread Sanitizer present in the LLVM compiler infrastructure to detect the concurrency bug warnings while executing each input. The inputs are directed to discover even new address locations with possible concurrency issues. The system was tested on three simple multi-threaded applications pigz, pbzip2, and pixz. The results show a quicker detection of unique addresses in the application with possible concurrency issues.Concurrency fuzzing, Concurrency bugs, LLVM, Fuzzing, Static analysis, Source code analysis

Details

Language :
English
Database :
OpenAIRE
Journal :
First International Conference on Sustainable Technologies for Computational Intelligence: Proceedings of ICTSCI 2019, 667-691, STARTPAGE=667;ENDPAGE=691;TITLE=First International Conference on Sustainable Technologies for Computational Intelligence, First International Conference on Sustainable Technologies for Computational Intelligence ISBN: 9789811500282, Vinesh, N, Rawat, S, Bos, H, Giuffrida, C & Sethumadhavan, M 2020, Confuzz—a concurrency fuzzer . in A K Luhach, J A Kosa, R C Poonia, X-Z Gao & D Singh (eds), First International Conference on Sustainable Technologies for Computational Intelligence : Proceedings of ICTSCI 2019 . Advances in Intelligent Systems and Computing, vol. 1045, Springer, pp. 667-691, 1st International Conference on Sustainable Technologies for Computational Intelligence, ICTSCI 2019, Jaipur, India, 29/03/19 . https://doi.org/10.1007/978-981-15-0029-9_53
Accession number :
edsair.doi.dedup.....5bd7b64a97f1ae3a3ebc09a2b0b10198