Alert button
Picture for Yannic Noller

Yannic Noller

Alert button

VUDENC: Vulnerability Detection with Deep Learning on a Natural Codebase for Python

Jan 20, 2022
Laura Wartschinski, Yannic Noller, Thomas Vogel, Timo Kehrer, Lars Grunske

Figure 1 for VUDENC: Vulnerability Detection with Deep Learning on a Natural Codebase for Python
Figure 2 for VUDENC: Vulnerability Detection with Deep Learning on a Natural Codebase for Python
Figure 3 for VUDENC: Vulnerability Detection with Deep Learning on a Natural Codebase for Python
Figure 4 for VUDENC: Vulnerability Detection with Deep Learning on a Natural Codebase for Python

Context: Identifying potential vulnerable code is important to improve the security of our software systems. However, the manual detection of software vulnerabilities requires expert knowledge and is time-consuming, and must be supported by automated techniques. Objective: Such automated vulnerability detection techniques should achieve a high accuracy, point developers directly to the vulnerable code fragments, scale to real-world software, generalize across the boundaries of a specific software project, and require no or only moderate setup or configuration effort. Method: In this article, we present VUDENC (Vulnerability Detection with Deep Learning on a Natural Codebase), a deep learning-based vulnerability detection tool that automatically learns features of vulnerable code from a large and real-world Python codebase. VUDENC applies a word2vec model to identify semantically similar code tokens and to provide a vector representation. A network of long-short-term memory cells (LSTM) is then used to classify vulnerable code token sequences at a fine-grained level, highlight the specific areas in the source code that are likely to contain vulnerabilities, and provide confidence levels for its predictions. Results: To evaluate VUDENC, we used 1,009 vulnerability-fixing commits from different GitHub repositories that contain seven different types of vulnerabilities (SQL injection, XSS, Command injection, XSRF, Remote code execution, Path disclosure, Open redirect) for training. In the experimental evaluation, VUDENC achieves a recall of 78%-87%, a precision of 82%-96%, and an F1 score of 80%-90%. VUDENC's code, the datasets for the vulnerabilities, and the Python corpus for the word2vec model are available for reproduction. Conclusions: Our experimental results suggest...

* Information and Software Technology, Volume 144, April 2022, 106809  
* Accepted Manuscript 
Viaarxiv icon

NNrepair: Constraint-based Repair of Neural Network Classifiers

Mar 23, 2021
Muhammad Usman, Divya Gopinath, Youcheng Sun, Yannic Noller, Corina Pasareanu

Figure 1 for NNrepair: Constraint-based Repair of Neural Network Classifiers
Figure 2 for NNrepair: Constraint-based Repair of Neural Network Classifiers
Figure 3 for NNrepair: Constraint-based Repair of Neural Network Classifiers
Figure 4 for NNrepair: Constraint-based Repair of Neural Network Classifiers

We present NNrepair, a constraint-based technique for repairing neural network classifiers. The technique aims to fix the logic of the network at an intermediate layer or at the last layer. NNrepair first uses fault localization to find potentially faulty network parameters (such as the weights) and then performs repair using constraint solving to apply small modifications to the parameters to remedy the defects. We present novel strategies to enable precise yet efficient repair such as inferring correctness specifications to act as oracles for intermediate layer repair, and generation of experts for each class. We demonstrate the technique in the context of three different scenarios: (1) Improving the overall accuracy of a model, (2) Fixing security vulnerabilities caused by poisoning of training data and (3) Improving the robustness of the network against adversarial attacks. Our evaluation on MNIST and CIFAR-10 models shows that NNrepair can improve the accuracy by 45.56 percentage points on poisoned data and 10.40 percentage points on adversarial data. NNrepair also provides small improvement in the overall accuracy of models, without requiring new data or re-training.

Viaarxiv icon

NEUROSPF: A tool for the Symbolic Analysis of Neural Networks

Feb 27, 2021
Muhammad Usman, Yannic Noller, Corina Pasareanu, Youcheng Sun, Divya Gopinath

Figure 1 for NEUROSPF: A tool for the Symbolic Analysis of Neural Networks
Figure 2 for NEUROSPF: A tool for the Symbolic Analysis of Neural Networks
Figure 3 for NEUROSPF: A tool for the Symbolic Analysis of Neural Networks
Figure 4 for NEUROSPF: A tool for the Symbolic Analysis of Neural Networks

This paper presents NEUROSPF, a tool for the symbolic analysis of neural networks. Given a trained neural network model, the tool extracts the architecture and model parameters and translates them into a Java representation that is amenable for analysis using the Symbolic PathFinder symbolic execution tool. Notably, NEUROSPF encodes specialized peer classes for parsing the model's parameters, thereby enabling efficient analysis. With NEUROSPF the user has the flexibility to specify either the inputs or the network internal parameters as symbolic, promoting the application of program analysis and testing approaches from software engineering to the field of machine learning. For instance, NEUROSPF can be used for coverage-based testing and test generation, finding adversarial examples and also constraint-based repair of neural networks, thus improving the reliability of neural networks and of the applications that use them. Video URL: https://youtu.be/seal8fG78LI

Viaarxiv icon