Broadly Enabling KLEE to Effortlessly Find Unrecoverable Errors in Rust
Rust is a general-purpose programming language designed for performance and safety. Unrecoverable errors (e.g., Divide by Zero) in Rust programs are critical, as they signal bad program states and terminate programs abruptly. Previous work has contributed to utilizing KLEE, a dynamic symbolic test engine, to verify the program would not panic. However, it is difficult for engineers who lack domain expertise to write test code correctly. Besides, the effectiveness of KLEE in finding panics in production Rust code has not been evaluated. We created an approach, called PanicCheck, to hide the complexity of verifying Rust programs with KLEE. Using PanicCheck, engineers only need to annotate the function-to-verify with #[panic_check]. The annotation guides PanicCheck to generate test code, compile the function together with tests, and execute KLEE for verification. After applying PanicCheck to 21 open-source and 2 closed-source projects, we found 61 test inputs that triggered panics; 59 of the 61 panics have been addressed by developers so far. Our research shows promising verification results by KLEE, while revealing technical challenges in using KLEE. Our experience will shed light on future practice and research in program verification
Fri 19 AprDisplayed time zone: Lisbon change
16:00 - 17:30 | Static Detection TechniquesSoftware Engineering in Practice / Research Track at Eugénio de Andrade Chair(s): Valentina Lenarduzzi University of Oulu | ||
16:00 15mTalk | MalwareTotal: Multi-Faceted and Sequence-Aware Bypass Tactics against Static Malware Detection Research Track Shuai He Huazhong University of Science and Technology, Cai Fu Huazhong University of Science and Technology, Hong Hu Pennsylvania State University, Jiahe Chen Huazhong University of Science and Technology, Jianqiang Lv Huazhong University of Science and Technology, Shuai Jiang Huazhong University of Science and Technology Link to publication | ||
16:15 15mTalk | Semantic-Enhanced Static Vulnerability Detection in Baseband Firmware Research Track Yiming Liu Institute of Information Engineering, Chinese Academy of Sciences, Cen Zhang Nanyang Technological University, Feng Li Key Laboratory of Network Assessment Technology, Institute of Information Engineering, Chinese Academy of Sciences, China; School of CyberSpace Security at University of Chinese Academy of Sciences, China, Yeting Li Institute of Information Engineering at Chinese Academy of Sciences; University of Chinese Academy of Sciences, Jianhua Zhou Key Laboratory of Network Assessment Technology, Institute of Information Engineering, Chinese Academy of Sciences, China, Jian Wang Institute of Information Engineering, Chinese Academy of Sciences, Lanlan Zhan Institute of Information Engineering, Chinese Academy of Sciences, Yang Liu Nanyang Technological University, Wei Huo Institute of Information Engineering at Chinese Academy of Sciences | ||
16:30 15mTalk | CSChecker: Revisiting GDPR and CCPA Compliance of Cookie Banners on the Web Research Track Mingxue Zhang Zhejiang University, Wei Meng Chinese University of Hong Kong, You Zhou Zhejiang University, Kui Ren Zhejiang University | ||
16:45 15mTalk | Raisin: Identifying Rare Sensitive Functions for Bug Detection Research Track Jianjun Huang Renmin University of China, Jianglei Nie Renmin University of China, Yuanjun Gong Renmin University of China, Wei You Renmin University of China, Bin Liang Renmin University of China, China, Pan Bian Huawei Technologies CO., LTD., China | ||
17:00 15mTalk | Broadly Enabling KLEE to Effortlessly Find Unrecoverable Errors in Rust Software Engineering in Practice Ying Zhang Virginia Tech, Peng Li Zoox, Yu Ding Google, Wang Lingxiang Microsoft, Dan Williams Virginia Tech, Na Meng Virginia Tech Pre-print | ||
17:15 15mTalk | Inference for Ever-Changing Policy of Taint Analysis Software Engineering in Practice Wen-Hao Chiang Amazon Web Services, Peixuan Li Amazon Web Services, Qiang Zhou Amazon Web Services, Subarno Banerjee Amazon Web Services, Martin Schäf Amazon Web Services, Yingjun Lyu Amazon Web Services, Hoan Nguyen Amazon Web Services, Omer Tripp Amazon Web Services |