banner

Nachricht

Aug 28, 2023

Lernen maschinelles Lernen Teil 3: Angriff auf Black-Box-Modelle

Home » Cybersicherheit » Analytics & Intelligence » Lernen maschinelles Lernen Teil 3: Angriff auf Black-Box-Modelle

Im ersten Beitrag dieser Reihe haben wir einen kurzen Hintergrund zum maschinellen Lernen, dem Revoke-Obfuscation-Ansatz zur Erkennung verschleierter PowerShell-Skripte und meinen Bemühungen zur Verbesserung des Datensatzes und der Modelle zur Erkennung verschleierter PowerShell behandelt. Am Ende hatten wir drei Modelle: eine L2 (Ridge) regulierte logistische Regression, einen LightGBM-Klassifikator und eine neuronale Netzwerkarchitektur.

Der zweite Beitrag befasste sich mit dem Angriff auf diese Modelle von aweiße Kiste Perspektive, das heißt, wir haben die Gesamtheit des trainierten Modells selbst, einschließlich der Eingabemerkmale, der Modellarchitektur, der Modellparameter/-gewichte und der Trainingsdaten. Ich empfehle dringend, diese ersten beiden Beiträge zumindest zu überfliegen, bevor Sie fortfahren, um sicherzustellen, dass alles so sinnvoll wie möglich ist.

In diesem Beitrag werden wir die häufigeren und schwierigeren Probleme behandeln:Flugschreiber Perspektive. Hier wissen wir nur, welche Funktionen aus jedem Beispiel extrahiert werden – selbst die Architektur bleibt für uns undurchsichtig.

Nachdem ich definitiv Hunderte von Seiten akademischer Forschung zum kontradiktorischen maschinellen Lernen gelesen habe, kann ich mit Sicherheit sagen, dass ein großer Teil der Forschung aus einer White-Box-Perspektive erfolgte. Erinnern Sie sich an unsere Definition von White-Box- und Black-Box-Angriffen aus dem zweiten Beitrag dieser Serie:

Außerdem scheint sich der Großteil der Forschung auf dem Gebiet der Bilderkennung zu befinden. Das ist zwar interessant, aber es handelt sich definitiv um einen anderen Problembereich als den, mit dem wir es zu tun haben. Insbesondere können bei Bildern mehrere Pixel geringfügig gestört sein, ohne dass das resultierende kontroverse Bild für das menschliche Auge verändert erscheint. Bei vielen Sicherheitsproblemen, mit denen wir uns befassen, beispielsweise bei unserem PowerShell-Verschleierungsproblembereich, sind wir stärker eingeschränkt, was a) die Anzahl der Funktionen betrifft, die wir ändern können, und b) das Ausmaß, in dem wir diese Funktionen ändern können. Das heißt, wir haben einen kleineren funktionalen Unterraum für Änderungen, die wir an PowerShell-Skripten im Gegensatz zu Bildern vornehmen können.

Es gibt eine Reihe von Black-Box-AngriffenModellextraktion (siehe nächster Abschnitt), um ein lokales Modell zu erstellen, das manchmal auch als Ersatz- oder Ersatzmodell bezeichnet wird. Bestehende Angriffe werden dann gegen das lokale Modell ausgeführt, um gegnerische Samples zu generieren, in der Hoffnung, dass diese Samples auch dem Zielmodell entgehen. Dies funktioniert oft aufgrund des PhänomensAngriffsübertragbarkeit, worüber wir gleich sprechen werden.

Black-Box-Angriffe können auch die Modellextraktion überspringen und Eingaben direkt am Zielmodell abfragen. Diese Angriffe, bei denen die interne Konfiguration des Modells überhaupt nicht benötigt wird, werden in der Fachliteratur eigentlich als Black-Box-Angriffe bezeichnet. Mithilfe der Modellextraktion können wir jedoch möglicherweise White-Box-Angriffe auf lokale Klone von Black-Box-Modellen anwenden, bei denen wir nur ein Orakel haben, an das wir Eingaben übermitteln und von dem wir Etiketten erhalten können.

Laut Will Pearce und anderen ist die Modellextraktion eines der grundlegendsten Grundprinzipien im gegnerischen ML. Während diese Idee wahrscheinlich schon seit einiger Zeit existierte, glaube ich, dass die ersten Formalisierungen der Modellextraktion (oder zumindest eine, die die Methode populär gemacht hat) das Papier „Transferability in Machine Learning: from Phenomena to Black-Box Attacks using Adversarial Samples“ aus dem Jahr 2016 und das waren Papier aus dem Jahr 2017 „Praktische Black-Box-Angriffe gegen maschinelles Lernen“, beide von Papernot et al. Die allgemeine Zusammenfassung ihres Ansatzes aus dem Papier aus dem Jahr 2017 lautet:

Unsere Angriffsstrategie besteht darin, ein lokales Modell zu trainieren, um das Ziel-DNN (Deep Neural Network) zu ersetzen, indem es Eingaben verwendet, die von einem Gegner synthetisch generiert und vom Ziel-DNN gekennzeichnet werden. Wir verwenden den lokalen Ersatz, um gegnerische Beispiele zu erstellen, und stellen fest, dass sie vom Ziel-DNN falsch klassifiziert werden.

