Obwohl die Sicherheitsforschung im Bereich des maschinellen Lernens noch in den Kinderschuhen steckt, ist es klar, dass barrierefreie Eingabemöglichkeiten die Bedrohungen erhöhen. Sie brauchen keine Tastatur mehr zu berühren, um ein maschinelles Lernsystem zu täuschen. Der Software-Sicherheitsexperte Balázs Kiss geht auf einige Punkte in diesem neuen Bereich ein und gibt Ratschläge zu den grundlegenden Schutzmaßnahmen.
Genau wie Software im Allgemeinen sind auch maschinelle Lernsysteme anfällig. “Einerseits sind sie wie neugeborene Babys, die sich ganz auf ihre Eltern verlassen, um zu lernen, wie die Welt funktioniert – einschließlich ‘Hintertüren’ wie Märchen oder der Weihnachtsmann”, sagt Sicherheitsexperte Balázs Kiss von Cydrill, einem auf Softwaresicherheit spezialisierten Unternehmen. “Andererseits sind maschinelle Lernsysteme wie alte Katzen mit schlechtem Sehvermögen – wenn eine Maus lernt, wie die Katze jagt, kann sie leicht vermeiden, gesehen und gefangen zu werden.”
Es sieht nicht gut aus, meint Kiss. “Die Sicherheit beim maschinellen Lernen wird zu einem kritischen Thema.” Er weist darauf hin, dass die meisten Softwareentwickler und Experten für maschinelles Lernen die Angriffstechniken nicht kennen. “Nicht einmal diejenigen, die der Software-Sicherheitsgemeinschaft schon lange bekannt sind. Auch die entsprechenden Best Practices sind ihnen nicht bekannt. Das sollte sich ändern.”

