-
GEBIET DER TECHNIK
-
Die vorliegende Offenbarung betrifft das maschinelle Lernen und insbesondere das maschinelle Lernen in gegnerischen Umgebungen.
-
ALLGEMEINER STAND DER TECHNIK
-
Cyberangriffe stellen für die meisten Computersysteme eine zunehmende Bedrohung dar. Systeme für maschinelles Lernen stellen relativ ausgefeilte und leistungsfähige Werkzeuge zum Schutz vor solchen Cyberangriffen bereit. Universelle Werkzeuge für maschinelles Lernen sind bei der automatischen Malware-Analyse erfolgreich. Derartige Werkzeuge für maschinelles Lernen können jedoch für Angriffe anfällig sein, die gegen den Lernprozess, der dazu eingesetzt wird, die Maschinen für das Erkennen von Schadsoftware zu trainieren, gerichtet sind. Ein Gegner kann beispielsweise den Trainingsdatensatz mit Trainingsbeispielen, die Bits von Malware enthalten, „salten“ oder anderweitig verfälschen, sodass das trainierte Online-System auf der Grundlage des „gesalteten“ oder verfälschten Trainingsdatensatzes zukünftige Malware-Angriffe fälschlicherweise als legitime Aktivität identifiziert. Die Fähigkeit des Angreifers, spezifische Schwachstellen von Lernalgorithmen auszunutzen und den Trainingsdatensatz sorgfältig zu manipulieren, kompromittiert das gesamte System für maschinelles Lernen. Die Verwendung von „gesalteten“ oder verfälschten Trainingsdaten kann zu Unterschieden zwischen den Trainingsdatensätzen und nachfolgenden Testdatensätzen führen.
-
Figurenliste
-
Merkmale und Vorteile verschiedener Ausführungsformen des beanspruchten Gegenstandes ergeben sich aus der nachfolgenden ausführlichen Beschreibung und unter Bezugnahme auf die Zeichnungen, in denen gleiche Bezugszeichen gleiche Elemente bezeichnen. Es zeigen:
- die 1 ein beispielhaftes System für maschinelles Lernen, dass eine Merkmal-Hash-Schaltung, eine Probenzuordnungsschaltung und eine Schaltung für maschinelles Lernen gemäß wenigstens einer Ausführungsform der vorliegenden Offenbarung umfasst;
- die 2 ein Blockdiagramm eines beispielhaften Systems gemäß wenigstens einer Ausführungsform der vorliegenden Offenbarung, in dem die Schaltung für maschinelles Lernen und der gegen gegnerische Verfälschung resistente Klassifikator implementiert werden können; und
- die 3 ein High-Level-Logik-Ablaufdiagramm eines beispielhaften Verfahrens zum Trainieren eines Klassifikators in einer gegnerischen Umgebung unter Verwendung von maschinellem Lernen in einer potentiell gegnerischen Umgebung gemäß wenigstens einer Ausführungsform der vorliegenden Offenbarung.
-
Obwohl die nachfolgende ausführliche Beschreibung mit Bezug auf beispielhafte Ausführungsformen fortgesetzt wird, werden für Fachleute auf dem Gebiet viele Alternativen, Abwandlungen und Varianten derselben offensichtlich sein.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die hierin beschriebenen Systeme und Verfahren bieten eine verbesserte Systemsicherheit und -leistung, indem sie die Auswirkungen von „gesalteten“ oder verfälschten Trainingsdaten, die dazu verwendet werden, ein System mit einem Klassifikator für eine gegnerische Umgebung durch maschinelles Lernen zu trainieren, minimieren. Aus spieltheoretischer Sicht sollte ein System mit einem Klassifikator für eine gegnerische Umgebung die Bemühungen der Malware-Generatoren, bösartigen Code in das System einzufügen, erfolgreich antizipieren. Solche Systeme mit einem Klassifikator für eine gegnerische Umgebung können auf einer Minimax-Formulierung aufbauend konzipiert werden. Das Minimaxtheorem ist eine in der Entscheidungstheorie und Spieltheorie verwendete Entscheidungsregel zur Minimierung des möglichen Verlustes für ein Worst-Case-Szenario. In der Spieltheorie ist der Minimax-Wert der kleinste Wert, zu dessen Erhalt ein Spieler von anderen Spielern gezwungen werden kann, ohne dass diese die Handlungen des Spielers kennen. Äquivalent dazu ist er der größte Wert, den ein Spieler sicher erhalten kann, wenn er die Handlungen der anderen Spieler kennt.
-
Bei den hier offenbarten Systemen und Verfahren wird, wenn ein Merkmal durch einen Gegner kompromittiert wird, die Genauigkeit des Klassifikators kompromittiert. Mit anderen Worten, die Bereitstellung von veränderten, „gesalteten“ oder verfälschten Trainingsdaten an ein System für maschinelles Lernen mit einem Klassifikator für eine gegnerische Umgebung, kompromittiert die nachfolgende Genauigkeit des Klassifikators für eine gegnerische Umgebung. Die hierin beschriebenen Systeme und Verfahren minimieren den Worst-Case-Verlust über alle möglichen kompromittierten Merkmale hinweg. Derartige Systeme und Verfahren verbessern die Leistungsfähigkeit des Klassifikators für eine gegnerische Umgebung, indem eine reduzierte Gesamtfehlerrate und eine robustere Abwehr von Gegnern bereitgestellt werden.
-
Die hier beschriebenen Systeme und Verfahren berücksichtigen den Worst-Case-Verlust der Klassifizierungsgenauigkeit, wenn ein Satz von Merkmalen durch Gegner kompromittiert wird. Die hierin offenbarten Systeme und Verfahren minimieren die Auswirkungen gegnerischer Evasion, falls bekannte Lösungen versagen könnten. Die hierin beschriebenen Systeme und Verfahren führen zu einem Klassifikator, der das Worst-Case-Szenario in einer gegnerischen Umgebung optimiert, wenn ein Satz von Merkmalen durch Angreifer kompromittiert wird. Metadaten können dazu verwendet werden, eine maximale Anzahl von Merkmalen, die möglicherweise kompromittiert werden können, zu definieren. Ein einzelnes Bit kann dazu verwendet werden, es dem Systementwickler zu ermöglichen, den gegnerischen Modus EIN und AUS zu schalten. Wenn der gegen gegnerische Verfälschung resistente Modus auf EIN geschaltet ist, wird die Leistung des gegen gegnerische Verfälschung resistenten Klassifikators auf den Worst-Case-Genauigkeitsverlust optimiert. Wenn der gegen gegnerische Verfälschung resistente Modus auf AUS geschaltet ist, fungiert der gegen gegnerische Verfälschung resistente Klassifikator als herkömmlicher Klassifikator.
-
Es wird ein System zum Trainieren von Klassifikatoren für eine gegnerische Umgebung bereitgestellt. Das System zum Trainieren von Klassifikatoren für eine gegnerische Umgebung kann Folgendes umfassen: eine Merkmalsextraktionsschaltung, um eine Anzahl von Merkmalen zu identifizieren, die jeder Probe zugeordnet sind, die in einem Ausgangsdatensatz enthalten ist, der eine Vielzahl von Proben enthält; eine Probenzuordnungsschaltung, um wenigstens einen Teil der im Ausgangsdatensatz enthaltenen Proben wenigstens einem Trainingsdatensatz zuzuordnen; eine Schaltung für maschinelles Lernen, die kommunikationsfähig mit der Probenzuordnungsschaltung gekoppelt ist, wobei die Schaltung für maschinelles Lernen: wenigstens einen Satz von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Ausgangsdatensatz enthaltenen Proben identifiziert; eine Klassifikator-Verlustfunktion [l(xi, yi, w)] definiert, die Folgendes enthält: einen Merkmalsvektor (xi) für jede Probe, die in dem Ausgangsdatensatz enthalten ist; eine Markierung (yi) für jede in dem Ausgangsdatensatz enthaltene Probe; und einen dem Klassifikator zugeordneten Gewichtsvektor (w); und den Minimax der Klassifikator-Verlustfünktion (minwmaxi l(xi, yi, w)) bestimmt.
-
Es wird ein Trainingsverfahren für Klassifikatoren für eine gegnerische Umgebung bereitgestellt. Das Verfahren kann Folgendes umfassen: das Zuordnen wenigstens eines Teils der in einem Ausgangsdatensatz enthaltenen Vielzahl von Proben zu wenigstens einem Trainingsdatensatz; das Identifizieren einer Anzahl von Merkmalen, die jeder in einem Trainingsdatensatz enthaltenen Probe zugeordnet sind; das Identifizieren wenigstens eines Satzes von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben; das Definieren einer Klassifikator-Verlustfünktion [l(xi, yi w)], die Folgendes enthält: einen Merkmalsvektor (xi) für jedes in dem Trainingsdatensatz enthaltene Element; eine Markierung (yi) für jedes in dem Trainingsdatensatz enthaltene Element; und einen dem Klassifikator zugeordneten Gewichtsvektor (w); und das Bestimmen des Minimax der Klassifikator-Verlustfünktion (minwmaxi l(xi, yi, w)).
-
Eine Speichervorrichtung, die maschinenlesbare Anweisungen enthält, die bei Ausführung eine konfigurierbare Schaltung physisch in eine Schaltung zum Trainieren von Klassifikatoren für eine gegnerische Umgebung umwandeln, wobei die Schaltung zum Trainieren von Klassifikatoren für eine gegnerische Umgebung eine Anzahl von Merkmalen identifiziert, die jeder Probe zugeordnet sind, die in einem Ausgangsdatensatz enthalten ist, der eine Vielzahl von Proben enthält; wenigstens einen Teil der in dem Ausgangsdatensatz enthaltenen Proben wenigstens einem Trainingsdatensatz zuordnet; wenigstens einen Satz von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben identifiziert; eine Klassifikator-Verlustfunktion [l(xi, yi, w)] definiert, die Folgendes enthält: einen Merkmalsvektor (xi) für jede in dem Trainingsdatensatz enthaltene Probe; eine Markierung (yi) für jede in dem Trainingsdatensatz enthaltene Probe; und einen dem Klassifikator zugeordneten Gewichtsvektor (w); und den Minimax der Klassifikator-Verlustfunktion (minwmaxi l(xi, yi, w)) bestimmt.
-
Es wird ein System zum Trainieren von Klassifikatoren für eine gegnerische Umgebung bereitgestellt. Das System zum Trainieren von Klassifikatoren für eine gegnerische Umgebung kann Folgendes umfassen: Mittel zum Identifizieren einer Anzahl von Merkmalen, die jeder Probe zugeordnet sind, die in einem Ausgangsdatensatz enthalten ist, der eine Vielzahl von Proben enthält; ein Mittel zum Zuordnen wenigstens eines Teils der in dem Ausgangsdatensatz enthaltenen Proben zu wenigstens einem Trainingsdatensatz; ein Mittel zum Identifizieren wenigstens eines Satzes von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben; ein Mittel zum Definieren einer Klassifikator-Verlustfunktion [l(xi, yi, w)], die Folgendes enthält: einen Merkmalsvektor (xi) für jede in dem Trainingsdatensatz enthaltene Probe; eine Markierung (yi) für jede in dem Trainingsdatensatz enthaltene Probe; und einen dem Klassifikator zugeordneten Gewichtsvektor (w); und ein Mittel zum Bestimmen des Minimax der Klassifikator-Verlustfunktion (minwmaxi l(xi, yi, w)).
-
Wie sie hierin verwendet werden, sind die Begriffe „oben“, „unten“, „nach oben“, „nach unten“, „abwärts“ und „aufwärts“ und ähnliche Richtungsbegriffe in ihrer relativen und nicht in ihrer absoluten Bedeutung zu verstehen. So kann ein als „aufwärts versetzt“ beschriebenes Bauteil als „seitlich versetzt“ angesehen werden, wenn die Vorrichtung, welche die Komponente trägt, um 90 Grad gedreht wird, und als „abwärts versetzt“, wenn die Vorrichtung, welche die Komponente trägt, umgekehrt wird. Solche Implementierungen sollten als in den Umfang der vorliegenden Offenbarung einbezogen betrachtet werden.
-
Wie sie in dieser Beschreibung und den beigefügten Ansprüchen verwendet werden, schließen die Singularformen „ein“ bzw. „eine“ sowie „der, die, das“, Pluralbezugnahmen ein, sofern der Inhalt nicht eindeutig etwas anderes vorgibt. Außerdem ist zu beachten, dass der Begriff „oder“ grundsätzlich in seiner „und/oder“ einschließenden Bedeutung verwendet wird, es sei denn, der Inhalt gibt eindeutig etwas anderes vor.
-
Die 1 zeigt ein beispielhaftes System für maschinelles Lernen 100 für Klassifikatoren für eine gegnerische Umgebung, dass die Merkmal-Hash-Schaltung 110, die Probenzuordnungsschaltung 120, und die Schaltung für maschinelles Lernen 130 gemäß zumindest einer Ausführungsform der vorliegenden Offenbarung umfasst. Die Merkmalsextraktionsschaltung 112 kann einen Teil der Merkmals-Hash-Schaltung 110 bilden oder einen Teil derselben enthalten. Die Merkmals-Hash-Schaltung 110 empfängt einen Ausgangsdatensatz 102, der eine Vielzahl von Proben 104A-104n (zusammenfassend „Proben 104“) umfasst. Die Merkmals-Hash-Schaltung 110 kann die Merkmalsextraktionsschaltung 112 umfassen. Die Probenzuordnungsschaltung 120 kann den von der Merkmalsextraktionsschaltung 112 empfangenen Datensatz in einen oder mehrere Trainingsdatensätze 122, einen oder mehrere Testdatensätze 124 und einen oder mehrere Kreuzvalidierungsdatensätze 126 einteilen. Die Schaltung für maschinelles Lernen 130 umfasst die Minimax-Lösungsschaltung 136 und die gegen gegnerische Verfälschung resistente Klassifikatorschaltung 138. Die Schaltung für maschinelles Lernen liefert als Ausgabe wenigstens die Ergebnisse des maschinellen Lernens 150. In Ausführungsformen kann der Ausgangsdatensatz 102 von beliebig vielen Stellen bezogen werden. Die Trainingsdaten können beispielsweise in Form von API-Protokolldateien aus einer McAfee Advance Threat Detect (ATD)-Box oder eines CF-Protokolls von McAfee Chimera (Intel Corp., Santa Clara, CA) bereitgestellt werden.
-
Jede der in dem Ausgangsdatensatz 102 enthaltenen Proben 104 kann eine jeweilige Anzahl von Merkmalen 106A-106n (zusammenfassend „Merkmale 106“) aufweisen, die logisch mit ihnen verknüpft sind. eine Anzahl dieser Merkmale 106 kann manuell oder autonom als potentiell kompromittierbare Merkmale 108A-108n (zusammenfassend „kompromittierbare Merkmale 108“) identifiziert werden. Solche kompromittierbaren Merkmale 108 stellen diejenigen Merkmale dar, die das Potenzial haben, von einem gegnerischen Agenten kompromittiert zu werden. Die Variable „K“ kann dazu verwendet werden, die maximale Anzahl solcher kompromittierbaren Merkmale 108, die in dem Ausgangsdatensatz 102 vorhanden sind, zu repräsentieren.
-
Die Merkmalsextraktionsschaltung 112 erzeugt einen Datensatz, der einen jeweiligen Merkmalsvektor (xi für die Proben i = 1...n, wobei xi ∈ Rd,i = 1,2, ...n und eine Markierung (yi für die Proben i = 1...n) umfasst, die jeder in dem Ausgangsdatensatz 102 enthaltenen Probe logisch zugeordnet sind. Die Merkmalsextraktionsschaltung 112 kann eine beliebige Anzahl und/oder Kombination von elektrischen Komponenten und/oder Halbleitervorrichtungen umfassen, die in der Lage sind, eine oder mehrere Logikvorrichtungen, Zustandsmaschinen, Prozessoren und/oder Steuerungen zu bilden oder anderweitig bereitzustellen, welche in der Lage sind, ein oder mehrere Merkmale 106A-106n, die jeder der Proben 104 logisch zugeordnet sind, zu identifizieren und/oder zu extrahieren. In der Merkmalsextraktionsschaltung können beliebige aktuelle oder zukünftig entwickelte Merkmalsextraktionstechniken implementiert sein.
-
In einigen Umsetzungen können ein oder mehrere Auswahlverfahren für Filtermerkmale, wie z.B. der Chi-Quadrat-Test, der Informationsgewinn und die Korrelationsergebnisse, von der Merkmalsextraktionsschaltung 112 verwendet werden, um wenigstens einige der in dem Ausgangsdatensatz 102 vorhandenen Merkmale 106 zu identifizieren. Solche Auswahlverfahren für Filtermerkmale können ein oder mehrere statistische Maße verwenden, um eine Bewertung auf jedes Merkmal anzuwenden oder diesem anderweitig zuzuweisen. Merkmale können dann nach Score eingestuft werden und wenigstens teilweise auf dem Score basierend zur Einbeziehung in den Datensatz ausgewählt oder von der Einbeziehung in den Datensatz zurückgewiesen werden.
-
In einigen Umsetzungen können ein oder mehrere Wrapper-Verfahren, wie z.B. das Auswahlverfahren der rekursiven Merkmalseliminierung von der Merkmalsextraktionsschaltung 112 verwendet werden, um wenigstens einige der in dem Ausgangsdatensatz 102 vorhandenen Merkmale 106 zu identifizieren. Solche Auswahlverfahren für Wrappermerkmale betrachten die Auswahl eines Merkmalssatzes als Suchproblem, bei dem unterschiedliche Merkmalskombinationen vorbereitet, ausgewertet und mit anderen Kombinationen verglichen werden.
-
In einigen Umsetzungen können ein oder mehrere Auswahlverfahren für eingebettete Merkmale, wie z.B. das LASSO-Verfahren, das Verfahren des elastischen Netzes, oder das Ridge-Regressionsverfahren von der Merkmalsextraktionsschaltung 112 verwendet werden, um wenigstens einige der in dem Ausgangsdatensatz 102 vorhandenen Merkmale 106 zu identifizieren. Solche Auswahlverfahren für eingebettete Merkmale können lernen, welche Merkmale 106 am besten zur Genauigkeit des Klassifikators beitragen, während der Klassifikator erstellt wird.
-
Die Probenzuordnungsschaltung 120 empfängt den Datensatz von der Merkmalsextraktionsschaltung 112 und teilt den Inhalt des empfangenen Datensatzes in einen oder mehrere von: einem Trainingsdatensatz 122, einem Testdatensatz 124 und einem Kreuzvalidierungsdatensatz 126 ein. Die Merkmalsextraktionsschaltung 120 kann eine beliebige Anzahl und/oder Kombination von elektrischen Komponenten und/oder Halbleitervorrichtungen umfassen, die in der Lage sind, eine oder mehrere Logikvorrichtungen, Zustandsmaschinen, Prozessoren und/oder Steuerungen zu bilden oder anderweitig bereitzustellen, die in der Lage sind, die in dem Ausgangsdatensatz 102 enthaltenen Proben 104 einer Anzahl von Teilmengen zuzuteilen. Wie beispielsweise in der 1 dargestellt, können die Proben 104 einer oder mehreren Trainingsdaten-Teilmengen 122, einer oder mehreren Testdaten-Teilmengen 124 und/oder einer oder mehreren Kreuzvalidierungs-Teilmengen 126 zugeteilt werden. In einigen Umsetzungen, kann die Probenzuordnungsschaltung 120 die Proben zufallsgesteuert einigen oder allen der einen oder mehreren Trainingsdaten-Teilmengen 122, der einen oder mehreren Testdaten-Teilmengen 124 und/oder der einen oder mehreren Kreuzvalidierungs-Teilmengen 126 zuteilen. In einigen Umsetzungen, kann die Probenzuordnungsschaltung 120 die Proben gleichmäßig oder ungleichmäßig einigen oder allen der einen oder mehreren Trainingsdaten-Teilmengen 122, der einen oder mehreren Testdaten-Teilmengen 124 und/oder der einen oder mehreren Kreuzvalidierungs-Teilmengen 126 zuteilen.
-
Der Trainingsdatensatz
122 kann der Minimax-Lösungsschaltung
136 zugeführt werden, welche die gesamte oder einen Teil der Schaltung für maschinelles Lernen
130 bildet. Die Minimax-Lösungsschaltung
136 kann eine beliebige Anzahl und/oder Kombination von elektrischen Komponenten und/oder Halbleitervorrichtungen umfassen, die eine oder mehrere Logikvorrichtungen, Zustandsmaschinen, Prozessoren und/oder Steuerungen bilden oder anderweitig bereitstellen können, welche in der Lage sind, ein Minimax-Problem zu lösen. Ein Minimax-Problem kann ein beliebiges Problem umfassen, bei dem ein Teil des Problems (z.B. das Risiko eines Verlusts, der auf die Akzeptanz von bösartigem Code, wie Malware, zurückzuführen ist), über eine gesamte Probenpopulation minimiert wird. Das Worst-Case-Szenario liegt vor, wenn die maximale Anzahl von Merkmalen „gesaltet“, verfälscht, oder auf andere Weise beschädigt worden ist (d.h. wenn „K“ maximiert ist). Wie in der
1 dargestellt, kann die Minimax-Lösungsschaltung
136 beispielsweise eine Lösung für das folgende Minimax-Problem bereitstellen:
wobei w = Gewichtsvektor des Klassifikators, w ∈ R
d, und l(x
j, y
j, w) = die durch den Klassifikator definierte Verlustfunktion ist. In einer solchen Umsetzung wird die Verlustfunktion l(x
i, y
i, w) minimiert, um die gegen gegnerische Verfälschung resistente Klassifikator-Schaltung
138 herzustellen, zu erzeugen oder anderweitig bereitzustellen, wenn das Bit
134 („M“) des gegen gegnerische Verfälschung resistenten Klassifikators auf einen definierten binären logischen Zustand gesetzt wird. Wenn das Klassifikator-Bit
134 beispielsweise in einem logischen AUSZustand ist, funktioniert die Klassifikatorschaltung
138 in einem konventionellen, nichtgegnerischen Modus. Wenn das Klassifikator-Bit
134 in einem logischen EIN-Zustand ist, funktioniert die Klassifikatorschaltung
138 in einem gegen gegnerische Verfälschung resistenten Modus.
-
Eine Support-Vektor-Maschine (SVM) kann dazu dienen, ein anschauliches Beispiel für die Umsetzung der hier beschriebenen gegen gegnerische Verfälschung resistenten maschinellen Systeme und Verfahren bereitzustellen. Support-Vektor-Maschinen sind überwachte Lernmodelle mit zugehörigen Lernalgorithmen, die zur Klassifikation und Regressionsanalyse verwendete Daten analysieren. Ausgehend von einem Trainingsdatensatz
122, der eine Anzahl von Proben
104 enthält, wobei jede Probe als Element einer gültigen Probenuntermenge oder einer Malware-Probenuntermenge markiert ist, setzt der SVM-Trainingsalgorithmus ein Modell zusammen oder konstruiert auf andere Weise ein Modell, das bestimmt, ob nachfolgende Proben
104 gültig oder Malware sind. Eine solche SVM kann als nicht-probabilistischer binärer linearer Klassifikator betrachtet werden. Ein SVM-Modell ist eine Darstellung der Proben
104 als Punkte im Raum, die so dargestellt sind, dass die Beispiele der einzelnen Kategorien durch eine möglichst große Lücke voneinander getrennt sind. Neue Proben
104 werden dann in demselben Raum eingetragen und in Abhängigkeit von der Seite der Lücke, auf welche die Probe fällt, als gültig oder Malware vorhergesagt. Ziel der SVM ist es, den durch die folgende Gleichung gegebenen Hinge Loss zu minimieren:
-
Wenn K Merkmale kompromittiert sind (d.h. das „Worst-Case“-Szenario), wird der Hinge Loss für die Probe „i“ durch die folgende Gleichung angegeben:
wobei:
-
Das Maximierungsproblem in Gleichung (3) zeigt den Worst-Case-Verlust für die Probe i. Um einen robusten Klassifikator zu erhalten, sollte der Worst-Case-Verlust über alle Proben minimiert werden, wodurch ein Minimax-Problem entsteht. Somit kann ein gegen gegnerische Verfälschung resistenter Klassifikator durch die Lösung des folgenden Problems erhalten werden:
-
Das in der Gleichung (4) vorgestellte Minimax-Problem kann direkt durch Variation aller möglichen Szenarien gelöst werden. Ein alternatives, effizienteres Lösungsverfahren, besteht darin, das Minimax-Problem in ein quadratisches Programm mit konvexen Dualitäts-Transformationen umzuwandeln, sodass ein oder mehrere schnelle Algorithmen angewendet werden können. In einigen Umsetzungen kann der Wert von „K“ vorgegeben sein, und die Lösung des Minimax-Problems für einen festen „K“-Wert erzeugt ein Klassifikationsmodell, das eine höhere Resilienz gegenüber bösartigen Daten aufweist als ein herkömmlicher Klassifikator. In einer weiteren Ausführungsform kann der Wert von „K“ für wenigstens einige Szenarien variiert und das Minimax-Problem für jedes Szenario gelöst werden, um einen optimalen „K“-Wert zu bestimmen.
-
Vorteilhafterweise verbessert die Lösung des Minimax-Problems die Arbeitsweise und die Performance des Hostsystems, insbesondere wenn Trainingsdaten „gesalteten“, verfälschten, oder anderweitig missbräuchlich geänderten Code enthalten können, indem sie die Erkennung von bösartigem Code rationalisiert und verbessert. Durch Rationalisierung und Verbesserung der Detektionsgenauigkeit von bösartigem Code ist es möglich, die der Systemsicherheit zugeordneten Rechenressourcen zu reduzieren und die Ressourcen für wertschöpfende Verarbeitungskapazitäten freizugeben. In Ausführungsformen können der eine oder die mehreren Testdatensätze 124 und/oder der eine oder die mehreren Kreuzvalidierungsdatensätze 126 dem gegen gegnerische Verfälschung resistenten Klassifikator 138 zum Testen und/oder Validieren der Systemleistung bereitgestellt werden.
-
Die 2 zeigt ein Blockdiagramm eines beispielhaften Systems 200 mit einem Klassifikator für eine gegnerische Umgebung, in dem die Schaltung für maschinelles Lernen 130 und der gegen gegnerische Verfälschung resistente Klassifikator 138 gemäß zumindest einer Ausführungsform der vorliegenden Offenbarung implementiert sein können. Obwohl im Kontext eines Personalcomputers 202 beschrieben, können die verschiedenen in der 2 dargestellten Komponenten und Funktionsblöcke ganz oder teilweise auf unterschiedlichsten Plattformen und unter Verwendung von Komponenten wie sie in Servern, Workstations, Laptop-Computervorrichtungen, tragbaren Computervorrichtungen, Wearable-Computervorrichtungen, tragbaren Computervorrichtungen, Tablet-Computervorrichtungen, Handheld-Computervorrichtungen und ähnlichen Vorrichtungen die Ein- oder Mehrkernprozessoren aufweisen oder mikroprozessorgestützt sind, implementiert werden.
-
Die konfigurierbare Schaltung 204 kann eine beliebige Anzahl und/oder Kombination von elektronischen Bauelementen und/oder Halbleitervorrichtungen umfassen. Die konfigurierbare Schaltung 204 kann teilweise oder vollständig festverdrahtet sein. Die konfigurierbare Schaltung 204 kann eine beliebige Anzahl und/oder Kombination von Logikverarbeitungseinheiten umfassen, die in der Lage sind, maschinenlesbare Befehlssätze zu lesen und/oder auszuführen, wie beispielsweise eine oder mehrere Zentraleinheiten (CPUs), Mikroprozessoren, digitale Signalprozessoren (DSPs), Grafikprozessoren bzw. Grafikprozessoreinheiten (GPUs), anwendungsspezifische integrierte Schaltungen (ASICs), feldprogrammierbare Gate-Arrays (FPGAs), etc. Sofern nicht anders beschrieben, sind die verschiedenen in der 2 dargestellten Blöcke hinsichtlich Aufbau und Funktion herkömmlicher Art. Folglich müssen derartige Blöcke hierin nicht näher beschrieben werden, da sie für den Fachmann auf dem Gebiet ohne Weiteres verständlich sind.
-
Die allgemeine Architektur des in 2 dargestellten veranschaulichenden Systems umfasst eine Northbridge 210, die kommunikationsfähig mit einer Southbridge 220 gekoppelt ist. Die Northbridge 210 kann kommunikationsfähig mit der konfigurierbaren Schaltung, einem oder mehreren nichtflüchtigen Speichern und einer oder mehreren Videoausgabevorrichtungen, Verarbeitungseinheiten und/oder Steuerungen gekoppelt sein. Die Southbridge 220 kann kommunikationsfähig mit nichtflüchtigem Speicher, einer oder mehreren seriellen und/oder parallelen Eingabe- bzw. Ausgabebusstrukturen und einer beliebigen Anzahl von Eingabe- bzw. Ausgabevorrichtungen gekoppelt sein.
-
Die eine oder die mehreren konfigurierbaren Schaltungen 204 können eine beliebige Anzahl und/oder Kombination von Systemen und/oder Vorrichtungen umfassen, die in der Lage sind, eine Schaltung oder mehrere Schaltungen zu bilden, die einen oder mehrere maschinenlesbare Befehlssätze ausführen können. In Ausführungsformen können die eine oder die mehreren konfigurierbaren Schaltungen 204 eine oder mehrere der folgenden Elemente umfassen, ohne allerdings darauf beschränkt zu sein: festverdrahtete elektrische Bauelemente und/oder Halbleiterbauelemente; programmierbare Gate-Arrays (PGA); Reduced Instruction Set Computer (RISC); digitale Signalprozessoren; Ein- oder Mehrkernprozessoren; Ein- oder Mehrkern-Mikroprozessoren; anwendungsspezifische integrierte Schaltungen (ASIC); Systems-on-a-Chip (SoC); digitale Signalprozessoren (DSP); Grafikverarbeitungseinheiten (GPU); oder jede beliebige Kombination aus diesen. Die eine oder die mehreren konfigurierbaren Schaltungen 204 können Prozessoren oder Mikroprozessoren umfassen, die multithread-fähig sind.
-
In einigen Umsetzungen können die eine oder die mehreren konfigurierbaren Schaltungen 204 einen oder mehrere maschinenlesbare Befehlssätze ausführen, die bewirken, dass alle oder ein Teil der einen oder mehreren konfigurierbaren Schaltungen 204 die Merkmalsextraktionsschaltung 110, die Probenzuordnungsschaltung 120 und die Schaltung für maschinelles Lernen 130 bereitstellen. Die eine oder die mehreren konfigurierbaren Schaltungen 204 können über einen oder mehrere Busse mit der Northbridge (und mit anderen Systemkomponenten) kommunizieren.
-
Der Systemspeicher kann kommunikationsfähig mit der Northbridge 210 gekoppelt sein. Ein solcher Systemspeicher kann eine beliebige Anzahl und/oder Kombination von beliebigen aktuellen und/oder zukünftig entwickelten Arbeitsspeicher- und/oder Speichereinrichtungen umfassen. Der gesamte Systemspeicher oder ein Teil desselben kann in Form von Wechselspeichern oder von Speichervorrichtungen bereitgestellt sein, die von dem System 200 getrennt oder anderweitig entkoppelt sein können. In einigen Umsetzungen kann der Systemspeicher einen Direktzugriffsspeicher (RAM) 230 umfassen. Der RAM 230 kann elektrostatische, elektromagnetische, optische, molekulare und/oder Quantenspeicher in beliebiger Anzahl und/oder Kombination umfassen. Im Betrieb des Systems 200 können Informationen in dem RAM 230 gespeichert oder anderweitig zurückbehalten werden. Solche Informationen können eine oder mehrere Anwendungen 232, ein Betriebssystem 234 und/oder Programmdaten 236 umfassen, sind jedoch nicht darauf beschränkt. Der Systemspeicher kann über die Northbridge 210 Informationen und/oder Daten mit der konfigurierbaren Schaltung 204 austauschen.
-
In einigen Umsetzungen kann bzw. können die eine bzw. die mehreren Anwendungen 232 eine oder mehrere Merkmalsextraktionsanwendungen umfassen, die zum Identifizieren und/oder Extrahieren eines oder mehrerer Merkmale 106 aus jeder der im Ausgangsdatensatz 102 enthaltenen Proben 104 geeignet sind. Die eine oder die mehreren Merkmalsextraktionsanwendungen können von der konfigurierbaren Schaltung 204 und/oder der Merkmalsextraktionsschaltung 112 ausgeführt werden. In einigen Umsetzungen kann bzw. können die eine oder die mehreren Anwendungen 232 eine oder mehrere Probenzuordnungsanwendungen umfassen, die für das Einteilen der in dem Ausgangsdatensatz 102 enthaltenen Proben 102 in den einen oder die mehreren Trainingsdatensätzen 122, den einen oder die mehreren Testdatensätzen 124 und/oder den einem oder die mehreren Kreuzvalidierungsdatensätzen 126 geeignet sind. Die eine oder die mehrere Probenzuordnungsanwendungen können von der konfigurierbaren Schaltung 204 und/oder der Probenzuordnungsschaltung 120 ausgeführt werden. In einigen Umsetzungen können die eine oder die mehreren Anwendungen 232 eine oder mehrere Minimax-Problemlösungs-Anwendungen umfassen. Die eine oder die mehreren Minimax-Problemlösungs-Anwendungen können von der konfigurierbaren Schaltung 204, der Schaltung für maschinelles Lernen 130 und/oder der Minimax-Lösungsschaltung 136 ausgeführt werden.
-
Das Betriebssystem 234 kann jedes aktuelle oder zukünftig entwickelte Betriebssystem umfassen. Beispiele für solche Betriebssysteme 234 können Windows® (Microsoft Corp., Redmond, WA); OSx (Apple Inc., Cupertino, CA); iOS (Apple Inc., Cupertino, CA); Android® (Google, Inc., Mountain View, CA) und ähnliche umfassen, ohne allerdings auf diese beschränkt zu sein. Das Betriebssystem 234 kann ein oder mehrere Open-Source-Betriebssysteme umfassen, einschließlich, aber nicht beschränkt auf Linux, GNU und ähnliche.
-
Die Daten 236 können beliebige Informationen und/oder Daten umfassen, die von der Merkmal-Hash-Schaltung 110, der Probenzuordnungsschaltung 120 und/oder der Schaltung für maschinelles Lernen 130 verwendet, erzeugt oder anderweitig verbraucht werden. Die Daten 236 können den Ausgangsdatensatz 102, den einen oder die mehreren Trainingsdatensätze 122, den einen oder die mehreren Testdatensätze 124 und/oder den einen oder die mehreren Kreuzvalidierungsdatensätze 126 umfassen.
-
Ein oder mehrere Videosteuerschaltungen 240 können über ein oder mehrere leitende Elemente, wie beispielsweise einen oder mehrere Busse 215, kommunikationsfähig mit der Northbridge 210 gekoppelt sein. In einigen Umsetzungen können die eine oder die mehreren Videosteuerschaltungen 240 kommunikationsfähig mit einem Steckplatz (z.B. einem AGP-Steckplatz oder dergleichen) gekoppelt sein, der wiederum über den einen oder die mehreren Busse 215 mit der Northbridge kommunikationsfähig gekoppelt ist. Die eine oder die mehreren Videosteuerschaltungen 240 können eine oder mehrere eigenständige Vorrichtungen umfassen, beispielsweise eine oder mehrere Grafikverarbeitungseinheiten (GPU). Die eine oder die mehreren Videosteuerschaltungen 240 können eine oder mehrere eingebettete Vorrichtungen umfassen, wie beispielsweise eine oder mehrere auf einem System-on-Chip (SOC) angeordnete Grafikverarbeitungsschaltungen. Die eine oder die mehreren Videosteuerschaltungen 240 können über die Northbridge 210 Daten von der konfigurierbaren Schaltung 204 empfangen.
-
Eine oder mehrere Videoausgabevorrichtungen 242 können mit der einen oder den mehreren Videosteuerschaltungen kommunikationsfähig gekoppelt sein. Solche Videoausgabevorrichtungen 242 können mit der einen oder den mehreren Videosteuerschaltungen 240 drahtlos kommunikationsfähig gekoppelt sein oder an die eine oder die mehreren Videosteuerschaltungen 242 angebunden (d.h. verdrahtet) sein. Die eine oder die mehreren Videoausgabevorrichtungen 242 können, ohne darauf beschränkt zu sein, Folgendes umfassen: eine oder mehrere Flüssigkristallanzeigen (LCD); eine oder mehrere Leuchtdiodenanzeigen (LED), eine oder mehrere Polymer-Leuchtdiodenanzeigen (PLED); eine oder mehrere organische Leuchtdiodenanzeigen (OLED); eine oder mehrere Kathodenstrahlröhrenanzeigen (CRT); oder jede beliebige Kombination aus diesen.
-
Die Northbridge 210 und die Southbridge 220 können über ein oder mehrere leitende Elemente, wie beispielsweise einen oder mehrere Busse 212 (z.B. ein Verbindungskanal oder eine ähnliche Struktur), miteinander verbunden sein.
-
Ein oder mehrere Read-Only Memories können über ein oder mehrere leitende Elemente, wie beispielsweise einen oder mehrere Busse 222, mit der Southbridge 220 kommunikationsfähig gekoppelt sein. In einigen Umsetzungen kann ein Basic Input/Output System (BIOS) 252 vollständig oder teilweise in dem ROM 250 gespeichert sein. Das BIOS 252 kann dem System 200 grundlegende Funktionen bereitstellen und beim Hochfahren des Systems 200 ausgeführt werden.
-
Ein Universal-Serial-Bus-(USB-)Controller 260 kann über ein oder mehrere leitende Elemente, wie beispielsweise einen oder mehrere Busse 224, mit der Southbridge kommunikationsfähig gekoppelt sein. Der USB-Controller 260 bietet ein Gateway für den Anschluss einer Vielzahl von USB-kompatiblen E/A-Vorrichtungen 262. Beispiele für Eingabegeräte können Tastaturen, Mäuse, Trackbälle, Touchpads, Touchscreens und ähnliches sein, ohne jedoch auf diese beschränkt zu sein. Ausgabevorrichtungen können beispielsweise Drucker, Lautsprecher, dreidimensionale Drucker, Audioausgabevorrichtungen, Videoausgabevorrichtungen, haptische Ausgabevorrichtungen oder Kombinationen aus diesen sein.
-
Eine Anzahl von Kommunikationsschnittstellen kann über ein oder mehrere leitende Elemente, wie beispielsweise einen oder mehrere Busse 226, mit der Southbridge 220 kommunikationsfähig gekoppelt sein. Die Kommunikations- und/oder Peripherieschnittstellen können unter anderem eine oder mehrere PCI-Schnittstellen (Peripheral Component Interconnect) 270; eine oder mehrere PCI-Express-Schnittstellen 272; eine oder mehrere IEEE 1384 (Firewire)-Schnittstellen 274; eine oder mehrere THUNDERBOLT®-Schnittstellen 276; eine oder mehrere SCSI-Schnittstellen (Small Computer System Interface) 278 oder Kombinationen derselben umfassen, sind jedoch nicht auf diese beschränkt.
-
Eine Anzahl von Eingabe-/Ausgabe(E/A)-Vorrichtungen 280 kann über ein oder mehrere leitende Elemente, wie beispielsweise einen oder mehrere Busse 223, mit der Southbridge 220 kommunikationsfähig gekoppelt sein. Die E/A-Vorrichtungen können eine beliebige Anzahl und/oder Kombination von manuellen oder autonomen E/A-Vorrichtungen umfassen. So kann beispielsweise wenigstens eine der E/A-Vorrichtungen mit einer oder mehreren externen Vorrichtungen, die den Ausgangsdatensatz 102 vollständig oder teilweise bereitstellen, kommunikationsfähig gekoppelt sein. Solche externen Vorrichtungen können beispielsweise einen Server oder ein anderes kommunikativ gekoppeltes System umfassen, das Proben 104 sammelt, zurückbehält oder anderweitig speichert.
-
Die E/A-Vorrichtungen 280 können eine oder mehrere Texteingabe- oder Texteintrags-Vorrichtungen 282 (z.B. Tastatur); eine oder mehrere Zeigevorrichtungen 284 (z.B. Maus, Trackball); eine oder mehrere Audioeingabe- und/oder AudioausgabeVorrichtungen 286 (z.B. Mikrofon und/oder Lautsprecher); eine oder mehrere taktile Ausgabevorrichtungen 288; eine oder mehrere Touchscreen-Vorrichtungen 290; eine oder mehrere Netzwerkschnittstellen 292; oder Kombinationen derselben umfassen. Die eine oder die mehreren Netzwerkschnittstellen 292 können eine oder mehrere drahtlose Netzwerkschnittstellen (z.B. IEEE 802.11, NFC, BLUETOOTH®, Zigbee), eine oder mehrere drahtgebundene Schnittstellen (z.B. IEEE 802.3, Ethernet) oder Kombinationen derselben umfassen.
-
Eine Anzahl von Speichervorrichtungen 294 kann über ein oder mehrere leitende Elemente, wie beispielsweise einen oder mehrere Busse 225, mit der Southbridge 220 kommunikationsfähig gekoppelt sein. Die eine oder die mehreren Speichervorrichtungen 294 können über eine beliebige aktuelle oder zukünftig entwickelte Schnittstellentechnologie mit der Southbridge 220 kommunikationsfähig gekoppelt sein. So können die Speichervorrichtungen 294 beispielsweise über eine oder mehrere IDE-Schnittstellen (Integrated Drive Electronics) oder eine oder mehrere erweiterte IDE-Schnittstellen 296 kommunikationsfähig gekoppelt sein. In einigen Umsetzungen kann die Anzahl von Speichervorrichtungen ein Array von Speichervorrichtungen umfassen, ohne jedoch darauf beschränkt zu sein. Ein solches Beispiel für ein Speichervorrichtungs-Array umfasst - ist aber nicht beschränkt auf - ein Speichervorrichtungs-Array 298 aus einem redundanten Array kostengünstiger Festplatten („redundant array of inexpensive disks“ (RAID)).
-
Die 3 stellt ein High-Level-Logik-Ablaufdiagramm eines beispielhaften Verfahrens 300 zum Trainieren eines Klassifikators unter Verwendung von maschinellem Lernen in einer potentiell gegnerischen Umgebung gemäß wenigstens einer Ausführungsform der vorliegenden Offenbarung bereit. Wie oben erläutert, stellt das maschinelle Lernen einen wertvollen Mechanismus dar, um Systeme darauf zu trainieren, eingehenden Code bzw. eingehende Daten und/oder Informationen als SICHER oder BÖSARTIG zu identifizieren und zu klassifizieren. Systeme für maschinelles Lernen beruhen auf genauen und vertrauenswürdigen Trainingsdatensätzen, um eingehenden Code, Daten und/oder Informationen bestimmungsgemäß als SICHER zu identifizieren, und um außerdem eingehenden Code, Daten und/oder Informationen nicht als BÖSARTIG fehlzuidentifizieren. Es ist möglich, die zum Trainieren des Klassifikators verwendeten Trainingsdatenproben so zu „salten“ oder anderweitig zu verfälschen, dass der Klassifikator Online- oder Echtzeitproben mit bösartigem Code als SICHER fehlidentifiziert. Das Identifizieren kompromittierbarer Merkmale, die in den Ausgangstrainingsdaten 102 enthalten sind, und das Minimieren des Potenzials für eine Fehlklassifikation solcher Proben als SICHER verbessert somit die Genauigkeit, Effizienz und Sicherheit des Klassifikators. Das Verfahren 300 beginnt bei 302.
-
Bei 304 identifiziert die Merkmalsextraktionsschaltung 112 Merkmale 106, die den in dem Ausgangsdatensatz 102 enthaltenen Proben logisch zugeordnet sind. In einigen Umsetzungen kann der Ausgangsdatensatz 102 vollständig oder teilweise von einem oder mehreren kommunikationsfähig gekoppelten Systemen oder Vorrichtungen bereitgestellt werden. Jedes aktuelle oder zukünftig entwickelte Merkmalsextraktionsverfahren kann von der Merkmalsextraktionsschaltung 112 verwendet oder anderweitig ausgeführt werden, um die Merkmale 106, die den in dem Ausgangsdatensatz 102 enthaltenen Proben 104 logisch zugeordnet sind, zu identifizieren.
-
Bei 306 werden potentiell kompromittierbare Merkmale 108 identifiziert, die wenigstens einem Teil der in dem Ausgangsdatensatz 102 enthaltenen Proben 104 logisch zugeordnet sind. Unter potentiell kompromittierbaren Merkmalen sind solche Merkmale 106 zu verstehen, die - in einer die Systemsicherheit kompromittierenden Weise - als ein hohes Veränderungs- und/oder Verfälschungsrisiko identifiziert werden. Solche Merkmale 106 können beispielsweise Merkmale darstellen, bei denen schwer zu erkennende oder kleine Änderungen die spätere Klassifikation von Echtzeitproben, welche heimlich eingeführte Malware oder andere Software, Trojaner, Viren oder Kombinationen aus diesen enthalten, durch die trainierte gegen gegnerische Verfälschung resistente Klassifiziererschaltung 138 als SICHER und nicht als BÖSARTIG erleichtern können.
-
In einigen Umsetzungen kann die Merkmalsextraktionsschaltung 112 wenigstens einen Teil der potentiell kompromittierbaren Merkmale 108 autonom identifizieren. In einigen Umsetzungen kann wenigstens ein Teil der potentiell kompromittierbaren Merkmale 108 manuell identifiziert werden. In einigen Umsetzungen kann die Probenzuordnungsschaltung 120 wenigstens einen Teil der potentiell kompromittierbaren Merkmale 108 autonom identifizieren, bevor sie die Proben 104 in den einen oder die mehreren Trainingsdatensätze 122, den einen oder die mehreren Testdatensätze 124 und/oder den einen oder die mehreren Kreuzvalidierungsdatensätze 126 einteilt.
-
Bei
308 wird die Klassifikator-Verlustfunktion definiert. Die Klassifikator-Verlustfunktion ist eine rechnerisch mögliche Funktion, die den Preis darstellt, der für die Ungenauigkeit von Vorhersagen bei Klassifizierungsproblemen gezahlt wird (z.B. der Bayes-Fehler oder die Wahrscheinlichkeit einer Fehlklassifikation). Zumindest in einigen Umsetzungen kann die Klassifikator-Verlustfunktion durch den folgenden Ausdruck definiert werden:
wobei: w = Gewichtsvektor des Klassifikators, w ∈ R
d x
i = Merkmalsvektor für die Proben i = 1...n, wobei
y
i = Markierung für die Proben i = 1...n (z.B. SICHER/BÖSARTIG) Im Allgemeinen ist die Verlustfunktion durch die Art des Klassifikators vorgegeben, der zur Durchführung der Klassifizierungsoperation an den Proben
104 verwendet wird.
-
Bei 310 wird durch die Minimax-Lösungsschaltung 136 der Minimax für die Klassifikator-Verlustfunktion bestimmt. Die Minimax-Lösungsschaltung 136 kann den Minimax, der logisch mit der gegen gegnerische Verfälschung resistenten Klassifikatorschaltung 138 verbunden ist, autonom lösen, indem sie eine oder mehrere Analysetechniken anwendet, um das Worst-Case-Verlust-Szenario für die jeweilige gegen gegnerische Verfälschung resistente Klassifikatorschaltung 138 zu bewerten, wenn die maximale Anzahl potentiell kompromittierbarer Merkmale 108 tatsächlich kompromittiert wurde. In einigen Umsetzungen kann dieser Worst-Case-Verlust-Wert mit einem oder mehreren definierten Schwellenwerten verglichen werden, um festzustellen, ob eine geeignete gegen gegnerische Verfälschung resistente Klassifikatorschaltung 138 ausgewählt wurde. Bei 312 ist das Verfahren 300 abgeschlossen.
-
Ergänzend wurden Operationen für die Ausführungsformen anhand der obigen Figuren und der zugehörigen Beispiele näher beschrieben. Einige der Figuren können einen logischen Ablauf umfassen. Diese hier vorgestellten Figuren können zwar einen bestimmten logischen Ablauf umfassen, es versteht sich jedoch, dass der logische Ablauf lediglich ein Beispiel dafür bereitstellt, wie die hierin beschriebene allgemeine Funktionalität umgesetzt werden kann. Weiterhin muss der angegebene logische Ablauf, sofern nicht anders angegeben, nicht unbedingt in der dargelegten Reihenfolge ausgeführt werden. Darüber hinaus kann der gegebene logische Ablauf durch ein Hardwareelement, ein Softwareelement, das von einem Prozessor ausgeführt wird, oder eine beliebige Kombination aus diesen implementiert werden. Die Ausführungsformen sind nicht auf diesen Kontext beschränkt.
-
Verschiedene Merkmale, Aspekte und Ausführungsformen wurden hierin beschrieben. Wie von Fachleuten verstanden wird, können die Merkmale, Aspekte und Ausführungsformen miteinander kombiniert, sowie variiert und modifiziert werden. Die vorliegende Offenbarung sollte daher als solche Kombinationen, Varianten und Abwandlungen umfassend betrachtet werden. Daher sollten der Umfang und der Geltungsbereich der vorliegenden Erfindung nicht durch irgendeine der oben beschriebenen exemplarischen Ausführungsformen eingeschränkt, sondern nur gemäß den nachfolgenden Ansprüchen und deren Äquivalente definiert werden.
-
Die hierin verwendeten Begriffe und Ausdrücke dienen der Beschreibung und nicht der Einschränkung, und bei der Verwendung solcher Begriffe und Ausdrücke besteht keine Absicht, beliebige Äquivalente der gezeigten und beschriebenen Merkmale (oder Teile derselben) auszuschließen, und es wird anerkannt, dass im Rahmen der Ansprüche verschiedene Abwandlungen möglich sind. Dementsprechend sollen die Ansprüche alle diese Äquivalente abdecken. Verschiedene Merkmale, Aspekte und Ausführungsformen wurden hierin beschrieben. Wie von Fachleuten verstanden wird, können die Merkmale, Aspekte und Ausführungsformen miteinander kombiniert, sowie variiert und modifiziert werden. Die vorliegende Offenbarung sollte daher als solche Kombinationen, Varianten und Abwandlungen umfassend betrachtet werden.
-
Wie hierin beschrieben, können verschiedene Ausführungsformen unter Verwendung von Hardwareelementen, Softwareelementen oder einer beliebigen Kombination aus diesen umgesetzt werden. Beispiele für Hardwareelemente können Folgendes umfassen: Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (z.B. Transistoren, Widerstände, Kondensatoren, Induktoren, Spulen, Übertragungsleitungen, Langsamwellen-Übertragungsleitungen, Transformatoren etc.), integrierte Schaltungen, anwendungsspezifische integrierte Schaltungen (ASIC), drahtlose Empfänger, Sender, Sender-Empfänger, Antennenarrays zur Strahlformung und zur drahtlosen Breitbandkommunikation verwendete elektronische Strahlsteuerung oder Radarsensoren für autonomes Fahren oder als Gestensensoren, die eine Tastaturvorrichtung für taktile Interneterfahrung ersetzen, Screening-Sensoren für Sicherheitsanwendungen, medizinische Sensoren (Krebsscreening), programmierbare Logikvorrichtungen (PLD), digitale Signalprozessoren (DSP), feldprogrammierbare Gate-Arrays (FPGA), Logikgatter, Register, Halbleitervorrichtungen, Chips, Mikrochips, Chipsätze etc..
-
In dieser gesamten Beschreibung bedeutet die Bezugnahme auf „eine einzige Ausführungsform“ oder „eine Ausführungsform“, dass ein bestimmtes Merkmal, eine Struktur oder eine kennzeichnende Eigenschaft, das bzw. die in Verbindung mit der Ausführungsform beschrieben wird, in wenigstens einer Ausführungsform der vorliegenden Erfindung enthalten ist. Das Vorkommen der Formulierungen „in einer einzigen Ausführungsform“ oder „in einer Ausführungsform“ an verschiedenen Stellen dieser Beschreibung bezieht sich somit nicht notwendigerweise immer auf dieselbe Ausführungsform. Darüber hinaus können die jeweiligen Merkmale, Strukturen oder Eigenschaften in jeder geeigneten Weise in einer oder mehreren Ausführungsformen kombiniert werden.
-
Die folgenden Beispiele betreffen weitere Ausführungsformen. Die folgenden Beispiele für die vorliegende Offenbarung können Gegenstände, wie Vorrichtungen, Systeme, Verfahren und Mittel zur Bereitstellung eines Systems für maschinelles Lernen, das für den Einsatz in gegnerischen Umgebungen, in denen Trainingsdaten kompromittiert werden können, geeignet ist, umfassen.
-
Gemäß dem Beispiel 1, wird ein System für gegnerisches maschinelles Lernen bereitgestellt. Das System für gegnerisches maschinelles Lernen kann Folgendes umfassen: eine Merkmalsextraktionsschaltung, um eine Anzahl von Merkmalen zu identifizieren, die jeder Probe zugeordnet sind, die in einem Ausgangsdatensatz enthalten ist, der eine Vielzahl von Proben enthält; eine Probenzuordnungsschaltung, um wenigstens einen Teil der in dem Ausgangsdatensatz enthaltenen Proben wenigstens einem Trainingsdatensatz zuzuordnen; eine Schaltung für maschinelles Lernen, die kommunikationsfähig mit der Probenzuordnungsschaltung gekoppelt ist, wobei die Schaltung für maschinelles Lernen: wenigstens einen Satz von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Ausgangsdatensatz enthaltenen Probe identifiziert; eine Klassifikator-Verlustfunktion [l(xi, yi, w)] definiert, die Folgendes enthält: einen Merkmalsvektor (xi) für jede Probe, die in dem Ausgangsdatensatz enthalten ist; eine Markierung (yi) für jede in dem Ausgangsdatensatz enthaltene Probe; und einen dem Klassifikator zugeordneten Gewichtsvektor (w); und den Minimax der Klassifikator-Verlustfunktion (minwmaxi l(xi, yi, w)) bestimmt.
-
Das Beispiel 2 kann Elemente des Beispiels 1 umfassen, wobei die Probenzuordnungsschaltung ferner eine Schaltung umfasst, um wenigstens einen Teil der in dem Ausgangsdatensatz enthaltenen Proben wenigstens einem von: einem Trainingsdatensatz, einem Testdatensatz oder einem Kreuzvalidierungsdatensatz zuzuordnen.
-
Das Beispiel 3 kann Elemente des Beispiels 1 umfassen, wobei die Schaltung für maschinelles Lernen wenigstens einen Satz von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben autonom identifizieren kann.
-
Das Beispiel 4 kann Elemente des Beispiels 1 umfassen, wobei die Schaltung für maschinelles Lernen wenigstens einen Eingang empfangen kann, um wenigstens einen Satz von kompromittierbaren Merkmalen für wenigstens einen Teil der wenigstens in dem Trainingsdatensatz enthaltenen Proben manuell zu identifizieren.
-
Das Beispiel 5 kann Elemente des Beispiels 1 umfassen, wobei die Schaltung für maschinelles Lernen eine Verlustfunktion definieren kann, die einen ersten logischen Wert für die einer Probe zugeordnete Markierung enthält, wenn die jeweilige Probe eine nicht-bösartige Probe darstellt, und eine Verlustfunktion definieren kann, die einen zweiten logischen Wert für die einer Probe zugeordnete Markierung enthält, wenn die jeweilige Probe ein bösartiges Element darstellt.
-
Das Beispiel 6 kann Elemente des Beispiels 1 umfassen, wobei die Schaltung für maschinelles Lernen außerdem wenigstens einen aus einer festen Anzahl von kompromittierbaren Merkmalen bestehenden Satz für wenigstens einen Teil der wenigstens in dem Trainingsdatensatz enthaltenen Proben identifizieren kann.
-
Das Beispiel 7 kann Elemente des Beispiels 1 umfassen, wobei die Schaltung für maschinelles Lernen außerdem wenigstens eine Vielzahl von Sätzen von kompromittierbaren Merkmalen für wenigstens einen Teil der wenigstens in dem Trainingsdatensatz enthaltenen Proben identifizieren kann, wobei jeder der Vielzahl von Sätzen eine unterschiedliche Anzahl von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben enthält.
-
Gemäß Beispiel 8 wird ein Klassifikator-Trainingsverfahren bereitgestellt. Das Verfahren kann Folgendes umfassen: das Zuordnen wenigstens eines Teils der in einem Ausgangsdatensatz enthaltenen Vielzahl von Proben zu wenigstens einem Trainingsdatensatz; das Identifizieren einer Anzahl von Merkmalen, die jeder in einem Trainingsdatensatz enthaltenen Probe zugeordnet sind; das Identifizieren wenigstens eines Satzes von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben; das Definieren einer Klassifikator-Verlustfünktion [l(xi, yi, w)], die Folgendes enthält: einen Merkmalsvektor (xi) für jedes in dem Trainingsdatensatz enthaltene Element; eine Markierung (yi) für jedes in dem Trainingsdatensatz enthaltene Element; und einen dem Klassifikator zugeordneten Gewichtsvektor (w); und das Bestimmen des Minimax der Klassifikator-Verlustfünktion (minwmaxi l(xi, yi, w)).
-
Das Beispiel 9 umfasst Elemente des Beispiels 8, wobei das Identifizieren wenigstens eines Satzes von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben Folgendes umfasst: das autonome Identifizieren wenigstens eines Satzes von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Elemente.
-
Das Beispiel 10 kann Elemente des Beispiels 8 umfassen, wobei das Identifizieren wenigstens eines Satzes von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben das manuelle Identifizieren wenigstens eines Satzes von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben umfassen kann.
-
Das Beispiel 11 kann Elemente des Beispiels 8 umfassen, wobei das Definieren einer Klassifikator-Verlustfünktion [l(xi, yi, w)], die eine Markierung (yi) für jede in dem Trainingsdatensatz enthaltene Probe enthält, Folgendes umfassen kann: das Definieren einer Verlustfunktion, die einen ersten logischen Wert für die einer Probe zugeordnete Markierung enthält, wenn die jeweilige Probe eine nicht-bösartige Probe darstellt; und das Definieren einer Verlustfunktion, die einen zweiten logischen Wert für die einer Probe zugeordnete Markierung enthält, wenn die jeweilige Probe ein bösartiges Element darstellt.
-
Das Beispiel 12 kann Elemente des Beispiels 8 umfassen, wobei das Identifizieren wenigstens eines Satzes von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben das Identifizieren eines Satzes bestehend aus einer festen Anzahl von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben umfassen kann.
-
Das Beispiel 13 kann Elemente des Beispiels 8 umfassen, wobei das Identifizieren wenigstens eines Satzes von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Elemente das Identifizieren einer Vielzahl von Sätzen von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben umfassen kann, wobei jeder der Vielzahl von Sätzen eine unterschiedliche Anzahl von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben enthält.
-
Gemäß Beispiel 14, wird eine Speichervorrichtung bereitgestellt, die maschinenlesbare Anweisungen enthält, die bei Ausführung eine konfigurierbare Schaltung physisch in eine Trainingsschaltung für gegnerisches maschinelles Lernen verwandelt, wobei die Trainingsschaltung für gegnerisches maschinelles Lernen:
eine Anzahl von Merkmalen identifiziert, die jeder Probe zugeordnet sind, die in einem Ausgangsdatensatz enthalten ist, der eine Vielzahl von Proben enthält; wenigstens einen Teil der in dem Ausgangsdatensatz enthaltenen Proben wenigstens einem Trainingsdatensatz zuordnet; wenigstens einen Satz von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben identifiziert; eine Klassifikator-Verlustfunktion [l(xi, yi, w)] definiert, die Folgendes enthält: einen Merkmalsvektor (xi) für jede in dem Trainingsdatensatz enthaltene Probe; eine Markierung (yi) für jede in dem Trainingsdatensatz enthaltene Probe; und einen dem Klassifikator zugeordneten Gewichtsvektor (w); und den Minimax der Klassifikator-Verlustfunktion (minwmaxi l(xi, yi, w)) bestimmt.
-
Das Beispiel 15 kann Elemente des Beispiels 14 umfassen, wobei die maschinenlesbaren Anweisungen, die bewirken, dass die Trainingsschaltung für gegnerisches maschinelles Lernen wenigstens einen Satz von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben identifiziert, bewirken, dass die Trainingsschaltung für gegnerisches maschinelles Lernen: wenigstens einen Satz von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben autonom identifiziert.
-
Das Beispiel 16 kann Elemente des Beispiels 14 umfassen, wobei die maschinenlesbaren Anweisungen, die bewirken, dass die Trainingsschaltung für gegnerisches maschinelles Lernen wenigstens einen Satz von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben identifiziert, bewirken, dass die Trainingsschaltung für gegnerisches maschinelles Lernen: eine Eingabe erhält, die Daten enthält, welche wenigstens einen Satz von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben manuell identifizieren.
-
Das Beispiel 17 kann Elemente des Beispiels 14 umfassen, wobei die maschinenlesbaren Anweisungen, die bewirken, dass die Trainingsschaltung für gegnerisches maschinelles Lernen eine Klassifikator-Verlustfünktion [l(xi, yi, w)] definiert, die eine Markierung (yi) für jede in dem Trainingsdatensatz enthaltene Probe enthält, ferner bewirken, dass die Trainingsschaltung für gegnerisches maschinelles Lernen: eine Verlustfunktion definiert, die einen ersten logischen Wert für die einer Probe zugeordnete Markierung enthält, wenn die jeweilige Probe eine nicht-bösartige Probe darstellt; und eine Verlustfunktion definiert, die einen zweiten logischen Wert für die einer Probe zugeordnete Markierung enthält, wenn die jeweilige Probe ein bösartiges Element darstellt.
-
Das Beispiel 18 kann Elemente des Beispiels 14 umfassen, wobei die maschinenlesbaren Anweisungen, die bewirken, dass die Trainingsschaltung für gegnerisches maschinelles Lernen wenigstens einen Satz von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben identifiziert, außerdem bewirken, dass die Trainingsschaltung für gegnerisches maschinelles Lernen einen Satz der aus einer festen Anzahl von kompromittierbaren Merkmalen besteht, für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben identifiziert.
-
Das Beispiel 19 kann Elemente des Beispiels 15 umfassen, wobei die maschinenlesbaren Anweisungen, die bewirken, dass die Trainingsschaltung für gegnerisches maschinelles Lernen wenigstens einen Satz von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben identifiziert, außerdem bewirken, dass die Trainingsschaltung für gegnerisches maschinelles Lernen eine Vielzahl von Sätzen von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben identifiziert, wobei jeder der Vielzahl von Sätzen eine unterschiedliche Anzahl von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben enthält.
-
Gemäß dem Beispiel 20 wird ein System zum Trainieren von Klassifikatoren für eine gegnerische Umgebung bereitgestellt. Das System zum Trainieren von Klassifikatoren für eine gegnerische Umgebung kann Folgendes umfassen: ein Mittel zum Identifizieren einer Anzahl von Merkmalen, die jeder Probe zugeordnet sind, die in einem Ausgangsdatensatz enthalten ist, der eine Vielzahl von Proben enthält; ein Mittel zum Zuordnen wenigstens eines Teils der in dem Ausgangsdatensatz enthaltenen Proben zu wenigstens einem Trainingsdatensatz; ein Mittel zum Identifizieren wenigstens eines Satzes von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben; ein Mittel zum Definieren einer Klassifikator-Verlustfunktion [l(xi, yi, w)], die Folgendes enthält: einen Merkmalsvektor (xi) für jede in dem Trainingsdatensatz enthaltene Probe; eine Markierung (yi) für jede in dem Trainingsdatensatz enthaltene Probe; und einen dem Klassifikator zugeordneten Gewichtsvektor (w); und ein Mittel zum Bestimmen des Minimax der Klassifikator-Verlustfünktion (minwmaxi l(xi, yi, w)).
-
Das Beispiel 21 kann Elemente des Beispiels 20 umfassen, wobei das Mittel zum Identifizieren wenigstens eines Satzes von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben Folgendes umfasst: ein Mittel zum autonomen Identifizieren wenigstens eines Satzes von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben.
-
Das Beispiel 22 kann Elemente des Beispiels 20 umfassen, wobei das Mittel zum Identifizieren wenigstens eines Satzes von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben Folgendes umfasst: ein Mittel zum manuellen Identifizieren wenigstens eines Satzes von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben.
-
Das Beispiel 23 kann Elemente des Beispiels 20 umfassen, wobei das Mittel zum Definieren einer Klassifikator-Verlustfunktion [l(xi, yi w)], die eine Markierung (yi) für jede in dem Trainingsdatensatz enthaltene Probe enthält, ein Mittel zum Definieren einer Verlustfunktion umfasst, die einen ersten logischen Wert für die einer Probe zugeordnete Markierung enthält, wenn die jeweilige Probe eine nicht-bösartige Probe darstellt; und ein Mittel zum Definieren einer Verlustfunktion, die einen zweiten logischen Wert für die einer Probe zugeordnete Markierung enthält, wenn die jeweilige Probe ein bösartiges Element darstellt.
-
Das Beispiel 24 kann Elemente des Beispiels 20 umfassen, wobei das Mittel zum Identifizieren wenigstens eines Satzes von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben ein Mittel zum Identifizieren eines aus einer festen Anzahl von kompromittierbaren Merkmalen bestehenden Satzes für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben umfasst.
-
Das Beispiel 25 kann Elemente des Beispiels 20 umfassen, wobei das Identifizieren wenigstens eines Satzes von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben ein Mittel zum Identifizieren einer Vielzahl von Sätzen von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben umfasst, wobei jeder der Vielzahl von Sätzen eine unterschiedliche Anzahl von kompromittierbaren Merkmalen für wenigstens einen Teil der in dem Trainingsdatensatz enthaltenen Proben enthält.
-
Gemäß dem Beispiel 26, wird ein System zum Trainieren eines Klassifikators für eine gegnerische Umgebung bereitgestellt, wobei das System dazu eingerichtet ist, das Verfahren eines der Beispiele 8 bis 13 durchzuführen.
-
Gemäß dem Beispiel 27 wird ein Chipsatz bereitgestellt, der dazu eingerichtet ist, das Verfahren eines der Beispiele 8 bis 13 durchzuführen.
-
Gemäß dem Beispiel 28 wird wenigstens ein maschinenlesbares Medium bereitgestellt, das eine Vielzahl von Anweisungen umfasst, die in Reaktion auf ihre Ausführung auf einer Computervorrichtung bewirken, dass die Computervorrichtung das Verfahren gemäß einem der Beispiele 8 bis 13 ausführt.
-
Gemäß dem Beispiel 29 wird eine Vorrichtung bereitgestellt, die zum Trainieren eines Klassifikators für eine gegnerische Umgebung eingerichtet ist, wobei die Vorrichtung dazu eingerichtet ist, das Verfahren eines der Beispiele 8 bis 13 auszuführen.
-
Die hierin verwendeten Begriffe und Ausdrücke dienen der Beschreibung und nicht der Einschränkung, und bei der Verwendung solcher Begriffe und Ausdrücke besteht keine Absicht, beliebige Äquivalente der gezeigten und beschriebenen Merkmale (oder Teile derselben) auszuschließen, und es wird anerkannt, dass im Rahmen der Ansprüche verschiedene Abwandlungen möglich sind. Dementsprechend sollen die Ansprüche alle diese Äquivalente abdecken.