~/talk

Don't hack the JVM? ☠️💣💥

Talkat J-Fall 2018 · on Thursday, 2018-11-08· [security, java]
slides:none on file

Shows concrete JVM attacks and defenses: mutating the Integer cache produces an infinite loop of 4s by changing a cached Integer value; Unicode escape sequences hide code so a test asserting "false" == "true" can pass; reflection and Objenesis create objects without constructors and even clone an enum so a singleton appears twice (and can add a fifth enum constant); runtime bytecode rewrite with Byte Buddy and agents alters System.currentTimeMillis across JVMs; fixes include SecurityManager and illegal-access=deny.

AI-written summary · about

  1. 0:00Introduction and motivation
  2. 2:20Language feature hacks
  3. 4:47Unicode and flaky tests
  4. 7:00Language comparison and tricks
  5. 10:26Hash codes and security
  6. 13:13Reflection and cache manipulation
  7. 16:50String interning and mutability
  8. 20:01Dynamic compilation and patching
  9. 23:39Annotation and dependency hacks
  10. 25:58Object instantiation and enums
  11. 29:00Runtime modification of enums
  12. 31:57Byte Buddy and agents
  13. 35:26Remote JVM process attacks
  14. 38:38Prevention and conclusion
~/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.