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 条
  • [21] Efficient Information-Flow Verification Under Speculative Execution
    Bloem, Roderick
    Jacobs, Swen
    Vizel, Yakir
    AUTOMATED TECHNOLOGY FOR VERIFICATION AND ANALYSIS (ATVA 2019), 2019, 11781 : 499 - 514
  • [22] INFORMATION-FLOW AND TEMPORAL CODING IN PRIMATE PATTERN VISION
    HELLER, J
    HERTZ, JA
    KJAER, TW
    RICHMOND, BJ
    JOURNAL OF COMPUTATIONAL NEUROSCIENCE, 1995, 2 (03) : 175 - 193
  • [23] Making Java']JavaScript Render Decisions to Optimize Security-Oriented Crawler Process
    Aktas, Onur
    Can, Ahmet Burak
    IEEE ACCESS, 2024, 12 : 161688 - 161696
  • [24] Information flow security in dynamic contexts
    Focardi, Riccardo
    Rossi, Sabina
    JOURNAL OF COMPUTER SECURITY, 2006, 14 (01) : 65 - 110
  • [25] A technique to analyze information-flow in object-oriented programs
    Li, BX
    INFORMATION AND SOFTWARE TECHNOLOGY, 2003, 45 (06) : 305 - 314
  • [26] GATE-LEVEL INFORMATION-FLOW TRACKING FOR SECURE ARCHITECTURES
    Tiwari, Mohit
    Li, Xun
    Wassel, Hassan M. G.
    Mazloom, Bita
    Mysore, Shashidhar
    Chong, Frederic T.
    Sherwood, Timothy
    IEEE MICRO, 2010, 30 (01) : 92 - 100
  • [27] Java']Java bytecode verification for secure information flow
    Avvenuti, M
    Bernardeschi, C
    De Francesco, N
    ACM SIGPLAN NOTICES, 2003, 38 (12) : 20 - 27
  • [28] An Empirical Study of Privacy-Violating Information Flows in Java']JavaScript Web Applications
    Jang, Dongseok
    Jhala, Ranjit
    Lerner, Sorin
    Shacham, Hovav
    PROCEEDINGS OF THE 17TH ACM CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY (CCS'10), 2010, : 270 - 283
  • [29] A FIELD-STUDY OF THE RELATIONSHIP OF INFORMATION-FLOW AND MAINTAINABILITY OF COBOL PROGRAMS
    PICKARD, MM
    CARTER, BD
    INFORMATION AND SOFTWARE TECHNOLOGY, 1995, 37 (04) : 195 - 202
  • [30] Verification-based Test Case Generation for Information-Flow Properties
    Herda, Mihai
    Tyszberowicz, Shmuel
    Muessig, Joachim
    Beckert, Bernhard
    SAC '19: PROCEEDINGS OF THE 34TH ACM/SIGAPP SYMPOSIUM ON APPLIED COMPUTING, 2019, : 2231 - 2238