Information-flow security for Java']JavaScript and its APIs

被引:13
作者
Hedin, Daniel [1 ,2 ]
Bello, Luciano [1 ]
Sabelfeld, Andrei [1 ]
机构
[1] Chalmers Univ Technol, Dept Comp Sci & Engn, Rannvagen 6B, S-41296 Gothenburg, Sweden
[2] Malardalen Univ, Sch Innovat Design & Engn, Box 883, S-72123 Vasteras, Sweden
关键词
Web application security; !text type='Java']Java[!/text]Script; information flow; reference monitoring; noninterference;
D O I
10.3233/JCS-160544
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
JavaScript drives the evolution of the web into a powerful application platform. Increasingly, web applications combine services from different providers. The script inclusion mechanism routinely turns barebone web pages into full-fledged services built up from third-party code. Script inclusion poses a challenge of ensuring that the integrated third-party code respects security and privacy. This paper presents a dynamic mechanism for securing script executions by tracking information flow in JavaScript and its APIs. On the formal side, the paper identifies language constructs that constitute a core of JavaScript: dynamic objects, higher-order functions, exceptions, and dynamic code evaluation. It develops a dynamic type system that guarantees information-flow security for this language. Based on this formal model, the paper presents JSFlow, a practical security-enhanced interpreter for fine-grained tracking of information flow in full JavaScript and its APIs. Our experiments with JSFlow deployed as a browser extension provide in-depth understanding of information manipulation by third-party scripts. We find that different sites intended to provide similar services effectuate rather different security policies for the user's sensitive information: some ensure it does not leave the browser, others share it with the originating server, while yet others freely propagate it to third parties.
引用
收藏
页码:181 / 234
页数:54
相关论文
共 50 条
[31]   Using Dependence Graphs to Assist Verification and Testing of Information-Flow Properties [J].
Herda, Mihai ;
Tyszberowicz, Shmuel ;
Beckert, Bernhard .
TESTS AND PROOFS, TAP 2018, 2018, 10889 :83-102
[32]   Abstract Non-Interference: A Unifying Framework for Weakening Information-flow [J].
Giacobazzi, Roberto ;
Mastroeni, Isabella .
ACM TRANSACTIONS ON PRIVACY AND SECURITY, 2018, 21 (02)
[33]   Verification-based Test Case Generation for Information-Flow Properties [J].
Herda, Mihai ;
Tyszberowicz, Shmuel ;
Muessig, Joachim ;
Beckert, Bernhard .
SAC '19: PROCEEDINGS OF THE 34TH ACM/SIGAPP SYMPOSIUM ON APPLIED COMPUTING, 2019, :2231-2238
[34]   Probabilistic Information Flow Security [J].
Gruska, Damas P. .
FUNDAMENTA INFORMATICAE, 2008, 85 (1-4) :173-187
[35]   Points of Failure: A Systematic Review of information-flow using Medication Use Cases [J].
Hermon, Rebecca ;
Williams, Patricia .
PROCEEDINGS OF THE 53RD ANNUAL HAWAII INTERNATIONAL CONFERENCE ON SYSTEM SCIENCES, 2020, :3862-3870
[36]   A progress-sensitive flow-sensitive inlined information-flow control monitor (extended version) [J].
Bedford, Andrew ;
Chong, Stephen ;
Desharnais, Josee ;
Kozyri, Elisavet ;
Tawbi, Nadia .
COMPUTERS & SECURITY, 2017, 71 :114-131
[37]   Information Flow Control Using the Java']Java Virtual Machine Tool Interface (JVMTI) [J].
Howarth, Jason ;
Altas, Irfan ;
Dalgarno, Barney .
FIFTH INTERNATIONAL CONFERENCE ON AVAILABILITY, RELIABILITY, AND SECURITY: ARES 2010, PROCEEDINGS, 2010, :689-695
[38]   Information Flow-Based Security Construction for Compositional Interface Automata [J].
Xu, Mingdi ;
Jin, Zhaoyang ;
Zhang, Fan ;
Cui, Feng .
TRUSTED COMPUTING AND INFORMATION SECURITY, CTCIS 2019, 2020, 1149 :31-43
[39]   Model Checking the Information Flow Security of Real-Time Systems [J].
Gerking, Christopher ;
Schubert, David ;
Bodden, Eric .
ENGINEERING SECURE SOFTWARE AND SYSTEMS, ESSOS 2018, 2018, 10953 :27-43
[40]   Information Flow Security Models for Cloud Computing [J].
Lv, Congdong ;
Zhang, Ji ;
Sun, Zhoubao ;
Qian, Gang .
CMC-COMPUTERS MATERIALS & CONTINUA, 2020, 65 (03) :2687-2705