Die Achillesferse künstlicher neuronaler Netze: Angriffsvektoren und Schutzstrategien

Stellen Sie sich folgendes vor: In einem hochmodernen Tierheim werden Tiere bei der Einlieferung von einer AI (Artificial Intelligence, deutsch: Künstliche Intelligenz) klassifiziert. Wenn eine Katze eingeliefert wird, kommt sie automatisch in einen Katzenzwinger, ein Hund kommt in einen Hundezwinger. Was aber, wenn ein einzelner Pixel im Kamerabild diese Klassifizierung beeinflussen kann? Dieser Pixel kann in böser Absicht platziert worden oder zufällig durch Verschmutzungen entstanden sein. Das Resultat wäre im schlimmsten Fall eine Katze, die im Hundezwinger landet – und damit das Opfer einer AI wäre. Das Beispiel scheint natürlich relativ weit hergeholt. Doch die aufgeführte Schwäche ist neben anderen Schwachstellen bittere Realität bei künstlichen neuronalen Netzen.

AI generierter Katzenhund

AI generierter Katzenhund

In den 2010er Jahren begann der zweite große Frühling des maschinellen Lernens. Nicht zuletzt durch immer leistungsfähigere Hardware konnten schon bekannte Technologien wie Convolutional Neural Networks (CNNs) alte Grenzen überwinden und lösten damit einen regelrechten Hype aus. Dieser Hype zog die Forschung im gesamten Bereich AI mit sich und eröffnete ein ganz neues Spektrum an Technologien, die die Grenzen des Möglichen immer weiter vor sich hintrieben. Auch heute, über ein Jahrzehnt später, vergeht kein Tag, an dem nicht ein weiteres wegweisendes neues Paper veröffentlicht wird. Dabei hat sich der Bereich der Anwendungsgebiete stark erweitert. War es vor einem Jahrzehnt noch die Königsdisziplin, Hunde und Katzen sauber voneinander zu unterscheiden, lässt man die entsprechenden Bilder heutzutage einfach auf der Basis eines beschreibenden Textes generieren.

Die Bedrohung im Verborgenen: Gewachsene Gefahr

Technologie hat viele Aspekte, die sich im Idealfall alle ausgewogen weiterentwickeln. Data Scientists und Machine Learning Engineers in den Research Labs und Universitäten haben ihren Hauptfokus darauf, den Rahmen des Möglichen permanent zu erweitern. Auch in der Industrie und Wirtschaft hat AI massiv Einzug gehalten.

In letzterem Umfeld geht es jedoch nicht nur um die Grenzen des Möglichen, sondern zuallererst darum, eine Lösung produktiv betreiben zu können. Drei wesentliche Punkte sind hier wichtig: Performance, Erklärbarkeit und Sicherheit.

Gerade im Bereich Performance tut sich sehr viel. Immer kleinere künstliche neuronale Netze (KNNs) kommen durch Optimierung, Änderungen der Netzarchitektur und andere Trainingskonzepte auf das Niveau von deutlich komplexeren Netzen. Das wirkt sich extrem positiv auf die Performance aus. Beste Beispiele hierfür findet man im Bereich der Large Language Models wie GPT & Co. Durch sie wurde gezeigt, dass durch qualitativ hochwertigere Trainingsdaten kleine Modell im Benchmark mit Modellen mithalten können, die um den Faktor vier bis fünf größer sind.

Was es mit der Erklärbarkeit von AI-Systemen (XAI, Explainable AI) auf sich hat, ist den meisten Menschen eher unbekannt. Anders als bei „normalen Programmen“, in denen bestimmte Befehle in einer Sequenz abgearbeitet werden, sind KNNs eine Sammlung stark vernetzter künstlicher Neuronen, die in Schichten angeordnet sind. Durch ihre Komplexität und Parallelisierung ist nicht mehr nachvollziehbar, wie ein solches Netz auf sein Ergebnis kommt, weshalb man hier auch von einer Blackbox spricht. Da Entscheidungen im Behördlichen und anderen Bereichen aber oft begründet werden müssen, wird an Lösungsansätzen geforscht, wie man Entscheidungen großer Netze erklärbar machen kann. Das ist Explainable AI.

