  The identification of vulnerabilities is an important element in the software
development life cycle to ensure the security of software. While vulnerability
identification based on the source code is a well studied field, the
identification of vulnerabilities on basis of a binary executable without the
corresponding source code is more challenging. Recent research [1] has shown,
how such detection can be achieved by deep learning methods. However, that
particular approach is limited to the identification of only 4 types of
vulnerabilities. Subsequently, we analyze to what extent we could cover the
identification of a larger variety of vulnerabilities. Therefore, a supervised
deep learning approach using recurrent neural networks for the application of
vulnerability detection based on binary executables is used. The underlying
basis is a dataset with 50,651 samples of vulnerable code in the form of a
standardized LLVM Intermediate Representation. The vectorised features of a
Word2Vec model are used to train different variations of three basic
architectures of recurrent neural networks (GRU, LSTM, SRNN). A binary
classification was established for detecting the presence of an arbitrary
vulnerability, and a multi-class model was trained for the identification of
the exact vulnerability, which achieved an out-of-sample accuracy of 88% and
77%, respectively. Differences in the detection of different vulnerabilities
were also observed, with non-vulnerable samples being detected with a
particularly high precision of over 98%. Thus, the methodology presented allows
an accurate detection of 23 (compared to 4 [1]) vulnerabilities.
