Detecting Java']JavaScript Races That Matter

被引:22
|
作者
Mutlu, Erdal [1 ]
Tasiran, Serdar [1 ]
Livshits, Benjamin [2 ]
机构
[1] Koc Univ, Istanbul, Turkey
[2] Microsoft Res, Redmond, WA USA
关键词
!text type='Java']Java[!/text]Script; asynchrony; race detection; non-determinism;
D O I
10.1145/2786805.2786820
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
As JavaScript has become virtually omnipresent as the language for programming large and complex web applications in the last several years, we have seen an increase in interest in finding data races in client-side JavaScript. While JavaScript execution is single-threaded, there is still enough potential for data races, created largely by the non determinism of the scheduler. Recently, several academic efforts have explored both static and runtime analysis approaches in an effort to find data races. However, despite this, we have not seen these analysis techniques deployed in practice and we have only seen scarce evidence that developers find and fix bugs related to data races in JavaScript. In this paper we argue for a different formulation of what it means to have a data race in a JavaScript application and distinguish between benign and harmful races, affecting persistent browser or server state. We further argue that while benign races the subject of the majority of prior work do exist, harmful races are exceedingly rare in practice (19 harmful vs. 621 benign). Our results shed a new light on the issues of data race prevalence and importance. To find races, we also propose a novel lightweight runtime symbolic exploration algorithm for finding races in traces of runtime execution. Our algorithm eschews schedule exploration in favor of smaller runtime overheads and thus can be used by beta testers or in crowd-sourced testing. In our experiments on 26 sites, we demonstrate that benign races are considerably more common than harmful ones.
引用
收藏
页码:381 / 392
页数:12
相关论文
共 50 条
  • [1] Detecting Function Constructors in Java']JavaScript
    Rostami, Shahriar
    Eshkevari, Laleh
    Mazinanian, Davood
    Tsantalis, Nikolaos
    32ND IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME 2016), 2016, : 488 - 492
  • [2] Detecting Function Purity in Java']JavaScript
    Nicolay, Jens
    Noguera, Carlos
    De Roover, Coen
    De Meuter, Wolfgang
    2015 IEEE 15TH INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION (SCAM), 2015, : 101 - 110
  • [3] Detecting malicious Java']JavaScript code in Mozilla
    Hallaraker, O
    Vigna, G
    ICECCS 2005: 10TH IEEE INTERNATIONAL CONFERENCE ON ENGINEERING OF COMPLEX COMPUTER SYSTEMS, PROCEEDINGS, 2005, : 85 - 94
  • [4] Detecting Inconsistencies in Java']JavaScript MVC Applications
    Ocariza, Frolin S., Jr.
    Pattabiraman, Karthik
    Mesbah, Ali
    2015 IEEE/ACM 37TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, VOL 1, 2015, : 325 - 335
  • [5] Detecting Malicious Behaviors in Java']JavaScript Applications
    Mao, Jian
    Bian, Jingdong
    Bai, Guangdong
    Wang, Ruilong
    Chen, Yue
    Xiao, Yinhao
    Liang, Zhenkai
    IEEE ACCESS, 2018, 6 : 12284 - 12294
  • [6] JS']JSNOSE: Detecting Java']JavaScript Code Smells
    Fard, Amin Milani
    Mesbah, Ali
    2013 IEEE 13TH INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION (SCAM), 2013, : 116 - 125
  • [7] Statically Detecting Java']JavaScript Obfuscation and Minification Techniques in the Wild
    Moog, Marvin
    Demmel, Markus
    Backes, Michael
    Fass, Aurore
    51ST ANNUAL IEEE/IFIP INTERNATIONAL CONFERENCE ON DEPENDABLE SYSTEMS AND NETWORKS (DSN 2021), 2021, : 569 - 580
  • [8] Detecting and Understanding Java']JavaScript Global Identifier Conflicts on the Web
    Zhang, Mingxue
    Meng, Wei
    PROCEEDINGS OF THE 28TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (ESEC/FSE '20), 2020, : 38 - 49
  • [9] A deep learning approach for detecting malicious Java']JavaScript code
    Wang, Yao
    Cai, Wan-dong
    Wei, Peng-cheng
    SECURITY AND COMMUNICATION NETWORKS, 2016, 9 (11) : 1520 - 1534
  • [10] Detecting Obfuscated Suspicious Java']JavaScript Based on Collaborative Training
    Wu, Hongcheng
    Qin, Sujuan
    2017 17TH IEEE INTERNATIONAL CONFERENCE ON COMMUNICATION TECHNOLOGY (ICCT 2017), 2017, : 1962 - 1966