Giter VIP home page Giter VIP logo

bachelor-thesis's Introduction

Bachelor Thesis: Dangers and Prevalence of Client-Side Web API Manipulations

Build status CC BY 4.0 CC BY-ND 4.0

This thesis is written using LaTeX. You can download the PDF of this thesis here.

Abstract

Modern web browsers offer a plethora of JavaScript APIs, which provide functionality ranging from sending HTTP requests to signing and encrypting data via the Web Cryptography API. Web applications are highly dependent on these native browser APIs due to their ease of use, added functionality, and efficiency. The APIs are accessible through JavaScript as normal objects and functions and can be overwritten by all scripts executed within the same site. While polyfill libraries make legitimate use of this property, third-party code included in web applications is also able to overwrite the functions, which can allow attackers to overwrite APIs with malicious code and thus manipulate the behavior of the web application and grant access to its data.

This thesis assesses threats posed by browser API overwriting and investigates its prevalence on real-world websites. In order to determine the prevalence of API overwriting, a browser extension and an automated analysis tool were developed and used to conduct an empirical evaluation of the 16 000 most popular websites of the Tranco list. The threats presented in this thesis show that API overwriting allows attackers to gain access to private data, manipulate user interactions and cause a denial of service. The evaluation determined that it is common practice to overwrite APIs, with the most common usage being the tracking of user behavior for analytics purposes. As part of a case study, this thesis also reverse engineered the code responsible for a seemingly suspicious overwrite of a Cryptography API.

Files

  • thesis.tex - main document
  • chapter/*.tex - chapters and sections
  • img/ - images
  • references.bib - references
  • style.tex - style and settings

The source code of the browser extension developed as part of this thesis can be found here: wam-detector

Build

You can compile the source to thesis.pdf with make, or by manually executing:

pdflatex thesis.tex
biber thesis.bcf
pdflatex thesis.tex
pdflatex thesis.tex

or alternatively using latexmk:

latexmk -f -pdf thesis.tex

Clean

You can remove the additionally generated files with make clean-tmp, or all generated files with make clean.

License

The text of this thesis, its LaTeX source code and figures that do not include icons by Font Awesome are licensed under the Creative Commons Attribution 4.0 International License.

CC BY 4.0

Figures that include icons by Font Awesome are subject to the terms and conditions of the Font Awesome license and licensed under the Creative Commons Attribution-NoDerivatives 4.0 International License, provided that it does not conflict with the terms and conditions of the Font Awesome license.

CC BY-ND 4.0

bachelor-thesis's People

Contributors

irgendwr avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.