Der Sicherheitsexperte und erfahrene Softwaretrainer Balázs Kiss hat kürzlich einen neuen Kurs über die Sicherheit beim maschinellen Lernen entwickelt, der in Kürze vom High Tech Institute in den Niederlanden angeboten wird.
Lösungen für maschinelles Lernen (ML) sind – wie Softwaresysteme – auf verschiedene Weise angreifbar und erhöhen den Sicherheitsbedarf. Letztes Jahr wurde dies auf recht peinliche und einfache Weise von zwei Studenten aus Leuven aufgezeigt. Es gelang ihnen, Yolo (You Only Look Once), einen der beliebtesten Algorithmen zur Erkennung von Objekten und Personen, in die Irre zu führen. Indem sie ein Pappschild mit einem bunten Aufdruck von 40 mal 40 cm vor ihrem Körper trugen, machten sich Simen Thys und Wiebe Van Ranst als menschliche Personen unerkennbar. Ein weiteres Beispiel stammt von McAfee-Forschern, denen es gelang, den Tesla-Autopiloten zu täuschen, indem sie Geschwindigkeitsbegrenzungsschilder falsch einordneten und das Auto über 35 mph hinaus beschleunigen ließen.
Kennen Sie Ihren Feind
“Eine wesentliche Voraussetzung für die Cybersicherheit ist: Kenne deinen Feind”, sagt Kiss, der auch ein erfahrener Softwaretrainer ist und vor kurzem einen brandneuen Kurs über ML-Sicherheit entwickelt hat, der in Kürze vom High Tech Institute in den Niederlanden eingeführt wird. “Am wichtigsten ist, dass Sie mit dem Kopf eines Angreifers denken”, sagt er.
Werfen wir einen Blick darauf, was die Angreifer beim maschinellen Lernen ins Visier nehmen werden. Alles beginnt mit der Erforschung dessen, was Sicherheitsexperten als “Angriffsfläche” bezeichnen: die Kombination aller verschiedenen Punkte in einer Softwareumgebung, an denen ein unbefugter Benutzer versuchen kann, Daten einzugeben oder zu extrahieren. Die Angriffsfläche so klein wie möglich zu halten, ist eine grundlegende Sicherheitsmaßnahme. Wie die Studenten aus Leuven bewiesen haben: Um ein ML-System zu täuschen, müssen Sie nicht einmal eine Tastatur anfassen.
'Garbage in, garbage out.'
Ein gängiges Sprichwort in der Welt des maschinellen Lernens lautet “Garbage in, garbage out”. Alle Algorithmen verwenden Trainingsdaten, um ihr Verhalten festzulegen und zu verfeinern. Schlechte Daten führen zu unerwartetem Verhalten. Das kann daran liegen, dass das Modell bei den Trainingsdaten gut funktioniert, aber die Ergebnisse nicht auf andere Beispiele verallgemeinern kann (Überanpassung), dass das Modell nicht in der Lage ist, die zugrundeliegenden Trends der Daten zu erfassen (Unteranpassung) oder dass es Probleme mit dem Datensatz gibt. Verzerrte, fehlerhafte oder mehrdeutige Trainingsdaten sind natürlich ein zufälliges Problem, und es gibt Möglichkeiten, damit umzugehen. Zum Beispiel durch die Verwendung geeigneter Test- und Validierungsdatensätze. Wenn jedoch ein Angreifer absichtlich schlechte Daten einspeist, ist das ein ganz anderes Szenario, für das wir ebenfalls spezielle Schutzmaßnahmen benötigen.
Angreifer sind schlau
Kiss: “Wir müssen einfach davon ausgehen, dass es böswillige Benutzer gibt. Diese Angreifer müssen nicht einmal besondere Privilegien innerhalb des Systems haben, aber sie können Roheingaben als Trainingsdaten bereitstellen und die Ausgabe des Systems sehen, typischerweise den Klassifizierungswert. Das bedeutet bereits, dass sie absichtlich schlechte oder bösartige Daten senden können, um unbeabsichtigte ML-Fehler auszulösen.”
'Attackers can learn how the model works and refine their inputs to adapt the attack.'
“Aber das ist nur die Spitze des Eisbergs”, findet Kiss. “Denken Sie daran, dass Angreifer immer auf ein Ziel hinarbeiten. Sie werden bestimmte Aspekte der ML-Lösung ins Visier nehmen. Durch die Wahl der richtigen Eingaben können sie dem Modell, der generierten Vorhersage und sogar den verschiedenen Code-Bestandteilen, die diese Eingaben verarbeiten, großen Schaden zufügen. Angreifer sind schlau. Sie sind nicht darauf beschränkt, statische Eingaben zu senden – sie können lernen, wie das Modell funktioniert und ihre Eingaben verfeinern, um den Angriff anzupassen.”
Im Falle des überwachten Lernens umfasst es alle drei Hauptschritte des ML-Workflows. Für das Training kann ein Angreifer Eingabedaten zur Verfügung stellen. Für die Klassifizierung kann ein Angreifer Eingabedaten bereitstellen und das Klassifizierungsergebnis lesen. Wenn das ML-System über eine Feedback-Funktion verfügt, kann ein Angreifer auch falsche Rückmeldungen geben (“falsch” für eine gute Klassifizierung und “richtig” für eine schlechte), um das System zu verwirren.
Handgefertigte Eingaben
Viele Angriffe nutzen sogenannte gegnerische Beispiele. Diese manipulierten Eingaben nutzen entweder das implizite Vertrauen aus, das ein ML-System in die vom Benutzer erhaltenen Trainingsdaten setzt, um seine Sicherheit zu beeinträchtigen (Poisoning) oder das System dazu zu bringen, seine Eingaben falsch zu kategorisieren (Evasion). Derzeit gibt es keine narrensichere Methode, mit der diese Beispiele automatisch erkannt und herausgefiltert werden können. Selbst die beste Lösung, bei der einem System beigebracht wird, negative Beispiele zu erkennen, ist in ihrer Reichweite begrenzt.

