Platform-Independent Dynamic Taint Analysis for Java']JavaScript

被引:37
作者
Karim, Rezwana [1 ]
Tip, Frank [2 ]
Sochurkova, Alena [3 ]
Sen, Koushik [4 ]
机构
[1] Samsung Res Amer, Mountain View, CA 94043 USA
[2] Northeastern Univ, Coll Comp & Informat Sci, Boston, MA 02115 USA
[3] Avast, Prague 14000, Czech Republic
[4] Univ Calif Berkeley, Berkeley, CA 94720 USA
基金
欧洲研究理事会;
关键词
Instruments; Engines; Browsers; Tools; Privacy; Gears; Data privacy; Taint analysis; dynamic analysis; !text type='Java']Java[!/text]Script; platform-independent; instrumentation;
D O I
10.1109/TSE.2018.2878020
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Previous approaches to dynamic taint analysis for JavaScript are implemented directly in a browser or JavaScript engine, limiting their applicability to a single platform and requiring ongoing maintenance as platforms evolve, or they require nontrivial program transformations. We present an approach that relies on instrumentation to encode taint propagation as instructions for an abstract machine. Our approach has two key advantages: it is platform-independent and can be used with any existing JavaScript engine, and it can track taint on primitive values without requiring the introduction of wrapper objects. Furthermore, our technique enables multiple deployment scenarios by varying when and where the generated instructions are executed and it supports indirect taint sources, i.e., situations where taint enters an application via arguments passed to dynamically registered event-listener functions. We implemented the technique for the ECMAScript 5 language in a tool called Ichnaea, and evaluated it on 22 NPM modules containing several types of injection vulnerabilities, including 4 modules containing vulnerabilities that were not previously discovered and reported. On these modules, run-time overheads range from 3.17x to 38.42x, which is significantly better than a previous transformation-based technique. We also report on a case study that shows how Ichnaea can be used to detect privacy leaks in a Tizen web application for the Samsung Gear S2 smart watch.
引用
收藏
页码:1364 / 1379
页数:16
相关论文
共 38 条
[1]  
[Anonymous], 2002, THESIS
[2]  
[Anonymous], CROSS SITE SCRIPTING
[3]  
Arzt S, 2014, ACM SIGPLAN NOTICES, V49, P259, DOI [10.1145/2594291.2594299, 10.1145/2666356.2594299]
[4]  
AUSTIN TH, 2010, P 5 ACM SIGPLAN WORK, DOI DOI 10.1145/1814217.1814220
[5]  
Austin Thomas H., 2009, P ACM SIGPLAN 4 WORK, P113, DOI [DOI 10.1145/1554339.1554353, 10.1145/1554339.1554353]
[6]  
Austin Thomas H., 2011, UCSCSOE1119
[7]  
Bichhawat Abhishek, 2014, Lecture Notes in Computer Science, V8414, P159
[8]  
Cantelon M., 2014, NODE JS IN ACTION
[9]   Inlined Information Flow Monitoring for Java']JavaScript [J].
Chudnov, Andrey ;
Naumann, David A. .
CCS'15: PROCEEDINGS OF THE 22ND ACM SIGSAC CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY, 2015, :629-643
[10]   Information Flow Monitor Inlining [J].
Chudnov, Andrey ;
Naumann, David A. .
2010 23RD IEEE COMPUTER SECURITY FOUNDATIONS SYMPOSIUM (CSF), 2010, :200-214