~/talk

A Sense of Time for JavaScript and Node.js

Talkat USENIX Security '18 · on Wednesday, 2018-08-15· at 15:50· Grand Ballroom 1-4· [javascript, security, nodejs]
links:none on file
links:none on file
slides:none on file

Defines Event Handler Poisoning (EHP) as a denial-of-service that blocks the event loop or small worker pool, mines a 1,132-vuln NPM dataset and finds ~35% exploitable (266 arbitrary-file IO, 115 ReDoS), and implements first-class timeouts by modifying V8, libuv, and adding manager threads to deliver timeout exceptions. Prototype Node.cure is ~4,000 LOC touching 50 files, passes core tests, is open-sourced, and reports runtime overheads from 0% to 24% on real apps.

AI-written summary · about

  1. 0:00Intro
  2. 0:29Contributions
  3. 1:06Node.js: A JS framework for web services
  4. 1:59One Thread per Client Architecture (OTPCA)
  5. 2:36Event-Driven Architecture (EDA)
  6. 4:32Server architecture dictates programming style
  7. 5:48The EDA gains efficiency, loses isolation
  8. 6:25Behavior during EHP attack on the Event Loop
  9. 7:20Vulnerable server
  10. 8:45ReDoS-based EHP attack
  11. 9:2735% of NPM vulnerabilities enable EHP
  12. 10:22Naive 1: Restart the server
  13. 10:55Naive 2: Prevent through partitioning
  14. 11:54Partitioning is partial and ad hoc
  15. 14:18Desired behavior
  16. 14:33Adding first-class timeouts to Node.js
  17. 15:43Node.cure prototype
  18. 16:01Security guarantees
  19. 17:08Performance penalty
  20. 17:56Changes to Node.js core
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.