AUGUR: Dynamic Taint Analysis for Asynchronous Java']JavaScript

被引:1
|
作者
Aldrich, Mark W. [1 ]
Turcotte, Alexi [2 ]
Blanco, Matthew [2 ]
Tip, Frank [2 ]
机构
[1] Tufts Univ, Medford, MA 02155 USA
[2] Northeastern Univ, Boston, MA 02115 USA
基金
美国国家科学基金会;
关键词
dynamic program analysis; taint analysis; information flow analysis; security vulnerabilities; !text type='Java']Java[!/text]Script;
D O I
10.1145/3551349.3559522
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Dynamic taint analysis (DTA) is a popular approach to help protect JavaScript applications against injection vulnerabilities. In 2016, the ECMAScript 7 JavaScript language standard introduced many language features that most existing DTA tools for JavaScript do not support, e.g., the async/await keywords for asynchronous programming. We present Augur, a high-performance dynamic taint analysis for ES7 JavaScript that leverages VM-supported instrumentation. Integrating directly with a public, stable instrumentation API gives Augur the ability to run with high performance inside the VM and remain resilient to language revisions. We extend the abstract-machine approach to DTA to handle asynchronous function calls. In addition to providing the classic DTA use case of injection vulnerability detection, Augur is highly configurable to support any type of taint analysis, making it useful outside of the security domain. We evaluated Augur on a set of 20 benchmarks, and observed a median runtime overhead of only 1.77x, a median performance improvement of 298% compared to the previous state-of-the-art.
引用
收藏
页数:4
相关论文
共 50 条
  • [1] Platform-Independent Dynamic Taint Analysis for Java']JavaScript
    Karim, Rezwana
    Tip, Frank
    Sochurkova, Alena
    Sen, Koushik
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2020, 46 (12) : 1364 - 1379
  • [2] Extracting Taint Specifications for Java']JavaScript Libraries
    Staicu, Cristian-Alexandru
    Torp, Martin Toldam
    Schafer, Max
    Moller, Anders
    Pradel, Michael
    [J]. 2020 ACM/IEEE 42ND INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2020), 2020, : 198 - 209
  • [3] Semantics of Asynchronous Java']JavaScript
    Loring, Matthew C.
    Marron, Mark
    Leijen, Daan
    [J]. ACM SIGPLAN NOTICES, 2017, 52 (11) : 51 - 62
  • [4] Dynamic Flow Analysis for Java']JavaScript
    Naus, Nico
    Thiemann, Peter
    [J]. TRENDS IN FUNCTIONAL PROGRAMMING (TFP 2016), 2019, 10447 : 75 - 93
  • [5] Ajax: Asynchronous Java']JavaScript and XML
    Bruno, EJ
    [J]. DR DOBBS JOURNAL, 2006, 31 (02): : 32 - 35
  • [6] An Asynchronous Call Graph for Java']JavaScript
    Seifert, Dominik
    Wan, Michael
    Hsu, Jane
    Yeh, Benson
    [J]. 2022 ACM/IEEE 44TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: SOFTWARE ENGINEERING IN PRACTICE (ICSE-SEIP 2022), 2022, : 29 - 30
  • [7] Dynamic taint propagation for Java']Java
    Haldar, V
    Chandra, D
    Franz, M
    [J]. 21st Annual Computer Security Applications Conference, Proceedings, 2005, : 274 - 282
  • [8] Dynamic Analysis Using Java']JavaScript Proxies
    Christophe, Laurent
    De Roover, Coen
    De Meuter, Wolfgang
    [J]. 2015 IEEE/ACM 37TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, VOL 2, 2015, : 813 - 814
  • [9] An Analysis of the Dynamic Behavior of Java']JavaScript Programs
    Richards, Gregor
    Lebresne, Sylvain
    Burg, Brian
    Vitek, Jan
    [J]. ACM SIGPLAN NOTICES, 2010, 45 (06) : 1 - 12
  • [10] Typing and semantics of asynchronous arrows in Java']JavaScript
    Fritz, Eric
    Zhao, Tian
    [J]. SCIENCE OF COMPUTER PROGRAMMING, 2017, 141 : 1 - 39