neuzz efficient fuzzing with
play

NEUZZ: Efficient Fuzzing with Neural Program Smoothing Dongdong She, - PowerPoint PPT Presentation

NEUZZ: Efficient Fuzzing with Neural Program Smoothing Dongdong She, Kexin Pei, Dave Epstein, Junfeng Yang, Baishakhi Ray, and Suman Jana Columbia University 1 Fuzzing: a popular way to uncover bugs [Liang et al. 2019] 2 Evolutionary Fuzzing


  1. NEUZZ: Efficient Fuzzing with Neural Program Smoothing Dongdong She, Kexin Pei, Dave Epstein, Junfeng Yang, Baishakhi Ray, and Suman Jana Columbia University 1

  2. Fuzzing: a popular way to uncover bugs [Liang et al. 2019] 2

  3. Evolutionary Fuzzing Advantage: easy to implement Seed Disadvantage: inefficient Mutation • Random mutations are not effective • Often get stuck in long sequence of Children wasteful mutations Hard to find scalable and adaptive Grandchildren heuristics for guided mutation 3

  4. A new approach to fuzzing 4

  5. Fuzzing: An Optimization Problem a program input ∈ X x x # of bugs found by input F ( x ) x generate K inputs from input space C ( X ) X � F ( x ) Maximize x ∈ C ( X ) Find C(X) that can maximize total no. of bugs is discrete and hard to optimize F ( x ) 5

  6. Fuzzing: An Optimization Problem : # of bugs F ( x ) x 2 x 1 Input x Hard to find inputs like and x 2 x 1 among flat plateaus 6

  7. Fuzzing: An Optimization Problem a program input ∈ X x x edge coverage of input G ( x ) x generate K inputs from input space C ( X ) X � G ( x ) Maximize x ∈ C ( X ) Find C(X) that can maximize total number of edges 7

  8. Fuzzing: An Optimization Problem : # of edges G ( x ) Input x 8

  9. Evolutionary optimization : # of edges G ( x ) 4 2 5 1 3 Input x Random mutation is not efficient 9

  10. Gradient-guided Optimization Smooth Approximation + Gradient-guided Mutation : # of edges : smooth approximation of G ( x ) H ( x ) G ( x ) Input x 10

  11. Gradient-guided Optimization Smooth Approximation + Gradient-guided Mutation : smooth approximation of H ( x ) G ( x ) 4 3 5 2 1 Input x 11

  12. Smooth Approximation Problem: How to smoothly approximate G(x)? Universal Approximation Theorem: A NN can approximate any continuous function Neuzz Solution: Use a NN to learn a smooth H(x) 12

  13. Gradient-guided Mutation Why gradient guidance? Gradient indicates critical parts of input What are critical parts of the input? Critical parts of input affect program branches How gradient-guided mutation works? Focus mutations on the critical parts of the input 13

  14. Main Idea behind Neuzz Program Branching Input Behaviors Gradient-guided mutation Smooth Surrogate Branching Input Behaviors NN 14

  15. A Peek Into NN Model 15

  16. Generalization to Unseen branches Observations: - Real world program inputs have critical parts - Most of branches are affected by the critical parts Neuzz Solution: - Identify critical parts based on observed branches - Perform more mutations on the critical part of inputs to explore unseen branches 16

  17. Design of NEUZZ 17

  18. Evaluation Ø 10 real world programs Ø Lava-M and DARPA CGC datasets Ø Comparison with RNN-based fuzzers Ø Performance of different model choices 18

  19. Evaluations: Edge Coverage NEUZZ vs. state-of-the-art fuzzers 10 real world applications for 24 hours NEUZZ achieves on average 3x more edge coverage than other fuzzers 19

  20. Evaluations: Bug Finding NEUZZ vs. state-of-the-art fuzzers NEUZZ finds the most number of bugs and all 5 bug types including two new CVEs 20

  21. Evaluations: Lava-M and CGC Lava-M dataset DARPA CGC dataset NEUZZ outperforms state-of-the-art fuzzers on LAVA-M and CGC 21

  22. Evaluations: NEUZZ vs. RNN-based Fuzzer NEUZZ achieves 6x more edge coverage and 20x less training time 22

  23. Evaluations: Effect of Different NNs Edge coverage for 1M mutations NEUZZ achieves best performance with NN+Incremetal learning 23

  24. Key Takeaways of NEUZZ ● Use NN gradients to identify the critical locations of program inputs ● Focus mutations on the critical locations ● Minimize runtime overhead by using simple feed-forward neural networks ● Retrain the network incrementally to find new critical locations 24

  25. Github Repo NEUZZ is available at https://github.com/Dongdongshe/neuzz 25

  26. NEUZZ: Efficient Fuzzing with Neural Program Smoothing Dongdong She, Kexin Pei, Dave Epstein, Junfeng Yang, Baishakhi Ray, and Suman Jana Columbia University 26

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