DE102016205013A1 - Fingerabdruckerstellung und Vergleichen von Protokolldatenströmen - Google Patents

Fingerabdruckerstellung und Vergleichen von Protokolldatenströmen Download PDF

Info

Publication number
DE102016205013A1
DE102016205013A1 DE102016205013.3A DE102016205013A DE102016205013A1 DE 102016205013 A1 DE102016205013 A1 DE 102016205013A1 DE 102016205013 A DE102016205013 A DE 102016205013A DE 102016205013 A1 DE102016205013 A1 DE 102016205013A1
Authority
DE
Germany
Prior art keywords
log
stream
protocol data
device type
streams
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102016205013.3A
Other languages
English (en)
Inventor
Tien Hiong Lee
Konstantin Levinski
Harjoben Singh
Weng Sing Tang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/671,245 external-priority patent/US10489714B2/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102016205013A1 publication Critical patent/DE102016205013A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Abstract

Das Verfahren beinhaltet ein Identifizieren eines Protokolldatenstroms von einer ersten Einheit, wobei die erste Einheit von einem unbekannten Einheitentyp ist. Das Verfahren beinhaltet ferner ein Identifizieren von Merkmalen im Protokolldatenstrom von der ersten Einheit. Das Verfahren beinhaltet ferner ein Ermitteln einer Wahrscheinlichkeit, dass der Protokolldatenstrom von der ersten Einheit durch einen spezifischen Einheitentyp erzeugt wurde, auf Grundlage eines Vergleichens von Merkmalen des identifizierten Protokolldatenstroms von der ersten Einheit und von Merkmalen in Protokolldatenströmen von einer Mehrzahl von bekannten Einheitentypen.

