GitHub repository: sciencehacker/Machine-Learning-Cybersecurity-Science-Fair-Project
Created: 2019-04-14T23:01:17Z
Description: The purpose of this science fair project was to be able to test whether it was possible to create a neural network algorithm capable of accurately identifying vulnerabilities in C programs. This experiment supported the researcher’s hypothesis that if the AI program is able to successfully identify all previously discovered vulnerabilities in the program than it has proven itself capable of identifying vulnerabilities in programs. The procedure of this experiment had the researcher downloading close to 3,000 C program source code files and then running them through the static source code vulnerability scanner Flawfinder, which then outputted its results into a series of text files. These programs were than formatted for the algorithm (by removing all comments and extraneous lines) and turned into .jpg image files (the only format which the neural network could understand). These .jpg image files were than compiled into a dataset for the algorithm to read in and then fed into a custom researcher written Python program which trained the neural network and outputted a model which could receive inputs and output a value of either vulnerable or not vulnerable. The results of this experiment clearly show how the network was able to successfully identify vulnerabilities in programs 83% of the time, with it rarely outputting a false positive. This research could, in the future, be used to create tools which could help software writers check their programs for vulnerabilities before they market them, securing their users from malicious hackers who may exploit them.