This work from Microsoft represents a meaningful connection between artificial intelligence (AI) and the practical technological world. Microsoft is rapidly becoming an expert at the thoughtful application of AI to pressing, real issues. Given their scope of visibility into security issues ranging from raw kernels all the way into the application layer, software companies are very well positioned to take the lead in security, and this reiterates that advantage.
Services like these are precisely why public cloud providers are so far ahead. Large companies are able to combine the expertise of various areas within their vast businesses and produce unique capabilities others simply can’t replicate. This is nothing new, but it should serve as a reminder that specialization is the path forward as infrastructure and related services are continuously commoditized. Leverage these services instead of building them on your own, and use the extra time to go build differentiated capability within your industry, instead.
Microsoft has released an artificial intelligence (AI)-powered tool to help developers categorise bugs and features that need to be addressed in forthcoming releases.
The software giant's machine learning system classifies bugs as security or non-security with a 99% accuracy, and also determines whether a bug is critical or non-critical with a 97% accuracy rating.
With ambitions to build a system with a level of accuracy as close as possible to a security expert, Microsoft fed its machine learning model with bugs labelled as security and non-security. Once this was trained, it could then label data that was not pre-classified.
"Every day, software developers stare down a long list of features and bugs that need to be addressed," said Microsoft’s senior security program manager Scott Christiansen, and data and applied scientist Mayana Pereira.
"Security professionals try to help by using automated tools to prioritize security bugs, but too often, engineers waste time on false positives or miss a critical security vulnerability that has been misclassified.
"At Microsoft, 47,000 developers generate nearly 30 thousand bugs a month. These items get stored across over 100 AzureDevOps and GitHub repositories. To better label and prioritize bugs at that scale, we couldn’t just apply more people to the problem. However, large volumes of semi-curated data are perfect for machine learning."
Because the system needs to be as accurate as a security expert, security professionals approved training data before this was fed into the machine learning model. Once the model was operational, they were brought back to evaluate the model in production.
The project began with data science and the collection of all data types and sources to evaluate quality. Security experts were then brought in to review the data and confirm the labels assigned were correct.
Data scientists then chose a modelling technique, trained the model, and evaluated performance. Finally, security experts evaluated the model in production by monitoring the average number of bugs and manually reviewing a random sample.
The mechanism uses a step-step machine learning model operation; first learning how to classify between security and non-security bugs and then to apply a severity rating.
As a result of the level of accuracy, Microsoft now believes it’s catching more security vulnerabilities before they are exploited in the wild.
Development teams can read details in a published academic paper, with the machine learning methodology set to be open-sourced through GitHub in the coming months.