Die gesamte Idee besteht darin, die Entscheidungsgrenze des Zielmodells mit weniger (und normalerweise anderen) Daten anzunähern, als das Modell ursprünglich trainiert wurde. Grundsätzlich umfasst die Modellextraktion zunächst die Übermittlung einer Reihe bekannter, gekennzeichneter Proben an das Modell, das als Kennzeichnungsorakel fungiert. Stellen Sie sich vor, Sie senden eine Reihe von Binärdateien an eine Website, die Ihnen mitteilt, ob die Binärdateien bösartig sind oder nicht. Oder stellen Sie sich vor, dass unsere angepassten Revoke-Obfuscation-Modelle eine Art interne API sind, an die wir unsere Merkmalsmessungen übermitteln können und ein Label-Ergebnis von „normal“ oder „verschleiert“ oder einen Verschleierungswahrscheinlichkeitswert erhalten. Mit genügend Eingaben können wir ein lokales Ersatzmodell trainieren, das ähnlich wie das Zielmodell funktioniert.

Abbildung 1 aus „Active Deep Learning Attacks under Strict Rate Limitations for Online API Calls“ von Shi et al. fasst den Prozess gut zusammen:

Eine vernünftige Hypothese ist, dass unser lokales Modell umso besser funktionieren wird, je besser wir der ursprünglichen Modellarchitektur entsprechen können. Dies ist etwas, das wir in diesem Beitrag untersuchen werden.

Ein etwas anderer Ansatz besteht darin, ein anfänglich schlechtes Modell mit wenigen Stichproben zu trainieren und einige der im zweiten Beitrag beschriebenen White-Box-Angriffstechniken zu verwenden, um gegnerische Stichproben zu generieren. Diese Proben durchlaufen den Klassifikator, und zwar wie in diesem Beitrag beschrieben:

…die kontradiktorischen Beispiele sind ein Schritt in Richtung des Modellgradienten, um zu bestimmen, ob das Black-Box-Modell die neuen Datenpunkte auf die gleiche Weise wie das Ersatzmodell klassifiziert. Die erweiterten Daten werden vom Black-Box-Modell gekennzeichnet und zum Trainieren eines besseren Ersatzmodells verwendet. Genau wie das Kind erhält das Ersatzmodell ein genaueres Verständnis dafür, wo die Entscheidungsgrenze des Black-Box-Modells liegt.

Endergebnis so oder so? Wir haben ein lokal trainiertes Modell, das sich der Entscheidungsgrenze des Zielmodells annähert. Damit können wir zusätzlich zu etwaigen Black-Box-Angriffen verschiedene White-Box-basierte Angriffsalgorithmen ausführen, die interne Modellgradienten ausnutzen.

Randbemerkung: Eingaben und Modellarchitekturen

Wenn es sich bei den Eingaben für das Modell, das Sie angreifen, um Bilder oder Text handelt, haben Sie in gewisser Weise Glück, da Sie wahrscheinlich die Basisarchitektur des Zielmodells erraten können. Es gibt etablierte Richtlinien für diese Art von Eingaben, z. B. Faltungs-Neuronale Netze für Bilder und LSTM/Transformer (oder in bestimmten Fällen Naive Bayes) für Text. In diesen Beispielen arbeiten wir mit tabellarischen Daten, also Daten, die in Spalten oder Tabellen angezeigt werden. Wir werden uns hoffentlich ein anderes Mal noch einmal mit dem Angriff auf textbasierte Modelle befassen!

Sie fragen sich vielleicht: „Wirklich? Angriffe auf beschissene, lokal geklonte Modelle können gegen echte Produktionsmodelle wirken?“ Die Antwort lautet JA, und zwar aufgrund eines Phänomens namens Angriffsübertragbarkeit. Das Papier aus dem Jahr 2019 „Why Do Adversarial Attacks Transfer? Explaining Transferability of Evasion and Poisoning Attacks“ von Demontis et al. untersucht dies aus akademischer Sicht, aber ich werde mein Bestes tun, um das Konzept zu erklären. Auch wenn man bedenkt, dass dieses Papier erst ein paar Jahre alt ist und es keinen allgemeinen Konsens darüber gibt, warum gegnerische Angriffe übertragen werden, sollte man bedenken, dass dies immer noch eine gewisse offene Frage ist.

Die bahnbrechende Arbeit, die dieses Konzept einführte, ist die bereits erwähnte Arbeit „Transferability in Machine Learning: from Phenomena to Black-Box Attacks using Adversarial Samples“ von Papernot, McDaniel und Goodfellow aus dem Jahr 2016. Die ersten paar Sätze aus der Zusammenfassung geben einen guten Überblick über das Konzept (Hervorhebung durch mich):

Viele Modelle für maschinelles Lernen sind anfällig für kontradiktorische Beispiele: Eingaben, die speziell so gestaltet sind, dass ein Modell für maschinelles Lernen eine falsche Ausgabe erzeugt.Kontroverse Beispiele, die sich auf ein Modell auswirken, wirken sich häufig auf ein anderes Modell aus, selbst wenn die beiden Modelle unterschiedliche Architekturen haben oder auf unterschiedlichen Trainingssätzen trainiert wurden, sofern beide Modelle für die Ausführung derselben Aufgabe trainiert wurden.Ein Angreifer kann daher sein eigenes Ersatzmodell trainieren, gegnerische Beispiele gegen den Ersatz erstellen und diese auf ein Opfermodell übertragen, wobei er nur sehr wenige Informationen über das Opfer hat.