Description

  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung betrifft allgemein Protokolldatenströme und genauer das Ermitteln eines Einheitentyps auf Grundlage des Protokolldatenstroms.
  • In der Datenverarbeitung handelt es sich bei einer Protokolldatei um eine Datei, die entweder Ereignisse, die in einem Betriebssystem oder anderer laufender Software auftreten, oder Nachrichten zwischen unterschiedlichen Benutzern einer Kommunikationssoftware aufzeichnet. Protokollieren stellt den Vorgang eines Führens eines Protokolls dar. Im einfachsten Fall werden Meldungen durch eine Datenverarbeitungseinheit in eine einzige Protokolldatei geschrieben.
  • Ereignisprotokolle halten Ereignisse fest, die beim Ausführen eines Systems stattfinden, um eine Auditspur bereitzustellen, die verwendet werden kann, um die Aktivität des Systems zu verstehen und Probleme zu diagnostizieren. Ereignisprotokolle sind wesentlich, um die Aktivitäten komplexer Systeme zu verstehen, insbesondere im Falle von Anwendungen mit wenig Benutzerinteraktion, wie beispielsweise einer Serveranwendung.
  • Die meisten Datenbanksysteme unterhalten eine Art von Transaktionsprotokoll, die nicht hauptsächlich als eine Auditspur für eine spätere Analyse gedacht sind und nicht als durch Menschen lesbar gedacht sind. Die Transaktionsprotokolle halten Änderungen an gespeicherten Daten fest, um es den Datenbanken zu erlauben, sich von Abstürzen oder anderen Datenfehlern zu erholen, und halten die gespeicherten Daten in einem konsistenten Zustand. Somit weisen Datenbanksysteme üblicherweise sowohl allgemeine Ereignisprotokolle als auch Transaktionsprotokolle auf.
  • Es ist aus US 8 589 436 B2 von Srinivasan et al., worin Techniken zum Erkennen von Mustern in einem oder mehreren Datenströmen gelehrt werden, bekannt, ein auf regulären Ausdrücken beruhendes Vergleichen von Mustern in Datenströmen durchzuführen. Ein zu erkennendes Muster kann unter Verwendung eines regulären Ausdrucks angegeben werden. In einem Datenstrom empfangene Ereignisse werden während der Laufzeit verarbeitet, um Vorkommen des angegebenen Musters im Datenstrom zu erkennen.
  • KURZDARSTELLUNG
  • Ausführungsformen der vorliegenden Erfindung offenbaren ein Verfahren für eine Einheitentypermittlung. In einer Ausführungsform gemäß der vorliegenden Erfindung beinhaltet das computerimplementierte Verfahren ein Identifizieren eines Protokolldatenstroms von einer ersten Einheit durch einen oder mehrere Computerprozessoren, wobei die erste Einheit von einem unbekannten Einheitentyp ist. Das Verfahren beinhaltet ferner ein Identifizieren von Merkmalen im Protokolldatenstrom von der ersten Einheit durch einen oder mehrere Computerprozessoren. Das Verfahren beinhaltet ferner ein Ermitteln einer Wahrscheinlichkeit, dass der Protokolldatenstrom von der ersten Einheit durch einen spezifischen Einheitentyp erzeugt wurde, auf Grundlage eines Vergleichens von Merkmalen des identifizierten Protokolldatenstroms von der ersten Einheit und von Merkmalen in Protokolldatenströmen von einer Mehrzahl von bekannten Einheitentypen durch einen oder mehrere Computerprozessoren.
  • In einer weiteren Ausführungsform enthält ein Computerprogrammprodukt Programmanweisungen, um einen Protokolldatenstrom von einer ersten Einheit zu identifizieren, wobei die erste Einheit von einem unbekannten Einheitentyp ist. Das Computerprogrammprodukt enthält Programmanweisungen, um Merkmale im Protokolldatenstrom von der ersten Einheit zu identifizieren. Das Computerprogrammprodukt enthält Programmanweisungen, um eine Wahrscheinlichkeit, dass der Protokolldatenstrom von der ersten Einheit durch einen spezifischen Einheitentyp erzeugt wurde, auf Grundlage eines Vergleichens von Merkmalen des identifizierten Protokolldatenstroms von der ersten Einheit und von Merkmalen in Protokolldatenströmen von einer Mehrzahl von bekannten Einheitentypen durch einen oder mehrere Computerprozessoren zu ermitteln.
  • In einer weiteren Ausführungsform enthält ein Computersystem Programmanweisungen, um einen Protokolldatenstrom von einer ersten Einheit zu identifizieren, wobei die erste Einheit von einem unbekannten Einheitentyp ist. Das Computersystem enthält Programmanweisungen, um Merkmale im Protokolldatenstrom von der ersten Einheit zu identifizieren. Das Computersystem enthält Programmanweisungen, um eine Wahrscheinlichkeit, dass der Protokolldatenstrom von der ersten Einheit durch einen spezifischen Einheitentyp erzeugt wurde, auf Grundlage eines Vergleichens von Merkmalen des identifizierten Protokolldatenstroms von der ersten Einheit und von Merkmalen in Protokolldatenströmen von einer Mehrzahl von bekannten Einheitentypen durch einen oder mehrere Computerprozessoren zu ermitteln.
  • In noch einer weiteren Ausführungsform beinhaltet das Verfahren ein Identifizieren eines oder mehrerer Protokolldatenströme von Einheiten bekannter Einheitentypen durch einen oder mehrere Computerprozessoren. Das Verfahren beinhaltet ein Identifizieren eines oder mehrerer Merkmale in dem einen oder den mehreren Protokolldatenströmen von Einheiten bekannter Einheitentypen durch einen oder mehrere Computerprozessoren. Das Verfahren beinhaltet ein Erzeugen einer Matrix zum Ermitteln der Wahrscheinlichkeit, dass ein Protokolldatenstrom von einem unbekannten Einheitentyp einem Protokolldatenstrom von einem bekannten Einheitentyp entspricht, auf Grundlage von einem oder mehreren Merkmalen in dem einen oder den mehreren Protokolldatenströmen von den bekannten Einheitentypen durch einen oder mehrere Computerprozessoren.
  • In noch einer weiteren Ausführungsform, bei der eine Wahrscheinlichkeit ermittelt wird, dass der Protokolldatenstrom von der ersten Einheit durch einen spezifischen Einheitentyp erzeugt wurde, beinhaltet das Verfahren, dass ein Ermitteln der Wahrscheinlichkeit, dass der Protokolldatenstrom von der ersten Einheit durch einen spezifischen Einheitentyp erzeugt wurde, durch einen oder mehrere Computerprozessoren auf der erzeugten Matrix von gewichteten Protokolldatenstrommerkmalen beruht.
  • In noch weiteren Ausführungsformen, bei denen Merkmale im Protokolldatenstrom von der ersten Einheit identifiziert werden, beinhaltet das Verfahren ein Identifizieren eines oder mehrerer Elemente im Protokolldatenstrom durch einen oder mehrere Computerprozessoren, wobei das eine oder die mehreren Elemente funktionelle Teile des Protokolldatenstroms beinhalten. Das Verfahren beinhaltet, durch einen oder mehrere Computerprozessoren mindestens eines zu identifizieren von: einer oder mehreren Variablen im Protokolldatenstrom, einer Position von Elementen im Protokolldatenstrom, einem Abstand zwischen Elementen im Protokolldatenstrom und einem Muster von Merkmalen im Protokolldatenstrom.
  • In noch einer weiteren Ausführungsform, bei der eine Matrix erzeugt wird, beinhaltet das Verfahren ferner ein Gewichten eines oder mehrerer identifizierter Merkmale im Protokolldatenstrom von einem unbekannten Clienteinheitentyp auf Grundlage einer Gemeinsamkeit identifizierter Merkmale im Protokolldatenstrom von einem unbekannten Clienteinheitentyp und eines oder mehrerer Merkmale des einen oder der mehreren Protokolldatenströme von den bekannten Clienteinheitentypen durch einen oder mehrere Computerprozessoren. Das Verfahren beinhaltet ferner ein Erzeugen einer Matrix, die ein oder mehrere gewichtete Merkmale von Protokolldatenströmen von bekannten Einheitentypen und ein oder mehrere gewichtete Merkmale eines Protokolldatenstroms von einem ersten Einheitentyp aufweist, durch einen oder mehrere Computerprozessoren.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 zeigt ein funktionelles Blockschaubild, das eine verteilte Datenverarbeitungsumgebung gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
  • 2 zeigt einen Ablaufplan, der Operationsschritte eines Programms zum Erzeugen einer Protokoll-Fingerabdruck-Zuordnungsdatenbank innerhalb der verteilten Verarbeitungsumgebung von 1 gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
  • 3 zeigt einen Ablaufplan, der Operationsschritte eines Programms zum Ermitteln eines Einheitentyps auf Grundlage eines Protokolldatenstroms innerhalb der verteilten Verarbeitungsumgebung von 1 gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
  • 4 stellt ein generisches Einheitenprotokoll gemäß einer Ausführungsform der vorliegenden Erfindung dar;
  • 5 stellt ein generisches Einheitenprotokoll, das tokenisiert wurde, gemäß einer Ausführungsform der vorliegenden Erfindung dar;
  • 6 stellt Charakteristika aus einem tokenisierten Protokoll gemäß einer Ausführungsform der vorliegenden Erfindung dar;
  • 7 stellt eine anfängliche Fingerabdruck-Zuordnungsmatrix, die aus Charakteristika eines tokenisierten Einheitenprotokolls erzeugt wurde, gemäß einer Ausführungsform der vorliegenden Erfindung dar;
  • 8 stellt einen beispielhaften Protokollmerkmal-Gewichtungsvektor gemäß einer Ausführungsform der vorliegenden Erfindung dar;
  • 9 stellt eine normierte Fingerabdruck-Zuordnungsmatrix, die aus Charakteristika tokenisierter Einheitenprotokolle erzeugt wurde, gemäß einer Ausführungsform der vorliegenden Erfindung dar;
  • 10 stellt eine beispielhafte Gleichung zum Ermitteln der Wahrscheinlichkeit eines Einheitentyps unter Verwendung von Protokollvektor-Gewichtungsvektoren gemäß einer Ausführungsform der vorliegenden Erfindung dar;
  • 11 stellt eine beispielhafte angewandte Version einer Gleichung zum Ermitteln der Wahrscheinlichkeit eines Einheitentyps unter Verwendung von Protokollmerkmal-Gewichtungsvektoren gemäß einer Ausführungsform der vorliegenden Erfindung dar;
  • 12 stellt ein beispielhaftes Schaubild, das die Beziehung von Einheitenmerkmalen zueinander zeigt, gemäß einer Ausführungsform der vorliegenden Erfindung dar;
  • 13 stellt ein Euler-Diagramm, das die Wahrscheinlichkeit zeigt, dass ein Protokolldatenstrom von einer bestimmten Einheit ausging, gemäß Ausführungsformen der vorliegenden Erfindung dar; und
  • 14 stellt ein Blockschaubild von Komponenten einer Clienteinheit, eines Servers und eines Webservers von 1 gemäß einer Ausführungsform der vorliegenden Erfindung dar.
  • DETAILLIERTE BESCHREIBUNG
  • In Ausführungsformen der vorliegenden Erfindung wird anerkannt, dass es wünschenswert sein kann, den Typ einer Einheit zu ermitteln, die einen Protokolldatenstrom erzeugt. Sobald ein Einheitentyp aus einem Protokolldatenstrom ermittelt wurde, können weitere Tests ausgeführt werden, um eine tatsächliche Einheit zu ermitteln, die den Protokolldatenstrom erzeugt hat. Ausführungsformen der vorliegenden Erfindung erkennen an, dass die Verwendung von Parsern zur Identifizierung von Protokolldatenströmen eine große Menge an Ressourcen erfordert, da die Menge an Protokolldatenströmen ansteigt.
  • Eine Implementierung von Ausführungsformen der Erfindung kann eine Vielfalt von Formen annehmen, und beispielhafte Implementierungsdetails werden nachfolgend unter Bezugnahme auf die Figuren erläutert.
  • 1 zeigt ein funktionelles Blockschaubild, das eine allgemein mit 100 bezeichnete verteilte Datenverarbeitungsumgebung gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. 1 stellt nur eine Veranschaulichung einer einzigen Implementierung bereit und impliziert keine Einschränkungen im Hinblick auf die Umgebungen, in denen unterschiedliche Ausführungsformen implementiert werden können. Viele Modifikationen können durch den Fachmann an der dargestellten Umgebung vorgenommen werden, ohne vom Umfang der Erfindung, wie sie in den Ansprüchen vorgetragen ist, abzuweichen.
  • Die verteilte Datenverarbeitungsumgebung 100 enthält einen Server 102 und Clienteinheiten 104, 106 und 108, die alle über ein Netzwerk 112 miteinander verbunden sind. Das Netzwerk 112 steht zum Beispiel für ein Telekommunikationsnetzwerk, ein lokales Netzwerk (local area network (LAN)), ein Weitverkehrsnetzwerk (wide area network (WAN)), wie beispielsweise das Internet, oder eine Kombination der drei und beinhaltet kabelgebundene, kabellose und/oder Lichtwellenleiterverbindungen. Das Netzwerk 112 beinhaltet ein oder mehrere kabelgebundene und/oder kabellose Netzwerke, die in der Lage sind, Daten-, Sprach- und/oder Videosignale zu empfangen und zu übermitteln, einschließlich Multimediasignale, die Sprach-, Daten- und Videoinformationen beinhalten.
  • In der dargestellten Umgebung handelt es sich bei dem Server 102 um eines oder mehrere von einem Verwaltungsserver, einem Webserver oder einer beliebigen anderen elektronischen Einheit oder einem beliebigen anderen Datenverarbeitungssystem, die oder das in der Lage ist, Daten zu empfangen, zu analysieren und zu senden. In dieser Ausführungsform empfängt der Server 102 einen Protokolldatenstrom und ermittelt die Wahrscheinlichkeit eines Einheitentyps, der den Protokolldatenstrom erzeugt. In weiteren Ausführungsformen steht der Server 112 für ein Server-Datenverarbeitungssystem, das mehrere Computer als ein Serversystem verwendet, wie beispielsweise in einer Cloud-Computing-Umgebung. In einer weiteren Ausführungsform steht der Server 102 für einen Laptop-Computer, einen Tablet-Computer, einen Netbook-Computer, einen Personal Computer (PC), einen Desktop-Computer, einen persönlichen digitalen Assistenten (PDA), ein Smartphone oder eine beliebige programmierbare elektronische Einheit, die in der Lage ist, über das Netzwerk 112 mit einer Clienteinheit Daten auszutauschen. In einer weiteren Ausführungsform steht der Server 112 für ein Datenverarbeitungssystem, das in Gruppen zusammengefasste Computer (clustered computers) und Komponenten verwendet, um als ein einziger Bestand von nahtlosen Ressourcen zu handeln. Der Server 102 kann Komponenten beinhalten, wie sie in Hinblick auf 14 gemäß Ausführungsformen der vorliegenden Erfindung in weiteren Details abgebildet und beschrieben sind. Der Server 102 beinhaltet ein Protokollprogramm 120 und eine Datenbank 140.
  • In der abgebildeten verteilten Datenverarbeitungsumgebung 100 befindet sich das Protokollprogramm 120 auf dem Server 102 und ermittelt die Wahrscheinlichkeit eines Einheitentyps auf Grundlage eines empfangenen Protokolldatenstroms. In verschiedenen Ausführungsformen empfängt das Protokollprogramm 120 Informationen von einer Clienteinheit (z.B. der Clienteinheit 104), die einen Protokolldatenstrom enthalten, und das Protokollprogramm 120 ermittelt Wahrscheinlichkeiten eines Einheitentyps für die Clienteinheit, die den Protokolldatenstrom erzeugt hat. In einem Beispiel kann das Protokollprogramm 120 feststellen, dass Charakteristika in einem empfangenen Protokolldatenstrom eine hohe Wahrscheinlichkeit erzeugen, dass der Protokolldatenstrom von einem Mobiltelefon ausging. In einem weiteren Beispiel kann das Protokollprogramm 120 eine Wahrscheinlichkeit ermitteln, dass ein Protokolldatenstrom von einem spezifischen Typ von Einheit ausging, indem Wahrscheinlichkeiten für mehrere Einheitentypen (z.B. Mobiltelefon, Laptop, Tablet, Desktop usw.) angezeigt werden. In manchen Ausführungsformen kann das Protokollprogramm 120 Wahrscheinlichkeiten für Einheitentypen auf Grundlage von Echtzeit-Protokolldatenströmen oder gespeicherten Protokolldatenströmen ermitteln. Das Protokollprogramm 120 ist in Hinblick auf 2 und 3 in weiteren Details abgebildet und beschrieben.
  • In der abgebildeten Ausführungsform befindet sich die Datenbank 140 auf dem Server 102. In einer weiteren Ausführungsform kann sich die Datenbank 140 anderswo in der verteilten Datenverarbeitungsumgebung 100 befinden, wie beispielsweise innerhalb des Servers 102, der Clienteinheiten 104, 106, 108 oder unabhängig als eine eigenständige Datenbank, die in der Lage ist, über das Netzwerk 112 mit dem Server 102 und/oder den Clienteinheiten 104, 106 und 108 Daten auszutauschen. Bei einer Datenbank handelt es sich um eine organisierte Ansammlung von Daten. Die Datenbank 140 ist mit einem beliebigen Typ von Datenspeichereinheit implementiert, die in der Lage ist, Daten zu speichern, auf die durch den Server 102 und die Clienteinheiten 104, 106 und 108 zugegriffen wird und die durch diese verwendet werden, wie beispielsweise einem Datenbankserver, einem Festplattenlaufwerk oder einem Flash-Speicher. In weiteren Ausführungsformen steht die Datenbank 140 für mehrere Datenspeichereinheiten innerhalb des Servers 102. Die Datenbank 140 speichert Informationen, wie beispielsweise Trainingsprotokolle, Protokolldatenströme, vordefinierte Token, Protokollcharakteristika, eine anfängliche Fingerabdruck-Zuordnungsmatrix, eine normierte Fingerabdruck-Zuordnungsmatrix, Einheitentypen-Fingerabdrücke, usw. Die Datenbank 140 enthält ein Token 142, einen Trainingsprotokolldatenstrom 144, eine anfängliche Fingerabdruck-Zuordnungsmatrix 146, eine normierte Fingerabdruck-Zuordnungsmatrix 148 und einen neuen Protokolldatenstrom 150.
  • In der abgebildeten verteilten Datenverarbeitungsumgebung 100 befindet sich das Token 142 auf der Datenbank 140 und ist ein Token-Term, der mit einem Element, einer Zeichenkette oder einem numerischen Wert eines Protokolldatenstroms korreliert ist. In verschiedenen Ausführungsformen können Token durch Administratoren des Protokollprogramms 120 voreingestellt werden, die Elemente in einem Protokolldatenstrom ersetzen. Der Trainingsprotokolldatenstrom 144 befindet sich ebenso auf der Datenbank 140 und ist ein Protokolldatenstrom, den das Protokollprogramm 120 verwendet, um Fingerabdrücke für Einheitentypen zu erzeugen. Die anfängliche Fingerabdruck-Zuordnungsmatrix 146 befindet sich auf der Datenbank 140 und wird verwendet, um Protokolldatenstrom-Fingerabdrücke einzugeben. Die normierte Fingerabdruck-Zuordnungsmatrix 148 befindet sich auf der Datenbank 140 und ist eine Fingerabdruck-Zuordnungsmatrix, in die das Protokollprogramm 120 bereits all die Fingerabdruckinformationen in die Matrix eingegeben hat.
  • In der abgebildeten Ausführungsform sind die Clienteinheiten 104, 106 und 108 eines oder mehrere von einem Desktop-Computer, einem Laptop-Computer, einem Tablet-Computer, einem spezialisierten Computerserver, einem Smartphone oder irgendeiner programmierbaren elektronischen Einheit, die in der Lage ist, mit dem Server 102 über das Netzwerk 112 und mit verschiedenen Komponenten und Einheiten innerhalb der verteilten Datenverarbeitungsumgebung 100 Daten auszutauschen. Im Allgemeinen stehen die Clienteinheiten 104, 106 und 108 für jede programmierbare elektronische Einheit oder Kombination programmierbarer elektronischer Einheiten, die in der Lage ist oder sind, maschinenlesbare Programmanweisungen auszuführen und mit anderen Datenverarbeitungseinheiten über ein Netzwerk, wie beispielsweise das Netzwerk 112, Daten auszutauschen. Die Clienteinheiten 104, 106 und 108 können Komponenten beinhalten, wie sie in Hinblick auf 14 gemäß Ausführungsformen der vorliegenden Erfindung in weiteren Details abgebildet und beschrieben sind. In einer Ausführungsform sendet die Clienteinheit 104 über das Netzwerk 112 einen Protokolldatenstrom an den Server 102 und/oder das Protokollprogramm 120.
  • 2 zeigt gemäß einer Ausführungsform der vorliegenden Erfindung einen Ablaufplan, der Operationsschritte eines Programms 200 darstellt, bei dem es sich um eine Funktion des Protokollprogramms 120 handelt. Das Programm 200 arbeitet auf dem Server 102 und erzeugt eine Protokoll-Fingerabdruck-Zuordnungsdatenbank. In verschiedenen Ausführungsformen können Administratoren des Protokollprogramms 120 Trainingsprotokolle zu einer Datenbank hinzufügen, um eine Fingerabdruckzuordnung, wie beispielsweise die normierte Fingerabdruck-Zuordnungsmatrix 148, zu verbessern oder zu erzeugen. In manchen Ausführungsformen kann das Programm 200 mit den Operationsschritten von 2 beginnen, nachdem ein neues Trainingsprotokoll zu einer Datenbank hinzugefügt wurde. In manchen Ausführungsformen können die Operationsschritte von 2 beginnen, nachdem ein Programm 300 eine geringe Wahrscheinlichkeit einer Übereinstimmung (z.B. 1 %) für einen Protokolldatenstrom gefunden hat. In einer Ausführungsform kann das Programm 200 mit den Operationsschritten von 2 zu voreingestellten Zeiten beginnen.
  • Das Programm 200 empfängt einen Trainingsprotokolldatenstrom (Schritt 202). In verschiedenen Ausführungsformen kann das Programm 200 einen Trainingsprotokolldatenstrom von einem Administrator des Protokollprogramms 120 empfangen. In einem Beispiel gibt ein Administrator des Protokollprogramms 120 einen Trainingsprotokolldatenstrom (z.B. den Trainingsprotokolldatenstrom 144) in das Programm 200 ein. In einem weiteren Beispiel gibt ein Administrator des Protokollprogramms 120 einen Trainingsprotokolldatenstrom in eine Datenbank (z.B. die Datenbank 140) ein. In manchen Ausführungsformen kann das Programm 200 einen Trainingsprotokolldatenstrom von einer Clienteinheit, wie beispielsweise der Clienteinheit 104, empfangen. In noch weiteren Ausführungsformen kann das Programm 200 einen Trainingsprotokolldatenstrom vom Programm 300 empfangen, nachdem das Programm 300 festgestellt hat, dass die Wahrscheinlichkeit für eine Übereinstimmung eines Protokolldatenstroms mit einem bekannten Typ von Einheit gering ist.
  • Das Programm 200 ersetzt Elemente im Trainingseinheitenprotokoll durch vordefinierte Elemente (Schritt 204). Das Programm 200 ersetzt Elemente in einem Trainingsprotokolldatenstrom (z.B. dem Trainingsprotokolldatenstrom 144) durch vordefinierte Elemente, die auch als Token (z.B. das Token 142) bekannt sind, die mit den ursprünglichen Elementen im Trainingsprotokolldatenstrom korreliert sind. Jedes Token steht für eine Zeichenkette, einen numerischen Wert und/oder ein Element des Trainingseinheitenprotokolls. 4 stellt einen Protokolldatenstrom dar, für den keine Elemente innerhalb des Einheitenprotokolls durch Token ersetzt wurden. 5 stellt denselben Protokolldatenstrom dar, nachdem das Programm 200 die Elemente im Trainingseinheitenprotokoll durch vordefinierte Elemente ersetzt hat, die auch als Token bekannt sind. Das Ersetzen von Elementen in einem Protokolldatenstrom durch vordefinierte Elemente ist als Tokenisieren eines Protokolldatenstroms bekannt. In verschiedenen Ausführungsformen sind die Token durch Administratoren so voreingestellt, dass sie mit spezifischen Elementen, numerischen Werten und/oder Zeichenketten korreliert sind.
  • In manchen Ausführungsformen können Protokolldatenströme eine signifikante Menge von Computernamen, Zeitstempeln, Codes usw. enthalten, die nicht im Voraus bekannt sind. Ein Prozessor für natürliche Sprache ist unter Umständen nicht in der Lage, bestimmte Symbole zu erkennen. Das Programm 200 ersetzt die Elemente durch Token, die leicht verständlich sind. In einem Beispiel ist jede Zeile ein separates unabhängiges Ereignis im Datenstrom. Zu Beginn einer Zeile im Datenstrom erzeugt das Programm 200 ein [Zeilenstart]-Token und am Ende – [Zeilenende]. Dann spaltet das Programm 200 die Zeile an Leerzeichen und Satzzeichen auf und erzeugt entsprechende Token für jeden Teil in der Sequenz. Jeder Teil der Zeichenkette, der einer Konstanten im Code der Zeichenkette entspricht, ist sehr nützlich für die Erkennung, da es sich bei der Zeichenkette um die Ausgabe eines Programms handelt. Das Programm 200 erzeugt Token aus Symbolen wie „{“, „[“, „:“ und den Kombinationen der Symbole. In manchen Ausführungsformen ändert das Programm 200 Teile des Protokolldatenstroms, wie beispielsweise „Internet Protocol“(IP)-Adressen und Zeitstempel. In einem Beispiel erzeugt das Programm 200 ein spezielles Token für eine an einer spezifischen Position angetroffene Zahl (z.B. ein [Zahl]-Token), da es für Zahlen unwahrscheinlich ist, dass sie in späteren Schritten miteinander übereinstimmen. Gleichmaßen erzeugt das Programm 200 anstatt einer IP-Adresse im Datenstrom ein [IP_Adresse]-Token sowie ein [Monat]-Token. Das Ersetzen von Elementen durch Token ist vorteilhaft, weil es die Erzeugung gleicher Merkmale erlaubt.
  • Das Programm 200 identifiziert Protokollcharakteristika (Schritt 206). In manchen Ausführungsformen identifiziert das Programm 200 Protokollcharakteristika aus dem tokenisierten Protokolldatenstrom (z.B. dem Trainingsprotokolldatenstrom 144, nachdem der Trainingsprotokolldatenstrom 144 tokenisiert wurde). In einem Beispiel identifiziert das Programm 200 Token-Positionen, eine Beziehung von Token zueinander, die Anzahl von Token, die Typen von Token usw. 6 zeigt ein Beispiel von Charakteristika, die das Programm 200 aus der ersten Zeile des tokenisierten Protokolldatenstroms in 5 identifiziert. In manchen Ausführungsformen kann das Programm 200 tokenisierte Charakteristika, wie beispielsweise Datum, Uhrzeit, Paar, Positionsdaten, IP-Adresse, Anschlussnummer usw., identifizieren. In einem Beispiel kann ein Algorithmus für das Programm 200 Variablen identifizieren, wie beispielsweise Datum und Uhrzeit, Token, Token-Position, relativer Abstand zwischen Token usw. In verschiedenen Ausführungsformen wiederholt das Programm 200 den Prozess zum Identifizieren von Variablen für jede Zeile in einem Protokolldatenstrom, um eine Tabelle, wie beispielsweise 6, für jede Zeile des Protokolldatenstroms zu erzeugen. In zusätzlichen Ausführungsformen wiederholt das Programm 200 Schritt 206 für alle Einheitenprotokolle. Das Identifizieren der Protokollcharakteristika ist vorteilhaft, weil die Charakteristika verwendet werden können, um eine Fingerabdruckmatrix zu erzeugen.
  • Das Programm 200 erzeugt für Trainingseinheitenprotokolle eine anfängliche Fingerabdruck-Zuordnungsmatrix (Schritt 208). In verschiedenen Ausführungsformen erzeugt das Programm 200 eine Fingerabdruck-Zuordnungsmatrix für Trainingseinheitenprotokolle für jedes Trainingseinheitenprotokoll, das von einer bekannten Einheit kommt. Zum Beispiel ist bekannt, dass von einer spezifischen Einheit zehn Trainingseinheitenprotokolle kommen. Das Programm 200 erzeugt eine Fingerabdruck-Zuordnungsmatrix für jede bekannte Einheit. In manchen Ausführungsformen extrahiert das Programm 200 Protokollcharakteristika (z.B. Merkmale F1, F2, F3, ..., Fn) für alle bekannten Einheiten (z.B. D1, D2, D3, ..., Dm) und die entsprechenden Protokolle für jede Einheit (z.B. L1, L2, L3, ..., Lm), die in einer (m, n)-Fingerabdruck-Zuordnungsmatrix kompiliert werden (z.B. 7).
  • Das Programm 200 erzeugt aus einer Ansammlung von Trainingseinheitenprotokollen eine normierte Protokoll-Fingerabdruck-Zuordnung (Schritt 210). In verschiedenen Ausführungsformen erzeugt das Programm 200 eine normierte Protokoll-Fingerabdruck-Zuordnung auf Grundlage der anfänglichen Fingerabdruck-Zuordnungsmatrix. In manchen Ausführungsformen entfernt das Programm 200 Protokollcharakteristika, die allen Einheiten gemeinsam sind, in der anfänglichen Fingerabdruck-Zuordnungsmatrix. In einem Beispiel entfernt das Programm 200 ein Charakteristikum aus einer anfänglichen Fingerabdruck-Zuordnungsmatrix (z.B. der in 7 abgebildeten anfänglichen Fingerabdruck-Zuordnungsmatrix 146). In diesem Beispiel besitzt F3 den Wert 1, der für alle Protokolldatenströme L1 bis Lm derselbe ist.
  • In manchen Ausführungsformen kann das Programm 200 Protokollcharakteristika gewichtete Werte zuweisen. In einem Beispiel weist das Programm 200 Charakteristika, die auf einen Einheitentyp hindeuten, höhere gewichtete Werte zu, während für Charakteristika, die mehreren Einheitentypen gemeinsam sind, niedriger gewichtete Werte zugewiesen werden. In einem weiteren Beispiel besitzen Token-Paare, wie beispielsweise [Device] {=>} [WindowsDHCP], im Vergleich zu einem einzelnen Token, wie beispielsweise [WindowsDHCPDeviceReader], einen zugeordneten höheren gewichteten Wert. In einem weiteren Beispiel gewichtet das Programm 200 gemeinsame Token-Paare (z.B. den Benutzer) niedriger als seltenere Token-Paare (z.B. ein erkannter Trojaner). 8 zeigt ein Beispiel des Protokollcharakteristikum-Gewichtungsvektors, wobei 0 ≤ Wfi ≤ 1. In verschiedenen Ausführungsformen multipliziert das Programm 200 jeden Protokolldatenstrom (z.B. die Protokolldatenströme L1 bis Lm der anfänglichen Fingerabdruck-Zuordnungsmatrix 146) mit gewichteten Werten für Charakteristika. In einem Beispiel ist in 9 eine anfängliche Fingerabdruck-Zuordnungsmatrix abgebildet, die mit gewichteten Werten für Charakteristika multiplizierte Protokolldatenströme aufweist. Das Erzeugen einer normierten Protokoll-Fingerabdruck-Zuordnung ist vorteilhaft, weil es eine Grundlage für einen Vergleich mit Merkmalen eines unbekannten Protokolldatenstroms bereitstellt.
  • 3 zeigt gemäß einer Ausführungsform der vorliegenden Erfindung einen Ablaufplan, der Operationsschritte eines Programms 300 darstellt, bei dem es sich um eine Funktion des Protokollprogramms 120 handelt. Das Programm 300 arbeitet auf dem Server 102 und ermittelt Wahrscheinlichkeiten eines Einheitentyps auf Grundlage eines Protokolldatenstroms. In verschiedenen Ausführungsformen können die Operationsschritte des Programms 300 beginnen, nachdem durch das Protokollprogramm 120 ein neuer Protokolldatenstrom (z.B. der neue Protokolldatenstrom 150) empfangen wurde. In weiteren Ausführungsformen können die Operationsschritte des Programms 300 beginnen, wenn ein Administrator des Protokollprogramms 120 das Protokollprogramm 120 auffordert, den Einheitentyp für neue Protokolldatenströme zu ermitteln, die in einer Datenbank gespeichert sind (z.B. den in der Datenbank 140 gespeicherten neuen Protokolldatenstrom 150). In noch weiteren Ausführungsformen können die Operationsschritte des Programms 300 nach einer voreingestellte Zeit beginnen, was beim Programm 300 auslöst, die Wahrscheinlichkeit für jeden Einheitentyp zu ermitteln, der einen Protokolldatenstrom erzeugt hat.
  • Das Programm 300 empfängt einen Protokolldatenstrom (Schritt 302). In verschiedenen Ausführungsformen empfängt das Programm 300 einen oder mehrere Protokolldatenströme von einer Clienteinheit, die über ein Netzwerk (z.B. das Netzwerk 112) mit einem Server (z.B. dem Server 102) verbunden ist. In manchen Ausführungsformen können Protokolldatenströme in einer Datenbank (z.B. der Datenbank 140) gespeichert werden, und das Programm 300 kann Protokolldatenströme (z.B. den neuen Protokolldatenstrom 150) identifizieren. In einem Beispiel kann ein Programm (nicht abgebildet) Protokolldatenströme für Clienteinheiten, die mit einem Server (z.B. dem Server 102) verbunden sind, in einer Datenbank (z.B. der Datenbank 140) speichern, und das Programm 300 identifiziert neue Protokolldatenströme (z.B. den neuen Protokolldatenstrom 150), die nicht durch das Programm 300 verarbeitet worden sind.
  • Das Programm 300 ersetzt Elemente in Protokolldatenströmen durch vordefinierte Elemente (Schritt 304). Das Programm 300 ersetzt Elemente in einem Protokolldatenstrom (z.B. dem neuen Protokolldatenstrom 150) durch vordefinierte Elemente, die auch als Token (z.B. das Token 142) bekannt sind, die mit den ursprünglichen Elementen im Protokolldatenstrom korreliert sind. Jedes Token steht für eine Zeichenkette, einen numerischen Wert oder ein Element des Protokolldatenstroms. 4 stellt einen Protokolldatenstrom dar, für den keine Elemente innerhalb des Einheitenprotokolls durch Token ersetzt wurden. 5 stellt denselben Protokolldatenstrom dar, nachdem das Programm 300 die Elemente im Protokolldatenstrom durch vordefinierte Elemente ersetzt hat, die auch als Token bekannt sind. Das Ersetzen von Elementen in einem Protokolldatenstrom durch vordefinierte Elemente ist als Tokenisieren eines Protokolldatenstroms bekannt. In verschiedenen Ausführungsformen sind die Token durch Administratoren so voreingestellt, dass sie mit spezifischen Elementen, numerischen Werten und/oder Zeichenketten korreliert sind.
  • In manchen Ausführungsformen können Protokolldatenströme eine signifikante Menge von Computernamen, Zeitstempeln, Codes usw. enthalten, die nicht im Voraus bekannt sind. Ein Prozessor für natürliche Sprache ist unter Umständen nicht in der Lage, bestimmte Symbole zu erkennen. Das Programm 300 ersetzt die Elemente durch Token, die leicht verständlich sind. In einem Beispiel ist jede Zeile ein separates unabhängiges Ereignis im Datenstrom. Zu Beginn einer Zeile im Datenstrom erzeugt das Programm 300 ein [Zeilenstart]-Token und am Ende – [Zeilenende]. Dann spaltet das Programm 300 die Zeile an Leerzeichen und Satzzeichen auf, wodurch entsprechende Token für jeden Teil in der Sequenz erzeugt werden. Jeder Teil der Zeichenkette, der einer Konstanten im Code der Zeichenkette entspricht, ist sehr nützlich für die Erkennung, da es sich bei der Zeichenkette um die Ausgabe eines Programms handelt. Das Programm 300 erzeugt Token aus Symbolen wie „{“, „[“, „:“ und den Kombinationen, was vorteilhaft ist. In manchen Ausführungsformen ändert das Programm 300 Teile des Protokolldatenstroms, wie beispielsweise „Internet protocol“(IP)-Adressen und Zeitstempel. In einem Beispiel erzeugt das Programm 300 ein spezielles Token für eine an einer spezifischen Position angetroffene Zahl: [Zahl]-Token, da es für Zahlen unwahrscheinlich ist, dass sie in späteren Schritten miteinander übereinstimmen. Gleichmaßen erzeugt das Programm 300 anstatt einer IP-Adresse im Datenstrom ein [IP_Adresse]-Token sowie ein [Monat]-Token.
  • Das Programm 300 identifiziert Protokollcharakteristika (Schritt 306). In manchen Ausführungsformen identifiziert das Programm 300 Protokolldatenstrom-Charakteristika aus dem tokenisierten Protokolldatenstrom (z.B. dem neuen Protokolldatenstrom 150, nachdem der neue Protokolldatenstrom 150 tokenisiert wurde). In einem Beispiel identifiziert das Programm 300 Token-Positionen, eine Beziehung von Token zueinander, die Anzahl von Token, den Typ von Token usw. 6 zeigt ein Beispiel von Charakteristika, die das Programm 300 aus der ersten Zeile des tokenisierten Protokolldatenstroms in 5 identifiziert. In manchen Ausführungsformen kann das Programm 300 tokenisierte Charakteristika, wie beispielsweise Datum, Uhrzeit, Paar, Positionsdaten, IP-Adresse, Anschlussnummer usw., identifizieren. In einem Beispiel kann ein Algorithmus für das Programm 300 Variablen identifizieren, wie beispielsweise Datum und Uhrzeit, Token, Token-Position, relativer Abstand zwischen Token usw. In verschiedenen Ausführungsformen wiederholt das Programm 300 den Prozess des Identifizierens von Variablen für jede Zeile in einem Protokolldatenstrom, um eine Tabelle, wie beispielsweise 6, für jede Zeile des Protokolldatenstroms, zu erzeugen. In zusätzlichen Ausführungsformen wiederholt das Programm 300 Schritt 306 für alle Protokolldatenströme.
  • Das Programm 300 ermittelt Wahrscheinlichkeiten eines Einheitentyps auf Grundlage identifizierter Protokollcharakteristika, wie sie einer Fingerabdruckzuordnung zugehörig sind (Schritt 308). In verschiedenen Ausführungsformen ermittelt das Programm 300 Wahrscheinlichkeiten (z.B. 100 %, 90 %, 5 % usw.) eines Einheitentyps (z.B. Mobiltelefon, Laptop, Desktop usw.). In manchen Ausführungsformen ermittelt das Programm 300 Wahrscheinlichkeiten eines Einheitentyps auf Grundlage von Protokolldatenstrom-Charakteristika, wenn die Protokolldatenstrom-Charakteristika mit einer normierten Fingerabdruck-Zuordnungsmatrix (z.B. der normierten Fingerabdruck-Zuordnungsmatrix 148) verglichen werden.
  • In einem Beispiel ermittelt das Programm 300 die Gesamtanzahl von Charakteristika, die für einen empfangenen Protokolldatenstrom übereinstimmen und nicht übereinstimmen (z.B. Datenstrom 1/S1, Datenstrom 2/S2, Datenstrom 3/S3, Datenstrom 4/S4, Datenstrom 5/S5, Datenstrom 6/S6 aus 11). In diesem Beispiel bezeichnet Sdevice_i einen Einheitendatenstrom, der noch erkannt werden muss. Sdevice_i kann mit S1, S2, S3 usw. korreliert sein. Das Programm 300 ermittelt die Wahrscheinlichkeit für Sdevice_i unter Verwendung einer normierten Fingerabdruck-Zuordnungsmatrix (z.B. der in 9 abgebildeten normierten Fingerabdruck-Zuordnungsmatrix 148, Fmap). Das Programm 300 ermittelt die bedingte Wahrscheinlichkeit des Protokolldatenstroms S1 bei gegebenen Protokolldatenstrom Sdevice_i, wobei i gleich 1, 2, 3, ..., m ist. Die bedingte Wahrscheinlichkeit kann beschrieben werden als P(S1|Sdevice_i) = P(S1∩Sdevice_i)/P(Sdevice_i). Damit das Programm 300 die Anzahl von Merkmalstreffern sowohl für S1 als auch Sdevice_i günstig ermitteln kann (z.B. P(S1∩Sdevice_i), kann das Programm 300 die Gleichung so umordnen, dass sie lautet P(S1∩Sdevice_i) = P(S1|Sdevice_i) × P(Sdevice_i). Die vorgenannte Gleichung kann gelesen werden als P(S1∩Sdevice_i) = ((Anzahl von Merkmals(F)-Treffern in S1)/(Gesamtanzahl von Merkmalstreffern + keine Treffer in S1)) × ((Anzahl von Merkmalstreffern in Sdevice_i)/(Gesamtanzahl von Merkmalstreffern + keine Treffer in Sdevice_i)), wobei P(S1|Sdevice_i) von einem Protokolldatenstrom-Merkmalsextraktions-Algorithmus berechnet wird. P(Sdevice_i) kann aus einer normierten Fingerabdruck-Zuordnungsmatrix (z.B. der in 9 abgebildeten normierten Fingerabdruck-Zuordnungsmatrix 148) abgeleitet werden. Ein Beispiel für P(Sdevice_i) kann durch die Gleichung aus 10 abgeleitet werden. In einem weiteren Beispiel berechnet das Programm 300 die Wahrscheinlichkeit für eine Einheit (z.B. „Device 2“, nicht abgebildet) unter Verwendung von Zeile 2 von Fmap in 9, wie in 11 abgebildet. In verschiedenen Ausführungsformen ermittelt das Programm 300 die Wahrscheinlichkeit, dass ein Protokolldatenstrom von einem Typ von Einheit ausging, unter Verwendung der Anzahl von Charakteristika, die dieselben sind, sowie derjenigen, die unterschiedlich sind.
  • In einem weiteren Beispiel ermittelt das Programm 300 Wahrscheinlichkeiten unter Verwendung des Euler-Diagramms aus 13, wobei die Protokolldatenströme S1 bis S6 von einer Einheit (z.B. „Device 1“) mit einem Einheitenfingerabdruck (z.B. DF1) erzeugt werden, um die Wahrscheinlichkeiten zu ermitteln. In 13 besitzt der Datenstrom S1 eine Wahrscheinlichkeit von 1, was angibt, dass S1 von Device 1 stammt. S2 besitzt eine Wahrscheinlichkeit von 0,6, was angibt, dass S2 eine 60%ige Wahrscheinlichkeit besitzt, von Device 1 erzeugt worden zu sein. S3 besitzt eine Wahrscheinlichkeit von 0,95, was angibt, dass S2 eine 95%ige Wahrscheinlichkeit besitzt, von Device 1 erzeugt worden zu sein. S4 besitzt eine Wahrscheinlichkeit von 0,05, was angibt, dass S2 eine 5%ige Wahrscheinlichkeit besitzt, von Device 1 erzeugt worden zu sein. S5 besitzt eine Wahrscheinlichkeit von 0,8, was angibt, dass S2 eine 80%ige Wahrscheinlichkeit besitzt, von Device 1 erzeugt worden zu sein. S6 besitzt eine Wahrscheinlichkeit von 0, was angibt, dass S6 eine 0%ige Wahrscheinlichkeit besitzt, von Device 1 erzeugt worden zu sein. Das Ermitteln von Wahrscheinlichkeiten eines Einheitentyps auf Grundlage identifizierter Protokollcharakteristika, wie sie einer Fingerabdruckzuordnung zugehörig sind, ist vorteilhaft, weil es die Ermittlung von Wahrscheinlichkeiten eines Einheitentyps für eine große Menge von Einheitenprotokollen bereitstellt.
  • In mancher Ausführungsform ermittelt das Programm 300 die Wahrscheinlichkeit, dass es sich bei einem Einheitentyp um einen bekannten Einheitentyp handelt, auf Grundlage der Variationen von Merkmalen in den Protokolldatenströmen bekannter Einheitentypen im Vergleich zum Protokolldatenstrom von einem unbekannten Einheitentyp in einem Euler-Diagramm. Zum Beispiel enthält ein Protokolldatenstrom von einem ersten bekannten Einheitentyp bestimmte Merkmale. Ein weiterer Protokolldatenstrom von einem zweiten bekannten Einheitentyp enthält manche derselben Merkmale, aber auch manche eindeutige Merkmale. In diesem Beispiel vergleicht das Programm 300 die Merkmale des Protokolldatenstroms der unbekannten Einheit mit den Merkmalen der ersten und zweiten bekannten Einheit und ermittelt die Wahrscheinlichkeit, dass der Protokolldatenstrom von der ersten oder der zweiten bekannten Einheit ausging, auf Grundlage der verschiedenen Merkmale, welche die Protokolldatenströme gemeinsam haben.
  • Das Programm 300 aktualisiert die normierte Fingerabdruckzuordnung (Schritt 310). In verschiedenen Ausführungsformen aktualisiert das Programm 300 die normierte Fingerabdruckzuordnung mit den neuen Protokolldatenströmen, Charakteristika und Einheitentypen. In einem Beispiel stellt das Programm 300 fest, dass eine geringe Wahrscheinlichkeit (z.B. 5 %) besteht, dass der Protokolldatenstrom durch einen bekannten Einheitentyp erzeugt wurde. In diesem Beispiel kann das Programm 300 Daten senden, die Administratoren des Protokollprogramms 120 auffordern, den Typ der Einheit zu bestimmen, die den Protokolldatenstrom mit der geringen Wahrscheinlichkeit erzeugt hat. Das Programm 300 kann dann die zusätzlichen Informationen einer Datenbank (z.B. der Datenbank 140) und der normierten Fingerabdruck-Zuordnungsmatrix (z.B. der normierten Fingerabdruck-Zuordnungsmatrix 148) hinzufügen, um es zukünftigen ähnlichen Protokolldatenströmen zu erlauben, den Typ der Einheit anzugeben. In manchen Ausführungsformen fügt das Programm 300 alle Protokolldatenströme der normierten Fingerabdruck-Zuordnungsmatrix hinzu.
  • 4 stellt einen beispielhaften Protokolldatenstrom dar, der durch das Protokollprogramm 120 erfasst worden sein kann. In manchen Ausführungsformen kann das Protokollprogramm 120 Protokolldatenströme, wie beispielsweise ein Einheitenrohprotokoll L1, in der Datenbank 140 speichern. 4 kann auch eine Iteration des neuen Protokolldatenstroms 150 oder des Trainingsprotokolldatenstroms 144 darstellen. In einem Beispiel stellt 4 einen Protokolldatenstrom dar, der in Schritt 202 oder 302 empfangen worden sein kann.
  • 5 stellt einen beispielhaften Protokolldatenstrom, wie beispielsweise den in 4 dargestellten Protokolldatenstrom, dar, der tokenisiert wurde. In manchen Ausführungsformen kann das Protokollprogramm 120 tokenisierte Protokolldatenströme in einer Datenbank, wie beispielsweise der Datenbank 140, speichern. In einem Beispiel stellt 5 einen Protokolldatenstrom dar, der in Schritt 204 oder 304 erzeugt wurde.
  • 6 stellt Charakteristika aus einem tokenisierten Protokolldatenstrom, wie beispielsweise dem tokenisierten Protokolldatenstrom in 5, dar. Charakteristika aus 5 sind dargestellt und mit F1 bis F17 gekennzeichnet. Charakteristika sind auch als Merkmale bekannt. In einem Beispiel stellt 6 identifizierte Charakteristika wie in Schritt 206 oder 306 dar.
  • 7 stellt eine anfängliche Fingerabdruck-Zuordnungsmatrix dar, die aus Charakteristika eines tokenisierten Einheitenprotokolls erzeugt wurde. Charakteristika können auch als Merkmale und/oder Elemente bezeichnet werden. In einem Beispiel stellt 7 eine anfängliche Fingerabdruck-Zuordnungsmatrix dar, wie beispielsweise die in Schritt 208 erzeugte.
  • 8 stellt einen beispielhaften Protokollmerkmal-Gewichtungsvektor dar. In einem Beispiel multipliziert das Protokollprogramm 120 Merkmale eines Protokolldatenstroms mit einem Gewichtungsvektor als Teil der Ermittlung der Wahrscheinlichkeit, dass ein Protokolldatenstrom durch einen spezifischen Typ von Einheit erzeugt wurde. In einem Beispiel stellt 8 Protokollmerkmal-Gewichtungsvektoren dar, wie sie in Schritt 210 verwendet werden.
  • 9 stellt eine normierte Fingerabdruck-Zuordnungsmatrix dar, die aus Charakteristika tokenisierter Einheitenprotokolle erzeugt wurde. In einem Beispiel erzeugt das Protokollprogramm 120 eine normierte Fingerabdruck-Zuordnungsmatrix, wie beispielsweise die in 9 dargestellte Matrix, nach dem Multiplizieren von Gewichtungsvektoren mit Merkmalen von Protokolldatenströmen für mehrere Protokolldatenströme. In einem Beispiel stellt 9 eine normierte Fingerabdruck-Zuordnungsmatrix dar, wie beispielsweise eine in Schritt 210 erzeugte.
  • 10 stellt eine beispielhafte Gleichung zum Ermitteln der Wahrscheinlichkeit eines Einheitentyps unter Verwendung von Protokollvektor-Gewichtungsvektoren dar. Die Gleichung von 10 veranschaulicht eine beispielhafte Weise, eine Wahrscheinlichkeit eines Typs von Einheit zu ermitteln, die einen Protokolldatenstrom erzeugt hat. In einem Beispiel stellt 10 eine beispielhafte Gleichung dar, die verwendet wird, um eine Wahrscheinlichkeit eines Einheitentyps zu ermitteln, wie beispielsweise in Schritt 308 verwendet.
  • 11 stellt eine beispielhafte angewandte Version einer Gleichung zum Ermitteln der Wahrscheinlichkeit eines Einheitentyps unter Verwendung von Protokollmerkmal-Gewichtungsvektoren dar. 11 ist die Gleichung aus 10, bei der die Protokollgewichtungsvektoren eingegeben sind. In einem Beispiel stellt 11 eine beispielhafte Gleichung dar, die verwendet wird, um eine Wahrscheinlichkeit eines Einheitentyps zu ermitteln, wie beispielsweise in Schritt 308 verwendet.
  • 12 stellt ein beispielhaftes Schaubild dar, das die Beziehung von Einheitenmerkmalen zueinander zeigt. Das beispielhafte Schaubild stellt mehrere Einheiten dar, sie sich in den Merkmalen überlappen. Zum Beispiel überlappen sich Charakteristika einer Einheit, die zu D2 gehören, mit Charakteristika einer Einheit, die zu D1 und D8 gehören. 12 veranschaulicht gemeinsame Wahrscheinlichkeiten, zum Beispiel kann ein von D2 ausgehender Protokolldatenstrom eine hohe Wahrscheinlichkeit (z.B. 80 %) aufweisen, dass er von D8 ausgeht, und eine höhere Wahrscheinlichkeit, dass er von D2 ausgeht (z.B. 90 %). 12 stellt einen Einheitenraum dar, der beispielhafte Darstellungseinheiten auf Grundlage von Daten aus Protokolldatenströmen enthält, wie beispielsweise: D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, Di, Dm und Dm – 1. In einem Beispiel stellt 12 eine Beziehung von Einheitenmerkmalen dar, wie in Schritt 308 erläutert.
  • 13 stellt ein Euler-Diagramm dar, das die Wahrscheinlichkeit zeigt, dass ein Protokolldatenstrom von einer bestimmten Einheit ausging. 13 zeigt eine Darstellung von Protokolldatenströmen verglichen mit einem einzigen Einheitentyp. In einem Beispiel stellt 13 eine Wahrscheinlichkeit dar, dass ein Protokolldatenstrom von einer Einheit ausgeht, wie in Schritt 308 erläutert.
  • 14 stellt gemäß einer veranschaulichenden Ausführungsform der vorliegenden Erfindung ein Blockschaubild von Komponenten eines Computers 1400 dar, der stellvertretend für den Server 102 und die Clienteinheiten 104, 106 und 108 ist. Es sollte verstanden werden, dass 14 nur eine Veranschaulichung einer einzigen Implementierung bereitstellt und keine Einschränkungen im Hinblick auf die Umgebungen impliziert, in denen die unterschiedlichen Ausführungsformen implementiert werden können. Viele Modifikationen können an der abgebildeten Umgebung vorgenommen werden.
  • Der Computer 1400 beinhaltet eine Datenübertragungsstruktur (communication fabric) 1402, die die Datenübertragung zwischen einem oder mehreren Computerprozessoren 1404, einem Speicher 1406, einem permanenten Datenspeicher 1408, einer Datenübertragungseinheit 1410 und einer oder mehreren Eingabe/Ausgabe(E/A)-Schnittstellen 1412 bereitstellt. Die Datenübertragungsstruktur 1402 kann mit jeder Architektur implementiert werden, die zum Weiterleiten von Daten und/oder Steuerinformationen zwischen Prozessoren (wie beispielsweise Mikroprozessoren, Datenübertragungs- und Netzwerkprozessoren usw.), Systemspeicher, Peripherieeinheiten und beliebiger weiterer Hardwarekomponenten innerhalb eines Systems gestaltet ist. Zum Beispiel kann die Datenübertragungsstruktur 1402 mit einem oder mehreren Bussen implementiert werden.
  • Bei dem Speicher 1406 und dem permanenten Datenspeicher 1408 handelt es sich um computerlesbare Datenspeichermedien. In dieser Ausführungsform beinhaltet der Speicher 1406 einen Speicher mit wahlfreiem Zugriff (random access memory (RAM)) 1414 und einen Cachespeicher 1416. Im Allgemeinen kann der Speicher 1406 beliebige geeignete flüchtige oder nichtflüchtige computerlesbare Datenspeichermedien beinhalten. Software und Daten 1422 werden im permanenten Datenspeicher 1408 zum Zugriff und/oder Ausführen durch den einen oder die mehreren Prozessoren 1404 über einen oder mehrere Speicher des Speichers 1406 gespeichert. In Hinblick auf den Server 102 stehen die Software und Daten 1422 für das Protokollprogramm 120 und die Datenbank 140.
  • In dieser Ausführungsform beinhaltet der permanente Datenspeicher 1408 ein magnetisches Festplattenlaufwerk. Alternativ oder zusätzlich zu einem magnetischen Festplattenlaufwerk kann der permanente Datenspeicher 1408 ein Halbleiter-Festplattenlaufwerk (solid-state hard drive), eine Halbleiter-Datenspeichereinheit (semiconductor storage device), einen Nur-Lese-Speicher (read-only memory (ROM)), einen löschbaren programmierbaren Nur-Lese-Speicher (erasable programmable read-only memory (EPROM)), einen Flash-Speicher oder beliebige andere computerlesbare Datenspeichermedien beinhalten, die in der Lage sind, Programmanweisungen oder digitale Informationen zu speichern.
  • Bei den durch den permanenten Datenspeicher 1408 verwendeten Medien kann es sich auch um Wechselmedien handeln. Zum Beispiel kann für den permanenten Datenspeicher 1408 ein Wechselfestplattenlaufwerk verwendet werden. Weitere Beispiele beinhalten optische und magnetische Platten, Thumb Drives und Smart Cards, die in ein Laufwerk zum Transfer auf ein anderes computerlesbares Datenspeichermedium eingeführt werden, das ebenso Teil des permanenten Datenspeichers 1408 ist.
  • Die Datenübertragungseinheit 1410 stellt in diesen Beispielen den Datenaustausch mit anderen Datenverarbeitungssystemen oder Einheiten bereit. In diesen Beispielen handelt es sich bei der Datenübertragungseinheit 1410 um eine oder mehrere Netzwerkschnittstellenkarten. Die Datenübertragungseinheit 1410 kann den Datenaustausch durch die Verwendung von entweder physischen oder kabellosen Datenübertragungsverbindungen oder beidem bereitstellen. Die Software und Daten 1422 können durch die Datenübertragungseinheit 1410 auf den permanenten Datenspeicher 1408 heruntergeladen werden.
  • Die eine oder mehreren Eingabe/Ausgabe-Schnittstellen 1412 ermöglichen die Eingabe und Ausgabe von Daten mit anderen Einheiten, die mit dem Computer 1400 verbunden sein können. Zum Beispiel können die eine oder mehreren E/A-Schnittstellen 1412 eine Verbindung mit einer oder mehreren externen Einheiten 1418 bereitstellen, wie beispielsweise einer Tastatur, einem Tastenblock, einem Touchscreen und/oder einer anderen geeigneten Eingabeeinheit. Die eine oder mehreren externen Einheiten 1418 können zudem transportable computerlesbare Datenspeichermedien beinhalten, wie beispielsweise Thumb Drives, transportable optische oder magnetische Platten und Speicherkarten. Die Software und Daten 1422 können auf solchen transportablen computerlesbaren Datenspeichermedien gespeichert und über die eine oder mehreren E/A-Schnittstellen 1412 auf den permanenten Datenspeicher 1408 geladen werden. Die eine oder mehreren E/A-Schnittstellen 1412 sind zudem mit einer Anzeige 1420 verbunden.
  • Die Anzeige 1420 stellt einen Mechanismus bereit, um einem Benutzer Daten anzuzeigen, und kann zum Beispiel ein Computermonitor sein.
  • Die hierin beschriebenen Programme werden auf Grundlage der Anwendung angegeben, für die sie in einer bestimmten Ausführungsform der Erfindung implementiert sind. Es sollte jedoch verstanden werden, dass jede bestimmte Programmnomenklatur hierin lediglich der Einfachheit halber verwendet wird und somit die Erfindung nicht auf die alleinige Verwendung in einer bestimmten angegebenen und/oder durch eine solche Nomenklatur nahegelegten Anwendung beschränkt ist.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein computerlesbares Datenspeichermedium (oder -medien) mit darauf befindlichen computerlesbaren Programmanweisungen beinhalten, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem computerlesbaren Datenspeichermedium kann es sich um eine gegenständliche Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zum Ausführen von Anweisungen festhalten und speichern kann. Bei dem computerlesbaren Datenspeichermedium kann es sich zum Beispiel, ohne auf diese beschränkt zu sein, um eine elektronische Datenspeichereinheit, eine magnetische Datenspeichereinheit, eine optische Datenspeichereinheit, eine elektromagnetische Datenspeichereinheit, eine Halbleiterdatenspeichereinheit (semiconductor storage device) oder eine beliebige geeignete Kombination des Vorhergehenden handeln. Eine nicht abschließende Liste von spezifischeren Beispielen des computerlesbaren Datenspeichermediums beinhaltet das Folgende: eine transportable Computerdiskette, eine Festplatte, einen Speicher mit wahlfreiem Zugriff (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM oder Flash-Speicher), einen statischen Speicher mit wahlfreiem Zugriff (SRAM), einen transportablen Compact-Disc-Nur-Lese-Speicher (CD-ROM), eine „Digital Versatile Disk“ (DVD), einen Speicherstick, eine Floppydiskette, eine mechanisch codierte Einheit, wie beispielsweise Lochkarten oder erhabene Strukturen in einer Rille mit darauf festgehaltenen Anweisungen, und jede geeignete Kombination des Vorhergehenden. Ein computerlesbares Datenspeichermedium, wie es hierin verwendet wird, ist nicht als flüchtige Signale per se aufzufassen, wie beispielsweise Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, sich durch einen Wellenleiter oder eine anderes Übertragungsmedium ausbreitende elektromagnetische Wellen (z.B. Lichtimpulse durch ein Lichtwellenleiterkabel) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene computerlesbare Programmanweisungen können von einem computerlesbaren Datenspeichermedium auf entsprechende Rechen-/Verarbeitungseinheiten oder über ein Netzwerk, zum Beispiel dem Internet, einem lokalen Netzwerk, einem Weitverkehrsnetzwerk und/oder einem kabellosen Netzwerk, auf einen externen Computer oder eine externe Datenspeichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, kabellose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder eine Netzwerkschnittstelle in jeder Rechen-/Verarbeitungseinheit empfängt computerlesbare Programmanweisungen vom Netzwerk und leitet die computerlesbaren Programmanweisungen zur Speicherung in einem computerlesbaren Datenspeichermedium innerhalb der entsprechenden Rechen-/Verarbeitungseinheit weiter.
  • Bei computerlesbaren Programmanweisungen zum Ausführen von Operationen der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, „Instruction-set-Architecture“(ISA)-Anweisungen, Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmwareanweisungen, Zustandseinstellungsdaten oder jeden Quellcode oder Objektcode handeln, der in irgendeiner Kombination aus einer oder mehreren Programmiersprachen geschrieben ist, einschließlich einer objektorientierten Programmiersprache, wie beispielsweise Smalltalk, C++ oder Ähnliches, und herkömmlicher prozeduraler Programmiersprachen, wie beispielsweise die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die computerlesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als ein eigenständiges Softwarepaket, 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 Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über jede beliebige Art von Netzwerk, einschließlich ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), verbunden sein, oder die Verbindung kann zu einem externen Computer (zum Beispiel mittels eines Internetdienstanbieters durch das Internet) hergestellt werden. In manchen Ausführungsformen können elektronische Schaltungen einschließlich zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatteranordnungen (field-programmable gate arrays (FPGA)), oder programmierbare Logikanordnungen (programmable logic arrays (PLA)) die computerlesbaren Programmanweisungen ausführen, indem Zustandsinformationen der computerlesbaren Programmanweisungen verwendet werden, um die elektronische Schaltung zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Abbildungen von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Abbildungen von Ablaufplänen und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Abbildungen von Ablaufplänen und/oder den Blockschaubildern durch computerlesbare Programmanweisungen implementiert werden können.
  • Diese computerlesbaren Programmanweisungen können einem Prozessor eines universellen Computers, eines zweckbestimmten Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine so zu erzeugen, dass die Anweisungen, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zum Implementieren der im Block oder in den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Handlungen erzeugen. Diese computerlesbaren Programmanweisungen können auch in einem computerlesbaren Datenspeichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anleiten kann, auf eine bestimmte Weise zu funktionieren, sodass das computerlesbare Datenspeichermedium mit darin gespeicherten Anweisungen einen Herstellungsartikel einschließlich Anweisungen umfasst, welche Aspekte der im Block oder in den Blöcken des Ablaufplans und/oder des Blockschaubildes angegebene Funktion/Handlung implementieren.
  • Die computerlesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um eine Reihe von auf dem Computer, der anderen programmierbaren Vorrichtung oder der anderen Einheit durchzuführenden Operationsschritten hervorzurufen, um einen computerimplementierten Prozess so zu erzeugen, dass die auf dem Computer, der anderen programmierbaren Vorrichtung oder der anderen Einheit ausgeführten Anweisungen die im Block oder in den Blöcken des Ablaufplans und/oder des Blockschaubildes angegebenen Funktionen/Handlungen implementieren.
  • Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und die Arbeitsweise möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block im Ablaufplan oder den Blockschaubildern für ein Modul, ein Segment oder einen Abschnitt von Anweisungen stehen, das oder der eine oder mehrere ausführbare Anweisungen zum Implementieren der angegebenen logischen Funktion oder Funktionen aufweist. In manchen alternativen Implementierungen können die im Block festgehaltenen Funktionen in einer anderen als der in den Figuren festgehaltenen Reihenfolge auftreten. Zum Beispiel können zwei aufeinander folgend abgebildete Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal abhängig von der betreffenden Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es wird ebenfalls angemerkt, dass jeder Block der Blockschaubilder und/oder Abbildung von Ablaufplänen und Kombinationen von Blöcken in den Blockschaubildern und/oder der Abbildung von Ablaufplänen durch zweckbestimmte hardwaregestützte Systeme implementiert werden kann, welche die angegebenen Funktionen oder Handlungen durchführen oder Kombinationen aus zweckbestimmter Hardware und Computeranweisungen ausführen.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zum Zwecke der Veranschaulichung vorgelegt, sind jedoch nicht als erschöpfend oder auf die offenbarten Ausführungsformen beschränkt aufzufassen. Viele Änderungen und Variationen werden für den Fachmann ersichtlich sein, ohne vom Umfang und Geist der Erfindung abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technischen Verbesserung gegenüber auf dem Markt anzutreffenden Technologien am besten zu erklären oder um es anderen Fachleuten zu ermöglichen, die hierin offenbarten Ausführungsformen zu verstehen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 8589436 B2 [0005]

Claims (15)

  1. Verfahren zur Einheitentypermittlung, wobei das Verfahren aufweist: Identifizieren eines Protokolldatenstroms von einer ersten Einheit durch einen oder mehrere Computerprozessoren, wobei die erste Einheit von einem unbekannten Einheitentyp ist; Identifizieren von Merkmalen im Protokolldatenstrom von der ersten Einheit durch einen oder mehrere Computerprozessoren; und Ermitteln einer Wahrscheinlichkeit, dass der Protokolldatenstrom von der ersten Einheit durch einen spezifischen Einheitentyp erzeugt wurde, auf Grundlage eines Vergleichens von Merkmalen des identifizierten Protokolldatenstroms von der ersten Einheit und von Merkmalen in Protokolldatenströmen von einer Mehrzahl von bekannten Einheitentypen durch einen oder mehrere Computerprozessoren.
  2. Verfahren nach Anspruch 1, ferner aufweisend: Identifizieren eines oder mehrerer Protokolldatenströme von Einheiten bekannter Einheitentypen durch einen oder mehrere Computerprozessoren; Identifizieren eines oder mehrerer Merkmale in dem einen oder den mehreren Protokolldatenströmen von Einheiten bekannter Einheitentypen durch einen oder mehrere Computerprozessoren; und Erzeugen einer Matrix zum Ermitteln der Wahrscheinlichkeit, dass ein Protokolldatenstrom von einem unbekannten Einheitentyp einem Protokolldatenstrom von einem bekannten Einheitentyp entspricht, auf Grundlage von einem oder mehreren Merkmalen in dem einen oder den mehreren Protokolldatenströmen von den bekannten Einheitentypen durch einen oder mehrere Computerprozessoren.
  3. Verfahren nach Anspruch 2, wobei das Ermitteln einer Wahrscheinlichkeit, dass der Protokolldatenstrom von der ersten Einheit durch einen spezifischen Einheitentyp erzeugt wurde, ferner aufweist: Das Ermitteln der Wahrscheinlichkeit, dass der Protokolldatenstrom von der ersten Einheit durch einen spezifischen Einheitentyp erzeugt wurde, durch einen oder mehrere Computerprozessoren beruht auf der erzeugten Matrix gewichteter Protokolldatenstrommerkmale.
  4. Verfahren nach Anspruch 1, wobei das Identifizieren der Merkmale im Protokolldatenstrom von der ersten Einheit ferner aufweist: Identifizieren eines oder mehrerer Elemente im Protokolldatenstrom durch einen oder mehrere Computerprozessoren, wobei das eine oder die mehreren Elemente funktionelle Teile des Protokolldatenstroms aufweist; und Identifizieren durch einen oder mehrere Computerprozessoren von mindestens einem von: einer oder mehreren Variablen im Protokolldatenstrom, einer Position von Elementen im Protokolldatenstrom, einem Abstand zwischen Elementen im Protokolldatenstrom und einem Muster von Merkmalen im Protokolldatenstrom.
  5. Verfahren nach Anspruch 1, wobei das Ermitteln einer Wahrscheinlichkeit, dass der Protokolldatenstrom von der ersten Einheit durch einen spezifischen Einheitentyp erzeugt wurde, ferner aufweist: Identifizieren eines oder mehrerer Merkmale des Protokolldatenstroms, die abhängig vom Einheitentyp variieren, durch einen oder mehrere Computerprozessoren; und Erzeugen eines Euler-Diagramms auf Grundlage des identifizierten einen oder der identifizierten mehreren Merkmale des Protokolldatenstroms, die abhängig vom Einheitentyp variieren, durch einen oder mehrere Computerprozessoren.
  6. Verfahren nach Anspruch 1, ferner aufweisend: Identifizieren einer Mehrzahl von Protokolldatenströmen, die von der ersten Einheit ausgehen, durch einen oder mehrere Computerprozessoren; und Ermitteln einer Wahrscheinlichkeit, dass die Mehrzahl von der ersten Einheit ausgehenden Protokolldatenströmen einem bekannten Einheitentyp entsprechen.
  7. Verfahren nach Anspruch 6, wobei das Ermitteln einer Wahrscheinlichkeit, dass die Mehrzahl von der ersten Einheit ausgehenden Protokolldatenströmen einer bekannten Einheit entsprechen, ferner aufweist: Identifizieren eines oder mehrerer der Mehrzahl von Protokolldatenströmen, die einem spezifischen bekannten Einheitentyp entsprechen, durch einen oder mehrere Computerprozessoren; Identifizieren eines oder mehrerer der Mehrzahl von Protokolldatenströmen, die nicht dem spezifischen bekannten Einheitentyp entsprechen, durch einen oder mehrere Computerprozessoren; und Ermitteln der Wahrscheinlichkeit, dass die Mehrzahl von von der ersten Einheit ausgehenden Protokolldatenströmen dem spezifischen bekannten Einheitentyp entspricht, durch einen oder mehrere Computerprozessoren auf Grundlage des identifizierten einen oder der identifizierten mehreren Protokolldatenströme der Mehrzahl von Protokolldatenströmen, die einem spezifischen bekannten Einheitentyp entsprechen, und des identifizierten einen oder der identifizierten mehreren Protokolldatenströme der Mehrzahl von Protokolldatenströmen, die nicht dem spezifischen Einheitentyp entsprechen.
  8. Verfahren nach Anspruch 2, wobei das Erzeugen einer Matrix ferner aufweist: Gewichten eines oder mehrerer identifizierter Merkmale im Protokolldatenstrom von einem unbekannten Clienteinheitentyp auf Grundlage einer Gemeinsamkeit identifizierter Merkmale im Protokolldatenstrom von einem unbekannten Clienteinheitentyp und eines oder mehrerer Merkmale des einen oder der mehreren Protokolldatenströme von den bekannten Clienteinheitentypen durch einen oder mehrere Computerprozessoren; und Erzeugen einer Matrix, die ein oder mehrere gewichtete Merkmale von Protokolldatenströmen von bekannten Einheitentypen und ein oder mehrere gewichtete Merkmale eines Protokolldatenstroms von einem ersten Einheitentyp aufweist, durch einen oder mehrere Computerprozessoren.
  9. Computerprogrammprodukt zur Einheitentypermittlung, wobei das Computerprogrammprodukt aufweist: ein oder mehrere computerlesbare Datenspeichermedien und in dem einen oder mehreren computerlesbaren Datenspeichermedien gespeicherte Programmanweisungen, wobei die Programmanweisungen aufweisen: Programmanweisungen, um einen Protokolldatenstrom von einer ersten Einheit zu identifizieren, wobei die erste Einheit von einem unbekannten Einheitentyp ist; Programmanweisungen, um Merkmale im Protokolldatenstrom von der ersten Einheit zu identifizieren; und Programmanweisungen, um eine Wahrscheinlichkeit, dass der Protokolldatenstrom von der ersten Einheit durch einen spezifischen Einheitentyp erzeugt wurde, auf Grundlage eines Vergleichens von Merkmalen des identifizierten Protokolldatenstroms von der ersten Einheit und von Merkmalen in Protokolldatenströmen von einer Mehrzahl von bekannten Einheitentypen zu ermitteln.
  10. Computersystem zur Einheitentypermittlung, wobei das Computersystem aufweist: einen oder mehrere Computerprozessoren; ein oder mehrere computerlesbare Datenspeichermedien; auf den computerlesbaren Datenspeichermedien zum Ausführen durch mindestens einen des einen oder der mehreren Prozessoren gespeicherte Programmanweisungen, wobei die Programmanweisungen aufweisen: Programmanweisungen, um einen Protokolldatenstrom von einer ersten Einheit zu identifizieren, wobei die erste Einheit von einem unbekannten Einheitentyp ist; Programmanweisungen, um Merkmale im Protokolldatenstrom von der ersten Einheit zu identifizieren; und Programmanweisungen, um eine Wahrscheinlichkeit, dass der Protokolldatenstrom von der ersten Einheit durch einen spezifischen Einheitentyp erzeugt wurde, auf Grundlage eines Vergleichens von Merkmalen des identifizierten Protokolldatenstroms von der ersten Einheit und von Merkmalen in Protokolldatenströmen von einer Mehrzahl von bekannten Einheitentypen zu ermitteln.
  11. Computersystem nach Anspruch 10, ferner aufweisend Programmanweisungen zum: Identifizieren eines oder mehrerer Protokolldatenströme von Einheiten bekannter Einheitentypen; Identifizieren eines oder mehrerer Merkmale in dem einen oder den mehreren Protokolldatenströmen von Einheiten bekannter Einheitentypen; und Erzeugen einer Matrix zum Ermitteln der Wahrscheinlichkeit, dass ein Protokolldatenstrom von einem unbekannten Einheitentyp einem Protokolldatenstrom von einem bekannten Einheitentyp entspricht, auf Grundlage von einem oder mehreren Merkmalen in dem einen oder den mehreren Protokolldatenströmen von den bekannten Einheitentypen, und/oder wobei die Programmanweisungen zum Ermitteln einer Wahrscheinlichkeit, dass der Protokolldatenstrom von der ersten Einheit durch einen spezifischen Einheitentyp erzeugt wurde, ferner Programmanweisungen aufweisen zum: Ermitteln der Wahrscheinlichkeit, dass der Protokolldatenstrom von der ersten Einheit durch einen spezifischen Einheitentyp erzeugt wurde, durch einen oder mehrere Computerprozessoren beruht auf der erzeugten Matrix gewichteter Protokolldatenstrommerkmale.
  12. Computersystem nach Anspruch 10, wobei die Programmanweisungen zum Identifizieren von Merkmalen im Protokolldatenstrom von der ersten Einheit ferner Programmanweisungen aufweisen zum: Identifizieren eines oder mehrerer Elemente im Protokolldatenstrom, wobei das eine oder die mehreren Elemente funktionelle Teile des Protokolldatenstroms beinhalten; und Identifizieren von mindestens einem von: einer oder mehreren Variablen im Protokolldatenstrom, einer Position von Elementen im Protokolldatenstrom, einem Abstand zwischen Elementen im Protokolldatenstrom und einem Muster von Merkmalen im Protokolldatenstrom.
  13. Computersystem nach Anspruch 10, wobei die Programmanweisungen zum Ermitteln einer Wahrscheinlichkeit, dass der Protokolldatenstrom von der ersten Einheit durch einen spezifischen Einheitentyp erzeugt wurde, ferner Programmanweisungen aufweisen zum: Identifizieren eines oder mehrerer Merkmale des Protokolldatenstroms, die abhängig vom Einheitentyp variieren; und Erzeugen eines Euler-Diagramms auf Grundlage des identifizierten einen oder der identifizierten mehreren Merkmale des Protokolldatenstroms, die abhängig vom Einheitentyp variieren.
  14. Computersystem nach Anspruch 10, ferner aufweisend Programmanweisungen zum: Identifizieren einer Mehrzahl von Protokolldatenströmen, die von der ersten Einheit ausgehen; und Ermitteln einer Wahrscheinlichkeit, dass die Mehrzahl von von der ersten Einheit ausgehenden Protokolldatenströmen einem bekannten Einheitentyp entsprechen, und/oder wobei die Programmanweisungen zum Ermitteln einer Wahrscheinlichkeit, dass die Mehrzahl von von der ersten Einheit ausgehenden Protokolldatenströmen einer bekannten Einheit entsprechen, ferner Programmanweisungen aufweisen zum: Identifizieren eines oder mehrerer der Mehrzahl von Protokolldatenströmen, die einem spezifischen bekannten Einheitentyp entsprechen; Identifizieren eines oder mehrerer der Mehrzahl von Protokolldatenströmen, die nicht dem spezifischen bekannten Einheitentyp entsprechen; und Ermitteln der Wahrscheinlichkeit, dass die Mehrzahl von von der ersten Einheit ausgehenden Protokolldatenströmen dem spezifischen bekannten Einheitentyp entspricht, auf Grundlage des identifizierten einen oder der identifizierten mehreren Protokolldatenströme der Mehrzahl von Protokolldatenströmen, die einem spezifischen bekannten Einheitentyp entsprechen, und des identifizierten einen oder der identifizierten mehreren Protokolldatenströme der Mehrzahl von Protokolldatenströmen, die nicht dem spezifischen Einheitentyp entsprechen.
  15. Computersystem nach Anspruch 11, wobei die Programmanweisungen zum Erzeugen einer Matrix ferner Programmanweisungen aufweisen zum: Gewichten eines oder mehrerer identifizierter Merkmale im Protokolldatenstrom von einem unbekannten Clienteinheitentyp auf Grundlage einer Gemeinsamkeit identifizierter Merkmale im Protokolldatenstrom von einem unbekannten Clienteinheitentyp und eines oder mehrerer Merkmale des einen oder der mehreren Protokolldatenströme von den bekannten Clienteinheitentypen; und Erzeugen einer Matrix, die ein oder mehrere gewichtete Merkmale von Protokolldatenströmen von bekannten Einheitentypen und ein oder mehrere gewichtete Merkmale eines Protokolldatenstroms von einem ersten Einheitentyp aufweist.
DE102016205013.3A 2015-03-27 2016-03-24 Fingerabdruckerstellung und Vergleichen von Protokolldatenströmen Pending DE102016205013A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US14/671,245 US10489714B2 (en) 2015-03-27 2015-03-27 Fingerprinting and matching log streams
US14/671,245 2015-03-27
US14/728,071 2015-06-02
US14/728,071 US10489715B2 (en) 2015-03-27 2015-06-02 Fingerprinting and matching log streams

Publications (1)

Publication Number Publication Date
DE102016205013A1 true DE102016205013A1 (de) 2016-09-29

Family

ID=56890376

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016205013.3A Pending DE102016205013A1 (de) 2015-03-27 2016-03-24 Fingerabdruckerstellung und Vergleichen von Protokolldatenströmen

Country Status (2)

Country Link
US (1) US10489715B2 (de)
DE (1) DE102016205013A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10489715B2 (en) 2015-03-27 2019-11-26 International Business Machines Corporation Fingerprinting and matching log streams
US10489714B2 (en) 2015-03-27 2019-11-26 International Business Machines Corporation Fingerprinting and matching log streams

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11477202B2 (en) * 2016-12-29 2022-10-18 AVAST Software s.r.o. System and method for detecting unknown IoT device types by monitoring their behavior
US10432752B2 (en) 2017-04-12 2019-10-01 International Business Machines Corporation Method and system for mobile applications update in the cloud
US10735808B2 (en) * 2017-08-10 2020-08-04 The Nielsen Company (Us), Llc Methods and apparatus of media device detection for minimally invasive media meters
US10805163B2 (en) * 2018-08-21 2020-10-13 Hewlett Packard Enterprise Development Lp Identifying device types based on behavior attributes

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8589436B2 (en) 2008-08-29 2013-11-19 Oracle International Corporation Techniques for performing regular expression-based pattern matching in data streams

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9639532B2 (en) * 2005-10-26 2017-05-02 Cortica, Ltd. Context-based analysis of multimedia content items using signatures of multimedia elements and matching concepts
US8069374B2 (en) * 2009-02-27 2011-11-29 Microsoft Corporation Fingerprinting event logs for system management troubleshooting
EP2601482B1 (de) * 2010-08-04 2016-01-06 Telecom Italia S.p.A. System und verfahren zum automatisch identifizieren von elektrischen geräte/anwendungen
US20140063237A1 (en) 2012-09-03 2014-03-06 Transportation Security Enterprises, Inc.(TSE), a Delaware corporation System and method for anonymous object identifier generation and usage for tracking
CN103049656B (zh) 2012-12-19 2017-04-12 中国铁道科学研究院 欧拉图的构造方法及基于该方法进行测试序列优化的方法
EP2806602A4 (de) * 2013-02-04 2015-03-04 Huawei Tech Co Ltd Merkmalsextraktionsvorrichtung, netzwerkverkehrsidentifikationsverfahren, vorrichtung und system
US8787836B1 (en) 2013-03-15 2014-07-22 DGS Global Systems, Inc. Systems, methods, and devices having databases and automated reports for electronic spectrum management
CN104144071B (zh) 2013-05-10 2018-02-06 北京新媒传信科技有限公司 系统日志的处理方法和系统日志的处理平台
CN104461842B (zh) 2013-09-23 2018-02-16 伊姆西公司 基于日志相似性来处理故障的方法和装置
CN103577307A (zh) 2013-11-07 2014-02-12 浙江中烟工业有限责任公司 基于xml规则模型的防火墙日志自动提取与分析方法
US9324038B2 (en) * 2013-11-15 2016-04-26 Xerox Corporation Method and system for clustering, modeling, and visualizing process models from noisy logs
CN103761296A (zh) 2014-01-20 2014-04-30 北京集奥聚合科技有限公司 移动终端用户网络行为分析方法及系统
CN104065644B (zh) 2014-05-28 2017-11-21 北京知道创宇信息技术有限公司 基于日志分析的cc攻击识别方法和设备
US9984365B2 (en) * 2014-12-02 2018-05-29 Ca, Inc. Device identification based on deep fingerprint inspection
US10489715B2 (en) 2015-03-27 2019-11-26 International Business Machines Corporation Fingerprinting and matching log streams
US10489714B2 (en) 2015-03-27 2019-11-26 International Business Machines Corporation Fingerprinting and matching log streams

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8589436B2 (en) 2008-08-29 2013-11-19 Oracle International Corporation Techniques for performing regular expression-based pattern matching in data streams

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10489715B2 (en) 2015-03-27 2019-11-26 International Business Machines Corporation Fingerprinting and matching log streams
US10489714B2 (en) 2015-03-27 2019-11-26 International Business Machines Corporation Fingerprinting and matching log streams

Also Published As

Publication number Publication date
US10489715B2 (en) 2019-11-26
US20160283854A1 (en) 2016-09-29

Similar Documents

Publication Publication Date Title
DE102016205013A1 (de) Fingerabdruckerstellung und Vergleichen von Protokolldatenströmen
CN108664375B (zh) 用于检测计算机网络系统用户的异常行为的方法
DE69923435T2 (de) System und verfahren zur optimierung der leistungskontrolle von komplexen informationstechnologiesystemen
DE69934102T2 (de) System und verfahren zur model-mining von komplexen informationtechnologiesystemen
DE112017007510T5 (de) Blockchain für offene wissenschaftliche forschung
DE112017005412T5 (de) Systeme und verfahren zum überwachen und analysieren von computer- und netzwerkaktivitäten
DE60004507T2 (de) Schnelle gruppierung durch spärlich bestückte datensätze
DE112020000227T5 (de) Maschinelles lernen eines computermodells auf grundlage von korrelationenvon trainingsdaten mit leistungstrends
DE102005049055A1 (de) Verfahren, um Ereignisse in einem Systemereignisprotokoll in eine Reihenfolge zu bringen
DE102012218485B4 (de) Verfahren für ein Instant Messaging-System und Instant Messaging-System
DE112018004401T5 (de) Detektor einer neuronalen antwort
DE112019000206T5 (de) Dynamisches Erstellen und Konfigurieren eines Lernmodells für Dialogagenten
DE112018004660T5 (de) Verwenden von kommentaren zum bereitstellen von optimierungen
DE112018001290T5 (de) Verfahren zum Schätzen der Löschbarkeit von Datenobjekten
DE112020000545T5 (de) Deep-forest-modell-entwicklung und -training
DE112020002552T5 (de) System und verfahren für eine siem-regel-sortierung und bedingte ausführung
DE102016100773A1 (de) Erfassen von Komprimierungsleistungsmesswerten für die Verarbeitung von Daten
DE112020005257T5 (de) Fehler-ursachen-analyse unter verwendung einer granger-kausalität
DE112016000962T5 (de) System und verfahren zur strukturierung von bewertungen mit automatisch erzeugten tags
DE112021002883T5 (de) Automatisierte rückmeldung und kontinuierliches lernen zur abfrageoptimierung
DE102021130396A1 (de) Datenzugriffsüberwachung und -steuerung
DE112021000689T5 (de) Attestierung von neuronalen abläufen
DE112020005732T5 (de) Erzeugen von trainingsdaten zur objekterkennung
DE112021005364T5 (de) Abwehr von gezielten datenbankangriffen durch dynamische generierung von honeypot-datenbankantworten
DE112015002933T5 (de) Immunverfahren zum Erfassen einer Anwenderverhaltensweise in einem elektronischen Transaktionsprozess

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R082 Change of representative

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017300000

Ipc: G06F0016000000

R084 Declaration of willingness to licence