Indem sie ein Pappschild mit einem bunten Aufdruck von 40 x 40 cm vor ihrem Körper trugen, machten sich Simen Thys und Wiebe Van Ranst als menschliche Personen unerkennbar. Kredit: KU Leuven/Eavise
Natürlich gibt es Verteidigungsmaßnahmen zur Erkennung oder Abschwächung von Negativbeispielen. Ein intelligenter Angreifer kann jedoch Lösungen wie die Verschleierung umgehen, indem er auf adaptive Weise eine Reihe von Gegenbeispielen erzeugt. Kiss verweist auf einige exzellente Arbeiten, die dies hervorheben, wie die von Nicholas Carlini und seinen Kollegen bei Google Brain.
Alles in allem befindet sich die ML-Sicherheitsforschung noch in einem frühen Stadium. Die aktuellen Studien konzentrieren sich hauptsächlich auf die Bilderkennung. Allerdings sind einige Abwehrtechniken, die bei Bildern gut funktionieren, bei Text oder Audio möglicherweise nicht wirksam. “Dennoch gibt es eine Menge Dinge, die Sie tun können, um sich in der Praxis zu schützen”, verrät Kiss. “Leider schützt Sie keine dieser Maßnahmen vollständig vor bösartigen Aktivitäten. Alle diese Maßnahmen bieten jedoch zusätzlichen Schutz und erschweren die Ausführung von Angriffen.”
Das Wichtigste, so der Cydrill-Experte, ist, dass Sie mit dem Kopf eines Angreifers denken. “Sie müssen neuronale Netze mit gegnerischen Beispielen trainieren, damit sie diese Informationen ausdrücklich als falsch erkennen.” Laut Kiss ist es eine gute Idee, gegnerische Muster aus allen derzeit bekannten Angriffstechniken zu erstellen und zu verwenden. Ein Test-Framework kann solche Muster generieren, um den Prozess zu vereinfachen. Es gibt bereits Sicherheitstest-Tools, die dabei helfen können – wie die ML-Fuzz-Tester Tensorfuzzs und Deeptest, die automatisch ungültige oder unerwartete Eingaben erzeugen.
Sanitätskontrollen
Die Begrenzung der Möglichkeiten des Angreifers, gegnerische Proben zu senden, ist immer eine gute Abschwächungstechnik. Dies lässt sich leicht erreichen, indem man einfach die Anzahl der von einem Benutzer akzeptierten Eingaben begrenzt. Natürlich ist es nicht einfach, zu erkennen, dass derselbe Benutzer hinter einer Reihe von Eingaben steckt. “Dies ist die gleiche Herausforderung wie bei verteilten Denial-of-Service-Angriffen, aber die gleichen Lösungen könnten auch funktionieren.”
Wie immer bei der Softwaresicherheit kann eine Eingabeüberprüfung helfen. Es mag nicht trivial sein, automatisch gute von schlechten Eingaben zu unterscheiden, aber es ist auf jeden Fall einen Versuch wert. Wir können auch das maschinelle Lernen selbst nutzen, um anomale Muster in den Eingaben zu erkennen. “Im einfachsten Fall, wenn die von einem nicht vertrauenswürdigen Benutzer erhaltenen Daten durchweg näher an der Klassifizierungsgrenze als am Durchschnitt liegen, können wir die Daten für eine manuelle Überprüfung markieren oder sie einfach auslassen.
Regelmäßige Überprüfungen mit Testdaten können ebenfalls hilfreich sein. Wenn Sie bei jedem neuen Trainingszyklus denselben Testdatensatz gegen das Modell laufen lassen, können Sie Vergiftungsversuche aufdecken. Kiss: “Ablehnen bei negativer Auswirkung, Roni, ist hier eine typische Verteidigung, um zu erkennen, ob sich die Fähigkeit des Systems, den Testdatensatz zu klassifizieren, nach der Umschulung verschlechtert.”
Die offensichtlichste Tatsache über die Sicherheit von ML wird oft übersehen, bemerkt Kiss. “Lösungen für maschinelles Lernen sind Softwaresysteme. Wir programmieren sie in Python – oder möglicherweise in C++ – und daher weisen sie potenziell alle gängigen Sicherheitslücken auf, die für diese Sprachen gelten.” Der Cydrill-Trainer rät uns insbesondere, Punkt 9 der OWASP Top Ten zu beachten. Das Open Web Application Security Project ist ein Dokument, das die zehn kritischsten Sicherheitsprobleme in Webanwendungen zusammenfasst, um das Bewusstsein zu schärfen und das Risiko von Angriffen zu minimieren. Punkt 9 warnt Entwickler vor der Verwendung von Komponenten mit bekannten Sicherheitslücken. “Jede Schwachstelle in einem weit verbreiteten ML-Framework wie Tensorflow oder einer seiner vielen Abhängigkeiten kann weitreichende Folgen für alle Anwendungen haben, die es verwenden.”
Potenzielle Angriffsziele
Die Angreifer interagieren mit dem ML-System, indem sie Daten über die Angriffsfläche einspeisen. Versetzen Sie sich in den Kopf des Angreifers und stellen Sie Fragen. Wie verdaut die Anwendung die Informationen? Welche Art von Daten? Akzeptiert das System Bilder sowie Audio- und Videodateien? Oder gibt es Beschränkungen? Wenn ja, wie prüft es die Typen? Übernimmt das Programm das Parsing oder delegiert es dies vollständig an eine Open-Source- oder kommerziell erhältliche Medienbibliothek? Und hat das Programm nach der Vorverarbeitung der Daten irgendwelche Annahmen (leeres Feld, Anforderungen an Werte)? Sind die Daten in einer relationalen Datenbank oder in XML oder JSON gespeichert? Wenn ja, welche Operationen führt der Code mit diesen Daten durch, wenn sie verarbeitet werden? Wo werden die Hyperparameter gespeichert und können sie während der Laufzeit geändert werden? Verwendet die Anwendung Bibliotheken, Frameworks, Middleware oder Webservice-APIs von Drittanbietern als Teil des Workflows, der die Benutzereingaben verarbeitet? Wenn ja, welche?
Kiss: “Jede dieser Fragen kann auf potenzielle Angriffsziele hinweisen. Jede von ihnen kann Schwachstellen verbergen, die Angreifer ausnutzen können, um ihre ursprünglichen Ziele zu erreichen.”
Diese Schwachstellen haben weniger mit dem maschinellen Lernen zu tun als vielmehr mit den zugrundeliegenden Technologien: der Programmiersprache selbst (wahrscheinlich Python), der Einsatzumgebung (mobil, Desktop, Cloud) und dem Betriebssystem. Aber die Gefahren, die von ihnen ausgehen, sind genauso kritisch wie die gegnerischen Beispiele – eine erfolgreiche Ausnutzung kann zu einer vollständigen Kompromittierung des ML-Systems führen. Dies beschränkt sich nicht auf den Code der Anwendung selbst. Der Forscher Rock Stevens von der University of Maryland untersuchte Schwachstellen in häufig verwendeten Plattformen wie Tensorflow und Pytorch.
Echte Bedrohungen
Kiss’ wichtigste Botschaft ist, dass ML-Sicherheit viele reale Bedrohungen abdeckt. Sie ist nicht nur eine Teilmenge der Cybersicherheit, sondern weist viele Merkmale der Softwaresicherheit im Allgemeinen auf. Wir sollten uns nicht nur um bösartige Samples und gegnerisches Lernen kümmern, sondern auch um alle üblichen Schwachstellen der Software-Sicherheit. Maschinelles Lernen ist nun einmal Software.
ML-Sicherheit ist eine neue Disziplin. Die Forschung hat gerade erst begonnen, wir fangen gerade erst an, die Bedrohungen, die möglichen Schwachstellen und die Anfälligkeiten zu verstehen. Dennoch können ML-Experten viel von der Software-Sicherheit lernen. Die letzten Jahrzehnte haben uns hier viele Lektionen erteilt.
Dieser Artikel wurde von René Raaijmakers geschrieben, dem technischen Redakteur von Bits&Chips.