In ihrer Arbeit geht es darum, zwei Hypothesen zu beweisen, nämlich dass „sowohl intra-technische als auch technikübergreifende kontradiktorische Probenübertragbarkeiten im gesamten Bereich maschineller Lerntechniken durchweg starke Phänomene sind“ und dass „Black-Box-Angriffe in praktischen Umgebungen gegen alle möglich sind.“ unbekannter Klassifikator für maschinelles Lernen.“ Ihr Aufsatz liefert überzeugende Argumente für jeden und demonstriert auch die Übertragbarkeit verschiedener Modellklassen, zusammengefasst in Abbildung 3 auf Seite 5 des Aufsatzes:

Die Werte in jeder Zelle sind der Prozentsatz der Stichproben (hier MNIST-Bilder, der De-facto-Testfall für gegnerische Angriffe), die zur Umgehung einer bestimmten Modellarchitektur erstellt wurden und bei der Anwendung auf eine andere Modellarchitektur auch ihre Klassifizierungsbezeichnung änderten. Das heißt, der Prozentsatz erfolgreicher lokal erstellter gegnerischer Stichproben, die auch das Zielmodell täuschen. Beachten Sie, dass diese Zahl keine Random Forests- oder Boosted Decision Tree-Ensembles enthält (die Ens-Spalte ist ein benutzerdefiniertes Ensemble der 5 vorhandenen Techniken). Der Ersatzmodelltyp befindet sich auf der linken Seite und der Zielmodelltyp befindet sich unten. Wir können einige Muster erkennen:

Daraus ergibt sich meiner Theorie zufolge eine bessere Chance, dass Ihre Angriffe gegen das Ersatzmodell übertragen werden, wenn Sie die Architektur des Zielmodells weitgehend anpassen können.

Wie wird sich das im Vergleich zu unseren Beispieldatensätzen behaupten?

Unser Ziel hier ist es, ein lokales Ersatzmodell neu zu erstellen, wobei wir nur Zugriff auf das Modell als Beschriftungsorakel haben (dh die trainierten Zielmodelle aus dem ersten Beitrag). Dann werden wir die White-Box-Angriffe vom zweiten Pfosten gegen unseren Ersatzspieler ausführen und auf eine ausreichende Übertragbarkeit des Angriffs hoffen. Obwohl dies den Prozessen in den ersten beiden Beiträgen sehr ähnlich ist, haben wir ein paar zusätzliche Schritte.

Zunächst benötigen wir einen neuen Datensatz für die Modellextraktion. Ich habe 1500 zufällige Dateien aus dem PowerShellCorpus ausgewählt und jede durch einen zufälligen Satz von Verschleierungen von Invoke-Obfuscation laufen lassen, wodurch ich insgesamt 3000 Stichproben erhielt. Anschließend habe ich den Funktionsextraktionscode für jedes Skript ausgeführt und die Datei BlackBox.ast.csv generiert, die jetzt in ./datasets/ im Invoke-Evasion-Repository aktualisiert wird.

Der nächste Schritt istModellextraktion , wo wir ein lokales Ersatzmodell auf dem durch das Zielmodell gekennzeichneten Datensatz trainieren. Um dies zu erreichen, habe ich jedes Zielmodell verwendet, um einen entsprechenden Satz von Beschriftungen für den neuen Datensatz zu generieren. Da keines unserer Modelle perfekt war, spiegeln diese Bezeichnungen zwar nicht die exakte Wahrheit wider, spiegeln jedoch die Entscheidungsgrenze des Zielmodells selbst wider. Ich habe den Datensatz in einen Standardzug/Test mit einem Verhältnis von 80/20 aufgeteilt, wie wir es im ersten Beitrag getan haben.

Im vorherigen Abschnitt habe ich erwähnt, dass die Wahrscheinlichkeit, dass Ihr gezielter Angriff das Ziel täuscht, umso höher ist, je besser Sie Ihr lokales Modell an die Architektur des Zielmodells anpassen. Ich wollte sehen, welche Schritte der „Modellaufklärung“ dabei helfen könnten, Licht auf die Architektur des Zielmodells zu werfen. Die große Frage für mich ist, ob das Ziel linear, baumbasiert, ein neuronales Netzwerk oder eine dritte Option ist. Baumbasierte Algorithmen funktionieren oft sehr gut mit nahezu jedem Datensatz, daher ist meine Hypothese, dass Random Forests und Gradient Boosted Trees gut mit jedem Zielmodelldatensatz übereinstimmen. Aus diesem Grund möchten wir idealerweise zunächst feststellen, ob das Modell wahrscheinlich ein neuronales Netzwerk oder ein lineares Modell ist, wobei das Ergebnis des Eliminierungsprozesses baumbasiert ist.

Dies ist definitiv eine offene Frage und etwas, das meiner Meinung nach in der Wissenschaft nicht intensiv berücksichtigt wurde. Ich möchte jedoch noch einmal betonen, dass ich hier kein Experte bin. Wenn es in diesem Bereich bereits Arbeiten gibt (oder jemand weitere Ideen hat), lassen Sie es mich bitte wissen!

