building your own waf as a service and forgetting about
play

Building Your Own WAF as a Service and Forgetting about False - PowerPoint PPT Presentation

Building Your Own WAF as a Service and Forgetting about False Positives 1 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner Juan Berner @89berner Lead security developer @Booking.com Blog:


  1. Building Your Own WAF as a Service and Forgetting about False Positives 1 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  2. Juan Berner @89berner Lead security developer @Booking.com Blog: medium.com/@89berner 2 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  3. Overview ● Introduction to WAF & deployment modes ● WAF as a service ● Blocking attacks without false positives or increased latency ● Demo 3 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  4. WAF? ● Web Application Firewall ● Mainly used to protect against Application Attacks ● SQLi, RCE, Protocol Violations, Rate Limiting ... 4 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  5. Deployment mode - Inline ● Pros: ○ Traffic inspection ○ Ability to block ○ Transparent for web servers ● Cons: ○ Network placement ○ Latency 5 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  6. Deployment mode - Out of band ● Pros: ○ Traffic inspection ○ Transparent for web servers ○ Simpler network placement ● Cons: ○ Can’t block attacks ○ PFS 6 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  7. Deployment mode - Agent ● Pros: ○ Easier network placement ○ Simple to scale ● Cons: ○ More invasive on deployment environment ○ Can be less efficient on resource allocation 7 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  8. Deployment mode - Cloud ● Pros: ○ Simple to setup and scale ○ Network effect ● Cons: ○ Out of your control ○ Latency added 8 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  9. Caveats with typical WAF Solutions ● Network placement ● Availability and performance concerns ● False positive rate ● Lack of control from developers 9 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  10. Building the WAF as a Service ● Removes FP by having an understanding of the application context ● No need for an appliance, just add an API call ● Blocking behaviour is decided by the application ● Ability to avoid latency for regular users 10 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  11. How could you build one? ● Open source components already exist ● Creating a log processing pipeline ● Building a WAF API ● Library for logs and calling API 11 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  12. Case study: Web application ● Setup in Google Cloud ● Flask microframework ● Code available in github 12 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  13. Finding a middle ground ● Out of band mode removes concerns of latency added to users ● Inline mode provides security by blocking attacks ● Could we get the best of both worlds? 13 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  14. Components - Web application 14 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  15. Components - Web application ● Can decide which mode to work on ○ Inline ○ Out of band ● Sends logs with partial request data encrypted Example: Flask 15 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  16. Components - Agent ● Acts as a reverse proxy ● Minimal footprint ● Application agnostic ● Can get settings from the application 16 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  17. Components - Library ● Simple to implement ● Inherent risks ● Strategy for this talk 17 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  18. Components - WAF service 18 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  19. Components - WAF service ● Pluggable architecture ● Parallel nature of their components ● Applications can decide how to react 19 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  20. Components - WAF service ● Open source components ○ Modsecurity ○ Naxsi 20 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  21. Components - WAF service ● Proprietary software or appliances ○ Reduced complexity of installation ○ Simple way of evaluation 21 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  22. Components - WAF service ● Custom modules ○ Apply custom business logic ○ Implement simple services ■ Rate limiting ■ Rule engine for blocking ○ ML models 22 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  23. WAF service 23 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  24. Components - Log processing 24 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  25. Components - Log processing ● Replays logs that were not in line against WAF ● Calculates scores through windows of time Google Dataflow 25 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  26. Components - Detection 26 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  27. Components - Detection ● Triggered by Log Processing ● Business value ● Patterns of behaviour for FP 27 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  28. Components - State store 28 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  29. Components - State store ● Allows to store configuration ● Ideally fast lookup for caching 29 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  30. Components - Visualisation 30 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  31. Components - Visualisation ● Easily understand activity ● Visibility on attacks ● Performance metrics Example: ELK 31 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  32. Components - Visualisation 32 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  33. Components - Visualisation 33 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  34. Components - Management 34 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  35. How to block? ● Detection decides when to send traffic to the WAF ● Can also be triggered manually 35 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  36. Traffic routing ● Fingerprint based routing ○ Blocks based on scores ○ IP, client_id, combinations, 0day signatures .. ○ Added automatically or manually 36 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  37. Traffic routing ● Net block based routing ○ ISP ○ Hosting providers ○ Tor exit nodes / Proxies 37 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  38. Traffic routing ● Virtual Patching ○ Always route particular vulnerable endpoints ○ Select for combination of parameters if needed ○ Example: website.com/? vuln_param = 38 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  39. FP rate management ● Detection FP vs blocking FP ● Key to allow blocking without impacting users ● Acceptable rate might change per application ● Tuning can become unbearable in highly changing applications 39 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  40. FP rate management ● Business logic ○ How trustworthy is a user/ip? ○ Key business activity ○ What would be the impact on blocking them 40 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  41. FP rate management ● Historical Analysis ○ How normal is this type of request for this endpoint? ○ How does this user compare with others ○ How common are detection FP in this endpoint 41 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  42. FP rate management ● Context analysis ○ How many times have they triggered a FP ○ How many requests have they sent 42 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  43. FP rate management ● Example: Sleep( ○ message=“I will sleep(1 or 2 days)” ■ Might be detected as SQLI ■ Probability of FP is independent from each other 43 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

  44. FP rate management ● Independant SQLI FP rate: 0.1% ● Our aim, 0.00001% (0.01^5) ● Score needed => 5 * Reputation Score ● Aimed at attacks that need volume 44 Building Your Own WAF as a Service and Forgetting about False Positives Juan Berner

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