-
HINTERGRUND
-
Die vorliegende Erfindung bezieht sich allgemein auf das Gebiet des Deep Learning und insbesondere auf die Intrusion Detection unter Verwendung von Deep Learning.
-
Ein Intrusion Detection System (IDS) ist eine Einheit oder Softwareanwendung, die ein Netzwerk oder Systeme auf bösartige Aktivitäten oder Richtlinienverstöße überwacht. In der Regel wird Intrusion-Aktivität oder -Verstoß geloggt und/oder an einen Administrator gemeldet. IDS beinhalten Netzwerk-basierte Intrusion Detection Systeme (NIDS) (z. B. Analyse des eingehenden Netzwerkverkehrs) und Host-basierte Intrusion Detection Systeme (HIDS) (z. B. Überwachung wichtiger Betriebssystemdateien).
-
Neuronale Netzwerke (Neural networks, NN) sind Computersysteme, die sich an biologischen neuronalen Netzwerken orientieren. NNs sind nicht einfach Algorithmen, sondern vielmehr ein Rahmenwerk für maschinelle Lernalgorithmen zur Verarbeitung komplexer Eingaben. Solche Systeme „lernen“ anhand von trainierenden Beispielen, Aufgaben durchzuführen, im Allgemeinen ohne mit aufgabenspezifischen Regeln programmiert zu werden. NNs basieren auf einer Ansammlung von miteinander verbundenen Einheiten oder Knoten, die als künstliche Neuronen bezeichnet werden und die Neuronen in einem biologischen Gehirn nachbilden, wobei jedes künstliche Neuron ein Signal von einem künstlichen Neuron zu einem anderen übertragen kann. Dabei empfängt ein künstliches Neuron ein Signal, das dieses künstliche Neuron in einem Prozess verarbeiten und anschließend an weitere künstliche Neuronen übertragen kann. Bei herkömmlichen NN-Implementierungen ist ein Signal an einer Verbindung zwischen künstlichen Neuronen eine reelle Zahl, und die Ausgabe jedes künstlichen Neurons wird durch eine nichtlineare Funktion der Summe der Eingaben berechnet. Künstliche Neuronen und Kanten haben in der Regel jeweilige Gewichte, die sich im Laufe des Lernprozesses anpassen. Die jeweiligen Gewichte erhöhen oder verringern die Stärke eines Signals an einer Verbindung. Künstliche Neuronen können einen Schwellenwert haben, so dass ein Signal lediglich gesendet wird, wenn ein Gesamtsignal den Schwellenwert überschreitet. Künstliche Neuronen werden in der Regel in Schichten zusammengefasst, wobei eine Mehrzahl von Schichten eine Mehrzahl von Datenumwandlungen an Eingaben durchführt.
-
Neuronale Faltungsnetzwerke (Convolutional Neural Networks, CNN) sind eine Klasse oder Unterkategorie von neuronalen Netzwerken, die hauptsächlich für die Analyse von visuellen Bildern eingesetzt werden. CNNs sind regularisierte Versionen von mehrschichtigen Perceptrons (z. B. vollständig verbundenes Netzwerk), wobei jedes Neuron in einer Schicht mit allen Neuronen in einer nachfolgenden Schicht verbunden ist. CNNs nutzen den Vorteil der hierarchischen Muster in Daten und leiten komplexere Muster unter Verwendung abgestimmter Muster ab. CNNs zerlegen Bilder in Kernel (z. B. 5x5 Pixel) und iterieren über das Bild mit einer bestimmten Schrittlänge (stride length). CNNs verwenden im Vergleich zu anderen Bildklassifizierungsalgorithmen relativ wenig Vorverarbeitung, so dass das Netzwerk die Filter erlernen kann, die bei herkömmlichen Algorithmen von Hand entwickelt wurden.
-
Ein generatives gegnerisches Netzwerk (generative adversarial network, GAN) ist eine Klasse oder Unterkategorie maschineller Lernsysteme, die zwei neuronale Netzwerke umfasst (d. h. ein generatives und ein diskriminatives). GANs lernen, neue Daten mit ähnlichen Datenstatistiken zu erzeugen, wie sie in einem bereitgestellten Trainingssatz angegeben sind. Zum Beispiel kann ein GAN, das mit einem Trainingssatz von Fotos trainiert wurde, neue Fotos erzeugen, die für menschliche Betrachter zumindest oberflächlich gesehen authentisch aussehen. Ein enthaltenes generatives Netzwerk erzeugt Kandidaten, während das diskriminative Netzwerk die erzeugten Kandidaten bewertet. Typischerweise lernt das generative Netzwerk, eine Zuordnung von einem latenten Raum zu einer interessierenden Datenverteilung vorzunehmen, während das diskriminative Netzwerk die erzeugten Kandidaten von der Trainingssatz-Datenverteilung unterscheidet. Das generative Netzwerk erhöht die Fehlerquote des diskriminativen Netzwerks (d. h. es führt zu Fehlklassifizierungen durch das Diskriminator-Netzwerk, indem es neue Kandidaten erzeugt, von denen der Diskriminator annimmt, dass sie nicht synthetisiert werden (Teil der wahren Datenverteilung sind) und erzeugt somit statistisch realistische Kandidaten.
-
KURZDARSTELLUNG
-
Ausführungsformen der vorliegenden Erfindung offenbaren ein computerimplementiertes Verfahren, ein Computerprogrammprodukt und ein System zum Erkennen und Abschwächen von Anomalien im Netzwerkverkehr. Das computerimplementierte Verfahren beinhaltet einen oder mehrere Computer-Prozessoren, die eine oder mehrere Netzwerk-Eingaben abfangen, die in ein internes Netzwerk eingehen oder dort vorhanden sind. Der eine oder die mehreren Computer-Prozessoren synthetisieren ein oder mehrere Netzwerk-Eingabe-Bilder aus einem Zufalls-Rausch-Vektor, der aus einer Normalverteilung von textuell eingebetteten Netzwerk-Eingaben abgetastet wird, unter Verwendung eines trainierten erzeugenden gegnerischen Netzwerks. Der eine oder die mehreren Computer-Prozessoren klassifizieren ein oder mehrere synthetisierte Netzwerk-Eingabe-Bilder durch Identifizieren von enthaltenen Objekten unter Verwendung eines trainierten neuronalen Faltungsnetzwerks mit gleichgerichteten linearen Einheiten (rectified linear units), wobei die Objekte Muster, Reihenfolgen, Trends und Signaturen beinhalten. Der eine oder die mehreren Computer-Prozessoren sagen ein Sicherheitsprofil des einen oder der mehreren klassifizierten Netzwerk-Eingabe-Bilder und von damit verknüpften einen oder mehreren Netzwerk-Eingaben vorher, wobei die Sicherheitsprofile einen Satz von Regeln und verknüpften Abschwächungsmaßnahmen, analogen historischen Netzwerk-Verkehr, eine Wahrscheinlichkeit einer Infektion, eine Wahrscheinlichkeit einer Signatur-Übereinstimmung mit historischen bösartigen Netzwerk-Eingaben und einen Schadensfaktor beinhalten. Der eine oder die mehreren Computer-Prozessoren wenden eine oder mehrere Abschwächungsmaßnahmen auf Grundlage des vorhergesagten Sicherheitsprofils an, das mit der einen oder den mehreren Netzwerk-Eingaben verknüpft ist.
-
Figurenliste
-
- 1 ist ein funktionelles Blockschaltbild, das eine rechnergestützte Umgebung veranschaulicht, gemäß einer Ausführungsform der vorliegenden Erfindung;
- 2 ist ein Ablaufplan, der die Operationsschritte eines Programms auf einem Server-Computer in der rechnergestützten Umgebung von 1 zur Erkennung und Abschwächung von Anomalien im Netzwerkverkehr darstellt, gemäß einer Ausführungsform der vorliegenden Erfindung;
- 3 ist ein Ablaufplan, der die Operationsschritte eines Programms, auf einem Server-Computer in der rechnergestützten Umgebung von 1, zur Analyse des Netzwerkverkehrs auf Grundlage der Bilderzeugung und -analyse durch Deep Learning darstellt, gemäß einer Ausführungsform der vorliegenden Erfindung;
- 4 ist ein beispielhaft erzeugtes Netzwerk-Bild, gemäß einer Ausführungsform der vorliegenden Erfindung;
- 5 ist ein Ablaufplan, der beispielhafte Schritte eines Programms auf einem Server Computer innerhalb der rechnergestützten Umgebung von 1, gemäß einer vorliegenden Erfindung darstellt; und
- 6 ist ein Blockschaltbild von Komponenten des Servercomputers, gemäß einer Ausführungsform der vorliegenden Erfindung.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Üblicherweise überwachen Netzwerk-Intrusion-Detection-Systeme (IDSs) interne Netzwerke auf potenziell unberechtigte und/oder bösartige Aktivitäten, indem sie Paketsignaturen erkennen und identifizieren. IDS neigen zu häufigen Fehlalarmen, die dazu führen, dass berechtigte oder erlaubte Aktivitäten im Netzwerk falsch markiert, geloggt, suspendiert und/oder terminiert werden, was zu weiteren Fehlern, Verzögerungen, Netzüberlastung, erhöhtem Rechenaufwand und letztlich zu einer verringerten Effizienz des Netzwerks führt. Herkömmliche IDS müssen auf die Anforderungen und Spezifikationen eines internen Netzwerks feinabgestimmt werden, um Fehlalarme wirksam zu verringern und gleichzeitig eine hohe bösartige Identifizierung zu pflegen. Die herkömmliche IDS-Abstimmung ist ein im Wesentlichen ressourcenintensiver Prozess, der aufgrund der Menge potenzieller Netzwerk-Eingaben/Paketsignaturen häufige manuelle Eingriffe erfordert und somit die Anforderungen an die Kostenoptimierung und die Realisierung erhöht.
-
Ausführungsformen der vorliegenden Erfindung ermöglichen ein Deep Learning-Verfahren für Intrusion-Detection-Systeme wie Netzwerk-basierte Intrusion-Detection-Systeme (NIDS) und Host-basierte Intrusion-Detection-Systeme (HIDS). Ausführungsformen der vorliegenden Erfindung überwachen und analysieren Netzwerkverkehr und Anschlüsse unter Verwendung einer signaturbasierten Erkennung und anomaliebasierter Detektionstechniken. Ausführungsformen der vorliegenden Erfindung wenden unüberwachtes maschinelles Lernen (unsupervised machine learning) auf Netzwerk-Intrusion-Alarme (d.h. textuelle Netzwerkdaten) an, die von einem IDS erzeugt werden. Ausführungsformen der vorliegenden Erfindung wandeln unter Verwendung eines Algorithmus für ein erzeugendes gegnerisches Netzwerk (GAN) Textrohdaten in ein Bild- und/oder Grafikformat um. Ausführungsformen der vorliegenden Erfindung klassifizieren erzeugte Bilder unter Verwendung eines oder mehrerer Klassifizierungsmodelle, die die explorative Datenanalyse (exploratory data analysis, EDA) und die angewandte Hauptkomponentenanalyse (principal component analysis, PCA) verwenden. In dieser Ausführungsform entdeckt die vorliegende Erfindung Netzwerkverkehrsmuster in erzeugten Bildern und sagt Netzwerkanomalien vorher (z. B. Markierung usw.), während falsche Positiver (d. h. Alarme) minimiert werden. Ausführungsformen der vorliegenden Erfindung wenden Bilderkennungstechniken an, wie z. B. Screenshot-Erfassungstechniken und Chart-Dashboard-Analyse, um falsche Positive und bösartige Anomalien zu identifizieren und gleichzeitig das Risiko einer Netzwerk-Intrusion und die mit herkömmlichen Systemen verknüpften Berechnungsanforderungen zu verringern. Implementierungen von Ausführungsformen der vorliegenden Erfindung passen ein oder mehrere Intrusions-Modelle dynamisch auf Grundlage spezifischer Netzwerkmuster an, die für ein oder mehrere Netzwerke, Hosts und/oder Anwendungen einzigartig sind. Die Realisierung von Ausführungsformen der Erfindung kann in verschiedenen Formen durchgeführt werden, und beispielhafte Details der Realisierung werden nachfolgend unter Bezugnahme auf die Figuren erörtert.
-
Die vorliegende Erfindung wird nun unter Bezugnahme auf die Figuren im Detail beschrieben.
-
1 ist ein funktionelles Blockschaltbild, das eine rechnergestützte Umgebung gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht, die allgemein mit 100 bezeichnet wird. Der Begriff „rechnergestützte“, wie er in dieser Beschreibung verwendet wird, beschreibt ein Computersystem, das mehrere, physisch getrennte Einheiten beinhaltet, die zusammen als ein einziger Computer arbeiten. 1 veranschaulicht lediglich eine Ausführungsform und stellt keine Einschränkung bezüglich der Umgebungen dar, in denen andere Ausführungsformen realisiert werden können. Viele Änderungen an der dargestellten Umgebung können von Fachleuten vorgenommen werden, ohne dass der Umfang der Erfindung, wie er in den Ansprüchen angegeben ist, verlassen wird.
-
Die rechnergestützte Umgebung 100 beinhaltet einen Servercomputer 120, der über ein externes Netzwerk 102 und ein internes Netzwerk 104 verbunden ist. Bei dem externen Netzwerk 102 und dem internen Netzwerk 104 kann es sich beispielsweise um ein Telekommunikationsnetzwerk, ein lokales Netzwerk (local area network, LAN), ein Weitverkehrsnetzwerk (wide area network, WAN), wie das Internet, oder eine Kombination aus diesen drei Netzwerken handeln, und sie können drahtgebundene, drahtlose oder faseroptische Verbindungen beinhalten. Das externe Netzwerk 102 und das interne Netzwerk 104 können jeweils ein oder mehrere drahtgebundene und/oder drahtlose Netzwerke beinhalten, die in der Lage sind, Daten-, Sprach- und/oder Videosignale zu empfangen und zu übertragen, einschließlich Multimediasignale, die Sprach-, Daten- und Videoinformationen beinhalten. Im Allgemeinen können das externe Netzwerk 102 und das interne Netzwerk 104 jeweils eine beliebige Kombination von Verbindungen und Protokollen sein, die die Kommunikation zwischen dem Servercomputer 120 und anderen Computereinheiten (nicht dargestellt) innerhalb der rechnergestützten Umgebung 100 unterstützen. In verschiedenen Ausführungsformen arbeiten das externe Netzwerk 102 und das interne Netzwerk 104 jeweils lokal über drahtgebundene, drahtlose oder optische Verbindungen und können eine beliebige Kombination von Verbindungen und Protokollen sein (z. B. Personal Area Network (PAN), Near Field Communication (NFC), Laser, Infrarot, Ultraschall usw.). In einer Ausführungsform ist das externe Netzwerk 102 als Zugangspunkt für ein größeres Intranet oder das Internet öffentlich zugänglich. In einer Ausführungsform ist das interne Netzwerk 104 nicht öffentlich zugänglich. In dieser Ausführungsform ist das interne Netzwerk 104 vom externen Netzwerk 102 durch den Servercomputer 120 segmentiert (z. B. lediglich über kontrollierte und überwachte Punkte zugänglich).
-
Bei dem Servercomputer 120 kann es sich um ein Intrusion Detection System, eine eigenständige Computereinheit, einen Verwaltungsserver, einen Webserver, eine mobile Computereinheit oder eine beliebige andere elektronische Einheit oder Computersystem handeln, das Daten empfangen, senden und verarbeiten kann. In anderen Ausführungsformen kann der Servercomputer 120 ein Servercomputersystem darstellen, das mehrere Computer als ein Serversystem verwendet, wie z.B. in einer Cloud-Computing-Umgebung. In einer anderen Ausführungsform kann der Servercomputer 120 ein Laptop-Computer, ein Tablet-Computer, ein Netbook-Computer, ein Personal Computer (PC), ein Desktop-Computer, ein Personal Digital Assistant (PDA), ein Smart Phone oder eine beliebige programmierbare elektronische Einheit sein, die in der Lage ist, mit anderen Computereinheiten (nicht dargestellt) innerhalb der rechnergestützten Umgebung 100 über das externe Netzwerk 102 und/oder das interne Netzwerk 104 zu kommunizieren. In einer anderen Ausführungsform stellt der Servercomputer 120 ein Computersystem, das Cluster von Computern und Komponenten (z. B. Datenbank-Servercomputer, Anwendungsservercomputer usw.) verwendet, dar, welche als ein einziger Pool von nahtlosen Ressourcen verwendet werden, wenn innerhalb der rechnergestützten Umgebung 100 darauf zugegriffen wird. In der dargestellten Ausführungsform beinhaltet der Servercomputer 120 die Datenbank 122 und das Programm 150. In einer anderen Ausführungsform ist der Servercomputer 120 ein Netzwerk-Intrusion-Detection-System (NIDS). In einer anderen Ausführungsform ist der Servercomputer 120 ein Host-Intrusion-Detection-System (HIDS). In verschiedenen Ausführungsformen steuert der Servercomputer 120 den Fluss des Netzwerkverkehrs zwischen Hosts, die sich im externen Netzwerk 102 befinden, und Hosts, die sich im internen Netzwerk 104 befinden. In anderen Ausführungsformen kann der Servercomputer 120 andere Anwendungen, Datenbanken, Programme usw. enthalten, die in der rechnergestützten Umgebung 100 nicht dargestellt wurden. Der Servercomputer 120 kann interne und externe Hardwarekomponenten beinhalten, wie in 6 ausführlich dargestellt und beschrieben.
-
Die Datenbank 122 ist ein Repository für Daten, die vom Programm 150 verwendet werden. In der dargestellten Ausführungsform befindet sich die Datenbank 122 auf dem Servercomputer 120. In einer anderen Ausführungsform kann sich die Datenbank 122 an einem anderen Ort innerhalb der rechnergestützten Umgebung 100 befinden, vorausgesetzt, das Programm 150 hat Zugriff auf die Datenbank 122. Eine Datenbank ist eine organisierte Ansammlung von Daten. Die Datenbank 122 kann mit jeder Art von Speichereinheit realisiert werden, das in der Lage ist, Daten und Konfigurationsdateien zu speichern, auf die das Programm 150 zugreifen und die es verwenden kann, wie z. B. ein Datenbank-Server, ein Festplattenlaufwerk oder ein Arbeitsspeicher. In einer Ausführungsform speichert die Datenbank 122 Daten, die vom Programm 150 verwendet werden, wie z. B. historisch erzeugte Netzwerk-Bilder, Intrusion-Detection-Signaturen; auf der Whitelist/Blacklist stehende Hosts, Anschlüsse, IPs, Routen, Hosts und Anwendungen; historische Anomalien und verknüpfte Netzwerk-Eingaben sowie historische falsche Positive und verknüpfte Netzwerk-Eingaben. In der dargestellten Ausführungsform beinhaltet die Datenbank 122 ein Korpus 124.
-
Das Korpus 124 enthält eine Mehrzahl von textbasierten Korpora (d.h. Paketinformationen, Konsolenausgaben, IDS-Signaturen, historische Anomalien, falsche Positiver und berechtigter Netzwerkverkehr und verknüpfte Metadaten) und verknüpfte bildbasierte Korpora (d.h. Netzwerkdiagramme, Dashboards, usw.). In einer Ausführungsform enthält das Korpus 124 eine oder mehrere historisch erzeugte Darstellungen von Bildern. In einer Ausführungsform sind diese historischen Anomalien in Bezug auf den spezifischen Host, die Route, die Anwendung, den Standort oder die Gruppe kategorisiert, organisiert und/oder strukturiert. Zum Beispiel werden alle historischen erzeugten Darstellungen, die sich auf einen Standort beziehen, zusammengefasst. In verschiedenen Ausführungsformen sind die im Korpus 124 enthaltenen Informationen zeitlich strukturiert. Beispielsweise können diese Informationen bezüglich einer bestimmten Zeitperiode (z. B. der im letzten Monat erzeugte Netzwerkverkehr) eingeschränkt oder begrenzt sein.
-
Das Netzwerk-Eingabe-Bild-Modell 152 und das Netzwerk-Eingabe-Klassifizierungsmodell 154 stellen eine Mehrzahl von Modellen dar, die Deep Learning-Techniken zum Trainieren, Berechnen von Gewichten, Einlesen von Eingaben und Ausgeben einer Mehrzahl von Lösungen verwenden (z. B. Paketvorhersage, Reihenfolge-Identifizierung, Bildanalyse, Bilderzeugung usw.). In einer Ausführungsform umfassen das Netzwerk-Eingabe-Bild-Modell 152 und das Netzwerk-Eingabe-Klassifizierungsmodell 154 eine beliebige Kombination von Deep-Learning-Modellen, -Techniken und -Algorithmen (z. B. Entscheidungsbäume, Naive-Bayes-Klassifizierung, Support-Vector-Maschinen für Klassifizierungsprobleme, Random Forest für Klassifizierung und Regression, lineare Regression, Regression der kleinsten Quadrate, logistische Regression). In einer Ausführungsform verwenden das Netzwerk-Eingabe-Bild-Modell 152 und das Netzwerk-Eingabe-Klassifizierungsmodell 154 übertragbare Algorithmen und Modelle neuronaler Netze (z. B. Long Short Memory (LSTM), Deep Stacking Network (DSN), Deep Belief Network (DBN), Convolutional Neural Networks (CNN), zusammengesetzte hierarchische tiefe Modelle usw.), die mit überwachten oder unbeaufsichtigten Verfahren trainiert werden können. In der dargestellten Ausführungsform ist das Netzwerk-Eingabe-Klassifizierungsmodell 154 ein CNN mit einer gleichgerichteten linearen Einheit (rectified linear unit, RELU), das mit überwachten und/oder unüberwachten Trainingsverfahren trainiert wird. In dieser Ausführungsform verwendet das Programm 150 das Netzwerk-Eingabe-Klassifizierungsmodell 154, um eine Netzwerk-Eingabe als berechtigt, anomal oder als potenziellen falschen Positiven zu klassifizieren.
-
In der dargestellten Ausführungsform ist das Netzwerk-Eingabe-Bild-modell 152 ein generatives gegnerisches Netzwerk (GAN), das zwei gegnerische neuronale Netzwerke (d.h. Generator- und Diskriminator-Netzwerke) umfasst, die unter Verwendung von unüberwachten und überwachten Verfahren mit Bildern trainiert wurden, die ein beabsichtigtes Ausgabebild (d.h. ein erzeugtes Netzwerk-Eingabe-Bild) darstellen. In einer Ausführungsform trainiert das Programm 150 einen Diskriminator unter Verwendung bekannter (d.h. historischer) Daten, wie im Korpus 124 beschrieben. In einer anderen Ausführungsform initiiert das Programm 150 einen Generator unter Verwendung von zufälligen Eingabedaten, die aus einem vorbestimmten latenten Raum (z. B. einer multivariaten Normalverteilung) abgetastet wurden, und wertet anschließend die vom Generator synthetisierten Kandidaten aus. In dieser Ausführungsform wendet das Programm 150 Backpropagation auf beide Netzwerke an, so dass der Generator bessere Bilder erzeugt, während der Diskriminator mehr Fachkenntnisse bei der Markierung von synthetischen Bildern erlangt. In der dargestellten Ausführungsform ist der Generator ein dekonvolutionäres neuronales Netzwerk und der Diskriminator ein konvolutionäres neuronales Netzwerk. Die Erstellung, das Trainieren und die Nutzung des Netzwerk-Eingabe-Bild-Modells 152 und des Netzwerk-Eingabe-Klassifizierungsmodells 154 sind in 2 dargestellt und werden dort im Detail beschrieben.
-
Programm 150 ist ein Programm zum Erkennen und Abschwächen von Anomalien im Netzwerkverkehr. In verschiedenen Ausführungsformen kann das Programm 150 die folgenden Schritte realisieren: Abfangen eines oder mehrerer Netzwerk-Eingaben, die in ein internes Netzwerk eintreten oder dort vorhanden sind; Synthetisieren eines oder mehrerer Netzwerk-Eingabe-Bilder aus einem Zufalls-Rausch-Vektor, der aus einer Normalverteilung von textuell eingebetteten Netzwerk-Eingaben abgetastet wird, unter Verwendung eines trainierten erzeugenden gegnerischen Netzwerks; Klassifizieren eines oder mehrerer synthetisierter Netzwerk-Eingabe-Bilder durch Identifizieren von enthaltenen Objekten unter Verwendung eines trainierten neuronalen Faltungsnetzwerks mit gleichgerichteten linearen Einheiten, wobei die Objekte Muster, Sequenzen, Trends und Signaturen beinhalten; Vorhersage eines Sicherheitsprofils des einen oder der mehreren klassifizierten Netzwerk-Eingabe-Bilder und von damit verknüpften einen oder mehreren Netzwerk-Eingaben, wobei die Sicherheitsprofile einen Satz von Regeln und verknüpften Abschwächungsmaßnahmen, analogen historischen Netzwerk-Verkehr, eine Wahrscheinlichkeit einer Infektion, eine Wahrscheinlichkeit einer Signatur-Übereinstimmung mit historischen bösartigen Netzwerk-Eingaben und einen Schadensfaktor beinhalten; und Anwendung einer oder mehrerer Abschwächungsmaßnahmen auf Grundlage des vorhergesagten Sicherheitsprofils, das mit der einen oder den mehreren Netzwerk-Eingaben verknüpft ist. In der dargestellten Ausführungsform ist das Programm 150 ein eigenständiges Softwareprogramm. In einer anderen Ausführungsform kann die Funktionalität des Programms 150 oder eine beliebige Kombination von Programmen davon in ein einziges Softwareprogramm integriert werden. In einigen Ausführungsformen kann sich das Programm 150 auf separaten Computereinheiten befinden (nicht dargestellt), kann aber dennoch über das externe Netzwerk 102 und/oder das interne Netzwerk 104 kommunizieren. In verschiedenen Ausführungsformen befinden sich Client-Versionen des Programms 150 auf einem beliebigen anderen Computereinheit (nicht dargestellt) innerhalb der rechnergestützten Umgebung 100. Das Programm 150 ist in 2 dargestellt und wird in Bezug auf diese in weiteren Details beschrieben.
-
Die vorliegende Erfindung kann verschiedene zugängliche Datenquellen enthalten, wie z. B. die Datenbank 122 und den Korpus 124, die persönliche Speichereinheiten, Daten, Inhalte oder Informationen beinhalten können, die der Benutzer nicht verarbeitet haben möchte. Die Verarbeitung bezieht sich auf jede - automatisierte oder nicht automatisierte - Operation oder Satz von Operationen wie das Erfassen, Aufzeichnen, Organisieren, Strukturieren, Speichern, Anpassen, Ändern, Abrufen, Abfragen, Verwenden, Offenlegen durch Übermittlung, Verbreiten oder anderweitiges Verfügbarmachen, Kombinieren, Einschränken, Löschen oder Vernichten, die an personenbezogenen Daten durchgeführt werden. Das Programm 150 stellt eine Einwilligung in Kenntnis der Sachlage bereit, wobei der Benutzer über die Ansammlung von personenbezogenen Daten informiert wird und die Möglichkeit hat, der Verarbeitung personenbezogener Daten zuzustimmen oder sie abzulehnen. Die Einwilligung kann in verschiedenen Formen durchgeführt werden. Die Opt-in-Einwilligung kann den Benutzer darauf verpflichten, eine bestätigende Handlung durchzuführen, bevor die Verarbeitung personenbezogener Daten erfolgt. Alternativ dazu kann eine Opt-out-Einwilligung den Benutzer dazu verpflichten, eine bestätigende Handlung durchzuführen, um die Verarbeitung personenbezogener Daten zu verhindern, bevor die Daten verarbeitet werden. Das Programm 150 ermöglicht die berechtigte und sichere Verarbeitung von Benutzerinformationen, wie z. B. Informationen zur Verfolgung von Spuren, sowie von personenbezogenen Daten, wie z. B. persönlich identifizierende Informationen oder sensible persönliche Informationen. Das Programm 150 stellt Informationen bezüglich der personenbezogenen Daten und der Art (z. B. Art, Umfang, Zweck, Dauer usw.) der Verarbeitung bereit. Das Programm 150 stellt dem Benutzer Kopien der gespeicherten personenbezogenen Daten bereit. Das Programm 150 ermöglicht die Korrektur oder Vervollständigung von unrichtigen oder unvollständigen personenbezogenen Daten. Das Programm 150 ermöglicht die sofortige Löschung von personenbezogenen Daten.
-
In verschiedenen Ausführungsformen ist der Begriff „Netzwerk-Eingabe“ (d. h. Paket) in einem weiten Sinne zu verstehen und sollte alle Arten von Netzwerk-Kapselungen beinhalten. Nicht einschränkende Beispiele für Netzwerk-Eingaben beinhalten das Internet-Protokoll (IP), das Internet Control Message Protocol (ICMP), das User Datagram Protocol (UDP), das Transmission Control Protocol (TCP), verknüpfte Routen und Dienste. In einer weiteren Ausführungsform umfasst eine Netzwerk-Eingabe Steuerinformationen und eine Datennutzlast, wobei die Steuerinformationen Quelladresse, Zieladresse, Fehlercodes und Informationen zur Reihenfolge beinhalten. In einer Ausführungsform umfasst der Netzwerkverkehr eine oder mehrere Netzwerk-Eingaben oder Pakete.
-
2 ist ein Ablaufplan, der die Operationsschritte des Programms 150 zur Erkennung und Abschwächung von Anomalien im Netzwerkverkehr gemäß einer Ausführungsform der vorliegenden Erfindung darstellt.
-
Das Programm 150 fängt eine Netzwerk-Eingabe ab (Schritt 202). In einer Ausführungsform fungiert das Programm 150 als ein Inline-Proxy und/oder als ein transparenter Proxy, der zwischen dem Computereinheit und einem oder mehreren nachfolgenden Computereinheiten, Knoten, Zielnetzwerken und/oder Servern „sitzt“. In dieser Ausführungsform wird der gesamte Netzwerkverkehr, der in ein internes Netzwerk (z. B. das interne Netzwerk 104) ein- und ausgeht, über das Programm 150 geleitet (z. B. weitergeleitet, übertragen, usw.). In einer Ausführungsform initiiert das Programm 150 in Reaktion auf eine eingehende (z. B. externes Netzwerk zu internem Netzwerk) oder ausgehende Netzwerk-Eingabe (z. B. internes Netzwerk zu externem Netzwerk). In verschiedenen Ausführungsformen überwacht das Programm 150 ein gesamtes internes Netzwerk (z. B. Intranet, Unternehmensdomäne usw.) und/oder einen Subsatz eines Netzwerks (z. B. Subnetz, privater IP-Adressbereich, Arten von Netzwerkverkehr usw.). In einer anderen Ausführungsform verwaltet, manipuliert und/oder enthält das Programm 150 ein Netzwerk-Intrusion-Detection-System (NIDS), das sich an strategischen Punkten (z. B. Netzwerk-Engpässen, Edge-Einheiten, Routern, verwalteten Switches usw.) innerhalb eines Netzwerks befindet, um den Verkehr zu und von allen Einheiten im Netzwerk zu überwachen. In dieser Ausführungsform überwacht das Programm 150 den gesamten Netzwerkverkehr unter Verwendung eines Netzwerk-Intrusion-Detection-Systems, um eine Analyse von passierendem Netzwerkverkehr auf einem Subnetz durchzuführen, wobei das Netzwerk-Intrusion-Detection-System Pakete, Flüsse, Sitzungen, Paketnutzlasten, Verkehrsgruppierungen, Netzwerksitzungsübergänge und Übertragungen analysiert.
-
In einer Ausführungsform verwaltet, manipuliert oder enthält das Programm 150 ein Host-Intrusion-Detection-System (HIDS), das einen oder mehrere Hosts, Sub-Hosts, Anwendungen, Routen und/oder Anschlüsse überwacht. In verschiedenen Ausführungsformen überwacht das Programm 150 (z. B. IDS) ein- und ausgehende Pakete von einer Einheit in der Form von textuellen Logs und Systemereignissen unter Verwendung eines HIDS. In einer weiteren Ausführungsform ruft das Programm 150 eine Bibliothek von bösartigen Signaturen (z. B. historische oder bekannte Cyberangriffe) ab oder empfängt sie, die text-, grafik-, bild- und videobasierte Anomalie-Signaturen enthält. In einer Ausführungsform ermittelt das Programm 150 eine oder mehrere mit einem Host verknüpfte Netzwerk-Schnittstellen und überwacht gleichzeitig (z. B. unter Verwendung eines HIDS) das Betriebssystem, die Anwendung und/oder die Netzwerk-Schnittstelle auf die Initiierung und Erkennung einer Datenübertragung (d. h. Netzwerk-Eingabe) oder einer Netzwerk-Verbindungs-/Zugriffsanforderung. In dieser Ausführungsform wird der gesamte Netzwerkverkehr zum und von der Host-Computereinheit über das Programm 150 übertragen. In einer anderen Ausführungsform überwacht das Programm 150 die Aktivität der Anwendung, um eine Netzwerkübertragung und/oder -anforderung zu ermitteln. In einer Ausführungsform sperrt, markiert, quarantänisiert, leitet um, speichert und/oder loggt das Programm 150 als Reaktion auf das Abfangen einer oder mehrerer Netzwerk-Eingaben die eine oder die mehreren Netzwerk-Eingaben.
-
Das Programm 150 analysiert die abgefangene Netzwerk-Eingabe (Schritt 204). In einer Ausführungsform extrahiert das Programm 150 Netzwerk-Eingabe-Informationen aus einer oder mehreren abgefangenen Netzwerk-Eingaben, wie in Schritt 302 beschrieben. In einer anderen Ausführungsform erzeugt das Programm 150 Netzwerk-Eingabe-Bilder auf Grundlage der extrahierten Netzwerk-Eingabe-Informationen, wie in Schritt 304 beschrieben. In einer anderen Ausführungsform klassifiziert das Programm 150 erzeugte Netzwerk-Eingabe-Bilder, wie in Schritt 306 beschrieben. In einer anderen Ausführungsform sagt das Programm 150 ein Sicherheitsprofil der klassifizierten Netzwerk-Eingabe-Bilder vorher, wie in Schritt 308 beschrieben. In einer Ausführungsform gleicht das Programm 150 den überwachten Netzwerkverkehr mit einer Bibliothek von bösartigen Signaturen ab. Die Analysemethode wird ferner in dem Ablaufplan und den Schritten, die in 3 enthalten sind, beschrieben und ausführlich erläutert.
-
Das Programm 150 wendet eine Abschwächungsmaßnahme auf die analysierte Netzwerk-Eingabe an (Schritt 206). Das Programm 150 wendet eine oder mehrere Abschwächungsmaßnahmen auf eine oder mehrere analysierte Netzwerk-Eingaben an, wie in Schritt 204 beschrieben. In Reaktion auf eine abgeschlossene Analyse und berechnete Vorhersage, wie in 3 beschrieben, ermittelt das Programm 150 eine Abschwächungsmaßnahme, die auf ein oder mehrere Pakete auf Grundlage einer Vorhersage und einer oder mehrerer verknüpfter Wahrscheinlichkeiten anzuwenden ist. Zum Beispiel quarantänisiert das Programm 150 eine Netzwerk-Eingabe mit einer verknüpften hohen (z. B. > 95 %) Wahrscheinlichkeit einer bösartigen Netzwerk-Eingabe und einer verknüpften Aktivität/eines verknüpften Datenverkehrs. In einem anderen Beispiel wird eine Netzwerk-Eingabe mit einem niedrigen (z.B. < 40%) Schadens-/Risikofaktor und/oder Score (z.B. Verzögerungswert, erwartete Ausfallzeit, monetäre Kosten und Aufwendungen, usw.) vom Programm 150 geloggt oder markiert. In einer Ausführungsform wird das Programm 150 die eine oder mehrere Netzwerk-Eingaben auf Grundlage eines oder mehrerer Faktoren, Scores und/oder Wahrscheinlichkeiten, die in einer Netzwerk-Eingabevorhersage enthalten sind, übertragen, durchleiten, überwachen, ändern, aussetzen, markieren, quarantänisieren, umleiten, speichern und/oder loggen. Zum Beispiel quarantänisiert das Programm 150 eine Mehrzahl bösartiger Netzwerk-Eingaben, bis ein Administrator den Netzwerkverkehr genehmigt.
-
In einer Ausführungsform präsentiert und/oder passt das Programm 150 auf Grundlage einer oder mehrerer erzeugter Darstellungen, wie in Schritt 304 beschrieben, erzeugte Darstellungen in Abhängigkeit von den Ressourcen (z. B. Anzeigegröße, Auflösung usw.) einer verknüpften Anwendung (z. B. webbasierte Schnittstelle usw.) oder verknüpfter Computereinheiten (nicht abgebildet) an. In verschiedenen Ausführungsformen zeigt das Programm 150 eine oder mehrere erzeugte Darstellungen an, ändert sie oder präsentiert sie. In verschiedenen Ausführungsformen zeigt das Programm 150 ein oder mehrere erzeugte Bilder auf einem oder mehreren verknüpften Computern und Netzwerken an. In einer anderen Ausführungsform ändert, transformiert oder passt das Programm 150 ein oder mehrere stilistische Elemente einer Anzeige oder einer oder mehrerer angezeigter Bilddarstellungen an, einschließlich, aber nicht beschränkt auf Schriftart, Schriftgröße, Zeichenstil, Schriftfarbe, Hintergrundfarbe, Großschreibung, allgemeine Transparenz und relative Transparenz. In einigen Ausführungsformen überträgt das Programm 150 die erzeugte Darstellung an ein oder mehrere verknüpfte Computereinheiten unter Verwendung einer Mehrzahl von Übertragungsverfahren, die u. a. GUI-Eingabeaufforderung, Kurznachrichtendienst (SMS), E-Mail, Push-Benachrichtigung, automatisierten Telefonanruf, Text-to-Speech usw. beinhalten.
-
In einer Ausführungsform loggt das Programm 150 die eine oder mehreren analysierten Netzwerk-Eingaben in den Korpus 124. In einer beispielhaften Ausführungsform kann das Programm 150 das Feedback des Benutzers über eine grafische Benutzereinheit (nicht dargestellt) auf einer Computereinheit (nicht dargestellt) empfangen. Zum Beispiel kann der Benutzer, nachdem das Programm 150 die Netzwerk-Eingabe analysiert hat, auf der Benutzeroberfläche ein Feedback für das erzeugte Bild bereitstellen. In einer Ausführungsform kann das Feedback eine einfache positive oder negative Reaktion beinhalten. Beispiel: Wenn das Programm 150 eine oder mehrere Anomalien und die damit verknüpften erzeugten Bilder falsch identifiziert, kann der Benutzer ein negatives Feedback geben und das Bild korrigieren (z. B. vor der Übertragung). In einer Ausführungsform speist das Programm 150 das Feedback des Benutzers und das korrigierte Bild in das Netzwerk-Eingabe-Bild-Modell 152 ein und ermöglicht so die Einstellung des Modells. In einer anderen Ausführungsform kann das Programm 150 eine oder mehrere NLP-Techniken verwenden, um zu loggen, ob das Feedback des Benutzers positiv oder negativ ist. In verschiedenen Ausführungsformen kombiniert das Programm 150 den oben erläuterten Deep Learning-Prozess mit der herkömmlichen Analyse der Intrusion-Netzwerk-Signatur, um die Vorhersage des Sicherheitsprofils zu unterstützen. In dieser Ausführungsform aktualisiert das Programm 150 eine Netzwerk-Eingabe-Signatur, eine eindeutige Kennung für ein Netzwerk-Muster oder eine Reihenfolge von Netzwerk-Eingaben, die mit einer Netzwerk-Beschreibung verknüpft ist (z. B. bösartig, berechtigt usw.). In einer weiteren Ausführungsform wendet das Programm 150 die aktualisierten Netzwerk-Eingabe-Signaturen auf eine oder mehrere nachgeschaltete oder vorgeschaltete Netzwerk-Einheiten wie ein IDS an. In einer anderen Ausführungsform trainiert das Programm 150 eine Mehrzahl von verknüpften Modellen und Netzwerken mit der berechneten Vorhersage und der verknüpften Rückmeldung neu.
-
3 ist ein Ablaufplan, der die Operationsschritte eines Programms auf einem Servercomputer in der rechnergestützten Umgebung von 1 zur Analyse des Netzwerkverkehrs auf der Grundlage von Deep Learning-Bilderzeugung und -Analyse gemäß einer Ausführungsform der vorliegenden Erfindung darstellt; und
-
Programm 150 extrahiert Netzwerk-Eingabe-Informationen aus einer abgefangenen Netzwerk-Eingabe (Schritt 302). Das Programm 150 extrahiert Netzwerk-Eingabe-Informationen aus einer oder mehreren abgefangenen (z.B. gespeicherten, quarantänisierten, suspendierten, etc.) Netzwerk-Eingaben. In verschiedenen Ausführungsformen untersucht das Programm 150 eine Netzwerk-Eingabe oder eine Reihe von Paketen auf bestimmte Eigenschaften des Netzwerks, wie z. B. Übereinstimmungen auf Paket-Kopfzeilen- oder Datennutzlastinformationen. In einer Ausführungsform beinhalten die Netzwerk-Eingaben Informationen über IP-Adressfelder, das IP-Protokollfeld, IP-Optionen, IP-Fragmentparameter, IP-, TCP- und UDP-Prüfsummen, IP- und TCP-Portnummern, TCP-Markierungen, ICMP-Nachrichtenarten, das Time-to-Live-Feld (d.h. die Anzahl der Sekunden, die ein Paket auf einem Netzwerk überleben könnte) und das Protokollfeld (d.h. TCP, UDP, ICMP usw.). In einer anderen Ausführungsform erstellt das Programm 150 Netzwerk-Eingabe-Informationen aus der Nutzlast (z. B. missgebildete URLs) eines Pakets sowie aus den Paket-Kopfzeilen. In einer anderen Ausführungsform erstellt das Programm 150 Netzwerk-Eingabe-Informationen aus einem Alarm, einer falschen Markierung und/oder einem falschen Positiven, die von einer Konsole eines Netzwerk-Intrusion-Detection-Systems (IDPS) übertragen werden. In einer Ausführungsform verwendet das Programm 150 ein tiefes rekurrentes neuronales Netzwerk (recurrent neural network, RNN), um eine oder mehrere Instanzen und Sätze von Instanzen von textuellen Einbettungen der extrahierten Netzwerk-Eingaben zu erstellen. In dieser Ausführungsform enthalten die erstellten Einbettungen eindeutig vektorisierte visuelle Attribute der zugrunde liegenden Netzwerk-Eingabe-Informationen. In verschiedenen Ausführungsformen clustert, gruppiert und/oder verknüpft das Programm 150 eine Mehrzahl von Netzwerk-Eingaben, die mit einer Transaktion verknüpft sind (z. B. eine vollständige Datenübertragung, eine Netzwerk-Anforderung, eine Netzwerk-Reihenfolge usw.).
-
Das Programm 150 erzeugt Netzwerk-Eingabe-Bilder auf Grundlage der extrahierten Netzwerk-Eingabe-Informationen (Schritt 304). In einer Ausführungsform erstellt das Programm 150 ein erzeugendes gegnerisches Netzwerk (GAN) (z. B. Netzwerk-Eingabe-Bild-Modell 152), das ein Generator-Modell und ein Diskriminator-Modell umfasst. In dieser Ausführungsform trainiert das Programm 150 anfänglich die genannten Modelle unter Verwendung von überwachten Verfahren mit Bildern, die einen beabsichtigten Bildstil darstellen (z.B. Grafiken, Diagramme, Diagramme, etc.). In der dargestellten Ausführungsform ist der Generator ein neuronales Entfaltungsnetzwerk (deconvolutional neural network) und der Diskriminator ein neuronales Faltungsnetzwerk (convolutional neural network). In Reaktion auf die Erstellung und das Training des Bildmodells erzeugt oder wandelt das Programm 150 eine oder mehrere textuelle Einbettungen von Netzwerk-Eingabe-Informationen in Bilder (z. B. Diagramme) um, indem es eine GAN-Architektur und einen verknüpften GAN-Algorithmus, wie z. B. ein tiefes Faltungs-GAN, verwendet. In dieser Ausführungsform synthetisiert das Programm 150 ein oder mehrere Netzwerk-Eingabe-Bilder aus einem Zufalls-Rausch-Vektor, der aus einer Normalverteilung von Netzwerk-Eingabe-Informationen abgetastet wird. In einer Ausführungsform verwendet das Programm 150 unter Verwendung von Gleichung 1, wie folgt, einen Conditional-GAN (cGAN)-Algorithmus für einen Rauschverteilungs-Datensatz:
wobei P
data eine reale Datenverteilung ist, z eine Datenstichprobe ist, G
t ein Generator ist, D
t ein Diskriminator ist, B zwischen Texteinbettungen t1 und t2 interpoliert. In einer Ausführungsform verwendet das Programm 150 unter Verwendung von Gleichung 2 einen GAN-Algorithmus zum Umwandeln von Netzwerk-Eingabe-Informationen in ein Bildformat:
wobei {(v
n, t
n, y
n: n - 1, ..., N)} ein Trainingsdatensatz ist, Δ ein 0-1-Verlust ist, v
n Bilder sind, t
n entsprechende Textbeschreibungen sind, y
n Klassenkennzeichnungen sind und f
v und f
t Klassifikatoren sind.
-
In einer zusätzlichen Ausführungsform verwendet das Programm 150 ein GAN mit Re-Deskriptions-Techniken, um die Netzwerk-Eingabe-Bilder zu erzeugen. In dieser Ausführungsform wendet das Programm 150 eine Text-zu-Bild-Erzeugung durch Re-Deskription an und besteht aus einer semantischen Texteinbettung (d.h. Erzeugung von Einbettungen auf Wort- und Satzebene), global-lokalen kollaborativen Aufmerksamkeitsmodulen (global-local collaborative attentive modules) für kaskadierte Bilderzeugung (d.h. Erzeugung von Zielbildern von groben zu feinen Skalen, Einsatz von sowohl lokaler Wortaufmerksamkeit (local word attention) als auch globaler Satzaufmerksamkeit (global sentece attention), um die Vielfalt und semantische Übereinstimmung der erzeugten Bilder schrittweise zu verbessern) und einem semantischen Textregenerierungs- und Ausrichtungs-Modul (d.h, regeneriert die Textbeschreibung aus dem erzeugten Bild und gleicht sie dadurch semantisch mit einem gegebenen Text ab). In einer Ausführungsform gruppiert und/oder clustert das Programm 150 ein oder mehrere erzeugte Netzwerk-Eingabe-Bilder auf Grundlage der zeitlichen Situation, Verknüpfungen mit ähnlichen Netzwerk-Eingaben, historischen Bildern, historischen Netzwerk-Eingaben, usw.
-
Das Programm 150 klassifiziert erzeugte Netzwerk-Eingabe-Bilder (Schritt 306). In Reaktion auf die Erstellung und/oder Erzeugung von einem oder mehreren Netzwerk-Eingabe-Bildern für eine oder mehrere Netzwerk-Eingaben führt das Programm 150 die Verwendung von Objekt- und Bilderkennungstechniken durch, um den erzeugten Netzwerk-Bildern beschreibende Tags oder Kennzeichnungen zuzuweisen. In einer Ausführungsform verwendet das Programm 150 ein trainiertes CNN mit einer gleichgerichteten linearen Einheit (rectified linear unit, RELU) (d.h. eine stückweise lineare Funktion), wie z.B. das Netzwerk-Eingabe-Klassifizierungsmodell 154, wobei enthaltene Neuronen in einer Schicht nicht vollständig mit allen Neuronen in einer nachfolgenden Schicht verbunden sind. In einer Ausführungsform verwendet das Programm 150 das trainierte CNN mit RELU, um Objekte (z. B. Muster, Reihenfolgen, Trends, Signaturen usw.) in erzeugten Bildern und Diagrammen zu identifizieren. In dieser Ausführungsform klassifiziert das Programm 150 die erzeugten Bilder auf Grundlage der Identifizierung von enthaltenen Objekten, die in den Grafisches-Netzwerk-Informationen enthalten sind.
-
In Reaktion auf eine oder mehrere erzeugte Netzwerk-Bildklassifizierungen aggregiert und gruppiert das Programm 150 klassifizierte Bilder auf Grundlage von Netzwerkverkehr, Protokollen und extrahierten Netzwerk-Informationen. Dies bedeutet, dass das Programm 150 unter Verwendung von K-Means (KNN) Clustering und explorativer Datenanalyse (exploratory data analysis, EDA) Netzwerkmuster und -eigenschaften identifiziert und zusammenfasst. In dieser Ausführungsform verwendet das Programm 150 auf ein multivariates Boxplot angewandte Netzwerk-Informationen, die mit dem erzeugten Netzwerk-Bild verknüpft sind, mit trainierten Stichproben in Bezug auf X (d.h. falsche Warnungen/Positive) und Y (d.h. Anomalien). In einer weiteren Ausführungsform verwendet das Programm 150 Dimensions-Reduktions-Techniken auf einem beliebigen Dimensionsmodell (z. B. Hauptkomponentenanalyse (principal component analysis, PCA)) und wandelt einen Satz von Beobachtungen von wahrscheinlich korrelierten Variablen in einen Satz von bewerteten Variablen um. In einer Ausführungsform clustert das Programm 150 die erzeugten Netzwerk-Eingabe-Bilder auf Grundlage des Netzwerkflusses, des Paketflusses und der IP-Gruppierungen. In verschiedenen Ausführungsformen gruppiert das Programm 150 eine Mehrzahl von erzeugten Netzwerk-Eingabe-Bildern, die mit einer Reihenfolge von Netzwerk-Eingaben verknüpft sind. In einer Ausführungsform identifiziert das Programm 150 potenzielle Angriffe, die über eine Mehrzahl von Netzwerk-Eingaben und Verbindungen verteilt oder fragmentiert sind. In dieser Ausführungsform identifiziert das Programm 150 diese Angriffe durch überlappende erzeugte Bilder und vergleicht die erzeugten Bilder auf hohe Ähnlichkeit. In verschiedenen Ausführungsformen verwendet das Programm 150 KNN, um ein oder mehrere klassifizierte Netzwerk-Eingabe-Bilder zu gruppieren und einen oder mehrere Sätze von ähnlich klassifizierten Netzwerk-Eingaben zu erstellen.
-
Das Programm 150 sagt ein Sicherheitsprofil von klassifizierten Netzwerk-Eingabe-Bildern vorher (Schritt 308). Das Programm 150 sagt ein Sicherheitsprofil (z. B. einen Satz von Regeln und verknüpften Abschwächungsmaßnahmen, analogen Netzwerkverkehr, und historischen Verkehr und verknüpfte Maßnahmen) von einem oder mehreren klassifizierten Netzwerk-Eingabe-Bildern vorher, die mit einem oder mehreren abgefangenen Netzwerk-Eingaben verknüpft sind. In einer Ausführungsform beinhalten die Sicherheitsprofile eines oder mehrere der Folgenden: Wahrscheinlichkeit einer Infektion, Wahrscheinlichkeit einer Signatur-Übereinstimmung mit bösartigen Netzwerk-Eingaben oder-Paketen, ähnliche Netzwerk-Muster, Wahrscheinlichkeit von genehmigtem Verkehr und Schadensfaktor aufgrund erhöhter Netzwerk-Sperrung oder Netzwerk-Terminierung (z. B. Schaden durch Blockieren oder Zurückhalten von genehmigten oder nicht-bösartigen Netzwerk-Eingaben). Beispiel: Das Programm 150 sagt voraus, dass eine Reihenfolge von Netzwerk-Eingaben mit einer hohen Wahrscheinlichkeit eines TCP-Angriffs oder SYN-Floods verknüpft ist. In verschiedenen Ausführungsformen können die Vorhersagen TCP-Host-Sweeps, TCP-SYN-Floods, TCP-Port-Scans, TCP-Session-Hijacking, TCP-Verkehrsaufzeichnungen, TCP-Anwendungen, E-Mail-Angriffe, NetBIOS-Angriffe, Web-Angriffe, UDP-Port-Scans, UDP-Anwendungen, UDP-Verkehrsaufzeichnungen, verteilte DoS-Angriffe (DDoS), DNS-Angriffe, Loki-Angriffe, Authentifizierungsangriffe und RPC-Angriffe beinhalten. In dieser Ausführungsform verwendet das Programm 150 ein trainiertes CNN, um einen oder mehrere Sätze von Wahrscheinlichkeiten auszugeben, die die Likelihood angeben, dass das Netzwerk bösartig ist. In einer Ausführungsform verwendet das Programm 150 das trainierte CNN, um geclusterte und verarbeitete Netzwerk-Eingabe-Bilder mit historischem/bekanntem bösartigem oder genehmigtem Netzwerkverkehr zu vergleichen. In einer anderen Ausführungsform berechnet das Programm 150 mit dem trainierten CNN einen Ähnlichkeits-Score, der die Wahrscheinlichkeit der Ähnlichkeit zwischen einem erzeugten Netzwerk-Eingabe-Bild und einem historischen Netzwerk-Eingabe-Bild darstellt (z. B. ein Bild, das mit einer Anwendung, einem Host, einem Sicherheitsprofil usw. gekennzeichnet ist). In dieser Ausführungsform berechnet das Programm 150 einen Ähnlichkeits-Score, der die Wahrscheinlichkeit der Bildähnlichkeit zwischen dem synthetisierten Bild und einem entsprechenden historischen Netzwerk-Bild angibt. In einer weiteren Ausführungsform gewichtet das Programm 150 jedes der vorgenannten Ergebnisse im Verhältnis zu dem Grad des Themenvertrauens, das mit der in Schritt 306 beschriebenen Analyse und Klassifizierung verknüpft und berechnet wurde. In einer anderen Ausführungsform verwendet das Programm 150 einen oder mehrere Vorhersageschwellenwerte (d. h. einen p-Wert), z. B. 95 %, um eine Vorhersage für eine oder mehrere Netzwerk-Eingaben und verknüpfte erzeugte Bilder zu ermitteln. In einem Beispiel legt das Programm 150 einen Satz von Schwellenwerten fest, wobei ein Vorhersage- oder Wahrscheinlichkeitswert von weniger als 50 % Konfidenz (d. h. eine bösartige Vorhersage) berechtigten Verkehr darstellt, 51 % - 94 % sind falsche Positiver und über 95 % sind bösartiger Verkehr. In Reaktion darauf initiiert das Programm 150 eine oder mehrere Abschwächungsmaßnahmen oder -techniken, wie in Schritt 206 gemäß einer oder mehrerer Netzwerk-Eingabe-Vorhersagen beschrieben.
-
4 stellt ein beispielhaft erzeugtes Netzwerk-Bild dar, gemäß einer Ausführungsform der vorliegenden Erfindung. 4 enthält ein erzeugtes Netzwerk-Eingabe-Bild 402, das ein durch ein trainiertes GAN erzeugtes Netzwerk-Eingabe-Bild darstellt, wie in Schritt 304 beschrieben. Das erzeugte Netzwerk-Eingabe-Bild 402 ist ein beispielhaft erzeugtes Bild (z. B. ein Diagramm), das eine Mehrzahl von erzeugten Diagrammen darstellt, die mit einer oder mehreren abgefangenen Netzwerk-Eingaben verknüpft sind.
-
5 stellt einen beispielhaften Ablaufplan 500 dar, in dem beispielhafte Operationsschritte eines Programms gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt sind. Das Programm 150 initiiert in Reaktion auf das Erkennen, Empfangen und/oder Abfangen der Netzwerk-Eingabe 502 eine eingehende Anforderung für eine Dateiübertragung über das File Transfer Protocol (FTP), wie in Schritt 202 beschrieben. Das Programm 150 initiiert eine Analyse der abgefangenen Netzwerk-Eingabe 502, wie in Schritt 204 und in den Schritten 302-308 beschrieben. Programm 150 extrahiert eine Mehrzahl von Netzwerk-Informationen aus der Netzwerk-Eingabe 502 und gibt die extrahierten Netzwerk-Informationen in GAN 504 ein, ein GAN, das trainiert wurde, um Netzwerk-Eingabe-Bilder aus Netzwerk-Informationen zu erzeugen, wie in Schritt 302 beschrieben. Das Programm 150 verwendet in Reaktion darauf das GAN 504, um erzeugte Netzwerk-Bilder 506 zu erzeugen, die eines oder mehrere der erzeugten Netzwerk-Bilder darstellen, wie in Schritt 304 beschrieben. Ferner gruppiert oder clustert das Programm 150 erzeugte Netzwerk-Bilder 506 in gruppierte Netzwerk-Bilder 508. Das Programm 150 verwendet CONV+RELU 510, um einen oder mehrere Bereiche von Interesse zu identifizieren, die in den gruppierten Netzwerk-Bildern 508 enthalten sind, und erstellt/klassifiziert klassifizierte Netzwerk-Bilder 512 auf Grundlage von berechneten Ähnlichkeits-Scores, wie in Schritt 306 beschrieben. Das Programm 150 clustert dann ferner die klassifizierten Netzwerk-Bilder 512, wodurch geclusterte Netzwerk-Bilder 514 erstellt werden, während gleichzeitig eine Dimensions-Reduktion 516, beispielhaft eine Mehrzahl von Dimensions-Reduktions-Techniken, angewendet wird. Das Programm 150 verwendet die reduzierten geclusterten Netzwerk-Eingabe-Bilder 514, um die Netzwerk-Eingabe-Vorhersage 518 zu berechnen, die eine oder mehrere Vorhersagen (z.B. berechtigter, falscher, bösartiger Verkehr) und verknüpfte Wahrscheinlichkeiten enthält, wie in Schritt 308 beschrieben. Das Programm 150 verwendet die Netzwerk-Eingabe-Vorhersage 518, um eine oder mehrere Abschwächungsmaßnahmen zu ermitteln und anzuwenden, wie z. B. die berechtigte Netzwerk-Eingabe 520, ermöglicht die ununterbrochene Durchleitung der Netzwerk-Eingabe, und die bösartige Netzwerk-Eingabe 522, quarantänisiert die Netzwerk-Eingabe, wie in Schritt 206 beschrieben. In Reaktion auf eine angewandte Abschwächungsmaßnahme trainiert das Programm 150 ein oder mehrere verknüpfte Modelle und Netzwerke mit der Vorhersage und jeglichem Feedback neu. Außerdem wendet das Programm 150 die aktualisierte Netzwerk-Eingabe-Signatur 524 auf eine oder mehrere Netzwerk-Einheiten (network devices, IDS) an, um künftige falsche Positiver zu verringern und die Effizienz des Netzwerks zu verbessern.
-
6 stellt ein Blockschaltbild der Komponenten des Servercomputers 120 gemäß einer veranschaulichenden Ausführungsform der vorliegenden Erfindung dar. Es sollte gewürdigt werden, dass 6 lediglich eine Veranschaulichung einer Ausführungsform darstellt und keine Einschränkungen bezüglich der Umgebungen impliziert, in denen verschiedene Ausführungsformen realisiert werden können. Es können viele Änderungen an der dargestellten Umgebung vorgenommen werden.
-
Jeder Servercomputer 120 beinhaltet eine Kommunikations-Fabric 604, die die Kommunikation zwischen dem Cache 603, dem Arbeitsspeicher 602, dem dauerhaften Speicher 605, der Kommunikationseinheit 607 und der/den Eingabe/Ausgabe (E/A)-Schnittstelle(n) 606 bereitstellt. Die Kommunikations-Fabric 604 kann mit jeder Architektur realisiert werden, die für das Passieren von Daten und/oder Steuerinformationen zwischen Prozessoren (wie Mikroprozessoren, Kommunikations- und Netzwerkprozessoren usw.), Arbeitsspeichern, peripheren Einheiten und beliebigen anderen Hardwarekomponenten innerhalb eines Systems entwickelt wurde. Die Kommunikations-Fabric 604 kann zum Beispiel mit einem oder mehreren Bussen oder einem Crossbar-Switch realisiert werden.
-
Der Arbeitsspeicher 602 und der dauerhafte Speicher 605 sind computerlesbare Speichermedien. In dieser Ausführungsform beinhaltet der Arbeitsspeicher 602 einen Direktzugriffspeicher (RAM). Im Allgemeinen kann der Arbeitsspeicher 602 jedes geeignete flüchtige oder nichtflüchtige, computerlesbare Speichermedium beinhalten. Der Cache 603 ist ein schneller Arbeitsspeicher, der die Leistung des/der Computer-Prozessors/en 601 erhöht, indem er kürzlich zugegriffene Daten und Daten in der Nähe der zugegriffenen Daten aus dem Speicher 602 speichert.
-
Das Programm 150 kann im dauerhaften Speicher 605 und im Arbeitsspeicher 602 gespeichert werden, um von einem oder mehreren der jeweiligen Computer-Prozessoren 601 über den Cache 603 ausgeführt zu werden. In einer Ausführungsform beinhaltet der dauerhafte Speicher 605 ein magnetisches Festplattenlaufwerk. Alternativ oder zusätzlich zu einem magnetischen Festplattenlaufwerk kann der dauerhafte Speicher 605 eine Solid-State-Festplatte, eine Halbleiter-Speichereinheit, einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM), einen Flash-Speicher oder beliebiges anderes computerlesbares Speichermedium beinhalten, das Programmanweisungen oder digitale Informationen speichern kann.
-
Die vom dauerhaften Speicher 605 verwendeten Medien können auch austauschbar sein. Zum Beispiel kann eine austauschbare Festplatte für den dauerhaften Speicher 605 verwendet werden. Andere Beispiele beinhalten optische und magnetische Festplatten, Daumenlaufwerke und Smart Cards, die in ein Laufwerk eingelegt werden, um auf ein anderes computerlesbares Speichermedium übertragen zu werden, das ebenfalls Teil des dauerhaften Speichers 605 ist. Software und Daten 612 können im dauerhaften Speicher 605 für den Zugriff und/oder die Ausführung durch einen oder mehrere der entsprechenden Prozessoren 601 über den Cache 603 gespeichert werden.
-
Die Kommunikationseinheit 607 stellt in diesen Beispielen die Kommunikation mit anderen Systemen oder Einheiten zur Datenverarbeitung bereit. In diesen Beispielen beinhaltet die Kommunikationseinheit 607 eine oder mehrere Netzwerk-Schnittstellenkarten. Die Kommunikationseinheit 607 kann die Kommunikation unter Verwendung von physischen oder drahtlosen Links bereitstellen. Das Programm 150 kann über die Kommunikationseinheit 607 in den dauerhaften Speicher 605 heruntergeladen werden.
-
Die E/A-Schnittstelle(n) 606 ermöglicht/ermöglichen die Eingabe und Ausgabe von Daten mit anderen Einheiten, die mit dem Servercomputer 120 verbunden sein können. Zum Beispiel kann die E/A-Schnittstelle(n) 606 eine Verbindung zu externen Einheiten 608 bereitstellen, wie z. B. einer Tastatur, einem Keypad, einem Berührungsbildschirm und/oder einer anderen geeigneten Eingabeeinheit. Externe Einheiten 608 können auch tragbare, von Computern lesbare Speichermedien beinhalten, wie z. B. Daumenlaufwerke, tragbare optische oder magnetische Festplatten und Arbeitskarten. Software und Daten, die zur Durchführung von Ausführungsformen der vorliegenden Erfindung verwendet werden, z. B. das Programm 150, können auf solchen tragbaren, computerlesbaren Speichermedien gespeichert und über die E/A-Schnittstelle(n) 606 auf den dauerhaften Speicher 605 geladen werden. Die E/A-Schnittstelle(n) 606 ist (sind) auch mit einer Anzeige 609 verbunden.
-
Die Anzeige 609 stellt einen Mechanismus zur Anzeige von Daten für einen Benutzer bereit und kann zum Beispiel ein Computer-Monitor sein.
-
Die hier beschriebenen Programme werden basierend auf der Anwendung identifiziert, für welche sie in einer bestimmten Ausführungsform der Erfindung realisiert sind. Es sollte jedoch gewürdigt werden, dass jede bestimmte Programm-Nomenklatur hier lediglich der Einfachheit halber verwendet wird, und somit sollte die Erfindung nicht auf die Verwendung ausschließlich in einer bestimmten Anwendung, die durch eine solche Nomenklatur ermittelt und/oder impliziert wird, beschränkt werden.
-
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) beinhalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
-
Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder gehobene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. durch ein Glasfaserkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
-
Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
-
Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä., herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen, sowie Quantenprogrammiersprachen wie die „Q“-Programmiersprache Q#, die Quantenberechnungssprache (quantum computation language, QCL) oder ähnliche Programmiersprachen, niedere Programmiersprachen wie die Assemblersprache oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, im Feld programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
-
Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbarer Programmanweisungen ausgeführt werden können.
-
Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
-
Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
-
Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
-
Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zur Veranschaulichung vorgelegt, sollen aber weder erschöpfend noch auf die offenbarten Ausführungsformen beschränkt sein. Für den Fachmann sind viele Modifikationen und Variationen erkennbar, ohne vom Umfang und Sinngehalt der Erfindung abzuweichen. Die hier verwendete Terminologie wurde gewählt, um die Prinzipien der Ausführungsform, die praktische Anwendung oder die technische Verbesserung gegenüber den auf dem Markt befindlichen Technologien bestmöglich zu erklären oder um es dem Fachmann zu ermöglichen, die hier offenbaren Ausführungsformen zu verstehen.