TY - GEN
T1 - You are what you include
T2 - 2012 ACM Conference on Computer and Communications Security, CCS 2012
AU - Nikiforakis, Nick
AU - Invernizzi, Luca
AU - Kapravelos, Alexandros
AU - Van Acker, Steven
AU - Joosen, Wouter
AU - Kruegel, Christopher
AU - Piessens, Frank
AU - Vigna, Giovanni
PY - 2012
Y1 - 2012
N2 - JavaScript is used by web developers to enhance the interactivity of their sites, offload work to the users' browsers and improve their sites' responsiveness and user-friendliness, making web pages feel and behave like traditional desktop applications. An important feature of JavaScript, is the ability to combine multiple libraries from local and remote sources into the same page, under the same namespace. While this enables the creation of more advanced web applications, it also allows for a malicious JavaScript provider to steal data from other scripts and from the page itself. Today, when developers include remote JavaScript libraries, they trust that the remote providers will not abuse the power bestowed upon them. In this paper, we report on a large-scale crawl of more than three million pages of the top 10,000 Alexa sites, and identify the trust relationships of these sites with their library providers. We show the evolution of JavaScript inclusions over time and develop a set of metrics in order to assess the maintenance-quality of each JavaScript provider, showing that in some cases, top Internet sites trust remote providers that could be successfully compromised by determined attackers and subsequently serve malicious JavaScript. In this process, we identify four, previously unknown, types of vulnerabilities that attackers could use to attack popular web sites. Lastly, we review some proposed ways of protecting a web application from malicious remote scripts and show that some of them may not be as effective as previously thought.
AB - JavaScript is used by web developers to enhance the interactivity of their sites, offload work to the users' browsers and improve their sites' responsiveness and user-friendliness, making web pages feel and behave like traditional desktop applications. An important feature of JavaScript, is the ability to combine multiple libraries from local and remote sources into the same page, under the same namespace. While this enables the creation of more advanced web applications, it also allows for a malicious JavaScript provider to steal data from other scripts and from the page itself. Today, when developers include remote JavaScript libraries, they trust that the remote providers will not abuse the power bestowed upon them. In this paper, we report on a large-scale crawl of more than three million pages of the top 10,000 Alexa sites, and identify the trust relationships of these sites with their library providers. We show the evolution of JavaScript inclusions over time and develop a set of metrics in order to assess the maintenance-quality of each JavaScript provider, showing that in some cases, top Internet sites trust remote providers that could be successfully compromised by determined attackers and subsequently serve malicious JavaScript. In this process, we identify four, previously unknown, types of vulnerabilities that attackers could use to attack popular web sites. Lastly, we review some proposed ways of protecting a web application from malicious remote scripts and show that some of them may not be as effective as previously thought.
KW - JavaScript
KW - Remote inclusions
KW - Trust
UR - https://www.scopus.com/pages/publications/84869428407
U2 - 10.1145/2382196.2382274
DO - 10.1145/2382196.2382274
M3 - Conference contribution
AN - SCOPUS:84869428407
SN - 9781450316507
T3 - Proceedings of the ACM Conference on Computer and Communications Security
SP - 736
EP - 747
BT - CCS'12 - Proceedings of the 2012 ACM Conference on Computer and Communications Security
Y2 - 16 October 2012 through 18 October 2012
ER -