Masterarbeit

Automatische Erkennung von anormalen Android-Anwendungen,

lautet der Titel meiner Masterarbeit, bei der es kurz und knapp gesagt darum geht, neue, bösartige Anroid-Apps zu finden und diese mit dem eigenen Android-Gerät zu erkennen.

Im Folgenden nun eine kurze und hoffentlich verständliche Beschreibung dessen, was sich hinter dem obigen Satz verbirgt:

Die Basis dafür ist ein Datensatz von knapp 140.000 Android-Apps, von denen angenommen werden kann, dass diese keine bösartigen Absichten haben. Diese “normalen” Apps werden nun unter bestimmten Merkmalen untersucht, um daraus abzuleiten, was gutartige bzw. normale Apps ausmacht. Ein auf diese Art und Weise erzeugtes Modell bildet die Grundlage für die Analyse einer bisher unbekannten und möglicherweise schädlichen App.

Modellerstellung:

Merkmale: Ein Modell zu erstellen, dessen Inhalt es ist die Merkmale von gutartigen Android-Anwendungen zu kennen ist eines der Hauptaufgaben während dieser Masterarbeit. Wie oben bereits angerissen legt man zunächst Merkmale fest, unter denen alle Apps untersucht werden sollen. Dies könnte z. B. die Anzahl der im Quelltext gefundenen URLs, die Größe der App-Datei oder aber die Erkenntnis ob diese App SMS verschicken darf sein.

Maschinelles Lernen: Die so extrahierten Merkmale aus den gutartigen Apps werden dann zusammengefasst in einem Datensatz einem Lernalgorithmus zugeführt, der in der Lage ist daraus zu ermitteln, was gutartige Apps ausmacht. Er verallgemeinert die vorhandenen Merkmale aus dem Datensatz zu dem oben erwähnten Modell. Solche Lernalgorithmen gibt es fertig zur Anwendung und müssen nur mit dem korrekten Datensatz und den passenden Parametern gestartet werden. libsvm ist eines solcher Werkzeuge und bietet den großen Vorteil, dass es sich später auch (als Java-Version) in die Android-App zur Analyse unbekannter Anwendungen einbauen lässt.

Das richtige Modell findenDamit nach dem Lernprozess auch entschieden werden kann, ob das errechnete Modell wirklich in der Lage ist normale von anormalen Anwendungen zu unterscheiden, wird direkt danach ein Validierungsdatensatz auf das erlernte Modell angewendet. Dieser Datensatz besteht zum einen aus den Merkmalen von gutartigen Apps und zum Anderen aus denen bösartiger. Es werden nun so lange neue Modelle errechnet,  bis ein Modell gefunden wurde, was die Daten im Validierungsdatensatz gut unterscheiden kann. Dieses Modell wird nun auf einem Testdatensatz nochmals für die Praxistauglichkeit überprüft.

Modellanwendung:

Mit dem auf die eben beschriebene Art und Weise errechneten Modell kann man nun einzelne Anwendungen vergleichen. Weichen die Merkmale einer unbekannten Anwendung stark vom erlernten Modell ab, hat man im besten Fall eine bösartige Software gefunden. Da es aber ebenso gutartige Anwendungen gibt, die sich im Vergleich mit vielen Anderen nicht als normal bezeichnen lassen sind anormale Anwendungen nicht notwendiger Weise bösartige Anwendungen. Hier entsteht eine semantische Lücke zwischen dem, was man mit dem Modell und dessen Anwendung  herausgefunden hat und dem, was es tatsächlich ist. In jedem Fall ist eine App, die von der so ermittelten Norm abweicht aber bemerkenswert und sollte genauer betrachtet werden. Stellt, diese sich dann als unschädlich heraus wurde eine „Falsche Positive“ gefunden.

Die Anwendung des Modells soll auf dem Android-Gerät selbst stattfinden. Es bedarf also einer App, die ebenso die Merkmale aus einer dritten App extrahieren kann und diese dann unter Betrachtung des Modells beurteilen. Solch eine App wurde von mir bereits im Rahmen eines Projektes entwickelt und nennt sich App-Checker. Die Grundfunktionalität zum Extrahieren der Merkmale ist bereits vollständig implementiert und muss für die Anwendung in der Masterarbeit  lediglich erweitert werden.

5 Gedanken zu “Masterarbeit

  1. Pingback: Detecting Code Reflection in Android Apps | ize-land

  2. Pingback: Google Play Store-Kategorie von Apps finden | ize-land

  3. Pingback: App-Checker Desktop: A Java Static Feature Generator for APK-Files | ize-land

  4. Pingback: Java LibSVMFormatReader | ize-land

  5. Pingback: Apps für die Galaxy Gear | ize-land

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.