Sicherheitsrisiken demaskiert: Angriffsvektoren auf KNNs

Der dritte relevante Punkt für den Einsatz in Industrie und Wirtschaft – die Sicherheit – ist ebenfalls ein essenzieller. Es passiert derzeit eine Menge im Bereich der künstlichen Intelligenz. Mit einem solch schnellen Fortschritt kommen jedoch auch gewisse Risiken.

Betrachtet man, wo KNNs überall zum Einsatz kommen, wird schnell klar, dass es hier um wirklich kritische Probleme geht. So werden KNNs im Bereich Fraud Detection, Netzwerkschutz durch die Erkennung  von Angriffspattern, Überwachung im Bereich Computervision usw. eingesetzt. Sind KNNs aber wirklich so robust, dass sie ohne weiteres in diesen Feldern eingesetzt werden können? Die klare Antwort ist: Nein.

Am anschaulichsten kann man dies am Beispiel von Computervision erklären. Nehmen wir an, wir haben ein Netz darauf trainiert, Hund und Katzen zu unterscheiden. Oft herrscht der Irrglaube, dass die Entscheidungsfindung in einem KNN an die des Menschen angelehnt ist. Wenn der Mensch allerdings zum ersten Mal in seinem Leben eine Katze sieht, lernt er die abstrakte Idee einer Katze zu verstehen. Ein Tier mit vier Beinen, spitzen Ohren, einem langen Schwanz, Fell und Schnurrhaaren.

Das KNN lernt stattdessen, Features in einem Pixelhaufen zu erkennen. Das können Formen, Texturen oder auch Farben sein. Es versteht jedoch nicht, was eine Katze ist, sondern nur, aus welchen Pixelhaufen das Bild einer Katze bestehen könnte. Für den Menschen ist dabei oft nicht nachvollziehbar, welche Pixel für die Entscheidung ausschlaggebend sind – und warum gerade diese. Es kann sogar sein, dass nur „ein“ Pixel den Unterschied zwischen einem Hund und einer Katze ausmacht. Dann spricht man von One Pixel Attack.

Angriff auf KNN: One Pixel Attack

One Pixel Attack

Gerade in einem Klassifizierer mit vielen Klassen kann dann ein unglücklich positionierter Schmutzfleck auf einem Bild für große Verwirrungen sorgen. Da wird ganz schnell die Katze zum Hund, das Auto zum Fahrrad oder Objekte werden einfach nicht erkannt. Aber es gibt auch viele Möglichkeiten, KNNs ganz bewusst auszutricksen.

Kompromittieren des Trainingsprozesses

Grundsätzlich gibt es zwei unterschiedliche Arten von Angriffsvektoren auf AI-Systeme: Angriffe, die das Training kompromittieren und Angriffe auf die Inferenz selbst. Angriffe, die das Training kompromittieren, sind Data Poisoning und der Byzantinische Angriff.

Data PoisoningAngriff auf KNN: <yoastmark class=

Data Poisoning ist eine Technik, die bei Systemen zum Einsatz kommen kann, die semisupervised oder unsupervised nachtrainiert werden.

Wenn sich ein KNN kontinuierlich verbessern soll, muss man dieses Netz immer wieder mit neuen Daten nachtrainieren. Im Allgemeinen sammelt man dafür die Daten, die schlecht oder gar nicht erkannt werden und bezieht sie im nächsten Trainingszyklus mit ein. Ein Angriff kann versuchen, diese Daten zu kompromittieren.

Nehmen wir an, wir klassifizieren an einer Verkehrsampel Fahrzeuge. Fahrzeuge, die nur zu 60 % einer bestimmten Klasse zugeordnet wurden, werden gesammelt und nachtrainiert. Nun nimmt man sich ein Fahrrad und modelliert es mit Kunststoffteilen so, dass es einem Motorrad ähnelt. Das Fahrrad wird gerade so als Motorrad erkannt und daher als Motorrad mittrainiert. Nun entfernt man in jedem Trainingszyklus ein weiteres Kunststoffteil. Damit verschwimmen die Features der Klassen Motorrad und Fahrrad immer stärker. Am Ende des Angriffs werden Fahrräder dann als Motorrad klassifiziert.

