Battles with False Positives in Static Analysis of Java']JavaScript Web Applications in the Wild

被引:25
|
作者
Park, Joonyoung [1 ]
Lim, Inho [2 ]
Ryu, Sukyoung [1 ]
机构
[1] Korea Adv Inst Sci & Technol, Daejeon, South Korea
[2] Samsung Elect, Suwon, South Korea
基金
新加坡国家研究基金会;
关键词
Static analysis; !text type='Java']Java[!/text]Script; web applications; false positives;
D O I
10.1145/2889160.2889227
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Now that HTML5 technologies are everywhere from web services to various platforms, assuring quality of web applications becomes very important. While web application developers use syntactic checkers and type-related bug detectors, extremely dynamic features and diverse execution environments of web applications make it particularly difficult to statically analyze them leading to too many false positives. Recently, researchers have developed static analyzers for JavaScript web applications addressing quirky JavaScript language semantics and browser environments, but they lack empirical studies on the practicality of such analyzers. In this paper, we collect 30 JavaScript web applications in the wild, analyze them using SAFE, the state-of-the-art JavaScript static analyzer with bug detection, and investigate false positives in the analysis results. After manually inspecting them, we classify 7 reasons that cause the false positives: W3C APIs, browser-specific APIs, JavaScript library APIs, dynamic fi le loading, dynamic code generation, asynchronous calls, and others. Among them, we identify 4 cases which are the sources of false positives that we can practically reduce. Rather than striving for sound analysis with unrealistic assumptions, we choose to be intentionally unsound to analyze web applications in the real world with less false positives. Our evaluation shows that the approach effectively reduces false positives in statically analyzing web applications in the wild.
引用
收藏
页码:61 / 70
页数:10
相关论文
共 50 条
  • [1] Battles with false positives in static analysis of JavaScript web applications in the wild
    KAIST, Korea, Republic of
    不详
    Proc Int Conf Software Eng, 1600, (61-70):
  • [2] Static Analysis of Java']JavaScript Web Applications in the Wild via Practical DOM Modeling
    Park, Changhee
    Won, Sooncheol
    Jin, Joonho
    Ryu, Sukyoung
    2015 30TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE), 2015, : 552 - 562
  • [3] Toward Analysis and Bug Finding in Java']JavaScript Web Applications in the Wild
    Ryu, Sukyoung
    Park, Jihyeok
    Park, Joonyoung
    IEEE SOFTWARE, 2019, 36 (03) : 74 - 82
  • [4] Journey to Find Bugs in Java']JavaScript Web Applications in the Wild
    Ryu, Sukyoung
    ACM SIGPLAN NOTICES, 2016, 51 (09) : 2 - 2
  • [5] Analyzing Java']JavaScript Web Applications in the Wild (Mostly) Statically
    Ryu, Sukyoung
    PROGRAMMING LANGUAGES AND SYSTEMS, APLAS 2015, 2015, 9458 : XII - XIV
  • [6] Static analysis of JavaScript web applications in the wild via practical DOM modeling
    KAIST, Korea, Republic of
    Proc. - IEEE/ACM Int. Conf. Autom. Softw. Eng., ASE, (552-562):
  • [7] 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
  • [8] Performance Scalability Analysis of Java']JavaScript Applications with Web Workers
    Verdu, Javier
    Pajuelo, Alex
    IEEE COMPUTER ARCHITECTURE LETTERS, 2016, 15 (02) : 105 - 108
  • [9] Analysis of Java']JavaScript Web Applications Using SAFE 2.0
    Park, Jihyeok
    Ryou, Yeonhee
    Park, Joonyoung
    Ryu, Sukyoung
    PROCEEDINGS OF THE 2017 IEEE/ACM 39TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING COMPANION (ICSE-C 2017), 2017, : 59 - 62
  • [10] Type Refinement for Static Analysis of Java']JavaScript
    Kashyap, Vineeth
    Sarracino, John
    Wagner, John
    Wiedermann, Ben
    Hardekopf, Ben
    ACM SIGPLAN NOTICES, 2014, 49 (02) : 17 - 26