{"id":439581,"date":"2017-11-13T08:59:30","date_gmt":"2017-11-13T16:59:30","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/research\/?p=439581"},"modified":"2017-11-27T14:56:50","modified_gmt":"2017-11-27T22:56:50","slug":"neural-fuzzing","status":"publish","type":"post","link":"https:\/\/www.microsoft.com\/en-us\/research\/blog\/neural-fuzzing\/","title":{"rendered":"Neural fuzzing: applying DNN to software security testing"},"content":{"rendered":"
\"\"

William Blum, Principal Research Engineering Lead. (Photography by Scott Eklund\/Red Box Pictures)<\/p><\/div>\n

Microsoft researchers have developed a new method for discovering software security vulnerabilities that uses machine learning and deep neural networks to help the system root out bugs better by learning from past experience. This new research project, called neural fuzzing (opens in new tab)<\/span><\/a>, is designed to augment traditional fuzzing techniques, and early experiments have demonstrated promising results.<\/p>\n

Software security testing is a hard task that is traditionally done by security experts through costly and targeted code audits, or by using very specialized and complex security tools to detect and assess vulnerabilities in code. We recently released a tool, called Microsoft Security Risk Detection (opens in new tab)<\/span><\/a>, that significantly simplifies security testing and does not require you to be an expert in security in order to root out software bugs. The Azure-based tool is available to Windows users and in preview for Linux users.<\/p>\n

Fuzz testing<\/strong>
\nThe key technology underpinning Microsoft Security Risk Detection is fuzz testing, <\/em>or fuzzing. It\u2019s a program analysis technique that looks for inputs causing error conditions that have a high chance of being exploitable, such as buffer overflows, memory access violations and null pointer dereferences.<\/p>\n

Fuzzers come in different categories:<\/p>\n