Detecting Security-Relevant Methods using Multi-label Machine Learning
This work addresses the tedious and error-prone manual configuration of static analysis tools for developers, though it is incremental as it builds on existing machine learning approaches with a multi-label method.
The paper tackles the problem of detecting security-relevant methods for static analysis tools by introducing Dev-Assist, an IntelliJ IDEA plugin that uses a multi-label machine learning approach to consider dependencies among labels, resulting in a higher F1-Measure than related approaches and reducing manual effort in configuration.
To detect security vulnerabilities, static analysis tools need to be configured with security-relevant methods. Current approaches can automatically identify such methods using binary relevance machine learning approaches. However, they ignore dependencies among security-relevant methods, over-generalize and perform poorly in practice. Additionally, users have to nevertheless manually configure static analysis tools using the detected methods. Based on feedback from users and our observations, the excessive manual steps can often be tedious, error-prone and counter-intuitive. In this paper, we present Dev-Assist, an IntelliJ IDEA plugin that detects security-relevant methods using a multi-label machine learning approach that considers dependencies among labels. The plugin can automatically generate configurations for static analysis tools, run the static analysis, and show the results in IntelliJ IDEA. Our experiments reveal that Dev-Assist's machine learning approach has a higher F1-Measure than related approaches. Moreover, the plugin reduces and simplifies the manual effort required when configuring and using static analysis tools.