Multi-language Dynamic Taint Analysis in a Polyglot Virtual Machine

被引:8
|
作者
Kreindl, Jacob [1 ]
Bonetta, Daniele [2 ]
Stadler, Lukas [3 ]
Leopoldseder, David [3 ]
Moessenboeck, Hanspeter [1 ]
机构
[1] Johannes Kepler Univ Linz, Linz, Austria
[2] Oracle Labs, Mountain View, CA USA
[3] Oracle Labs, Linz, Austria
关键词
Cross-Language; Multi-Language; Dynamic Taint Analysis; GraalVM; LLVM; Node.[!text type='js']js[!/text; !text type='Java']Java[!/text]Script; !text type='Python']Python[!/text; Native Extensions; FLOW TRACKING; SYSTEM;
D O I
10.1145/3426182.3426184
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Dynamic taint analysis is a popular program analysis technique in which sensitive data is marked as tainted and the propagation of tainted data is tracked in order to determine whether that data reaches critical program locations. This analysis technique has been successfully applied to software vulnerability detection, malware analysis, testing and debugging, and many other fields. However, existing approaches of dynamic taint analysis are either language-specific or they target native code. Neither is suitable for analyzing applications in which high-level dynamic languages such as JavaScript and low-level languages such as C interact. In these approaches, the language boundary forms an opaque barrier that prevents a sound analysis of data flow in the other language and can thus lead to the analysis being evaded. In this paper we introduce TruffleTaint, a platform for multi-language dynamic taint analysis that uses language-independent techniques for propagating taint labels to overcome the language boundary but still allows for language-specific taint propagation rules. Based on the Truffle framework for implementing runtimes for programming languages, TruffleTaint supports propagating taint in and between a selection of dynamic and low-level programming languages and can be easily extended to support additional languages. We demonstrate TruffleTaint's propagation capabilities and evaluate its performance using several benchmarks from the Computer Language Benchmarks Game, which we implemented as combinations of C, JavaScript and Python code and which we adapted to propagate taint in various scenarios of language interaction. Our evaluation shows that TruffleTaint causes low to zero slowdown when no taint is introduced, rivaling state-of-the-art dynamic taint analysis platforms, and only up to similar to 40x slowdown when taint is introduced.
引用
收藏
页码:15 / 29
页数:15
相关论文
共 50 条
  • [1] Towards Efficient, Multi-Language Dynamic Taint Analysis
    Kreindl, Jacob
    Bonetta, Daniele
    Moessenboeck, Hanspeter
    [J]. PROCEEDINGS OF THE 16TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON MANAGED PROGRAMMING LANGUAGES AND RUNTIMES (MPLR '19), 2019, : 85 - 94
  • [2] Low-Overhead Multi-language Dynamic Taint Analysis on Managed Runtimes through Speculative Optimization
    Kreindl, Jacob
    Bonetta, Daniele
    Stadler, Lukas
    Leopoldseder, David
    Moessenboeck, Hanspeter
    [J]. PROCEEDINGS OF THE 18TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON MANAGED PROGRAMMING LANGUAGES AND RUNTIMES (MPLR '2021), 2021, : 70 - 87
  • [3] Mote Runner: A Multi-Language Virtual Machine for Small Embedded Devices
    Caracas, A.
    Kramp, T.
    Baentsch, M.
    Oestreicher, M.
    Eirich, T.
    Romanov, I.
    [J]. 2009 3RD INTERNATIONAL CONFERENCE ON SENSOR TECHNOLOGIES AND APPLICATIONS (SENSORCOMM 2009), 2009, : 117 - 125
  • [4] On Multi-language Abstraction Towards a Static Analysis of Multi-language Programs
    Buro, Samuele
    Crole, Roy L.
    Mastroeni, Isabella
    [J]. STATIC ANALYSIS (SAS 2020), 2020, 12389 : 310 - 332
  • [5] On multi-language abstraction: Towards a static analysis of multi-language programs
    Buro, Samuele
    Crole, Roy
    Mastroeni, Isabella
    [J]. FORMAL METHODS IN SYSTEM DESIGN, 2023,
  • [6] AskCO: A Multi-Language and Extensible Smart Virtual Assistant
    Atzeni, Mattia
    Atzori, Maurizio
    [J]. 2019 IEEE SECOND INTERNATIONAL CONFERENCE ON ARTIFICIAL INTELLIGENCE AND KNOWLEDGE ENGINEERING (AIKE), 2019, : 111 - 112
  • [7] On the Impact of Multi-language Development in Machine Learning Frameworks
    Grichi, Manel
    Eghan, Ellis E.
    Adams, Bram
    [J]. 2020 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME 2020), 2020, : 546 - 556
  • [8] Multi-language synchronization
    Ennals, Robert
    Gay, David
    [J]. PROGRAMMING LANGUAGES AND SYSTEMS, PROCEEDINGS, 2007, 4421 : 475 - +
  • [9] Multi-Language Sentiment Analysis for Hotel Reviews
    Sodanil, Maleerat
    [J]. 2016 INTERNATIONAL CONFERENCE ON MEASUREMENT INSTRUMENTATION AND ELECTRONICS (ICMIE 2016), 2016, 75
  • [10] SvPablo: A multi-language performance analysis system
    De Rose, L
    Zhang, Y
    Reed, DA
    [J]. COMPUTER PERFORMANCE EVALUATION: MODELLING TECHNIQUES AND TOOLS, 1998, 1469 : 352 - 355