move fast and secure things
play

Move fast and secure things About Me $whoami Security engineer @ - PowerPoint PPT Presentation

Move fast and secure things About Me $whoami Security engineer @ Fb > 2 years Security consultant I <3 CTFs (LC/BC) I <3 server side bugs and automating the detection @the_st0rm Agenda Setting the scene


  1. Move fast and secure things

  2. About Me $whoami – Security engineer @ Fb > 2 years – Security consultant – I <3 CTFs (LC/BC) – I <3 server side bugs and automating the detection – @the_st0rm

  3. • Agenda – Setting the scene – Securing the codebase – Example of rules – Static analysis use cases – Myth busting – Demo! :O � 3

  4. • Engineering @ FB > 100k commits per week Big Code: Developer Infrastructure at Facebook's Scale https://www.facebook.com/FacebookforDevelopers/videos/10152800517193553/ � 4

  5. • Engineering @ FB � 5

  6. “Nothing at Facebook is somebody else's problem” � 6

  7. • Securing the codebase – Secure frameworks – Security reviews – Automation (static and dynamic analysis) – Whitehat � 7

  8. • Secure frameworks – XHP – Hack – Django • Limitations – Enforcement – Depends on the engineer � 8

  9. • Manual security reviews – Find cool bugs • Limitations – Time consuming – Does not scale – Completeness � 9

  10. • Automation (Program analysis) – Scales – Find low hanging fruits – And difficult bugs (Fuzzing) – Continuous detection [+ prevention] • Limitations – False positives and negatives – Difficult to get right � 10

  11. • Whitehat – Continuous detection – Very unique bugs/talent • Limitations – Test in prod! – Expensive for small companies? – Signal to noise ratio � 11

  12. Automation (static analysis) � 12

  13. • Automation (static analysis) – Scale – Tens of millions LoC – Thousand commits/day – Performance • No run-time overhead (e.g fuzzing) • Grepping millions of LoC – Completeness – Proactive vs Reactive � 13

  14. • Static analysis design refine with SWE whitehat triage master Yes can do add a bug is new bug with SA? rule dead monitor diffs No security Oops review � 14

  15. • Tips to build good static analysis – Coverage • Understand the attack surface • Define sources • Define sinks – Simplicity • Easy to use • Configuring the sources/sinks • Adding sanitizers � 15

  16. • Tips to build good static analysis – Improving signal • Excluding False positives • Finding false negatives – Feedback to the framework – Speed � 16

  17. • Security vulnerabilities we detect – We can currently detect more than 20 types of security issues including • Higher-order command injection • HTTP status codes as privacy oracles • Arbitrary file reads/writes • Server-side Request Forgery (SSRF) • SQL • XSS � 17

  18. • Bug detection - Arbitrary file reads/writes – Filename going to dangerous function � 18

  19. • Bug detection - command injection • Secure because of high-quality frameworks $t = attacker_controlled(); // … many lines … execx(“zip %s”, $t); $t = attacker_controlled(); // … execx(“zip a.zip -T '--unzip-command=%s'”, $t); • Commands can execute other commands • Static analysis tool can understand format string � 19

  20. • Bug detection - Privacy oracles – Static analysis can check • action taken under attacker control? • action is influenced by privacy check? $group_id = attacker_controlled(); $group_id = attacker_controlled(); // load with privacy check if ($group_id === 100) $data = isMember(auth_user(), group_id); throw HTTP_404(); if ($data === null) throw HTTP_404(); � 20

  21. • Use cases – Regular analysis • Triaged by security engineers • Triaged by team owners – On-demand analysis • Whitehat report • Security reviews

  22. • Use cases – Diff analysis • Analyze base repo • Analyze base repo + diff • Find new issues • High confidence issues => auto comment • Mid confidence => Oncall/product team

  23. • Myth busting – Does it scale? • 20 mins for 10s millions of LoC – Is it precise? • “Static analyzers are noisy” – Is it useful? • “They only find trivial errors” � 23

  24. • Analysis dashboard � 24

  25. pyre-check.org • Have you heard about Pyre? – Pyre is a fast, scalable type checker for large Python 3 codebases – Open source • Python static analysis? • Demo? � 25

  26. We are hiring <3 � 26

  27. Questions? � 27

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend