Object-capability security for JavaScript applications (Cybersecurity seminar lecture)
Channel: Tom Van Cutsem
Date: 2023-04-28

Lecture by Prof. Tom Van Cutsem (DistriNet KU Leuven) as part of a Cybersecurity seminar course at KU Leuven, Belgium in November 2022.

Link to slides: tvcutsem.github.io/assets/ocaps_js_11_2022.pdf

Object-capability security for JavaScript applications

Modern JavaScript applications, whether web apps or web app servers, are built from countless third-party modules and services. Composing applications from modules across trust boundaries requires a new software architecture mindset to defend against unintended side-effects, whether through unintentional bugs or intentional attacks. In this lecture we introduce the paradigm of object-capability security and how it enables treating application security as an extreme form of software modularity. We provide context on why trust boundaries are important for JavaScript applications, introduce a capability-secure subset of JavaScript called "Hardened JavaScript", a practical way to run Hardened JavaScript via a tool called LavaMoat, and finally review a number of basic object-capability patterns and best practices that enable the safe composition of objects across trust boundaries.