Meine beiden Hauptideen, die ich gleich näher erläutern werde, sind:

Ich begann mit der Anpassung der folgenden Modelle an jeden Zieldatensatz und führte eine einfache kreuzvalidierte Zufallssuche (mithilfe von RandomizedSearchCV) nach gängigen Hyperparametern für die flachen Algorithmen (d. h. alles außer dem neuronalen Netzwerk) durch:

Anschließend habe ich HopSkipJump verwendet, um für jedes Modell gegnerische Stichproben zu generieren. Aus irgendeinem Grund konnte ich das neuronale Netzwerk mit HopSkipJump nicht dazu bringen, genügend Samples zu generieren, also habe ich stattdessen den Fast Gradient Method (FGM)-Angriff verwendet. Warum sollten diese spezifischen Architekturen als lokale Modelle ausgewählt werden? Ich wollte eine Reihe von Dingen auswählen, die tatsächlich in der Produktion verwendet werden, und wollte lineare (logistische Regression), Baumensembles (Random Forests/Boosted Trees) und neuronale Netze abdecken.

Diese kontradiktorischen Stichproben wurden mit jedem lokalen Modell und dem Zielmodell verglichen, um vergleichbare Genauigkeiten zu erhalten. Noch wichtiger ist jedoch, dass ich die spezifischen Stichproben herausgezogen habe, die von jedem lokalen Modell falsch klassifiziert wurden. Diese Proben wurden mit dem Zielmodell verglichen und ergaben den Prozentsatz der gegnerischen Proben, die gegen das lokale Modell erstellt wurden und auch das Zielmodell getäuscht haben. Dies ist dasÜbertragbarkeit Idee, über die wir vorhin gesprochen haben. Während es ein interessanter Datenpunkt ist, wie allgemein effektiv die gesamten lokalen gegnerischen Stichproben gegen das Ziel waren, geht es uns wirklich darum, wie effektiv das lokale Ersatzmodell bei der Erstellung gegnerischer Stichproben ist, die das Zielmodell täuschen.

Als nächstes nahm ich das leistungsstärkste logistische Regressionsmodell, das linear ist, und änderte einen einzelnen Koeffizienten für eine Stichprobe stark, um zu sehen, ob sich dies auf die Modellausgabe auswirkte. Das Ziel bestand hier darin, herauszufinden, ob das Modell möglicherweise für einen anderen Bezugspunkt linear war.

Hier ist das Ergebnis unseres Suchprozesses zur Umgehungsübertragbarkeit für das erste Modell:

Diese Ergebnisse sind interessant. Das Modell, das am besten mit den gekennzeichneten Daten des Zielmodells übereinstimmte, war der Random Forest. Das Surrogat der logistischen Regression (das am ehesten mit der Architektur des Zielmodells übereinstimmte) wies die meisten gegnerischen Stichproben auf, die an das Zielmodell übertragen wurden, aber XGBoost wies den höchsten Prozentsatz auf gegnerische Stichproben, die auf das Ziel der logistischen Regression übertragen wurden.

Hier ist das Ergebnis unseres Suchprozesses zur Umgehungsübertragbarkeit für das zweite Modell:

Auch diese Ergebnisse sind interessant. Die Modelle, die am ehesten mit den gekennzeichneten Daten des Zielmodells übereinstimmten, waren Random Forest und XGBoost, während das Neural Network sowohl die meisten gegnerischen Angriffe, die übertragen wurden, als auch den besten Prozentsatz der Angriffsübertragbarkeit auf das LightGBM-Ziel aufwies. Im Vergleich zu den beiden anderen Zielmodellen scheint Modell 2 auch gegenüber gegnerischen Proben am widerstandsfähigsten zu sein.

Hier ist das Ergebnis unseres Suchprozesses zur Umgehungsübertragbarkeit für das erste Modell:

Diese Ergebnisse sind genauso interessant wie die beiden vorherigen. Die Genauigkeit der meisten Modelle kam den gekennzeichneten Daten des Zielmodells sehr nahe, während bei der logistischen Regression und bei XGBoost die meisten gegnerischen Stichproben an das neuronale Zielnetzwerk übertragen wurden. Das Neuronale Netzwerk hatte den besten Prozentsatz an Angriffsübertragbarkeit, aber die zweitschlechteste Anzahl an übertragenen Angriffen.

Basierend auf den Ergebnissen scheint meine Strategie, die Modellarchitektur durch Messung der Übertragbarkeit von Ersatzmodellangriffen zu bestimmen, in diesem Fall nicht besonders gut zu funktionieren. Zur Bestätigung habe ich für jedes Modell den vielversprechendsten Ersatz für jedes Ziel genommen und die gleichen Angriffe durchgeführt, die wir im zweiten Beitrag gegen die White-Box-Modelle durchgeführt haben. Dies erwies sich als nicht besonders effektiv und ich musste für jedes Skript eine Menge Änderungen vornehmen. Insbesondere würden die geänderten Skripte hinsichtlich der Verschleierungswahrscheinlichkeit gegenüber dem lokalen Ersatz eine sehr geringe Punktzahl erzielen, würden aber dennoch vom Ziel als verschleiert eingestuft.

