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
来源
PROCEEDINGS OF THE 29TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (ESEC/FSE '21) | 2021年
基金
新加坡国家研究基金会;
关键词
!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 条
  • [21] Stubbifier: debloating dynamic server-side Java']JavaScript applications
    Turcotte, Alexi
    Arteca, Ellen
    Mishra, Ashish
    Alimadadi, Saba
    Tip, Frank
    EMPIRICAL SOFTWARE ENGINEERING, 2022, 27 (07)
  • [22] A Proactive Forensics Approach for Virtual Machines via Dynamic and Static Analysis
    Hu Bo
    Li Nan
    Liu Zhiyong
    Li Min
    Liu Chao
    PROCEEDINGS OF 2016 IEEE 18TH INTERNATIONAL CONFERENCE ON HIGH PERFORMANCE COMPUTING AND COMMUNICATIONS; IEEE 14TH INTERNATIONAL CONFERENCE ON SMART CITY; IEEE 2ND INTERNATIONAL CONFERENCE ON DATA SCIENCE AND SYSTEMS (HPCC/SMARTCITY/DSS), 2016, : 514 - 521
  • [23] Identification of Memory Copy Function via Hybrid Static and Dynamic Analysis
    Yin X.-K.
    Cai R.-J.
    Yang Q.-C.
    Liu S.-L.
    Ruan Jian Xue Bao/Journal of Software, 2024, 35 (07): : 3291 - 3313
  • [24] Completeness of Abstract Domains for String Analysis of Java']JavaScript Programs
    Arceri, Vincenzo
    Olliaro, Martina
    Cortesi, Agostino
    Mastroeni, Isabella
    THEORETICAL ASPECTS OF COMPUTING - ICTAC 2019, 2019, 11884 : 255 - 272
  • [25] Precise String Analysis for Java']JavaScript Programs Using Automata
    Almashfi, Nabil
    Lu, Lunjin
    Picker, Koby
    Maldonado, Christian
    2019 8TH INTERNATIONAL CONFERENCE ON SOFTWARE AND COMPUTER APPLICATIONS (ICSCA 2019), 2019, : 159 - 166
  • [26] Detecting malicious Java']JavaScript code based on semantic analysis
    Fang, Yong
    Huang, Cheng
    Su, Yu
    Qiu, Yaoyao
    COMPUTERS & SECURITY, 2020, 93
  • [27] Microservice Decomposition via Static and Dynamic Analysis of the Monolith
    Krause, Alexander
    Zirkelbach, Christian
    Hasselbring, Wilhelm
    Lenga, Stephan
    Kroeger, Dan
    2020 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ARCHITECTURE COMPANION (ICSA-C 2020), 2020, : 9 - 16
  • [28] Static check analysis for Java']Java stack inspection
    Chang, Byeong-Mo
    ACM SIGPLAN NOTICES, 2006, 41 (03) : 40 - 48
  • [29] DETECTING SERVER-SIDE ENDPOINTS IN WEB APPLICATIONS BASED ON STATIC ANALYSIS OF CLIENT-SIDE Java']JavaScript CODE
    Sigalov, D. A.
    Khashaev, A. A.
    Gamayunov, D. Yu.
    PRIKLADNAYA DISKRETNAYA MATEMATIKA, 2021, (53): : 32 - 54
  • [30] Combined Static and Dynamic Analysis
    Artho, Cyrille
    Biere, Armin
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2005, 131 : 3 - 14