Accelerating Java']JavaScript Static Analysis via Dynamic Shortcuts

被引:7
|
作者
Park, Joonyoung [1 ]
Park, Jihyeok [1 ]
Youn, Dongjun [1 ]
Ryu, Sukyoung [1 ]
机构
[1] Korea Adv Inst Sci & Technol, Daejeon, South Korea
基金
新加坡国家研究基金会;
关键词
!text type='Java']Java[!/text]Script; static analysis; dynamic analysis; dynamic shortcut; sealed execution;
D O I
10.1145/3468264.3468556
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
JavaScript has become one of the most widely used programming languages for web development, server-side programming, and even micro-controllers for IoT. However, its extremely functional and dynamic features degrade the performance and precision of static analysis. Moreover, the variety of built-in functions and host environments requires excessive manual modeling of their behaviors. To alleviate these problems, researchers have proposed various ways to leverage dynamic analysis during JavaScript static analysis. However, they do not fully utilize the high performance of dynamic analysis and often sacrifice the soundness of static analysis. In this paper, we present dynamic shortcuts, a new technique to flexibly switch between abstract and concrete execution during JavaScript static analysis in a sound way. It can significantly improve the analysis performance and precision by using highly-optimized commercial JavaScript engines and lessen the modeling efforts for opaque code. We actualize the technique via SAFE(DS), an extended combination of SAFE and Jalangi, a static analyzer and a dynamic analyzer, respectively. We evaluated SAFE(DS) using 269 official tests of Lodash 4 library. Our experiment shows that SAFE(DS) is 7.81x faster than the baseline static analyzer, and it improves the precision to reduce failed assertions by 12.31% on average for 22 opaque functions.
引用
下载
收藏
页码:1129 / 1140
页数:12
相关论文
共 50 条
  • [31] Type Analysis for Java']JavaScript
    Jensen, Simon Holm
    Moller, Anders
    Thiemann, Peter
    STATIC ANALYSIS, 2009, 5673 : 238 - +
  • [32] Is Java']JavaScript Call Graph Extraction Solved Yet? A Comparative Study of Static and Dynamic Tools
    Antal, Gabor
    Hegedus, Peter
    Herczeg, Zoltan
    Loki, Gabor
    Ferenc, Rudolf
    IEEE ACCESS, 2023, 11 : 25266 - 25284
  • [33] Static Analysis of Dynamic Database Usage in Java']Java Systems
    Meurice, Loup
    Nagy, Csaba
    Cleve, Anthony
    ADVANCED INFORMATION SYSTEMS ENGINEERING (CAISE 2016), 2016, 9694 : 491 - 506
  • [34] JS']JSXGraph - Dynamic Mathematics with Java']JavaScript
    Gerhaeuser, Michael
    Valentin, Bianca
    Wassermann, Alfred
    INTERNATIONAL JOURNAL FOR TECHNOLOGY IN MATHEMATICS EDUCATION, 2010, 17 (04): : 211 - 215
  • [35] Dynamic code compression for Java']JavaScript engine
    Park, Hyukwoo
    Kim, Seonghyun
    Bae, Boram
    SOFTWARE-PRACTICE & EXPERIENCE, 2023, 53 (05): : 1196 - 1217
  • [36] Semantics-Preserving Dissection of Java']JavaScript Exploits via Dynamic JS']JS-Binary Analysis
    Hu, Xunchao
    Prakash, Aravind
    Wang, Jinghan
    Zhou, Rundong
    Cheng, Yao
    Yin, Heng
    RESEARCH IN ATTACKS, INTRUSIONS, AND DEFENSES, RAID 2016, 2016, 9854 : 254 - 276
  • [37] Static analysis of Java']JavaScript libraries in a scalable and precise way using loop sensitivity
    Park, Changhee
    Lee, Hongki
    Ryu, Sukyoung
    SOFTWARE-PRACTICE & EXPERIENCE, 2018, 48 (04): : 911 - 944
  • [38] Practically Tunable Static Analysis Framework for Large-Scale Java']JavaScript Applications
    Ko, Yoonseok
    Lee, Hongki
    Dolby, Julian
    Ryu, Sukyoung
    2015 30TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE), 2015, : 541 - 551
  • [39] Automatically Deriving Java']JavaScript Static Analyzers from Specifications using Meta-level Static Analysis
    Park, Jihyeok
    An, Seungmin
    Ryu, Sukyoung
    PROCEEDINGS OF THE 30TH ACM JOINT MEETING EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, ESEC/FSE 2022, 2022, : 1022 - 1034
  • [40] JS']JSSlicer: a static program slicing tool for Java']JavaScript
    Wang, Liming
    Xian, Ying
    Zhang, Li
    Liu, Xiyang
    INDUSTRIAL INSTRUMENTATION AND CONTROL SYSTEMS, PTS 1-4, 2013, 241-244 : 2690 - 2695