Ich habe mir den Kopf zerbrochen, um eine Erklärung dafür zu finden, und Will konnte mir dabei helfen, Licht in mehrere Dinge zu bringen. Dies führte zu zwei großen Veränderungen in meinem Ansatz: Soft Labels und die Umkehrung meiner Sicht auf das gesamte Problem.

Auf Folie 21 seiner BlackHat EU-Präsentation 2021 beschreibt Will ausführlich die Auswirkung von Hard- und Soft-Labels auf die Modellextraktion:

Intuitiv macht das Sinn. Eine harte Bezeichnung wie „normal“ oder „verschleiert“ liefert weniger Informationen als eine Reihe von Wahrscheinlichkeiten wie „verschleiert=0,73“. Je mehr Informationen wir haben, desto besser können wir die Interna des Modells abgleichen – zwischen harten Binärbezeichnungen wie 0 und 1 ist viel Platz!

Betrachten wir die Situation, in der unsere magischen Invoke-Obfuscation-APIs eine Verschleierungswahrscheinlichkeit von etwa 0,73 anstelle nur einer binären 0/1-Beschriftung angeben. Wie können wir diese zusätzlichen Informationen nutzen? Erinnern Sie sich an den ersten Beitrag, in dem wir über Klassifizierung versus Regression gesprochen haben: Die Klassifizierung gibt uns Bezeichnungen, während die Regression uns eine Zahl gibt!

Sehen wir uns an, was passiert, wenn wir unseren gegnerischen Datensatz mit der Wahrscheinlichkeit kennzeichnen, dass das Skript verschleiert ist, statt nur mit der harten Bezeichnung „normal/verschleiert“. Wir behalten einen Schwellenwert von 0,5 oder höher bei, um zu bedeuten, dass die Probe verschleiert ist. Dies kann jedoch angepasst werden (und dient häufig dazu, das Gleichgewicht zwischen falsch-positiven und falsch-negativen Ergebnissen zu ändern).

Da wir eine Regression anstelle einer Klassifizierung durchführen, benötigen wir einen etwas anderen Satz von Algorithmen. Neuronale Netze, Random Forests, Gradient Boosted Trees und Support Vector Machines haben alle Regressionsäquivalente. Anstelle der logistischen Regression (ich weiß, ein verwirrender Name für einen Klassifikator hier) werden wir jedoch die klassische lineare Regression, Lasso-Regression (L1), Ridge-Regression (L2) und BayesianRidge-Regression anstelle von Bayesian Naive Bayes verwenden. Dann überprüfen wir für jeden den Root Mean Squared Error (RMSE) des Testsatzes, eine gängige Regressionsmetrik, die die Differenz zwischen jeder Vorhersage und ihrem tatsächlichen Wert quadriert, alle Quadrate addiert und die Quadratwurzel zieht von allen:

Wir nehmen außerdem jedes Regressionsmodell, treffen eine Vorhersage für jede Stichprobe und wandeln diese wieder in harte Labels um, indem wir sehen, welche gleich 0,5 oder höher sind. Dadurch erhalten wir eine Genauigkeitsmessung. Das Ganze ist eine Art Klassifikator-Approximations-Regressor-Ansatz. Die Einzelheiten finden Sie imBlackBox.ipynbNotebook im Invoke-Evasion-Repository.

Ein Problem, auf das ich gestoßen bin, ist, dass wir, da wir Regressionsmodelle anstelle von Klassifizierungsmodellen erstellen, diese nicht sofort mit HopSkipJump oder anderen Angriffsalgorithmen verwenden können. Ich habe einige Versuche unternommen, ein benutzerdefiniertes Klassifizierungsmodell zu entwickeln, das den Regressions-Scikit-Learn-Modus umschließt, aber ART funktionierte damit immer noch nicht richtig. Ich bin mir sicher, dass es eine Möglichkeit gibt, dies zu tun, aber es gibt immer noch ein großes Problem, über das wir noch nicht nachgedacht haben ...

Eine große Herausforderung, auf die ich gestoßen bin, als ich versucht habe, mich mit der Situation des kontradiktorischen maschinellen Lernens vertraut zu machen, besteht darin, den modifizierten kontradiktorischen numerischen Datensatz wieder in ein funktionierendes Skript umzuwandeln. Wie ich in dieser Beitragsreihe bereits erwähnt habe, befassen sich die meisten akademischen kontroversen maschinellen Lernforschungen mit Bilddaten. Die Störung kontroverser Merkmale für Bilder ist ziemlich einfach bzw. uneingeschränkt möglich – wir optimieren einfach die Bits für Pixel und übermitteln das Bild dann an unseren Zielklassifikator. So ziemlich alle gegnerischen Umgehungsalgorithmen für maschinelles Lernen werden auf diese Weise verwendet. Sie stellen eine Reihe von Datenproben und einen Angriffsalgorithmus bereit und es werden gestörte/gegnerische Proben erzeugt, d. h. Zahlenreihen, die das Zielmodell bei der Verarbeitung täuschen.