Generell kann man sagen, dass beim Data Poisoning versucht wird, Traningsmaterial zu platzieren, das für die Genauigkeit des Netzes schlecht ist. Das bezieht sich aber nicht nur auf Computervision, sondern z. B. auch auf Netzwerk-Metriken für Angriffsanalysen usw.

Byzantinischer Angriff

Der Byzantinische Angriff ist eher theoretischer Natur. Hier ist ein verteiltes Training der Ansatzpunkt, welches auf unterschiedlichen Rechnern und Grafikkarten stattfindet. Es wird versucht, einen dieser Trainingsmodes zu kapern, um mit ihm das Gesamttraining zu beeinflussen. Diese Möglichkeit ist akademisch nachgewiesen, kommt aber in der Praxis eher nicht vor.

Angriff auf die Inferenz

Neben dem Versuch, den Trainingsprozess zu kompromittieren, ist der zweite Angriffsvektor auf AI-Systeme der Angriff auf die Inferenz, zusammengefasst unter Evasion. Dabei lässt sich zwischen den Methoden Adversarial Attacks und Model Extraction unterscheiden.

Evasion

In dem ganzen, der breiten Masse eher unbekannten Themenfeld ist Evasion einer der bekannteren Angriffsvektoren. So fällt ab und an auch außerhalb der AI-Community der Begriff Adversarial Attack. Vielleicht haben Sie ja auch schon einmal ein Video gesehen, in dem Personen getrackt werden, Menschen mit bunten Punkten auf dem Shirt diesem Tracking aber entgehen. Darum geht es bei Evasion – der Klassifikation auszuweichen oder sie zu verfälschen.

Angriff auf KNN: Mit und ohne Adversorial Patch

Mit und ohne Adversorial Patch

Einfachste Beispiele sind hier Textspamfilter, bei denen man die Informationen einfach mit Hilfe eines Bildes anstatt des Textes sendet oder bei einer Pose-Estimation einen Poncho anzieht, damit das Netz unmöglich erkennen kann, wo sich die Arme befinden.

Eine weitere Klasse von Evasion sind die bereits genannten Adversarial Attacks. Bei diesen Attacken muss man entweder Zugriff auf die Endpoints des Netzes haben oder sehr gute Kenntnisse über den Netzaufbau.

Adversarial Attacks

Nehmen wir als Beispiel wieder den „Hunde und Katzen“-Klassifizierer. Die Eingabegröße ist ein Bild. Am Ende kommt ein Array mit Werten zwischen 0 und 1 für die Klassen Hund und Katze heraus. Dies gibt an, zu wie viel Prozent sich das Netz sicher ist, dass das Eingangsbild zu einer der beiden Klasse gehört. Würden wir ein gut zu erkennendes Katzenbild übergeben, würden wir am Ende so etwas wie [Katze:0.99], [Hund:0.05] zurückbekommen. Was passiert aber, wenn wir das Netz technisch umdrehen?

Wir übergeben als Eingabegröße [Katze:1], [Hund:0]. Als Ausgabe würden wir nun vielleicht das Bild einer perfekten Katze erwarten. Wie aber schon eingangs erwähnt, versteht ein KNN nicht das Konzept eines Objekts, sondern lernt, Pixelhaufen – auch Features genannt – einer Klasse zuzuordnen. Was wir tatsächlich zurückbekommen, ist etwas, das für uns wie ungleichmäßiges Rauschen wirkt. Nehmen wir nun dieses Rauschbild und addieren es schwach zu einem Hundebild, wird der Klassifizierer sagen, dass es sich bei diesem Hund um eine Katze handelt – auch wenn für uns der Hund klar zu erkennen ist.

Angriff auf KNN: Adversarial Attack

Adversarial Attack

Dieses einfache Beispiel funktioniert nur, wenn das trainierte Netz zur Verfügung steht. Es gibt aber auch Methoden, die ein Gradientenverfahren nutzen, um sich möglichst schnell den effektiven Störpixeln anzunähern. Hierfür muss man allerdings auf die Ergebnisse der Inferenz zugreifen können. Ist das alles nicht gegeben, versucht man die sogenannte Model Extraction zu betreiben.

