~/talk

Making C Less Dangerous

Talkat Linux Security Summit North America 2018 · 2018-08-27..08-28· [security]
slides:none on file

Kernel C changes focus on concrete fixes: removing Variable Length Arrays reduces hundreds of patches to a few remaining and converts hot paths to fixed-size arrays that show 13% speed-up in a driver benchmark; forcing automatic variables to be initialized via GCC/Clang plugins eliminates uninitialized-memory surprises; bounds checks use overloaded builtins and hardened_usercopy which costs ~1% perf hit and string/mem wrappers cost ~2% each; integer-overflow helpers (UBSan/clang unsigned checks) and CFI under Clang plus hardware options like Intel CET and ARM PAC narrow indirect-call and return attacks.

AI-written summary · about

  1. 0:00Intro
  2. 1:04Kernel Self Protection Project
  3. 1:53C as a fancy assembler almost machine code
  4. 2:32C as a fancy assembler: undefined behavior
  5. 4:44Variable Length Arrays are bad
  6. 6:01Variable Length Arrays are slow
  7. 6:55Switch case fall-through did I mean it?
  8. 7:49Switch case fall-through: new statement
  9. 8:11Switch case fall-through new statement
  10. 8:29Always-initialized local variables: just do it
  11. 10:28Always-initialized local variables switch gotcha
  12. 12:46Arithmetic overflow detection Clang :
  13. 13:35Bounds checking: explicit checking is slow
  14. 15:48Bounds checking memory tagging :
  15. 17:06Control Flow Integrity: indirect calls
  16. 18:38CFI, forward edges: enforce prototype :
  17. 19:22CFI, backward edges: two stacks
  18. 19:57CFI, backward edges: shadow call stack . Clang's Shadow Cal Stack
  19. 20:25CFI, backward edges: hardware support
  20. 21:36Where is the Linux kernel now?
  21. 23:55Challenges in Kernel Security Development
~/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.