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 条
  • [21] DHTML']HTML accessibility checking based on static Java']JavaScript analysis
    Tateishi, Takaaki
    Miyashita, Hisashi
    Naoshi, Tabuchi
    Saito, Shin
    Ono, Kouichi
    UNIVERSAL ACCESS IN HUMAN-COMPUTER INTERACTION: APPLICATIONS AND SERVICES, PT 3, PROCEEDINGS, 2007, : 167 - +
  • [22] Type Inference for Static Compilation of Java']JavaScript
    Chandra, Satish
    Gordon, Colin S.
    Jeannin, Jean-Baptiste
    Schlesinger, Cole
    Sridharan, Manu
    Tip, Frank
    Choi, Youngil
    ACM SIGPLAN NOTICES, 2016, 51 (10) : 410 - 429
  • [23] Change-aware Dynamic Program Analysis for Java']JavaScript
    Murthy, Dileep Ramachandrarao Krishna
    Pradel, Michael
    PROCEEDINGS 2018 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME), 2018, : 127 - 137
  • [24] Efficient Dynamic Access Analysis Using Java']JavaScript Proxies
    Keil, Matthias
    Thiemann, Peter
    ACM SIGPLAN NOTICES, 2014, 49 (02) : 49 - 60
  • [25] Bivariate Classification of Malware in Java']JavaScript using Dynamic Analysis
    Gupta, Yash
    Bansal, Divya
    Sofat, Sanjeev
    PROCEEDINGS OF THE 1ST INTERNATIONAL WORKSHOP ON CLOUD COMPUTING AND INFORMATION SECURITY (CCIS 2013), 2013, 52 : 178 - 182
  • [26] Platform-Independent Dynamic Taint Analysis for Java']JavaScript
    Karim, Rezwana
    Tip, Frank
    Sochurkova, Alena
    Sen, Koushik
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2020, 46 (12) : 1364 - 1379
  • [27] The Unexpected Dangers of Dynamic Java']JavaScript
    Lekies, Sebastian
    Stock, Ben
    Wentzel, Martin
    Johns, Martin
    PROCEEDINGS OF THE 24TH USENIX SECURITY SYMPOSIUM, 2015, : 723 - 735
  • [28] A dynamic select component for Java']Javascript
    Johnson, S
    DR DOBBS JOURNAL, 2000, 25 (01): : 36 - +
  • [29] Battles with False Positives in Static Analysis of Java']JavaScript Web Applications in the Wild
    Park, Joonyoung
    Lim, Inho
    Ryu, Sukyoung
    2016 IEEE/ACM 38TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING COMPANION (ICSE-C), 2016, : 61 - 70
  • [30] Static Java']JavaScript Call Graphs: a Comparative Study
    Antal, Gabor
    Hegedus, Peter
    Toth, Zoltan
    Ferenc, Rudolf
    Gyimothy, Tibor
    2018 IEEE 18TH INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION (SCAM), 2018, : 177 - 186