~/talk

Static Code Analysis - A Behind-the-scenes Look

Talkat GOTO Amsterdam 2022 · 2022-06-12..06-16· [security, testing]
links:none on file
slides:none on file

Uses Java examples to show concrete engineering trade-offs: parsing an AST or bytecode vs source (ASM/invokeDynamic) for full type info, then tracking taint flows across assignments, propagators and conditionals. Path explosion produces more than a thousand paths in a small example; naive merging cuts that to ~11 but loses precision. Recursion, loops and aliasing force call graph limitations and k‑limits; full precision is undecidable, so tools must choose approximations and framework-specific heuristics.

AI-written summary · about

  1. 0:00Intro
  2. 1:03File & text utilities
  3. 1:48Challenge: Cross referencing
  4. 2:33Abstract syntax tree
  5. 3:47Which identifier refers to what?
  6. 5:33Explicit support for all language features
  7. 6:26Byte code
  8. 7:15Which is the better choice?
  9. 8:35Tracking flows
  10. 10:15Assignment
  11. 11:00Propagators
  12. 12:18Conditional flows
  13. 14:24Combinatorial explosion
  14. 16:08Merging
  15. 16:53Combinatorial explosion - Revisited
  16. 17:34Merging - Limitations
  17. 18:37Loops
  18. 20:15Impossible to be precise
  19. 20:44Function calls
  20. 21:40Recursion
  21. 22:26Virtual method calls
  22. 24:05Call graph
  23. 26:33Flow sensitivity
  24. 27:48Aliasing
  25. 29:57Framework / Library knowledge
  26. 31:58Identifying unique findings
  27. 33:38Quality of results
  28. 34:49Levels of sophistication
  29. 35:58Summary
  30. 37:10Outro
~/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.