Aschl, G. (2020). Detecting neural network functions in binaries based on syntactic features [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2020.66352
Methoden aus dem Deep Learning (DL) sind auf mobilen Geräten immer häufiger anzutreffen. Fotofilter für Katzenohren, OCR für Kreditkartenerkennung oder Autokorrektur verbindet oftmals ein neuronales Netz (NN) als Kernfunktionalität. Wird das NN auf dem Gerät selbst gerechnet, muss das Modell ebenfalls auf dem Gerät vorhanden sein. Diese Modelle sind Teil des geistigen Eigentums des App-Anbieters und deshalb von Wert. Gestohlene Modelle könnten dem rechtmäßigen Besitzer Marktanteile kosten oder Angriffe auf seine Apps ermöglichen. Wir präsentieren eine Methode um Android Software Libraries, welche Programmcode für neuronale Netze implementieren, anhand von darin enthaltenen Implementierungen von mathematischen Funktionen, wie z.b. dem Matrix-Matrix Produkt, zu detektieren. Wir verwenden Referenzimplementierungen von diesen Funktionen um mittels eines Sliding Window über zu einer Schleife gehörenden Quellcodes Fuzzy Hashes zu generieren. Für eine zu untersuchende Library wird in ähnlicher Weise vorgegangen und die so generierten Hashes mit denen der Referenzimplementierung verglichen. Dies erlaubt uns automatisiert zu bestimmen ob eine Library DL implementiert. Dies ermöglicht Analysten automatisiert NN Apps von nicht-NN Apps zutrennen, was früh eine Aussage darüber erlaubt, ob eine verdächtige App möglicherweise die Modelle in der Cloud rechnet. Momentan existiert nur ein anderer Ansatz um NN in Libraries zu detektieren. Dieser Ansatz, welcher von Xu et al. implementiert wurde, sucht in Binaries nach Zeichenketten die typischerweise in NN Libraries zu finden sind. Beim Vergleich unserer Arbeit mit diesem Ansatz konnten wir feststellen, dass unser Ansatz wesentlich mehr NN Libraries erkennt.
de
Deep learning (DL) is emerging on mobile devices. Cat ear photo filters, OCR credit card recognizers, and auto-correct software already often have a neural network (NN) processor as their core in common. With on-device NN comes the need to also deploy the models to the device. These models are part of the intellectual property of the app’s vendor and thus carry value. Stolen models could cost the owner market share or render attacks on its apps possible. We present an approach to detect deep learning implementing libraries in Android apps by looking for the presence of commonly used mathematical functions such as the general matrix-matrix multiplication. We use reference implementations of these functions and compute fuzzy hashes of basic blocks belonging to loops using a sliding window. We compare these hashes with the hashes generated in a similar fashion for a library under investigation. This provides us with the possibility to automatically determine if a library is implementing DL which enables analysts to quickly separate non-NN binaries from NN binaries. Furthermore, it enables analysts to determine early on if a suspicious app is running NN inference in the cloud. Currently, only one other NN detection approach exists, presented by Xu et al., which searches binaries for strings typically found in NN libraries. While comparing our work with this approach, we found that our approach is able to detect significantly more NN libraries.