Interview zu DeepRay „Machine Learning ist insgesamt sehr komplex und überraschend“

07.08.2019
G DATA Blog

Mit der KI-Technologie DeepRay geht G DATA gegen sich schnell verändernde Malware vor. Wie die Technologie funktioniert und welche besonderen Herausforderungen bei der Entwicklung aufgetreten sind erklärt Carl-Benedikt Bender, der die Entwicklung von DeepRay geleitet hat.

Warum ist der Einsatz von Machine Learning in der Antiviren-Bekämpfung notwendig?

In der täglichen Arbeit finden wir immer wieder die gleiche Malware, welche aber ständig neu verpackt ist. Es gibt also sehr viele neue Samples, bei Emotet zum Beispiel rund 30.000 im ersten Halbjahr. Die Zahl der Malware-Familien ist allerdings begrenzt. Die grundsätzliche Frage ist also, wie wir die Malware trotz geänderter Verpackung identifizieren können. Als technische Lösung bietet sich da eine Tiefenanalyse im Arbeitsspeicher des Kundenrechners an. Diese ist allerdings sehr Ressourcenintensiv, so dass wir sie nicht bei allen Prozessen dauerhaft anwenden können.

Um die Memory-Tiefenanalyse performant zu gestalten, haben wir deshalb überlegt, einen klugen Vorfilter zu entwickeln. Hier haben wir uns für Machine Learning entschieden. Denn wir wissen ja häufig im Nachhinein, was Malware ist und was nicht. Dieses Wissen haben wir eingesetzt, um ein Perceptron, ein neuronales Netz, zu trainieren – mit dem Ziel, Malware schneller zu erkennen.

Es ging weniger darum, mit diesem Vorfilter Dateien eindeutig als schadhaft zu identifizieren als vielmehr Abweichungen von der Norm zu finden, die potenziell verdächtig sind. Machine Learning ist ein guter Hebel, eine Vielzahl von Eigenschaften sauberer Dateien mit denen von Malware-Dateien, wie etwa die Dateigröße, abzugleichen und gute von potentiell schlechten Dateien zu trennen. Ein Classifier weist auf interessante, also potenziell gefährliche Dateien hin. Erst dann erfolgt eine Memory-Analyse der potenziell gefährlichen Dateien und zugehörigen Prozesse.

Welchen Machine-Learning-Ansatz habt ihr gewählt? Gab es da bereits fertige Pläne?

Nein, hier mussten wir selbst aktiv werden. Das Research-Team hat ein bestehendes einfaches Neuronales Netz – ein Perceptron - weiterentwickelt, um Malware zu identifizieren. Das stellte sich im Projektverlauf als große Herausforderung dar. Denn aktive Angreifer versuchen natürlich, dass ihre Malware statisch immer anders aussieht.

Daher haben wir uns für eine kombinierte Vorgehensweise entschieden: Unsere Entwickler haben in dieser Phase verschiedene Ansätze ausprobiert. So haben wir zunächst mit nur einem Prozent der Daten gearbeitet, was die Test- und Entwicklungsphase stark verkürzt hat. Anschließend haben wir den gesamten Datenbestand genutzt. Auch wenn die Analyse der Dateien am Ende auf dem Rechner der Kunden stattfindet, wird das Perceptron in unserem speziell dafür entwickelten Backend trainiert. Hierfür mussten wir unsere eigene Hardware stark aufrüsten und auch Änderungen an bestehenden Backend-Systemen vornehmen.

Gab es denn mal Momente, die euch wirklich überrascht haben?

Mit den ersten Trainings konnten wir gleich interessante Ergebnisse erzielen. Einige der Daten haben uns allerdings sehr überrascht – wir konnten uns die Abweichungen aber nicht sofort erklären. Im Laufe der weiteren Beschäftigung ist uns dann aufgefallen, dass die Feature-Extraktion einen kleinen Fehler hatte. Solche Fehler in Machine-Learning-Daten zu entdecken, ist eine der wichtigsten Herausforderungen im Entwicklungsprozess. Insgesamt aber lag die Erkennungsquote trotzdem in den Trainings immer über 98 Prozent

Um diese Quote weiter zu verbessern, haben wir entsprechende Deterministiken definiert. Wenn etwa aus dem Internet ausführbare Dateien runtergeladen werden, stufen wir diese automatisch als interessant ein und untersuchen sie im Detail – unabhängig davon, was das Perceptron sagt. Hier folgen wir etwa dem Zone-Identifier von Windows, der nach dem Download fragt, ob eine Datei ausgeführt werden soll.

Wie viele Malware-Familien habt ihr in der Trainingsphase eingesetzt?