Im zweiten Beitrag zum Angriff auf White-Box-Modelle haben wir die Möglichkeit der Feature-Maskierung verschiedener Angriffsalgorithmen untersucht. Auch wenn wir die Änderungen auf eine kleinere Teilmenge einfacher modifizierbarer Funktionen beschränkt haben, ist dies immer noch nicht ideal. Wenn wir eine Reihe von Funktionen haben, die gegenüber einem Originalbeispiel geändert wurden, wie können wir diese dann a) wieder in ein Skript umwandeln, das b) überhaupt ausgeführt wird und c) weiterhin die beabsichtigte Funktionalität des Skripts ausführt?

Wie wir im zweiten Beitrag besprochen haben, was ist das ??? Prozess in der folgenden Abbildung:

Es fiel mir schwer, mich damit zu befassen, bis ich einen Teil der Quelle für den mlsecevasion-Zweig von Counterfit las und ein weiteres Gespräch mit Will führte, das meine Sichtweise völlig veränderte. Er gab eine wichtige Erkenntnis von Hyrum Anderson weiter:das ist eigentlich alles nur ein Optimierungsproblem!

Black-Box-ML-Angriffsalgorithmen optimieren die gemessenen Eingabemerkmale für das Max-Min-Adversarial-Problem, über das wir im zweiten Beitrag gesprochen haben, bei dem wir die Fehlerfunktion/den Verlust des Modells für eine Stichprobe maximieren, aber die Anzahl der durchzuführenden Änderungen minimieren möchten Also. Warum optimieren wir nicht eine Reihe aufeinanderfolgender Aktionen, die sich auf diese Features auswirken, anstatt die Modifikation der vektorisierten Features direkt zu optimieren?

Grundsätzlich möchten wir zunächst eine Reihe von Änderungsaktionen aufzählen, die wir für eine bestimmte Stichprobe ausführen können und die die für diese Stichprobe extrahierten Merkmale ändern. Counterfit verfügt beispielsweise über eine Reihe von PE-Abschnittserweiterungen/-überlagerungen, hinzuzufügende Importe und Zeitstempel zum Ausprobieren für PEs. Für unsere Situation würden wir uns etwas wünschen, das „normale“ Funktionen hinzufügt, und wir können die Erklärbarkeitsansätze aus dem zweiten Beitrag als Leitfaden für diesen Prozess verwenden. Dann können wir einen Algorithmus wie HopSkipJump verwenden, um eine Kombination dieser Funktionen zu finden, die das gewünschte Ergebnis liefert.

Unser Ansatz wird stattdessen wie folgt aussehen:

Im Fall von Counterfit nehmen sie einen Vektor, der die durchzuführenden Änderungen darstellt, und speisen ihn in etwas wie HopSkipJump ein. Für einige zukünftige Arbeiten hoffe ich, ein Counterfit-Modul für diese PowerShell-Verschleierung zu erstellen, aber wir lassen die Dinge vorerst etwas manueller.

Es gibt eine weitere Alternative zur Verwendung von Angriffsalgorithmen, die Bayesianische Optimierung, „eine sequentielle Entwurfsstrategie zur globalen Optimierung von Black-Box-Funktionen“. Erinnern Sie sich an den ersten Beitrag, als wir kurz über Optuna sprachen, ein Framework, das für die Optimierung von Hyperparametern für Algorithmen für maschinelles Lernen entwickelt wurde. Optuna implementiert verschiedene Bayes'sche Optimierungsmethoden und ist äußerst flexibel, mit einem allgemeinen Ansatz:

Die andere wichtige Erkenntnis hier ist dieseWir müssen Optuna nicht nur für die Optimierung von Hyperparametern verwenden! Die Zielfunktion stellt eine Blackbox dar, und wir können sie verwenden, um eine Reihe von Modifikationsaktionen für unser Zielskript auszuführen und den Verschleierungswahrscheinlichkeitswert von unserem Zielmodell zurückzugeben. Dies ist ein Ansatz, den auch Counterfit implementiert hat, indem es das Hyperopt-Framework anstelle von Optuna verwendet.

Wenn das nach Verstärkungslernen klingt, liegen Sie nicht völlig daneben. Da ich in der relevanten Mathematik nicht so bewandert bin, wie ich es gerne hätte, möchte ich sagen, dass ich glaube, dass dieser Ansatz im Prinzip dem Reinforcement Learning ähnelt, sich aber in der Praxis unterscheidet. Mein Bauchgefühl ist, dass dieser Ansatz wahrscheinlich für kleinere Sätze atomarer Änderungen funktioniert, die nicht so sehr von der Reihenfolge abhängen – eine größere Anzahl aufeinanderfolgender Aktionen, die sehr kontextabhängig sind, wird mit einem geeigneten Ansatz des verstärkenden Lernens wahrscheinlich eine bessere Leistung erbringen. Da wir jedoch eine kurze Rückkopplungsschleife aus ausgewählten Transformationen, Verschleierung von Skripten und Maßeinheitenverschleierung haben, benötigen wir wahrscheinlich nicht den erhöhten Aufwand eines vollständigen Reinforcement-Learning-Ansatzes.

Wir werden hier alles zusammenfassen und den Klassifikator-Approximations-Regressoren-Ansatz mit der Bayes'schen Optimierung von Skriptmodifikationen kombinieren.

Unser Gesamtziel: Nehmen Sie das verschleierte DBOdemo1.ps1-Eingabeskript und geben Sie ein geändertes Skript zurück, das die Funktionalität des ursprünglichen Skripts beibehält, während es von unserem optimierten neuronalen Netzwerkmodell als normal gekennzeichnet wird. Außerdem möchten wir dem Skript so wenige Zeichen wie möglich hinzufügen.

