CodeAlchemist: Semantics-Aware Code Generation to Find Vulnerabilities in Java']JavaScript Engines

被引:97
作者
Han, HyungSeok [1 ]
Oh, DongHyeon [1 ]
Cha, Sang Kil [1 ]
机构
[1] Korea Adv Inst Sci & Technol, Daejeon, South Korea
来源
26TH ANNUAL NETWORK AND DISTRIBUTED SYSTEM SECURITY SYMPOSIUM (NDSS 2019) | 2019年
关键词
D O I
10.14722/ndss.2019.23263
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
JavaScript engines are an attractive target for attackers due to their popularity and flexibility in building exploits. Current state-of-the-art fuzzers for finding JavaScript engine vulnerabilities focus mainly on generating syntactically correct test cases based on either a predefined context-free grammar or a trained probabilistic language model. Unfortunately, syntactically correct JavaScript sentences are often semantically invalid at runtime. Furthermore, statically analyzing the semantics of JavaScript code is challenging due to its dynamic nature: JavaScript code is generated at runtime, and JavaScript expressions are dynamically-typed. To address this challenge, we propose a novel test case generation algorithm that we call semantics-aware assembly, and implement it in a fuzz testing tool termed CodeAlchemist. Our tool can generate arbitrary JavaScript code snippets that are both semantically and syntactically correct, and it effectively yields test cases that can crash JavaScript engines. We found numerous vulnerabilities of the latest JavaScript engines with CodeAlchemist and reported them to the vendors.
引用
收藏
页数:15
相关论文
共 40 条
[1]  
Anderson C, 2005, LECT NOTES COMPUT SC, V3586, P428
[2]   A Survey of Dynamic Analysis and Test Generation for Java']JavaScript [J].
Andreasen, Esben ;
Gong, Liang ;
Moller, Anders ;
Pradel, Michael ;
Selakovic, Marija ;
Sen, Koushik ;
Staicu, Cristian-Alexandru .
ACM COMPUTING SURVEYS, 2017, 50 (05)
[3]  
[Anonymous], 2016, TUDCS201614664
[4]  
Apple Inc, WTFCRASH JAVASCRIPTC
[5]   Finding and Preventing Bugs in Java']JavaScript Bindings [J].
Brown, Fraser ;
Narayan, Shravan ;
Wahby, Riad S. ;
Engler, Dawson ;
Jhala, Ranjit ;
Stefan, Deian .
2017 IEEE SYMPOSIUM ON SECURITY AND PRIVACY (SP), 2017, :559-578
[6]   Program-Adaptive Mutational Fuzzing [J].
Cha, Sang Kil ;
Woo, Maverick ;
Brumley, David .
2015 IEEE SYMPOSIUM ON SECURITY AND PRIVACY SP 2015, 2015, :725-741
[7]   Type Inference for Static Compilation of Java']JavaScript [J].
Chandra, Satish ;
Gordon, Colin S. ;
Jeannin, Jean-Baptiste ;
Schlesinger, Cole ;
Sridharan, Manu ;
Tip, Frank ;
Choi, Youngil .
ACM SIGPLAN NOTICES, 2016, 51 (10) :410-429
[8]  
Dewey Kyle, 2014, P 29 ACMIEEE INT C, P725
[9]  
Dingning Yang, 2012, 2012 IEEE 11th International Conference on Trust, Security and Privacy in Computing and Communications (TrustCom), P1070, DOI 10.1109/TrustCom.2012.99
[10]  
Ecma International, 2015, ECMA SCRIPT 2015 LAN ECMA SCRIPT 2015 LAN