作者: Engin Kirda , Michael Weissbacher , Christopher Kruegel , Giovanni Vigna , William Robertson
DOI:
关键词: Client-side 、 Distributed computing 、 HTML5 、 JavaScript 、 Rendering (computer graphics) 、 Zigzag 、 Operating system 、 Program code 、 Web application 、 Computer science
摘要: Modern web applications are increasingly moving program code to the client in form of JavaScript. With growing adoption HTML5 APIs such as postMessage, client-side validation (CSV) vulnerabilities consequently becoming important address well. However, while detecting and preventing attacks against is a well-studied topic on server, considerably less work has been performed for client. Exacerbating this issue problem that defenses CSVs must, general case, fundamentally exist browser, rendering current server-side inadequate. In paper, we present ZigZag, system hardening JavaScript-based clientside attacks. ZigZag transparently instruments perform dynamic invariant detection security-sensitive code, generating models describe how - with whom components interact. capable handling templated JavaScript, avoiding full re-instrumentation when JavaScript programs structurally similar. Learned invariants then enforced through subsequent instrumentation step. Our evaluation demonstrates automatically both known previously-unknown vulnerabilities. Finally, show introduces acceptable overhead many cases, compatible popular websites drawn from Alexa Top 20 without developer or user intervention.