Model Extraction

Bei der Model Extraction versucht man, Rückschlüsse über das genutzte KNN zu gewinnen. Für verschiedene Disziplinen gibt es nämlich Best-Ofs, die immer wieder genutzt werden. Diese Netze sind meistens schon mit ImageNet, einem großen Trainingsdataset für Bilder, vortrainiert. Das ergibt Sinn, weil dadurch das spezifische Training deutlich verkürzt werden kann.

Gehen wir zum Beispiel von einer Verkehrsüberwachung aus, wird wegen Performance und Positionserkennung oft ein Yolo genutzt, ein modernes Echtzeit-Objekterkennungsnetz. Dieses Yolo wird für Fahrzeuge in vielen Fällen mit dem Coco-Dataset trainiert. Ein Angreifer würde sich also erst einmal auf diese Kombination konzentrieren und mit ihr Adversarial Patches generieren. Selbst wenn solche KNNs später noch nachtrainiert werden, kann man schon auf der Basis des vortrainierten Netzes wirkungsvolle Patches generieren.

Gerade bei KNNs, die auf eine Vielzahl von Klassen trainiert wurden, reicht oft schon ein zufälliges Rauschen, um das Netz komplett zu verwirren.

Der Preis des Fortschritts: Reflexionen über Angriffsvektoren auf KNNs

In diesem Beitrag wurden als Beispiele meistens Netze aus dem Bereich Computervision verwendet. Es ist jedoch anzumerken, dass grundsätzlich jedes Netz solche Schwächen aufweist. Bedeutet das aber im Umkehrschluss, dass man KNNs nicht für sichere Bereiche nutzen kann und sollte? Nein, keine Sorge. Wie überall in der IT gibt es zu jedem Angriffsmuster auch eine Abwehr.

Beim Data Poisoning ist es die manuelle Kontrolle der neuen Datasets. Beim Byzantinischen Angriff muss nur die Sicherheit der Trainingsstruktur gewährleistet sein. Hier geht es also um allgemeine Netzwerksicherheit.

Bei Evasion kann man ggf. zusätzliche Sensoren nutzen, wie z. B. Lidar. Generell hat bei den Adversarial Attacks ein Wettlauf begonnen zwischen Angriffsstrategien und Gegenmaßnahmen. Kennt man die Patches, die für ein KNN gefährlich werden könnten, bezieht man diese einfach mit ins Training ein. Aber auch Preprocessing-Maßnahmen wie Bildentrauschung können schon dafür sorgen, dass mancher Angriff nicht mehr funktioniert.

Wichtig ist vor allem die Sensibilisierung für dieses Thema. Geht es um AI-Projekte, sollte man sich die Zeit nehmen zu überlegen, welche Folgen es haben kann, wenn eine Lösung falsche oder keine Ergebnisse liefert oder schlimmer noch: ganz bewusst manipuliert wird. Man sollte den Gesamtprozess vom Sammeln der Daten über das Training bis zur Inferenz auf die beschriebenen Angriffsvektoren prüfen und vor allem immer im Auge behalten, dass es nicht nur um die Grenzen des Möglichen geht – sondern um eine stabile, sichere Lösung.

Mit unserem umfangreichen Know-how im Bereich von Künstlicher Intelligenz bieten wir von Fujitsu unseren Kunden nicht einfach nur „eine Lösung“. Wir bieten Lösungen, die produktiviert werden können. Wir betrachten das Thema AI ganzheitlich. Dazu zählen nicht nur Sicherheit, Skalierbarkeit und Lifecycle-Management rund um die AI-Lösung, sondern auch Trainingsstrategien und Modelloptimierung. Als erfahrener Projektpartner verstehen wir die Herausforderungen, denen Unternehmen bei der Implementierung von Künstlicher Intelligenz gegenüberstehen. Daher bieten wir umfassende Unterstützung entlang des gesamten Projektlebenszyklus.

Kontakt

Haben Sie Fragen zu diesem Beitrag? Dann wenden Sie sich gerne an:

Marcel Naujeck
Marcel.naujeck@fujitsu.com
Lead Architect for Computer Vision Solutions
Fujitsu Services DXU