Unser ganzheitlicher Ansatz von Anfang bis Ende wird sein:

Die wichtigste Erkenntnis hierbei ist, dass wir das Zielmodell so effektiv wie möglich extrahieren und die White-Box-Erkenntnisse aus diesem lokalen Ersatzmodell verwenden, um die Konstruktion von Funktionen zu steuern, die das verschleierte Zielskript ändern. Anschließend optimieren wir die Verwendung dieser Modifikationsfunktionen anhand des Ziel-Blackbox-Modells. Mit diesem Ansatz können wir den Zeitaufwand und die Anzahl der Abfragen der Black-Box-API minimieren.

Die Ergebnisse unserer 30-minütigen Optimierungsstudie sehen so aus:

Und das endgültige optimierte Skript sieht so aus:

Innerhalb von 30 Minuten hatten wir ein optimiertes Skript, das die ursprüngliche Skriptgröße nur um 23,06 % vergrößerte, jedoch einen Verschleierungswert vom Zielmodell von 35,24 aufwies, der deutlich unter dem Schwellenwert von 50 für „Normal“ lag.

Die letzte Frage, die mir in den Sinn kommt, lautet: „Überträgt sich diese kontradiktorische Stichprobe auf die anderen beiden Zielmodelle?“ Mal sehen:

Dieses optimierte Beispiel war erfolgreich gegen Zielmodell 3, das neuronale Netzwerk, sowie Modell 1, die logistische Regression. Es wurde jedoch nicht auf das LightGBM-Boosted-Tree-Ensemble (Modell 2) übertragen. Dies liegt wahrscheinlich daran, dass wir:

Es ist einfach, linearen Modellen wie der logistischen Regression auszuweichen. Das Umgehen von Baum-Ensembles wie Random Forests oder Gradient Boosted Decision Trees oder Neural Networks ist etwas schwieriger. Das Umgehen von Black-Box-Versionen dieser Modelle ist sogar noch schwieriger oder erfordert zumindest mehr Zeit und Mühe.

Bei den meisten Angriffen in der Literatur geht es darum, mehrere gegnerische Proben zu generieren und zu testen, wie effektiv diese gegen ein Zielmodell sind, wie wir es bei unseren drei Zielmodellen getan haben. Es gibt nicht so viele Arbeiten, von denen ich weiß (ich habe versprochen, dass ich versucht habe, nachzuschauen!), die praktische, reale Black-Box-Angriffe mit tabellarischen Daten beinhalten, wie die Beispiele hier. Abhängig von der Architektur des Zielmodells und davon, ob es sich bei dem Modell um ein White-Box- oder Black-Box-Modell handelt, kann das Ausweichen für eine einzelne Stichprobe unterschiedlich schwierig sein.

Das Gebiet des kontradiktorischen maschinellen Lernens ist weniger als ein Jahrzehnt alt, wobei die ersten formalisierten Angriffe etwa im Jahr 2014 veröffentlicht wurden. Der größte Teil der bisherigen Arbeit war akademischer Natur und konzentrierte sich stark auf White-Box-Angriffe gegen Bildklassifikatoren. Es gibt zwar praktische Frameworks wie die Adversarial Robustness Toolbox, die meisten Angriffsalgorithmen unterliegen jedoch Einschränkungen, die sie für unsere Sicherheitsangriffsszenarien entweder nicht anwendbar oder nicht wünschenswert machen. Insbesondere können nicht alle Angriffsalgorithmen auf Tabellen-/Nicht-Bilddaten angewendet werden, und bei den meisten können Sie nicht einschränken, welche Features geändert werden (bekannt als Feature-Maskierung).

Was den gegnerischen Angriffsalgorithmus angeht, ist dies die große Erkenntnis, die Will mir vermittelt hatdas ist alles nur ein Optimierungsproblem! Die Informationssicherheit ist, wie in vielen anderen Branchen auch, oft nicht im Blick auf die Fortschritte in anderen Bereichen, die uns enorm helfen könnten. Mein persönliches Beispiel dafür war, als Andy und ich an dem Problem/Tool arbeiteten, das schließlich zum ursprünglichen BloodHound-Graph-Ansatz wurde – wir stolperten immer wieder über das Problem, bis Andy unsere Herausforderungen mit seinem Freund Sam besprach, der sich beklagte: „Alter, wie Habt ihr noch nichts von der Graphentheorie gehört?“

Das Problem „Wie nehmen wir diese gegnerischen Zahlen und wandeln sie wieder in einen brauchbaren Angriff um?“ ist ein echtes Problem bei der praktischen Durchführung dieser Angriffe. Wenn wir jedoch unsere Denkweise über das Problem ändern, können wir Ansätze nutzen, die vom Counterfit-Framework oder vom Framework selbst beeinflusst werden, um gegnerische Maßnahmen zu optimieren.

