Accelerating Java']JavaScript Static Analysis via Dynamic Shortcuts

被引:8
|
作者
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 条
  • [41] A Comparative Analysis of Static and Dynamic Java']Java Bytecode Watermarking Algorithms
    Kumar, Krishan
    Kaur, Prabhpreet
    SOFTWARE ENGINEERING (CSI 2015), 2019, 731 : 319 - 334
  • [42] Industry Practice of Java']JavaScript Dynamic Analysis on WeChat Mini-Programs
    Liu, Yi
    Xie, Jinhui
    Yang, Jianbo
    Guo, Shiyu
    Deng, Yuetang
    Li, Shuqing
    Wu, Yechang
    Liu, Yepang
    2020 35TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE 2020), 2020, : 1189 - 1193
  • [43] Eval Is Evil: Analyzing Performance of Web Applications Based on PHP and Java']JavaScript by Static Analysis
    Shah, Nilay
    Gubbala, Praveen
    COMPUTING AND NETWORK SUSTAINABILITY, 2017, 12 : 109 - 117
  • [44] Finding Server-Side Endpoints with Static Analysis of Client-Side Java']JavaScript
    Sigalov, Daniil
    Gamayunov, Dennis
    COMPUTER SECURITY. ESORICS 2023 INTERNATIONAL WORKSHOPS, CPS4CIP, PT II, 2024, 14399 : 442 - 458
  • [45] Static Analysis of Event-Driven Node.js']js Java']JavaScript Applications
    Madsen, Magnus
    Tip, Frank
    Lhotak, Ondrej
    ACM SIGPLAN NOTICES, 2015, 50 (10) : 505 - 519
  • [46] Empirical study of the dynamic behavior of Java']JavaScript objects
    Wei, Shiyi
    Xhakaj, Franceska
    Ryder, Barbara G.
    SOFTWARE-PRACTICE & EXPERIENCE, 2016, 46 (07): : 867 - 889
  • [47] Combined static and dynamic immutability analysis of java program
    Yu L.-Q.
    Wang L.-Z.
    Lei B.
    Zhao J.-H.
    Li X.-D.
    Jisuanji Xuebao/Chinese Journal of Computers, 2010, 33 (04): : 736 - 746
  • [48] Constraint Programming for Dynamic Symbolic Execution of Java']JavaScript
    Amadini, Roberto
    Andrlon, Mak
    Gange, Graeme
    Schachte, Peter
    Sondergaard, Harald
    Stuckey, Peter J.
    INTEGRATION OF CONSTRAINT PROGRAMMING, ARTIFICIAL INTELLIGENCE, AND OPERATIONS RESEARCH, CPAIOR 2019, 2019, 11494 : 1 - 19
  • [49] Designing with java']javascript: Creating dynamic web pages
    DeLoach, S
    TECHNICAL COMMUNICATION, 1999, 46 (03) : 400 - 403
  • [50] Accelerating Population Transfer in a Transmon Qutrit Via Shortcuts to Adiabaticity
    Chen, Ye-Hong
    Shi, Zhi-Cheng
    Song, Jie
    Xia, Yan
    Zheng, Shi-Biao
    ANNALEN DER PHYSIK, 2018, 530 (04)