This talk will explore how Long short-term memory (LSTM) recurrent neural networks combined with Python can use Artificial Intelligence to provide invalid, unexpected, or random data as inputs for testing software and finding network security vulnerabilities. The technique of machine generated test inputs is an established testing approach and is sometimes referred to as fuzzing. I will take this idea further by presenting how various types of machine learning can provide novel outlier test cases to harden software and networks in a way that is superior to using only randomness. Instead, I will discuss how to train neural networks to produce better fuzzing data.This is a natural progression from my work with machine learning and image processing using support vector machines (SVM) and Generative Adversarial Networks (GAN) which I have applied to this new domain of software testing. This a beginner level talk aimed at all software developers and testers with a goal to giving attendees a basic understanding of fuzz testing.
Timing of presentation 1 Introduction 0-5 minutes 2 What is a neural fuzzing 5-10 minutes 3 How does fuzzing work 10-15 minutes 4 Steps to train a deep neural network 15-20 minutes 5 Implementing a basic LSTM neural network for security testing 20-25 minutes 6 Conclusion and Questions 25-30 minutes