Ich hoffe, dass die akademische Gemeinschaft des maschinellen Lernens kontrovers ist macht weiterhin weitere Fortschritte bei der praktischen gegnerischen Forschung, die über gegnerische White-Box-Angriffe auf Bildklassifizierer hinausgeht (wie dieser!). Probleme in der realen Welt stellen eine größere Herausforderung dar, als nur mit MNIST herumzuspielen, und es gibt viele Möglichkeiten für eine gute Zusammenarbeit mit Fachleuten der Sicherheitsbranche, um einige dieser praktischen Szenarien anzugehen. Es gibt eine Menge nicht bildfokussierter Baummodelle mit Gradientenverstärkung, die in der realen Welt als Black Boxes eingesetzt werden: Wie können wir sie effektiv angreifen und gleichzeitig die Anzahl unserer Abfragen minimieren?

Denken Sie auch daran, dass Sie die Eingabefunktionen kennen müssen, um überhaupt auf einen gegnerischen Angriff gegen ein Black-Box-Modell hoffen zu können! Bei Bildern ist dies offensichtlich, aber bei realen Systemen kann es komplizierter werden und erfordert möglicherweise Reverse Engineering, um die Mechanismen der Merkmalsextraktion zu verstehen.

Und schließlich bedenken Sie, dass ML-Modelle eine „lebende Lösung“ sind – wie Lee Holmes es ausdrückte: „Das Einzige, was Sie bei ML-Modellen oder -Signaturen im Hinterkopf behalten sollten, ist, dass sie niemals „fertig“ sind Falsch-positive und falsch-negative Ergebnisse, Sie haben verloren.“ Der Kürze halber habe ich viele der realen Bedenken hinsichtlich der Modellbereitstellung und -wartung übersprungen. Das aufstrebende Teilgebiet von MLOps befasst sich mit vielen dieser Probleme, und ich habe vor, die praktische Anwendbarkeit der Implementierung der Modelle, die wir in dieser Serie besprochen haben, noch einmal zu prüfen, wenn ich mehr über diese aufstrebende Disziplin lerne.

Aber was ist mit der Verteidigung??!!?

Ja, ich weiß, ich weiß, bitte sagen Sie mir nicht, dass ich ein verantwortungsloser roter Teamer bin. Ich werde einen Folgebeitrag verfassen, der einige der Abwehrmaßnahmen rund um diesen Problembereich beleuchtet, ich versuche jedoch immer noch, mich auf Dinge wie Destillation und gegnerisches Training einzulassen. Aber ich möchte Sie mit einer Einsicht verlassen, die der kontroverse ML-Pate Ian Goodfellow vor etwa vier Jahren sagte:

Es ist auch wichtig zu betonen, dass alle bisherigen Abwehrmaßnahmen auf unrealistisch einfachen Bedrohungsmodellen basieren, bei denen der Angreifer sehr begrenzt ist. Als Forschungsproblem war es wirklich schwierig, selbst die eingeschränkte Version zu lösen, und dies ist nach wie vor ein sehr aktives Forschungsgebiet mit einem viele wichtige Herausforderungen zu lösen.

Für die zukünftige Arbeit in diesem speziellen Bereich sind hier einige allgemeine Ziele aufgeführt, die ich verfolgen möchte:

Da wir nun am Ende dieser Informationsflut in drei Beiträgen angelangt sind, hoffe ich, dass Ihnen die Lektüre dieses Materials genauso viel Spaß gemacht hat wie mir die Recherche und das Schreiben. Das war eine lange, aber lohnende Reise für mich, und wenn dies Ihr Interesse an diesem Bereich geweckt hat, sage ich: Steigen Sie ein! Sie können uns im DEF CON AI Village Discord, dem #DeepThought-Kanal auf dem BloodHound Slack, beitreten oder mir jederzeit eine E-Mail an [at] harmj0y.net senden.

„Learning Machine Learning Teil 3: Angriff auf Black-Box-Modelle“ wurde ursprünglich in „Beiträge von SpecterOps-Teammitgliedern“ auf Medium veröffentlicht, wo die Leute die Konversation fortsetzen, indem sie diese Geschichte hervorheben und darauf antworten.

*** Dies ist ein syndizierter Blog des Security Bloggers Network aus Beiträgen von SpecterOps-Teammitgliedern – Medium, verfasst von Will Schroeder. Lesen Sie den Originalbeitrag unter: https://posts.specterops.io/learning-machine-learning-part-3-attacking-black-box-models-3efffc256909?source=rss----f05f8696e3cc---4

White-Box-Black-Box Ein White-Box-Angriff Black-Box-Angriff Modellextraktionsangriff Übertragbarkeit Nebenbemerkung: Eingaben und Modellarchitekturen Konfrontative Beispiele, die ein Modell betreffen, wirken sich häufig auf ein anderes Modell aus, selbst wenn die beiden Modelle unterschiedliche Architekturen haben oder auf unterschiedlichen Trainingssätzen trainiert wurden da beide Modelle darauf trainiert wurden, die gleiche Aufgabe auszuführen. Übertragbarkeit der Modellextraktion BlackBox.ipynb Das ist alles wirklich nur ein Optimierungsproblem! Bei der objektiven Funktionsstudie müssen wir Optuna nicht nur für die Optimierung von Hyperparametern verwenden! Unser übergeordnetes Ziel: Modellextraktion aus dem Zielmodell – das ist alles nur ein Optimierungsproblem! Ich hoffe, dass die akademische Gemeinschaft des maschinellen Lernens kontrovers ist
AKTIE