Die Trainings sind ein dynamischer Prozess. Wir sind immer vom Start einer Trainingsphase eine definierte Zeitspanne zurückgegangen. Alle Malware-Familien, die in dieser Zeitspanne aktiv waren, gehen in das Training ein. Gleichzeitig versuchen wir, so aktuell wie möglich zu bleiben. Daher startet quasi mit dem Ende einer Trainingsphase direkt ein neues Training. Daraus haben wir dann abgeleitet, welche Datenmengen erforderlich sind und wie historische Daten weiterhelfen. Häufig sind in den Trainings auch Dinge passiert, die wir ganz anders erwartet haben. Im Nachgang mussten wir dann andere Antworten finden, warum das System bestimmte Features anders als erwartet gewichtet hat. Das hängt sicherlich auch mit der Vielzahl der Parameter zusammen.

Kannst du sagen, was für euch der interessanteste Lerneffekt in der Entwicklungsphase war?

Aus Entwicklungssicht war es interessant, dass wir erstmals in dieser Konstellation zusammengearbeitet haben. Insgesamt waren fünf Teams bei G DATA an der Entwicklung von DeepRay beteiligt. Diese teamübergreifende Zusammenarbeit hat mir sehr viel Spaß gemacht.

Als neues Projekt ohne besondere Abhängikeiten oder „Altlasten“ konnten wir in kürzester Zeit durch den Einsatz von Rapid Prototying und Test Driven Development einen voll funktionsfähigen und einfach erweiterbaren Prototypen entwickeln, mit dem wir die Wirkung von DeepRay gegen echte Malware gut evaluieren konnten. Durch diesen Ansatz konnten wir schon sehr früh und dann Entwicklungsbegleitend auf neuste und/oder experimentele Techniken von Malware Autoren reagieren und sicherstellen das DeepRay mit seinem Release allen Herausforderungen gewachsen ist.

Wie sieht es denn jetzt mit dem Einsatz von DeepRay im Alltag aus? Übernimmt DeepRay jetzt eine Frühwarn-Funktion?

Dank der proaktiven Komponenten mit DeepRay ist die Erkennung auch in den traditionellen reaktiven Komponenten nun deutlich schneller. Wenn DeepRay eine Datei als potenziell gefährlich einstuft, prüfen wir sie umgehend in unserem Analyse-Backend und setzen als Malware erkannte Dateien umgehend auf unsere Blacklist. Hier arbeiten mehrere Komponenten eng zusammen. Und das innerhalb weniger Minuten.

Wir wissen ja, dass auch Cyberkriminelle die neuen Verpackungen an den marktgängigen Antiviren-Programmen wie unserer Total Security erproben. Und zwar solange, bis die statische Analyse die Verpackung nicht mehr erkennt. Dafür lassen sich im Darknet ja sogar Services buchen, die nichts anderes machen, als die Malware entsprechend zu verpacken. Das war ja auch ein entscheidender Grund für DeepRay: Mit rein statischen Systemen kannst du dynamischen Attacken nicht mehr beikommen.

Wie fällt denn dein Fazit aus für den Entwicklungsprozess?

Wir hatten bereits zum Projektstart einen klaren Plan und diesen haben wir umgesetzt. Die teamübergreifende Entwicklung war sicherlich sehr hilfreich für den Erfolg, da alle an einem Strang gezogen haben. Letztlich haben wir eine recht einfache Idee schnell und sauber umgesetzt und in unsere Systeme integriert. Das gewählte Perceptron ist dabei nur ein Puzzleteil – aber ein ganz entscheidendes. Die Ergebnisse in den Trainings haben von Anfang bestätigt, dass der gewählte Weg zum gewünschten Ziel geführt hat. Es war weniger eine Revolution als eine evolutionäre Weiterentwicklung.

Gibt es eigentlich schon Pläne für eine Weiterentwicklung von DeepRay?

Phase 1 ist abgeschlossen. Die Backend-Trainings laufen weitgehend autonom und wir haben ein selbstständig arbeitendes System etabliert. Natürlich prüfen wir regelmäßig die Trainingsverläufe und die Detection-Rate der Trainings. Sicherlich gibt es an der einen oder anderen Stelle noch etwas Optimierungspotenzial, was wir realisieren. Aber grundsätzlich arbeitet das System von ganz alleine. Das Research-Team arbeitet parallel auch an Ideen, um DeepRay weiterzuentwickeln, etwa um die Detection-Rate weiter zu optimieren oder die Performance noch weiter zu verbessern.

Stefan Karpenstein
Public Relations Manager

Die besten Beiträge per E-Mail

  • Aktuelle Beiträge
  • Jederzeit kündbar