In letzter Zeit sind alle Technologieunternehmen ganz verrückt nach maschinellem Lernen. Sie meinen, dass es Probleme löst, die zuvor nur von Menschen gelöst werden konnten. Aber niemand hat sich jemals darum gekümmert, genau zu erklären, wie es funktioniert. Manche gehen so weit und sprechen um der Sache willen von „künstliche Intelligenz“.
Bei Technologie geht es um Schnelligkeit und Konsistenz, und nicht um Tricks. Und maschinelles Lernen basiert auf Technologie, wodurch es einfach zu erklären ist. Also, gehen wir ans Werk: Wir werden ein wahres Problem durch einen funktionierenden Algorithmus lösen – einen Algorithmus, der auf maschinellem Lernen basiert. Das Konzept ist recht einfach und liefert wahre, wertvolle Einblicke.
Problem: Einen bedeutungsvollen Text von Kauderwelsch zu unterscheiden
Menschlicher Text (in diesem Fall, Text von Terry Pratchett) könnte so aussehen:
Give a man a fire and he's warm for the day. But set fire to him and he's warm for the rest of his life (Gib einem Mann Feuer, und er hat es einen Tag lang warm. Steck ihn in Brand, und er hat es warm für den Rest seines Lebens)
It is well known that a vital ingredient of success is not knowing that what you're attempting can't be done (Eine wichtige Zutat für Erfolg ist, nicht zu wissen, dass das, was man tun, unmöglich ist)
The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it (Das Problem mit einem offenen Geist ist, natürlich, dass Leute darauf bestehen werden, anzukommen und zu versuchen, Dinge hineinzustecken)
Kauderwelsch sieht so aus:
DFgdgfkljhdfnmn vdfkjdfk kdfjkswjhwiuerwp2ijnsd,mfns sdlfkls wkjgwl
reoigh dfjdkjfhgdjbgk nretSRGsgkjdxfhgkdjfg gkfdgkoi
dfgldfkjgreiut rtyuiokjhg cvbnrtyu
Unsere Aufgabe ist es, Algorithmen für maschinelles Lernen zu entwickeln.
Obwohl es für Menschen belanglos ist, ist diese Aufgabe eine echte Herausforderung. Es ist nicht einfach, den Unterschied darzulegen. Hier benutzen wir maschinelles Lernen: Wir füttern den Algorithmus mit ein paar Beispielen und lassen ihn „lernen“, verlässlich auf die Frage „Ist es eine menschliche Sprache oder Kauderwelsch?“ zu antworten. Genau das passiert jedes Mal, wenn ein reales Antivirusprogramm eine Datei analysiert.
Da wir den Bereich der IT-Sicherheit abdecken und die Hauptaufgabe einer Antivirussoftware das Aufspüren von schädlichem Code in einer riesigen Menge von sauberen Daten ist, bezeichnen wir bedeutungsvollen Text als „sauber“ und Kauderwelsch als „schädlich“.
Lösung: Verwendung eines Algorithmus
Unser Algorithmus wird die Frequenz von einem bestimmten Buchstaben, auf den ein anderer bestimmter Buchstabe folgt, berechnen, und die möglichen Buchstabenpaare analysieren. So könnte z. B. für unseren ersten Satz „Give a man a fire and he’s warm for the day. But set fire to him and he’s warm for the rest of his life“, von dem wir wissen, dass er sauber ist, die Frequenz von bestimmten Buchstabenpaaren wie folgt aussehen:
Bu — 1
Gi — 1
an — 3
ar — 2
ay — 1
da — 1
es — 1
et — 1
fe — 1
fi — 2
fo — 2
he — 4
hi — 2
if — 1
im — 1
Um es einfach zu halten, ignorieren wir Satz- und Leerzeichen. Also folgt in einem Satz auf „a“ dreimal „n“, auf „f“ zweimal „i“ und auf „i“ einmal „y“.
An diesem Punkt verstehen wir, dass ein Satz nicht ausreicht, damit unser Model lernt: Wir müssen einen längeren Text analysieren. Also zählen wir die Buchstabenpaare in der englischen Ausgabe von „Vom Winde verweht“ von Margaret Mitchell — oder die ersten 20 % des Buches. Hier haben wir ein paar von ihnen:
he — 11460
th — 9260
er — 7089
in — 6515
an — 6214
nd — 4746
re — 4203
ou — 4176
wa — 2166
sh — 2161
ea — 2146
nt — 2144
wc — 1
Wie Sie sehe können, ist die Wahrscheinlichkeit der Kombination „he“ doppelt so hoch wie die von „an“. Und „wc“ kommt nur einmal vor (in newcomer).
Also haben wir ein Modell für sauberen Text, aber wir wenden wir es an? Zunächst definieren wir, um die Wahrscheinlichkeit dafür, ob eine Zeile sauber oder schädlich ist, festzulegen, die „Authentizität“. Wir definieren die Frequenz jedes Buchstabenpaars mithilfe eines Modells (durch Abwägung, wie realistisch die Buchstabenkombination ist) und dann multiplizieren wir diese Zahl:
F(Gi) * F(iv) * F(ve) * F(e ) * F( a) * F(a ) * F( m) * F(ma) * F(an) * F(n ) * …
6 * 364 * 2339 * 13606 * 8751 * 1947 * 2665 * 1149 * 6214 * 5043 * …
Durch Bestimmung des letzten Authentizitätswerts können wir auch die Anzahl der Zeichen in einer Zeile betrachten: Je länger die Zeile ist, desto mehr Zahlen werden multipliziert. Damit dieser Wert für kurze und lange Zeilen gleichermaßen geeignet ist, wenden wir ein wenig mathematische Magie an (wir ziehen die Wurzel des Werts „fragliche Zeilenlänge minus eins“ vom Ergebnis).
Wie funktioniert maschinelles Lernen? Wir erklären es in unserem Blog
Tweet
Verwendung des Modells
Jetzt können wir ein paar Schlüsse ziehen: Je höher die berechnete Zahl ist, desto besser passt die fragliche Zeile zu unserem Modell — und folglich: desto größer ist die Ähnlichkeit dafür, dass er von einem Menschen geschrieben wurde. Wenn der Text eine höhere Zahl ergibt, nennen wir sie „sauber“.
Wenn die fragliche Zeile eine verdächtig lange Anzahl von ungewöhnlichen Kombinationen enthält (wie wx, zg, yq, usw.), ist sie wahrscheinlich schädlich.
Für die Zeile, die wir für die Analyse verwenden, messen wir die Wahrscheinlichkeit („Authentizität“) in Punkten:
Give a man a fire and he's warm for the day. But set fire to him and he's warm for the rest of his life
— 1984 Punkte
It is well known that a vital ingredient of success is not knowing that what you're attempting can't be done
— 1601 Punkte
The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it
— 2460 Punkte
DFgdgfkljhdfnmn vdfkjdfk kdfjkswjhwiuerwp2ijnsd,mfns sdlfkls wkjgwl — 16 Punkte
reoigh dfjdkjfhgdjbgk nretSRGsgkjdxfhgkdjfg gkfdgkoi — 9 Punkte
dfgldfkjgreiut rtyuiokjhg cvbnrtyu — 43 Punkte
Wie Sie sehen können, erhalten saubere Zeilen über 1.000 Punkte und schädliche erreichen nicht einmal 100 Punkte. Es scheint, als wenn unser Algorithmus wie erwartet funktioniert.
Um hohe und niedrige Punkte in einen Kontext zu bringen, ist es am besten, diese Aufgabe einer Maschine zu übertragen, und sie lernen zu lassen. Dafür legen wir mehrere reale, saubere Zeilen vor und berechnen ihre Authentizität und übermitteln dann ein paar schädliche Zeilen und wiederholen den Prozess. Dann berechnen wir die Basis für die Evaluation. In unserem Fall sind dies 500 Punkte.
Im wahren Leben
Lassen Sie uns das zusammenfassen, was wir soeben durchgeführt haben.
1. Wir definierten die Eigenschaften von sauberen Zeilen (d. h. Zeichenpaare).
Im wahren Leben definieren Analysten, wenn sie ein Antivirus-Programm entwickeln, die Eingeschalten von Dateien und anderen Objekten. Übrigens sind ihre Beiträge wichtig: Es ist noch immer die Aufgabe eines Menschen, die in der Analyse zu bewertenden Eigenschaften festzulegen, und das Fachwissen und die Erfahrung des Forschers beeinflusst direkt die Qualität der Eigenschaften. Wer bestimmt z. B., dass Zweierpaare und nicht Dreiergruppen analysiert werden müssen? Solche hypothetischen Annahmen werden ebenfalls in Antivirus-Laboratorien bestimmt. Ich sollte hier erwähnen, dass wir bei Kaspersky Lab maschinelles Lernen verwenden, um die besten und ergänzensten Eigenschaften auszuwählen.
2. Wir verwendeten die definierten Indikatoren, um ein mathematisches Modell zu erstellen, das wir mit einigen Beispielen lernen ließen.
Natürlich sind die Modelle in Wahrheit etwas komplexer. Die besten Ergebnisse kommen von einem Entscheidungsbaum, der mit der Technik Gradient Boosting erstellt wurde, aber da wir nach Perfektion streben, können wir nicht einfach rumsitzen und das Beste, das es heute gibt, akzeptieren.
3. Wir verwendeten ein einfaches mathematisches Modell, um die Authentizitätsbewertung zu berechnen.
Um ehrlich zu sein, machen wir in Wahrheit genau das Gegenteil: Wir berechnen die „schädliche“ Bewertung. Das klingt vielleicht nach keinem großen Unterschied, aber stellen Sie sich vor, wie unecht eine Zeile in einer anderen Sprache oder einem anderen Alphabet in unserem Modell wirken würde. Aber für einen Antivirus ist es inakzeptabel, beim Überprüfen von neuen Dateiklassen falsche Antworten anzubieten, weil er sie bisher noch nicht kennt.
Was ist die Alternative zu maschinellem Lernen?
Vor ca. 20 Jahren, als es noch weniger Malware gab, konnte „Kauderwelsch“ einfach durch Signaturen erkannt werden (Unterscheidungsfragmente). Im obigen Beispiel könnte die Signatur wie folgt aussehen:
DFgdgfkljhdfnmn vdfkjdfk kdfjkswjhwiuerwp2ijnsd,mfns sdlfkls wkjgwl
reoigh dfjdkjfhgdjbgk nretSRGsgkjdxfhgkdjfg gkfdgkoi
Ein Antivirusprogramm, das die Datei scannt und erwp2ij findet, würde feststellen: „Aha, das ist Kauderwelsch #17.“ Wenn es gkjdxfhg findet, würde es Kauderwelsch #139 erkennen.
Dann, vor etwa 15 Jahren, als die Anzahl von Malware-Beispielen deutlich gestiegen war, stand „genetische“ Erkennung im Mittepunkt. Ein Virusanalyst legte die Regeln fest, die, wenn sie auf sinnvollen Text angewandt wurden, ungefähr wie folgt aussahen:
1. Die Länge eines Worts sollte zwischen 1 und 20 Zeichen betragen.
2. Großbuchstaben und Zahlen stehen selten in der Mitte eines Wortes.
3. Vokale werden relativ gleichmäßig mit Konsonanten gemischt.
Usw. Sollte eine Zeile mit einer dieser Regeln nicht übereinstimmen, wird sie als schädlich erkannt.
Im Wesentlichen funktioniert das Prinzip genau so, aber in diesem Fall wurden Regeln, die Analysten selbst geschrieben hatten, durch ein mathematisches Modell ersetzt.
Und dann, vor etwa 10 Jahren, als die Anzahl von Malware ein zuvor unvorstellbares Niveau überstieg, fanden auf maschinellem Lernen basierte Algorithmen langsam ihren Weg in Antivirus-Programme. Zunächst übertraf ihre Komplexität die zuvor erwähnten Beispiele nicht all zu sehr. Aber dann suchten wir aktiv nach Spezialisten und erweiterten unser Fachwissen. Dadurch bieten unsere Antivirusprogramme eine Erfassung auf höchstem Niveau.
Heute würde kein Antivirus ohne maschinelles Lernen funktionieren. Wenn man Erfassungsmethoden vergleicht, würde maschinelles Lernen an moderne Techniken, wie Verhaltensanalyse, anknüpfen. Jedoch verwendet Verhaltensanalyse maschinelles Lernen! Insgesamt ist maschinelles Lernen für einen effektiven Schutz essentiell. Punkt.
Nachteile
Maschinelles Lernen hat so viele Vorteile – handelt es sich um ein Allheilmittel? Nun, nicht wirklich. Die Methode funktioniert effektiv, wenn der zuvor erwähnte Algorithmus in einer Cloud oder einer Art Infrastruktur funktioniert, der von der Analyse vieler sauberer und schädlicher Objekte lernt.
Es hilft auch, ein Expertenteam zu haben, das den Lernprozess überwacht und jedes Mal eingreift, wenn es einen Unterschied zu seiner Erfahrung feststellt.
In diesem Fall werden Nachteile reduziert – bis hin zu einem: eine benötigte kostspielige Infrastruktur und ein hochbezahltes Expertenteam.
Wenn jemand Kosten drastisch reduzieren möchte und nur das mathematische Modell allein auf der Produktseite benutzen möchte, könnte das schiefgehen.
1. Falsch positiv.
Bei einer auf maschinellem Lernen basierter Erfassung geht es immer darum, einen Optimalpunkt zwischen den Niveaus der erfassten Objekte und das Level falschpositiver Ergebnisse zu finden. Sollten wir die Erfassung erweitern, könnte es eventuell mehr falschpositive Ergebnisse geben. Bei maschinellem Lernen könnten sie da in Erscheinung treten, wo man es sich niemals vorstellen oder voraussagen könnte. So würde die saubere Zeile „Visit Reykjavik“ als schädlich erfasst werden und in unserer Authentizitätsbewertung nur 101 Punkte erhalten. Deshalb ist es für ein Antiviruslabor so wichtig, saubere Dateien aufzuzeichnen, um das Lernen und Testen des Modells zu ermöglichen.
2. Umgehung des Modells.
Ein Krimineller könnte sich solch ein Produkt vornehmen und sehen, wie es funktioniert. Kriminelle sind Menschen, was sie kreativer (wenn nicht sogar klüger) als Maschinen macht, und sie können sich anpassen. So gilt die folgende Zeile als sauber, obwohl der erste Teil (für das menschliche Auge) deutlich schädlich ist: „dgfkljhdfnmnvdfkHere’s a whole bunch of good text thrown in to mislead the machine.“ Ganz egal wie intelligent der Algorithmus ist, ein intelligenter Mensch kann einen Weg finden, um ihn zu umgehen. Deshalb benötigt ein Antiviruslabor eine erstklassige Infrastruktur, um direkt auf neue Bedrohungen reagieren zu können.
3. Modellaktualisierung.
Beim zuvor erwähnten Algorithmus erklärten wir, dass ein Modell, das von englischen Texten lernt, nicht für Texte in anderen Sprachen funktionieren würde. Vor diesem Hintergrund sind schädliche Dateien (sofern sie von Menschen erstellt wurden, die über bisherige Grenzen hinausdenken können) wie ein sich stets entwickelndes Alphabet. Die Bedrohungslandschaft ist sehr unbeständig. Über jahrelange Forschungen hat Kaspersky Lab einen ausgewogenen Ansatz entwickelt: Wir aktualisieren unsere Modelle Schritt für Schritt direkt in unseren Antivirus-Datenbanken. Dadurch können wir zusätzliches Lernen oder sogar eine komplette Änderung des Lernblickwinkels für ein Modell bereitstellen, ohne die üblichen Operationen zu unterbrechen.
Fazit
Mit großem Respekt für maschinelles Lernen und seine wichtige Rolle für die Welt der Cybersicherheit, denken wir von Kaspersky Lab, dass der effizienteste Ansatz für Cybersicherheit auf einem mehrstufigen Paradigma basiert.
Ein Antivirusprogramm sollte mit Verhaltensanalysen, maschinellem Lernen und vielen anderen Dingen rundherum perfekt sein. Aber über diese „vielen anderen Dinge“ sprechen wir beim nächsten Mal.