-
Gebiet der Erfindung
-
Die vorliegende Erfindung bezieht sich allgemein auf Datenverarbeitungssysteme und im Besonderen auf verschiedene Ausführungsformen zur Graphdatenverarbeitung mit hybridem Schlussfolgern.
-
Beschreibung der verwandten Technik
-
In den letzten Jahren sind verschiedene Formen von künstlicher Intelligenz (artificial intelligence, Al) (und/oder von maschinellem Lernen, kognitiver Analyse usw.) in einer zunehmenden Vielfalt von Anwendungen implementiert worden, zum Beispiel bei der Objekterkennung, der Spracherkennung, der Sprachverarbeitung usw. Dieser Trend wird sich höchstwahrscheinlich fortsetzen, da die Vorteile solcher Systeme endlos erscheinen.
-
Ein Problem bei zumindest einigen Al-Systemen ist jedoch eine mangelnde „Erklärbarkeit“ im Hinblick auf erzeugte Ausgaben wie zum Beispiel eine Antwort auf eine Abfrage, eine Vorhersage usw. Das heißt, einige Al-Systeme werden als „Blackbox“ betrachtet. Genauer gesagt, obwohl sich aktuelle Al-Systeme bei einigen Anwendungen als sehr nützlich erwiesen haben (z.B. hohe Vorhersagegenauigkeit), ist es für eine Einzelperson (z.B. einen Software-Entwickler) häufig schwierig, wenn nicht gar unmöglich, genau zu verstehen, warum das Al-System die Ausgabe erzeugt hat, die es erzeugt hat, und/oder das durch das System eingesetzte Schlussfolgern einer anderen Person zu erklären. Allermindestens ist dies bei einigen Al-Systemen (z.B. bei Deep Learning oder neuronalen Netzen) der Fall, wenn sie für bestimmte Anwendungen eingesetzt werden.
-
Auch wenn dies bei der Nutzung von Al für relativ triviale Anwendungen (z.B. Bildverarbeitung, Transkription usw.) nicht von Bedeutung sein mag, ist dies bei wichtigen oder kritischen Anwendungen oder Szenarien (z.B. bei Sicherheits-/Militärmaßnahmen, medizinischen Entscheidungen, Anlageberatung, Fahrzeugsteuerung usw.) zumindest wohl nicht der Fall.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Es wird ein Verfahren nach Anspruch 1 bereitgestellt, und es werden darüber hinaus ein entsprechendes System und Computerprogramm nach Anspruch 8 bzw. 9 bereitgestellt.
-
Figurenliste
-
Zum besseren Verständnis der Vorteile der Erfindung erfolgt eine genauere Beschreibung der oben kurz beschriebenen Erfindung unter Bezugnahme auf spezifische Ausführungsformen, die in den beigefügten Zeichnungen veranschaulicht werden. In dem Verständnis, dass diese Zeichnungen lediglich typische Ausführungsformen der Erfindung darstellen und daher nicht so zu verstehen sind, dass sie ihren Umfang einschränken, wird die Erfindung genauer und ausführlicher mithilfe der beigefügten Zeichnungen beschrieben und erläutert, in denen:
- 1 ein Blockschaubild ist, das einen beispielhaften Datenverarbeitungsknoten gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
- 2 ein zusätzliches Blockschaubild ist, das eine beispielhafte Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
- 3 ein zusätzliches Blockschaubild ist, das Abstraktionsmodellschichten gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
- 4 bis 8 schematische Ansichten einer Graphdatenbank gemäß einer Ausführungsform der vorliegenden Erfindung sind;
- 9 eine schematische Ansicht einer Graphdatenbank mit mehreren impliziten Knoten gemäß einer Ausführungsform der vorliegenden Erfindung ist;
- 10 ein Blockschaubild eines Verfahrens zur Graphdatenverarbeitung gemäß einer Ausführungsform der vorliegenden Erfindung ist;
- 11 eine Draufsicht auf eine Reihe von Schlussfolgerungsschritten als Eingabe durch einen Benutzer gemäß einer Ausführungsform der vorliegenden Erfindung ist; und
- 12 ein Ablaufplan eines beispielhaften Verfahrens zur Graphdatenverarbeitung gemäß einer Ausführungsform der vorliegenden Erfindung ist.
-
AUSFÜHRLICHE BESCHREIBUNG DER ZEICHNUNGEN
-
Wie oben erörtert, sind in den letzten Jahren verschiedene Formen von künstlicher Intelligenz (Al) (und/oder von maschinellem Lernen, kognitiver Analyse usw.) in einer zunehmenden Vielfalt von Anwendungen implementiert worden, zum Beispiel bei der Objekterkennung, der Spracherkennung, der Sprachverarbeitung usw. Dieser Trend wird sich höchstwahrscheinlich fortsetzen, da die Vorteile solcher Systeme endlos erscheinen.
-
Ein Problem bei zumindest einigen Al-Systemen ist jedoch eine mangelnde „Erklärbarkeit“ im Hinblick auf erzeugte Ausgaben wie zum Beispiel eine Antwort auf eine Abfrage, eine Vorhersage usw. Das heißt, einige Al-Systeme werden als „Blackbox“ betrachtet. Genauer gesagt, obwohl sich aktuelle Al-Systeme bei einigen Anwendungen als sehr nützlich erwiesen haben (z.B. hohe Vorhersagegenauigkeit), ist es für eine Einzelperson (z.B. einen Software-Entwickler) häufig schwierig, wenn nicht gar unmöglich, genau zu verstehen, warum das Al-System die Ausgabe erzeugt hat, die es erzeugt hat, und/oder das durch das System eingesetzte Schlussfolgern einer anderen Person zu erklären.
-
Allermindestens ist dies bei einigen Al-Systemen der Fall, wenn sie für bestimmte Anwendungen eingesetzt werden. Genauer gesagt, als einige Beispiele werden Deep Learning und neuronale Netze so betrachtet, dass sie im Allgemeinen eine relativ hohe Vorhersagegenauigkeit bieten, aber auch so betrachtet, dass sie das geringste Ausmaß an Erklärbarkeit im Hinblick auf die erzeugte Ausgabe bereitstellen. Ensemble-Verfahren wie Random Forests und Support Vector Machines (SVMs) stellen in der Regel eine etwas verbesserte Erklärbarkeit, aber eine geringere Genauigkeit bereit. Die Erklärbarkeit wird durch graphische Modelle (z.B. bayessche Netze), Entscheidungsbäume und Klassifizierungsregeln bis zu einem gewissen Grad weiter verbessert, jedoch mit noch geringerer Genauigkeit.
-
Als spezifisches Beispiel werde die Verwendung eines Entscheidungsbaums betrachtet, um vorherzusagen, ob es sich bei einer bestimmten Web-Seite, die sich auf einen veröffentlichten Artikel bezieht, um eine „normale“ Web-Seite (d.h., sie enthält den gesamten Artikel) oder um eine „Auszugs“-Seite (d.h., sie enthält nur Auszüge, Zusammenfassungen, Kurzfassungen usw. von Artikeln) handelt. Ein Al-System, das in einem solchen Szenario einen Entscheidungsbaum einsetzt, kann beim Treffen dieser Vorhersage die Länge (oder die Anzahl der Zeichen) der URL der Web-Seite heranziehen (z.B. je länger die URL, desto wahrscheinlicher ist es, dass die Web-Seite den gesamten Artikel enthält). Wenngleich ein Einsatz einer solchen Metrik eine gewisse Verbesserung der Erklärbarkeit im Vergleich mit einer ähnlichen, durch ein neuronales Netz erzeugten Ausgabe bereitstellen kann, ist die Verwendung einer solchen Metrik selbst für Benutzer (z.B. Einzelpersonen, Menschen usw.) möglicherweise nicht ohne weiteres verständlich. Das heißt, Benutzer verstehen möglicherweise nicht, wie und/oder warum die URL-Länge mit dem Inhalt der Web-Seite zusammenhängt.
-
Auch wenn dieses Problem im Hinblick auf die Erklärbarkeit bei der Nutzung von AI für relativ triviale Anwendungen (z.B. Bildverarbeitung, Transkription usw.) nicht von Bedeutung sein mag, ist dies bei wichtigen oder kritischen Anwendungen oder Szenarien (z.B. bei Sicherheits-/Militärmaßnahmen, medizinischen Entscheidungen, Anlageberatung, Fahrzeugsteuerung usw.) zumindest wohl nicht der Fall.
-
Im Gegensatz zu Al-Systemen können Schlussfolgerungs-Engines (oder semantische Reasoner, Regel-Engines usw.) so eingesetzt werden, dass sie eine relativ explizite oder klare Erklärbarkeit bieten. Im Allgemeinen verfügen Schlussfolgerungs-Engines jedoch nicht über dieselben Fähigkeiten wie moderne Al-Systeme, im Besonderen im Hinblick auf das Lernen und/oder Trainieren auf Grundlage von bereitgestellten Beispielen.
-
Als ein Beispiel für eine Anwendung eines Schlussfolgerns werde ein Szenario betrachtet, in dem ein Schlussfolgern (oder eine Schlussfolgerungs-Engine) eingesetzt wird, um zu ermitteln, ob eine bestimmte Web-Domäne „schädlich“ ist (d.h., eine beliebige Art von Schad-Software oder „Malware“ enthält), und/oder den Akteur hinter der Domäne zu identifizieren. Als erster Schritt können jegliche der Domäne zugehörigen Internetprotokoll(IP)-Adressen identifiziert werden. Anschließend können jegliche Software-Hash-Werte (oder Software-Komponenten) identifiziert werden, die mit einer beliebigen dieser IP-Adressen Daten austauschen. Verschiedene Datenquellen wie zum Beispiel Erkennungen von Antiviren-Engines, Speicher, Datenbanken usw. können dann durchsucht werden, um zu ermitteln, ob jegliche der Hash-Werte (und/oder zugehörige Software-Komponenten) als Malware aufgeführt und/oder kategorisiert worden sind (und/oder ob der dahinterstehende Akteur aufgeführt worden ist). Herkömmliches Schlussfolgern (oder eine herkömmliche Schlussfolgerungs-Engine) ist jedoch im Allgemeinen nur in der Lage, Schlussfolgern aus „bekannten“ Fakten (oder deduktives Schlussfolgern) einzusetzen. Wie einem Fachmann ersichtlich ist, sind deduktive Argumente (oder Schlussfolgerungen) diejenigen, bei denen die Folgerungen notwendigerweise folgen oder zu folgen scheinen und/oder die enthalten, dass von einem allgemeinen Prinzip ausgegangen wird und das allgemeine Prinzip auf einen spezifischen Fall angewendet wird. Aus der Beweisführung „Alle Lehrer sind lustig“ und „Karen ist Lehrerin“ folgt zum Beispiel zwangsläufig, dass Karen lustig ist.
-
Wenn sie in einem solchen Szenario eingesetzt werden, können herkömmliche Schlussfolgerungs-Engines insofern eine Domäne nur dann als Malware und/oder einem bestimmten Akteur zugehörig identifizieren, wenn eine solche Ermittlung zuvor durch eine weitere Entität (z.B. eine Regierungsbehörde, eine Antiviren-Engine usw.) durchgeführt worden ist, und wie bereits erwähnt, verfügen Schlussfolgerungs-Engines nicht über die Lern- und/oder Trainings-Fähigkeiten vieler Al-Systeme.
-
Um diesen Bedarf und/oder die Mängel nach dem Stand der Technik zu behandeln, werden bei einigen hierin beschriebenen Ausführungsformen Verfahren und/oder Systeme offenbart, die eine Schlussfolgerungs-Engine bereitstellen (und/oder einsetzen), die zumindest einige der Vorteile von modernen Systemen für AI (oder maschinelles Lernen (ML), kognitive Analyse usw.) wie zum Beispiel Lernen und/oder Trainieren auf Grundlage von bereitgestellten Beispielen (z.B. Trainings-Daten) einbeziehen, um Vorhersagen usw. zu erzeugen, während sie darüber hinaus eine verbesserte Erklärbarkeit bereitstellen. Im Besonderen werden bei einigen Ausführungsformen Verfahren und/oder Systeme zur Graphdatenverarbeitung bereitgestellt, die induktives Schlussfolgern (oder probabilistisches Schlussfolgern oder probabilistisches induktives Schlussfolgern), vielleicht kombiniert mit deduktivem Schlussfolgern einsetzen. Im Besonderen können bei einigen Ausführungsformen hierin beschriebene Verfahren und Systeme so betrachtet werden, dass sie induktives Schlussfolgern unter Verwendung von graphischem Wissen (oder Graphdatenverarbeitung) bereitstellen, das durch die mathematische Funktion der Trennschärfe geschützt oder verbessert wird.
-
Im Hinblick auf das oben beschriebene Szenario der Cyber-Sicherheit können die hierin beschriebenen Verfahren und Systeme zum Beispiel Schlussfolgerungs-Engines einsetzen, die den oben beschriebenen ähneln. Bei zumindest einigen Ausführungsformen wird das Schlussfolgern jedoch so erweitert, dass die Engine in der Lage ist, Vorhersagen zu erzeugen und/oder induktives Schlussfolgern durchzuführen. So kann als ein Beispiel durch das System, ob eine bestimmte einzelne Software (oder ein Hash-Wert) durch eine oder mehrere Antiviren-Engines als verdächtig oder fragwürdig gekennzeichnet oder markiert worden ist (anstatt endgültig als Malware durch eine Organisation angegeben zu werden), genutzt werden, um eine Vorhersage darüber zu erzeugen, ob es sich bei der Software um Malware handelt (und/oder den Akteur vorherzusagen, der die Domäne steuert usw.). Genauer gesagt, bei einigen Ausführungsformen kann ein bestimmter Rückschluss (oder eine Vorhersage, Ermittlung usw.) sogar ohne bekannte Tatsachen unter Verwendung von induktivem (oder nichtdeduktivem) Schlussfolgern erreicht werden. Wie einem Fachmann ersichtlich ist, sind induktive Argumente (oder Schlussfolgerungen) diejenigen, bei denen die Rückschlüsse „wahrscheinlich“ folgen oder zu folgen scheinen und/oder die enthalten, dass von einem oder mehreren spezifischen (oder besonderen) Fällen ausgegangen wird und versucht wird, das allgemeine Prinzip auf Grundlage des/der spezifischen Falls/Fälle zu erzeugen. Aus der Beweisführung „90 % der Lehrer sind lustig“ und „Karen ist Lehrerin“ folgt zum Beispiel (wahrscheinlich), dass Karen lustig ist (oder genauer gesagt, dass die Wahrscheinlichkeit, dass Karen lustig ist, bei 90 % liegt).
-
Um mit dem Szenario der Cyber-Sicherheit im Einzelnen fortzufahren, kann das System, wenn ein bestimmter Hash-Wert identifiziert wird, jedoch nicht offiziell als einer Malware-Familie zugehörig dokumentiert worden ist, mehrere Datenbanken von Antiviren-Engines durchsuchen, um jegliche Informationen oder Erkennungen im Zusammenhang mit dem Hash-Wert zu identifizieren. Abhängig von den identifizierten Informationen (z.B. dass mehrere Antiviren-Engines den Hash-Wert/die Software als verdächtig kennzeichnen) kann das System in der Lage sein, eine Vorhersage darüber zu erzeugen, ob es sich bei der Software um Malware handelt. Bei einigen Ausführungsformen kann das induktive Schlussfolgern „gestapelt“ werden, so dass mehrere Induktionen vorgenommen werden können, wie im Folgenden ausführlicher erörtert wird.
-
Es versteht sich, dass, wenngleich einige hierin bereitgestellte Ausführungsformen im Hinblick auf Szenarien der Cyber-Sicherheit beschrieben werden, die hierin beschriebenen Verfahren und/oder Systeme auf ein beliebiges Szenario angewendet werden können, in dem eine Schlussfolgerungs-Engine und/oder eine Technik zum maschinellen Lernen (oder Al, kognitiver Analyse usw.) eingesetzt werden kann.
-
Bei einigen Ausführungsformen wird das hierin beschriebene Schlussfolgern unter Verwendung von Graphdatenverarbeitung (oder Traversieren von Graphdatenbanken) durchgeführt, wie nach dem Stand der Technik allgemein bekannt ist. Gemäß zumindest einigen Aspekten der hierin beschriebenen Funktionalität werden Traversierungen zwischen Knoten (der Graphen) unter Verwendung von hybridem Schlussfolgern durchgeführt, das ein induktives Schlussfolgern, bei einigen Ausführungen mit deduktivem Schlussfolgern kombiniert, enthält. Bei einigen Ausführungsformen können die Graphen so verstanden werden, dass sie zwei Typen von Knoten enthalten: explizite (oder einen ersten Typ von) Knoten und implizite oder „Durchgangs“- (oder einen zweiten Typ von) Knoten. Traversierungen zwischen expliziten Knoten können unter Verwendung von deduktivem Schlussfolgern durchgeführt werden. Wenn deduktives Schlussfolgern jedoch nicht in der Lage ist, eine Traversierung zwischen zwei expliziten Knoten zuzulassen, kann induktives Schlussfolgern eingesetzt werden, das so betrachtet werden kann, dass es ein Traversieren zwischen zwei der expliziten Knoten auf eine „indirekte“ Weise durch einen oder mehrere der impliziten Knoten enthält. Bei einigen Ausführungsformen enthält und/oder nutzt das induktive Schlussfolgern ein probabilistisches induktives Schlussfolgern.
-
Es versteht sich, dass zumindest einige der Aspekte der hierin beschriebenen Funktionalität unter Verwendung einer kognitiven Analyse durchgeführt werden können. Die kognitive Analyse kann eine Verarbeitung von natürlicher Sprache (natural language processing, NLP) oder eine NLP-Technik enthalten, etwa ein Klassifizieren von natürlicher Sprache, ein Analysieren von Ton und ein Analysieren einer Stimmung (z.B. ein Durchsuchen nach Schlüsselwörtern, Schlüsselausdrücken usw.) zum Beispiel im Hinblick auf Inhalt und Datenübertragungen, die an Benutzer oder Entitäten und/oder sonstige verfügbare Datenquellen gesendet und/oder durch diese empfangen werden. Bei einigen Ausführungsformen werden eine Verarbeitung von natürlicher Sprache (NLP), Mel-Frequenz-Cepstrum-Koeffizienten (Mel-frequency cepstral coefficients, MFCCs) (z.B. für Audioinhalte) und/oder eine Pixel-Zuordnung in einem auf Bereichen beruhenden faltenden neuronalen Netz (region-based convolutional neural network, R-CNN) (z.B. zur Objekterkennung/- klassifizierung in Bildern/Videos) verwendet, wie sie allgemein bekannt sind.
-
Die hierin beschriebenen Prozesse können verschiedene Informations- oder Datenquellen nutzen, die Benutzern und/oder Entitäten (z.B. Themen von Abfragen, Datenquellen usw.) und/oder dem Inhalt von Datenübertragungen zugehörig sind. Die Datenquellen können beliebige verfügbare Informations- (oder Daten-) Quellen enthalten, die dem Benutzer und/oder den Entitäten zugehörig sind. Bei einigen Ausführungsformen kann zum Beispiel ein Profil (z.B. ein kognitives Profil) für den/die Benutzer (und/oder Entitäten) erzeugt werden. Datenquellen, die dazu verwendet werden können, kognitive Profile zu erzeugen, können beliebige geeignete Datenquellen enthalten, die dem Benutzer/der Entität zugehörig sind, die durch das System zugänglich sind (vielleicht mit der Erlaubnis oder Genehmigung des Benutzers/der Entität). Zu Beispielen für solche Datenquellen zählen, ohne darauf beschränkt zu sein, Datenübertragungssitzungen und/oder deren Inhalt (oder Datenübertragungen) (z.B. Telefonanrufe, Videoanrufe, Textnachrichten, eMails, persönliche Gespräche/Gespräche von Angesicht zu Angesicht usw.), ein Profil des/der (oder grundlegende Informationen über den/die) Benutzers/Entität (z.B. Berufsbezeichnung, Arbeitsort, Dauer in der aktuellen Position, Rolle in der Familie usw.), ein Zeitplan oder Kalender (d.h., die darin aufgeführten Punkte, Zeitrahmen usw.), Projekte (z.B. vergangene, aktuelle oder zukünftige arbeitsbezogene Projekte), Standort (z.B. früherer und/oder aktueller Standort und/oder Standort im Verhältnis zu sonstigen Benutzern), Aktivitäten in sozialen Medien (z.B. Beiträge, Reaktionen, Kommentare, Gruppen usw.), Navigationsverlauf (z.B. besuchte Web-Seiten) und Online-Einkäufe.
-
Insofern können bei einigen Ausführungsformen die hierin beschriebenen Verfahren und/oder Systeme eine „kognitive Analyse“, ein „kognitives System“, „maschinelles Lernen“, „kognitive Modellierung“, „Vorhersageanalyse“ und/oder „Datenanalyse“ verwenden, wie sie einem Fachmann allgemein bekannt sind. Im Allgemeinen können diese Prozesse zum Beispiel ein Empfangen und/oder Abrufen von mehreren Sätzen von Eingaben und den zugehörigen Ausgaben eines oder mehrerer Systeme und ein Verarbeiten der Daten (z.B. mithilfe eines Datenverarbeitungssystems und/oder Prozessors), um Modelle, Regeln usw. zu erzeugen oder zu extrahieren, die dem Betrieb des Systems/der Systeme entsprechen, diese(s) regeln und/oder schätzen, oder im Hinblick auf die hierin beschriebenen Ausführungsformen eine Graphdatenverarbeitung enthalten, wie hierin beschrieben. Unter Verwendung der Modelle kann die Leistungsfähigkeit (oder der Betrieb) des Systems (z.B. unter Verwendung/auf Grundlage von neuen Eingaben) vorhergesagt werden und/oder kann die Leistungsfähigkeit des Systems optimiert werden, indem untersucht wird, wie sich Änderungen in der/den Eingabe(n) auf die Ausgabe(n) auswirken. Rückmeldungen, die von Benutzern und/oder Administratoren empfangen (oder durch diese bereitgestellt) werden, können ebenfalls genutzt werden, was ermöglichen kann, dass sich die Leistungsfähigkeit des Systems bei fortgesetzter Nutzung weiter verbessert.
-
Es versteht sich, dass sich der Begriff „Datenverarbeitungsknoten“ (oder einfach „Knoten“), so, wie er hierin verwendet wird, auf eine Datenverarbeitungseinheit wie zum Beispiel eine mobile elektronische Einheit, einen Desktop-Computer usw. und/oder auf eine Anwendung wie zum Beispiel einen Chatbot, eine eMail-Anwendung, eine Social-Media-Anwendung, einen Web-Browser usw. beziehen kann. Mit anderen Worten, so, wie sie hierin verwendet werden, enthalten Beispiele von Datenverarbeitungsknoten zum Beispiel Datenverarbeitungseinheiten wie etwa Mobiltelefone, Tablet-Einheiten, Desktop-Computer oder sonstige Einheiten wie etwa Haushaltsgeräte (loT-Haushaltsgeräte), die Personen (oder Benutzern) gehören und/oder diesen auf andere Weise zugehörig sind, und/oder verschiedene Anwendungen, die durch die Personen auf solchen Datenverarbeitungseinheiten genutzt werden.
-
Im Besonderen wird bei einigen Ausführungsformen ein Verfahren zur Graphdatenverarbeitung durch einen Prozessor bereitgestellt. Es wird ein Graph erzeugt, der eine Mehrzahl von expliziten Knoten und zumindest einen impliziten Knoten enthält. Zwischen einem ersten der Mehrzahl von expliziten Knoten und einem zweiten der Mehrzahl von expliziten Knoten wird unter Verwendung von deduktivem Schlussfolgern traversiert. Zwischen einem dritten der Mehrzahl von expliziten Knoten und einem vierten der Mehrzahl von expliziten Knoten wird durch den zumindest einen impliziten Knoten unter Verwendung von induktivem Schlussfolgern traversiert.
-
Es kann eine Abfrage empfangen werden, die dem Graphen zugehörig ist. Eine Antwort auf die Abfrage kann auf Grundlage des Traversierens zwischen dem ersten der Mehrzahl von expliziten Knoten und dem zweiten der Mehrzahl von expliziten Knoten und des Traversierens zwischen dem dritten der Mehrzahl von expliziten Knoten und dem vierten der Mehrzahl von expliziten Knoten erzeugt werden. Der zumindest eine implizite Knoten kann eine Mehrzahl von impliziten Knoten enthalten.
-
Das Traversieren zwischen dem dritten der Mehrzahl von expliziten Knoten und dem vierten der Mehrzahl von expliziten Knoten kann eine erste Traversierung von dem dritten der Mehrzahl von expliziten Knoten zu dem vierten der Mehrzahl von expliziten Knoten durch einen ersten der Mehrzahl von impliziten Knoten unter Verwendung von induktivem Schlussfolgern und eine zweite Traversierung von dem dritten der Mehrzahl von expliziten Knoten zu dem vierten der Mehrzahl von expliziten Knoten durch einen zweiten der Mehrzahl von impliziten Knoten unter Verwendung von induktivem Schlussfolgern enthalten. Die erste Traversierung kann außerhalb des zweiten der Mehrzahl von impliziten Knoten erfolgen, und die zweite Traversierung kann außerhalb des ersten der Mehrzahl von impliziten Knoten erfolgen.
-
Das Traversieren zwischen dem dritten der Mehrzahl von expliziten Knoten und dem vierten der Mehrzahl von expliziten Knoten kann ein Traversieren von dem dritten der Mehrzahl von expliziten Knoten durch einen ersten der Mehrzahl von impliziten Knoten zu einem zweiten der Mehrzahl von impliziten Knoten unter Verwendung von induktivem Schlussfolgern und ein Traversieren von dem zweiten der Mehrzahl von impliziten Knoten zu dem vierten der Mehrzahl von expliziten Knoten unter Verwendung von induktivem Schlussfolgern enthalten.
-
Das Erzeugen des Graphen kann ein Empfangen einer Benutzereingabe, die dem zumindest einen impliziten Knoten zugehörig ist, und ein Erzeugen des zumindest einen impliziten Knotens auf Grundlage der Benutzereingabe enthalten. Das Traversieren zwischen dem dritten der Mehrzahl von expliziten Knoten und dem vierten der Mehrzahl von expliziten Knoten durch den zumindest einen impliziten Knoten kann unter Verwendung von probabilistischem induktiven Schlussfolgern durchgeführt werden.
-
Es versteht sich von vornherein, dass, wenngleich diese Offenbarung eine ausführliche Beschreibung zu Cloud-Computing enthält, eine Implementierung der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Stattdessen sind Ausführungsformen der vorliegenden Erfindung in der Lage, gemeinsam mit einem beliebigen Typ einer jetzt bekannten oder später entwickelten Datenverarbeitungsumgebung wie zum Beispiel Mobilfunknetzen implementiert zu werden.
-
Cloud-Computing ist ein Dienstbereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungs-Ressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimalem Zusammenwirken mit einem Anbieter des Diensts schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann zumindest fünf Eigenschaften, zumindest drei Dienstmodelle und zumindest vier Implementierungsmodelle enthalten.
-
Bei den Eigenschaften handelt es sich um die Folgenden:
- On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Server-Zeit und Netzwerkspeicher sorgen, ohne dass ein menschliches Zusammenwirken mit dem Anbieter der Dienste erforderlich ist.
- Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
- Resource-Pooling: Die Datenverarbeitungs-Ressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
- Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt, und sie können jederzeit in jeder beliebigen Menge gekauft werden.
- Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Die Nutzung von Ressourcen kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
-
Bei den Dienstmodellen handelt es sich um die Folgenden:
- Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Auf die Anwendungen kann von verschiedenen Client-Einheiten durch eine Thin-Client-Schnittstelle wie zum Beispiel einen Web-Browser (z.B. eMail auf Grundlage des Web) zugegriffen werden. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
- Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen des Application Hosting Environment.
- Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, das Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungs-Ressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
-
Bei den Implementierungsmodellen handelt es sich um die Folgenden:
- Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich innerhalb oder außerhalb der eigenen Räumlichkeiten befinden.
- Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Angelegenheiten hat (z.B. Mission, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann sich innerhalb oder außerhalb der eigenen Räumlichkeiten befinden.
- Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und sie gehört einer Cloud-Dienste verkaufenden Organisation.
- Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
-
Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Herzen von Cloud-Computing liegt eine Infrastruktur, die ein Netzwerk aus zusammengeschalteten Knoten aufweist.
-
Unter Bezugnahme auf 1 wird eine schematische Darstellung eines Beispiels für einen Cloud-Computing-Knoten gezeigt. Der Cloud-Computing-Knoten 10 ist lediglich ein Beispiel für einen geeigneten Cloud-Computing-Knoten und soll den Umfang der Nutzung oder der Funktionalität von Ausführungsformen der hierin beschriebenen Erfindung in keiner Weise einschränken. Dennoch ist der Cloud-Computing-Knoten 10 (und/oder ein oder mehrere hierin beschriebene Prozessoren) in der Lage, implementiert zu werden und/oder jegliche der hierin oben dargelegten Funktionalitäten durchzuführen (oder zu bewirken oder zu aktivieren).
-
In dem Cloud-Computing-Knoten 10 befindet sich ein Computersystem/Server 12, das/der mit zahlreichen sonstigen Universal- oder Spezial-Datenverarbeitungssystem-Umgebungen oder -Konfigurationen betrieben werden kann. Zu Beispielen für allgemein bekannte Datenverarbeitungssysteme, -Umgebungen und/oder -Konfigurationen, die zur Verwendung mit dem Computersystem/Server 12 geeignet sein können, zählen Personal-Computersysteme, Server-Computersysteme, Thin Clients, Thick Clients, Hand- oder Laptop-Einheiten, Mehrprozessorsysteme, Systeme auf Grundlage von Mikroprozessoren, Set-Top-Boxen, programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputersysteme, Großrechnersysteme und verteilte Cloud-Computing-Umgebungen, die beliebige der obigen Systeme oder Einheiten enthalten, und dergleichen, ohne auf diese beschränkt zu sein.
-
Das Computersystem/der Server 12 kann im allgemeinen Zusammenhang von Anweisungen beschrieben werden, die durch ein Computersystem ausgeführt werden können, wie zum Beispiel Programmmodule, die durch ein Computersystem ausgeführt werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen usw. enthalten, die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen implementieren. Das Computersystem/der Server 12 kann in verteilten Cloud-Computing-Umgebungen angewendet werden, in denen Aufgaben durch entfernt angeordnete Verarbeitungseinheiten durchgeführt werden, die durch ein Datenübertragungsnetzwerk miteinander verbunden sind. Bei einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl in lokalen als auch in entfernt angeordneten Computersystem-Speichermedien befinden, darunter in Speichereinheiten.
-
Wie in 1 gezeigt, wird das Computersystem/der Server 12 in dem Cloud-Computing-Knoten 10 in Form einer Universal-Datenverarbeitungseinheit dargestellt. Zu den Komponenten des Computersystems/Servers 12 können ein oder mehrere Prozessoren oder Verarbeitungseinheiten 16, ein Systemspeicher 28 und ein Bus 18 zählen, der verschiedene Systemkomponenten wie etwa den Systemspeicher 28 mit dem Prozessor 16 verbindet, ohne auf diese beschränkt zu sein.
-
Der Bus 18 stellt einen oder mehrere von mehreren beliebigen Typen von Busstrukturen dar, darunter einen Speicherbus oder eine Speichersteuereinheit, einen Peripheriebus, einen Accelerated Graphics Port und einen Prozessor- oder einen lokalen Bus unter Verwendung einer beliebigen von einer Vielfalt von Busarchitekturen. Beispielsweise, und ohne einschränkend zu wirken, enthalten solche Architekturen einen Industry-Standard-Architecture(ISA)-Bus, einen Micro-Channel-Architecture(MCA)-Bus, einen Enhanced-ISA(EISA)-Bus, einen lokalen Video-Electronics-Standards-Association(VESA)-Bus und einen Peripheral-Component-Interconnects(PCI)-Bus.
-
Das Computersystem/der Server 12 enthält üblicherweise eine Vielfalt von durch ein Computersystem lesbaren Medien. Bei solchen Medien kann es sich um beliebige verfügbare Medien handeln, auf die durch das Computersystem/den Server 12 zugegriffen werden kann, und sie enthalten sowohl flüchtige als auch nichtflüchtige Medien sowie austauschbare und nichtaustauschbare Medien.
-
Der Systemspeicher 28 kann durch ein Computersystem lesbare Medien in Form eines flüchtigen Speichers wie zum Beispiel eines Direktzugriffsspeichers (random access memory, RAM) 30 und/oder eines Cache-Speichers 32 enthalten. Das Computersystem/der Server 12 kann des Weiteren sonstige austauschbare/nicht austauschbare, flüchtige/nichtflüchtige Computersystem-Speichermedien enthalten. Lediglich als Beispiel kann ein Speichersystem 34 zum Lesen von einem nicht austauschbaren, nichtflüchtigen (nicht dargestellten und üblicherweise als „Festplatte“ bezeichneten) Magnetmedium und zum Schreiben darauf bereitgestellt werden. Wenngleich es nicht dargestellt wird, kann ein Magnetplattenlaufwerk zum Lesen von einer austauschbaren, nichtflüchtigen Magnetplatte (z.B. einer „Diskette“) und zum Schreiben darauf und ein optisches Plattenlaufwerk zum Lesen von einer austauschbaren, nichtflüchtigen optischen Platte wie zum Beispiel einer CD-ROM, DVD-ROM oder sonstigen optischen Medien und zum Schreiben darauf bereitgestellt werden. In solchen Fällen kann jedes durch eine oder mehrere Datenmedien-Schnittstellen mit dem Bus 18 verbunden sein. Wie im Folgenden näher dargestellt und beschrieben wird, kann der Systemspeicher 28 zumindest ein Programmprodukt enthalten, das einen Satz (z.B. zumindest eins) von Programmmodulen aufweist, die dazu konfiguriert sind, die Funktionen von Ausführungsformen der Erfindung auszuführen.
-
Ein Programm/Dienstprogramm 40, das einen Satz (zumindest eins) von Programmmodulen 42 aufweist, kann als Beispiel, das keine Einschränkung darstellen soll, in dem Systemspeicher 28 gespeichert werden, wie auch ein Betriebssystem, ein oder mehrere Anwendungsprogramme, sonstige Programmmodule und Programmdaten. Von dem Betriebssystem, dem einen oder den mehreren Anwendungsprogrammen, den sonstigen Programmmodulen und Programmdaten und einigen Kombinationen von diesen kann jedes eine Implementierung einer Netzwerkumgebung enthalten. Die Programmmodule 42 führen im Allgemeinen die Funktionen und/oder Methoden von Ausführungsformen der Erfindung aus, wie sie hierin beschrieben wird.
-
Das Computersystem/der Server 12 kann außerdem mit einer oder mehreren externen Einheiten 14 wie zum Beispiel einer Tastatur, einer Zeigeeinheit, einer Anzeige 24 usw.; einer oder mehreren Einheiten, die einem Benutzer ermöglichen, mit dem Computersystem/dem Server 12 zu interagieren; und/oder beliebigen Einheiten (z.B. einer Netzwerkkarte, einem Modem usw.) Daten austauschen, die dem Computersystem/Server 12 ermöglichen, Daten mit einer oder mehreren sonstigen Datenverarbeitungseinheiten auszutauschen. Eine solche Datenübertragung kann über Eingabe-/Ausgabe(E/A)-Schnittstellen 22 durchgeführt werden. Weiterhin kann das Computersystem/der Server 12 mit einem oder mehreren Netzwerken wie zum Beispiel einem lokalen Netzwerk (local area network, LAN), einem allgemeinen Weitverkehrsnetzwerk (wide area network, WAN) und/oder einem öffentlichen Netzwerk (z.B. dem Internet) über einen Netzwerkadapter 20 Daten austauschen. Wie dargestellt, tauscht der Netzwerkadapter 20 Daten mit den sonstigen Komponenten des Computersystems/Servers 12 über den Bus 18 aus. Es versteht sich, wenngleich dies nicht dargestellt wird, dass sonstige Hardware- und/oder Software-Komponenten zusammen mit dem Computersystem/Server 12 verwendet werden könnten. Zu Beispielen zählen, ohne auf diese beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerk-Arrays, RAID-Systeme, Bandlaufwerke und Datenarchivierungs-Speichersysteme usw.
-
Im Rahmen der vorliegenden Erfindung und wie einem Fachmann ersichtlich ist, können sich verschiedene Komponenten, die in 1 dargestellt sind, zum Beispiel in Personal-Computersystemen, Server-Computersystemen, Thin Clients, Thick Clients, Hand- oder Laptop-Einheiten, Mehrprozessorsystemen, Systemen auf Grundlage von Mikroprozessoren, Set-Top-Boxen, programmierbarer Unterhaltungselektronik, Netzwerk-PCs, mobilen elektronischen Einheiten wie zum Beispiel Mobiltelefonen (oder Handys und/oder Smartphones), persönlichen Datenassistenten (PDAs), Tablets, Wearable-Technologieeinheiten, Laptops, Handspielekonsolen, tragbaren Media-Playern usw. sowie in Datenverarbeitungssystemen in Fahrzeugen wie zum Beispiel Kraftfahrzeugen, Luftfahrzeugen, Wasserfahrzeugen usw. befinden. Bei einigen Ausführungsformen können sich einige der Komponenten, die in 1 dargestellt sind, jedoch in einer Datenverarbeitungseinheit in zum Beispiel einem Satelliten wie etwa einem Satelliten für ein globales Positionsbestimmungssystem (GPS) befinden. Einige der Verarbeitungs- und Datenspeicherfähigkeiten, die Mechanismen der veranschaulichten Ausführungsformen zugehörig sind, können zum Beispiel lokal über lokale Verarbeitungskomponenten stattfinden, wohingegen dieselben Komponenten über ein Netzwerk mit entfernt angeordneten, verteilten Datenverarbeitungs- und Speicherkomponenten verbunden sind, um verschiedene Zwecke der vorliegenden Erfindung zu erfüllen. Wiederum ist einem Fachmann ersichtlich, dass die vorliegende Veranschaulichung nur eine Teilmenge dessen vermitteln soll, was ein gesamtes verbundenes Netzwerk von verteilten Datenverarbeitungskomponenten sein kann, die gemeinsam verschiedene erfinderische Aspekte erfüllen.
-
Unter Bezugnahme auf 2 wird eine veranschaulichende Cloud-Computing-Umgebung 50 dargestellt. Wie dargestellt, weist die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10 auf, mit denen lokale Datenverarbeitungseinheiten, die durch Cloud-Kunden verwendet werden, wie zum Beispiel ein Handy (oder Mobiltelefon) oder PDA 54A, ein Desktop-Computer 54B, ein Laptop-Computer 54C und ein Fahrzeug-Datenverarbeitungssystem (das z.B. in Kraftfahrzeuge, Luftfahrzeuge, Wasserfahrzeuge usw. integriert sein kann) 54N, Daten austauschen können.
-
Weiterhin unter Bezugnahme auf 2 können Knoten 10 Daten miteinander austauschen. Sie können physisch oder virtuell in einem oder mehreren Netzwerken zusammengefasst werden (nicht dargestellt), zum Beispiel in Private, Community, Public oder Hybrid Clouds, wie hierin oben beschrieben, oder in einer Kombination von diesen. Dies ermöglicht der Cloud-Computing-Umgebung 50, Infrastruktur, Plattformen und/oder Software als Dienstleistungen anzubieten, für die ein Cloud-Kunde keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es versteht sich, dass die in 2 dargestellten Typen von Datenverarbeitungseinheiten 54A bis N lediglich der Veranschaulichung dienen sollen und dass die Datenverarbeitungsknoten 10 und die Cloud-Computing-Umgebung 50 mit einem beliebigen Typ einer computerisierten Einheit über einen beliebigen Typ von Netzwerk und/oder eine über ein Netzwerk adressierbare Verbindung (z.B. mithilfe eines Web-Browsers) Daten austauschen können.
-
Unter Bezugnahme auf 3 wird ein Satz funktionaler Abstraktionsschichten dargestellt, die durch das Cloud-Computing-System 50 (2) bereitgestellt werden. Es versteht sich im Vorhinein, dass die in 3 dargestellten Komponenten, Schichten und Funktionen lediglich der Veranschaulichung dienen sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
-
Eine Einheitenschicht 55 enthält physische und/oder virtuelle Einheiten, integrierte und/oder eigenständige Elektronik, Sensoren, Aktuatoren und sonstige Objekte, um verschiedene Aufgaben in einer Cloud-Computing-Umgebung 50 durchzuführen. Jede der Einheiten in der Einheitenschicht 55 enthält eine Netzwerkfähigkeit mit sonstigen funktionalen Abstraktionsschichten, so dass von den Einheiten bezogene Informationen diesen bereitgestellt werden können und/oder Informationen von den sonstigen Abstraktionsschichten den Einheiten bereitgestellt werden können. Bei einer Ausführungsform können die verschiedenen Einheiten einschließlich der Einheitenschicht 55 ein Netzwerk von Entitäten enthalten, das gemeinsam als „Internet der Dinge“ (loT) bezeichnet wird. Ein solches Netzwerk von Entitäten ermöglicht eine übergreifende Datenübertragung, eine Erfassung und Verteilung von Daten für vielfältige Zwecke, wie einem Fachmann ersichtlich ist.
-
Die Einheitenschicht 55 enthält, wie dargestellt, einen Sensor 52, einen Aktuator 53, einen „lernenden“ Thermostaten 56 mit integrierter Verarbeitung, Sensor- und Netzwerkelektronik, eine Kamera 57, eine steuerbare Haushaltssteckdose/Anschlussbuchse 58, und einen steuerbaren elektrischen Schalter 59, wie dargestellt. Zu sonstigen möglichen Einheiten können verschiedene zusätzliche Sensoreinheiten, Netzwerkeinheiten, elektronische Einheiten (wie zum Beispiel eine Fernsteuerungseinheit), zusätzliche Aktuaktoreinheiten, sogenannte „intelligente“ Haushaltsgeräte wie etwa ein Kühlschrank oder eine Waschmaschine/ein Wäschetrockner oder eine Klimaanlageneinheit und eine große Vielfalt sonstiger möglicher miteinander verbundener Einheiten/Objekte zählen, ohne darauf beschränkt zu sein.
-
Eine Hardware- und Software-Schicht 60 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten zählen: Großrechner 61; Server 62 auf Grundlage einer RISC-Architektur (Reduced Instruction Set Computer, Computer mit reduziertem Anweisungssatz); Server 63; Blade-Server 64; Speichereinheiten 65; und Netzwerke sowie Netzwerkkomponenten 66. Bei einigen Ausführungsformen zählen zu Software-Komponenten eine Netzwerkanwendungs-Server-Software 67 und eine Datenbank-Software 68.
-
Eine Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, von der die folgenden Beispiele für virtuelle Entitäten bereitgestellt werden können: virtuelle Server 71; ein virtueller Speicher 72; virtuelle Netzwerke 73, darunter virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
-
In einem Beispiel kann die Verwaltungsschicht 80 die im Folgenden beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung 81 bietet eine dynamische Beschaffung von Datenverarbeitungs-Ressourcen und sonstigen Ressourcen, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung genutzt werden. Messung und Preisbildung 82 stellen eine Kostenüberwachung während der Nutzung von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie Abrechnung oder Rechnungsstellung für den Verbrauch dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen aufweisen. Die Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und sonstige Ressourcen bereit. Ein Benutzerportal 83 stellt Nutzern und Systemadministratoren einen Zugriff auf die Cloud-Computing-Umgebung bereit. Eine Dienstgüteverwaltung 84 stellt eine Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass erforderliche Dienstgütegrade erreicht werden. Eine Planung und Erfüllung von Dienstgütevereinbarungen (Service Level Agreement, SLA) 85 stellen eine Vorbereitung für und eine Bereitstellung von Cloud-Computing-Ressourcen bereit, für die eine künftige Erfordernis gemäß einer SLA erwartet wird.
-
Eine Verarbeitungsprozessschicht 90 stellt Beispiele für eine Funktionalität bereit, für die die Cloud-Computing-Umgebung eingesetzt werden kann. Zu Beispielen für Verarbeitungsprozesse und Funktionen, die von dieser Schicht aus bereitgestellt werden können, zählen: Zuordnung und Navigation 91; Software-Entwicklung und Lebenszyklusverwaltung 92; Bereitstellung von virtuellen Schulungen 93; Datenanalyseverarbeitung 94; Transaktionsverarbeitung 95; und im Zusammenhang mit den veranschaulichten Ausführungsformen der vorliegenden Erfindung verschiedene Verarbeitungsprozesse und Funktionen 96 zur Graphdatenverarbeitung, wie hierin beschrieben. Einem Fachmann ist ersichtlich, dass die Verarbeitungsprozesse und Funktionen 96 auch mit sonstigen Abschnitten der verschiedenen Abstraktionsschichten wie zum Beispiel denjenigen in Hardware und Software 60, Virtualisierung 70, Verwaltung 80 und sonstigen Verarbeitungsprozessen 90 (wie etwa Datenanalyseverarbeitung 94) zusammenarbeiten können, um die verschiedenen Zwecke der veranschaulichten Ausführungsformen der vorliegenden Erfindung zu erfüllen.
-
Wie zuvor erwähnt, werden bei einigen Ausführungsformen Verfahren und/oder Systeme beschrieben, die eine Schlussfolgerungs-Engine bereitstellen (und/oder einsetzen), die zumindest einige der Vorteile von modernen Systemen für AI (oder maschinelles Lernen (ML), kognitive Analyse usw.) wie zum Beispiel Lernen und/oder Trainieren auf Grundlage von bereitgestellten Beispielen (z.B. Trainings-Daten) einbeziehen, um Vorhersagen usw. zu erzeugen, während sie darüber hinaus eine verbesserte Erklärbarkeit bereitstellen.
-
Bei einigen Ausführungsformen wird das hierin beschriebene Schlussfolgern unter Verwendung von Graphdatenverarbeitung durchgeführt, wie nach dem Stand der Technik allgemein bekannt ist. Gemäß zumindest einigen Aspekten der hierin beschriebenen Funktionalität werden Traversierungen zwischen Knoten (der Graphen) unter Verwendung von hybridem Schlussfolgern durchgeführt, das ein induktives Schlussfolgern, bei einigen Ausführungen mit deduktivem Schlussfolgern kombiniert, enthält. Bei einigen Ausführungsformen können die Graphen so verstanden werden, dass sie zwei Typen von Knoten enthalten: explizite (oder einen ersten Typ von) Knoten und implizite oder „Durchgangs“- (oder einen zweiten Typ von) Knoten. Traversierungen zwischen expliziten Knoten können unter Verwendung von deduktivem Schlussfolgern durchgeführt werden. Wenn deduktives Schlussfolgern jedoch nicht in der Lage ist, eine Traversierung zwischen zwei expliziten Knoten zuzulassen, kann induktives Schlussfolgern eingesetzt werden, das so betrachtet werden kann, dass es ein Traversieren zwischen zwei der expliziten Knoten auf eine „indirekte“ Weise durch einen oder mehrere der impliziten Knoten enthält. Bei einigen Ausführungsformen enthält und/oder nutzt das induktive Schlussfolgern ein probabilistisches induktives Schlussfolgern.
-
4 veranschaulicht einen Graphen (oder eine Graphdatenbank oder ein(e) Schlussfolgerungs-Engine oder -verfahren) 400 gemäß einer Ausführungsform der vorliegenden Erfindung. Es versteht sich jedoch, dass 4 so aufgefasst werden kann, dass sie einfach einen Schlussfolgerungsprozess veranschaulicht, der durch die hierin beschriebenen Verfahren und Systeme durchgeführt werden kann. In dem dargestellten Beispiel bezieht sich der Graph 400 auf eine Abfrage zur Cyber-Sicherheit (wie sie z.B. von einem Benutzer empfangen wird), wie zum Beispiel die oben beschriebene (d.h., ob eine Domäne schädlich ist und/oder wer der Akteur hinter der Domäne ist). Der Graph enthält (explizite) Knoten 402 bis 412, und, wenngleich dies nicht dargestellt wird, kann ein Traversieren des Graphen 400 unter Verwendung von impliziten (oder Durchgangs-)Knoten durchgeführt werden, wie im Folgenden erläutert wird. Der Knoten 402 stellt eine bestimmte Web-Domäne dar, der Knoten 404 stellt eine IP-Adresse dar,der Knoten 406 stellt einen Software-Hash-Wert dar, der Knoten 408 stellt eine oder mehrere Antiviren(AV)-Engines (oder -Engine-Erkennungen) dar, der Knoten 410 stellt eine Malware-Familie dar, und der Knoten 412 stellt einen Bedrohungsakteur dar, wie Fachleuten ersichtlich ist.
-
Mehrere Kanten (oder Verbindungen oder Verknüpfungen) 414 bis 418 werden dargestellt, die die Knoten miteinander verbinden, von denen jede als zumindest eine potentielle Traversierung zwischen den zugehörigen expliziten Knoten 402 bis 412 vielleicht unter Verwendung eines (nicht dargestellten) impliziten Knotens darstellend betrachtet werden kann. Im Besonderen stellen die Kanten 414 Schlussfolgerungsschritte dar, die auf Grundlage von bekannten Informationen und/oder deduktivem Schlussfolgern durchgeführt werden können. Genauer gesagt, in dem dargestellten bestimmten Beispiel kann deduktives Schlussfolgern eingesetzt werden, um zu ermitteln, dass eine bestimmte IP-Adresse der Web-Domäne zugehörig ist (d.h., eine Traversierung von dem Knoten 402 zu dem Knoten 404), ein bestimmter Software-Hash-Wert der IP-Adresse zugehörig ist (d.h., eine Traversierung von dem Knoten 404 zu dem Knoten 406) und eine oder mehrere AV-Engines den Hash-Wert auf irgendeine Weise gekennzeichnet oder markiert haben, zum Beispiel durch Markieren des Hash-Wertes als „verdächtig“ (d.h., eine Traversierung von dem Knoten 406 zu dem Knoten 408).
-
In diesem dargestellten Beispiel können jedoch keine zusätzlichen Traversierungen unter Verwendung von deduktivem Schlussfolgern durchgeführt werden. Wenngleich zum Beispiel der Software-Hash-Wert durch eine oder mehrere AV-Engines gekennzeichnet/markiert/erkannt worden ist, ist er nicht als einer Malware-Familie zugehörig klassifiziert worden, noch ist jeglicher Bedrohungsakteur identifiziert worden, der dem Software-Hash-Wert zugehörig ist (z.B. durch eine geeignete Cyber-Bedrohungsorganisation, -behörde usw.).
-
Weiterhin unter Bezugnahme auf 4 können die Kanten 416 Informationen darstellen, die sich auf Beispiele beziehen, die angeben können, dass eine Traversierung zwischen den beiden zugehörigen Knoten möglich sein kann, dies jedoch nicht sicher ist (z.B. reale Informationen, die nahelegen, dass induktives Schlussfolgern ermöglichen kann, dass eine Traversierung stattfindet). Beispielsweise kann die Kante 416 zwischen den Knoten 408 und 410 darstellen, dass ein oder mehrere AV-Engines den Software-Hash-Wert als potentiell der durch den Knoten 410 dargestellten Malware-Familie zugehörig gekennzeichnet hat. Bei einigen Ausführungsformen können solche Informationen dazu eingesetzt werden, auf Grundlage von induktivem Schlussfolgern (z.B. probabilistischem induktiven Schlussfolgern) vorherzusagen (oder zu schätzen usw.), ob der Software-Hash-Wert der Malware-Familie zugehörig ist, wie durch die Kante 418 zwischen den Knoten 408 und 410 dargestellt. Darüber hinaus kann die Kante 416 zwischen dem Knoten 410 und dem Knoten 412 Informationen darstellen, die angeben, dass die jeweilige Malware-Familie durch bestimmte Bedrohungsakteure verwendet wird, dies jedoch nicht sicher ist. Wiederum kann induktives Schlussfolgern eingesetzt werden, um vorherzusagen, dass die Malware-Familie einem bestimmten Bedrohungsakteur zugehörig ist oder durch diesen verwendet wird (wenn die verfügbaren Informationen ausreichend sind, um eine solche Inferenz zuzulassen), wie durch die Kante 418 zwischen den Knoten 410 und 412 dargestellt. Bei einigen Ausführungsformen wird ein Schwellenwert im Hinblick auf eine probabilistische Induktion genutzt (z.B. wird die Inferenz zugelassen/durchgeführt, wenn ermittelt wird, dass die Wahrscheinlichkeit zumindest 80 % oder einen sonstigen Prozentsatz beträgt). Auf diese Weise kann ein Traversieren des Graphen 400 unter Verwendung sowohl von deduktivem als auch induktivem Schlussfolgern (oder „hybridem Schlussfolgern“) durchgeführt werden.
-
Wenn solche Rückschlüsse über induktives Schlussfolgern erreicht werden, können sie als Trainings-Daten für die Schlussfolgerungs-Engine eingesetzt werden, wie durch die Kanten 420 zwischen dem Knoten 406 und den Knoten 410 und 412 dargestellt, und/oder jegliche geeignete Rückschlüsse, Vorhersagen usw. können für den Benutzer (z.B. als Antwort auf eine Abfrage) bereitgestellt werden. Darüber hinaus können die eingesetzten Schlussfolgerungsschritte (einschließlich jeglichen induktiven Schlussfolgerns) für den Benutzer bereitgestellt werden, um eine verbesserte Erklärbarkeit zumindest im Vergleich mit den meisten Al-Systemen bereitzustellen.
-
Weiterhin unter Bezugnahme auf 4 ist zu beachten, dass die Knoten 402 bis 408 darüber hinaus durch drei der Kanten 416 miteinander verbunden sind (d.h., was Informationen/einen Beweis einer möglichen Inferenz darstellt). Beispielsweise kann die Kante 416 zwischen dem Knoten 402 und dem Knoten 404 Informationen darstellen, die angeben, dass zahlreiche IP-Adressen von der betreffenden Domäne aufgelöst sind, und die Kante 416 zwischen den Knoten 404 und 406 kann Informationen darstellen, die angeben, dass zahlreiche Software-Hash-Werte Daten mit der betreffenden IP-Adresse austauschen. Als ein Beispiel kann jedoch angenommen werden, dass solche Informationen nicht ausreichen, um eine Inferenz zuzulassen (wenngleich dies in solchen Fällen möglicherweise nicht relevant ist, da ein deduktives Schlussfolgern zur Traversierung zwischen den betreffenden Knoten möglich war).
-
5 veranschaulicht einen Graphen (oder einen Abschnitt davon) 500 gemäß einer Ausführungsform der vorliegenden Erfindung. Der Graph 500 enthält einen Software-Hash-Wert-Knoten 502 (d.h., einen Knoten, der das Konzept eines bestimmten Software-Hash-Werts darstellt) (oder Quellknoten) und einen Malware-Familien-Knoten 504 (d.h., einen Knoten, der das Konzept einer bestimmten Malware-Familie darstellt) (oder Zielknoten). In dem dargestellten Beispiel wird eine Kante 506 dargestellt, die die Knoten 502 und 504 miteinander verbindet (oder verknüpft). Als ein Beispiel kann angenommen werden, dass die Traversierung, die unter Verwendung der Kante 506 durchgeführt wird, unter Verwendung von deduktivem Schlussfolgern durchgeführt wird. Das heißt, es kann „bekannt“ sein, dass der jeweilige Software-Hash-Wert, der durch den Knoten 502 dargestellt wird (oder genauer gesagt, die zugehörige Software-Komponente), ein Mitglied der jeweiligen Malware-Familie, die durch den Knoten 504 dargestellt wird (wie z.B. in einer Datenbank angegeben wird, die durch eine geeignete Organisation verwaltet wird) und/oder allgemein Malware ist. Insofern kann die Traversierung von dem Knoten 502 unter Verwendung von deduktivem Schlussfolgern direkt zu dem Knoten 504 erfolgen.
-
Im Gegensatz dazu kann deduktives Schlussfolgern in dem in 6 dargestellten Beispiel, das einen ähnlichen Software-Hash-Wert-Knoten 602 und einen Malware-Familien-Knoten 604 enthält, nicht eingesetzt werden. Genauer gesagt, ist in diesem Beispiel möglicherweise nicht „bekannt“, dass der jeweilige Software-Hash-Wert, der durch den Knoten 502 dargestellt wird, ein Mitglied der jeweiligen Malware-Familie ist, die durch den Knoten 504 dargestellt wird, so dass kein deduktives Schlussfolgern eingesetzt werden kann, um von dem (Quell-)Knoten 602 direkt zu dem (Ziel-)Knoten 604 zu traversieren. Insofern suchen die hierin beschriebenen Verfahren und Systeme bei einigen Ausführungsformen im Wesentlichen nach sonstigen Informationen (oder Informations-/Datenquellen), die möglicherweise zulassen (oder auch nicht), dass eine Inferenz unter Verwendung von induktivem Schlussfolgern (z.B. eines/einer „indirekten“ Pfades/Traversierung von dem Knoten 602 zu dem Knoten 604) vorgenommen wird. Bei einigen Ausführungsformen wird dieser Prozess unter Verwendung von einem oder mehreren impliziten (oder „Durchgangs“-)Knoten wie zum Beispiel dem AV-Engine-Erkennungs-Knoten 606 durchgeführt. Die Nutzung (und/oder Erzeugung) von impliziten (oder Durchgangs-)Knoten kann als Antwort auf eine Benutzereingabe durchgeführt werden. Das heißt, der Benutzer kann dem System einen Hinweis bereitstellen, nach alternativen Möglichkeiten zum Traversieren zwischen Knoten zu suchen, wenn kein deduktives Schlussfolgern eingesetzt werden kann. In dem dargestellten Beispiel ist der implizite Knoten AV-Engine-Erkennungen (und/oder AV-Engine-Datenbanken, in denen verschiedene auf Hash-Werte bezogene Informationen gespeichert sind) zugehörig. Wenngleich in 6 nur ein impliziter Knoten dargestellt wird, versteht es sich, dass mehrere implizite Knoten eingesetzt (und/oder innerhalb des Graphen erzeugt) werden können.
-
Weiterhin unter Bezugnahme auf 6 ist in dem dargestellten Beispiel eine Kante 608 zwischen dem Knoten 602 und dem impliziten Knoten 606 ausgebildet, die darstellt, dass deduktives Schlussfolgern eingesetzt wird, um zwischen dem Knoten 602 und dem impliziten Knoten 606 zu traversieren. Genauer gesagt, es hat sich herausgestellt, dass die AV-Engine-Erkennung(en), die durch den Knoten 606 dargestellt wird/werden, Informationen in Bezug auf den Software-Hash-Wert des Knotens 602 enthält/enthalten. Insofern kann deduktives Schlussfolgern zum Traversieren zu dem impliziten Knoten 606 eingesetzt werden. Wenngleich jedoch die AV-Engine-Erkennung(en) Informationen in Bezug auf den Hash-Wert enthält/enthalten (d.h., die AV-Engine den Hash-Wert als verdächtig usw. markiert/gekennzeichnet hat), ist nicht ermittelt worden, dass „bekannt“ ist, dass die zugehörige Software-Komponente Malware ist und/oder aus einer bestimmten Malware-Familie stammt (d.h., dies ist nicht endgültig bekannt). Insofern kann kein deduktives Schlussfolgern zum Traversieren von dem impliziten Knoten 606 zu dem Knoten 604 eingesetzt werden.
-
Bei einigen Ausführungsformen setzt das System die Informationen, die durch den/die impliziten Knoten verfügbar sind, ein, um zu ermitteln, ob eine solche Traversierung unter Verwendung von induktivem Schlussfolgern (z.B. probabilistischem induktiven Schlussfolgern) oder einer Inferenz erfolgen kann. Dieser Prozess kann ein Berechnen einer Wahrscheinlichkeit (und/oder einer Bewertung) unter Verwendung der verfügbaren Informationen enthalten (z.B. berechnet das System die Wahrscheinlichkeit, dass der Software-Hash-Wert einer Software-Komponente zugehörig ist, bei der es sich um Malware handelt). Wenn die berechnete Wahrscheinlichkeit (oder Bewertung) einen vorgegebenen Schwellenwert (z.B. 80 %) überschreitet, kann das System zulassen, dass die Traversierung stattfindet, (und/oder die Traversierung durchführen) und ein Signal davon erzeugen, um den Benutzer zu benachrichtigen, die Inferenz zum Trainieren einsetzen usw. Es versteht sich, dass das System unter Umständen nicht zulässt, dass solche Traversierungen unter Verwendung von induktivem Schlussfolgern stattfinden, bis mehrere unabhängige Quellen von Informationen die relevante Inferenz angeben (z.B. Dutzende von AV-Engines einen Hash-Wert als verdächtig aufführen). Die erzeugte Inferenz kann dann als Training zur künftigen Verwendung des Graphen (oder der Graphdatenbank) eingesetzt werden.
-
Unter Bezugnahme auf 7 wird der Graph 600 von 6 erneut dargestellt, jedoch mit einem zusätzlichen (expliziten) Knoten 612, der einen bestimmten Bedrohungsakteur darstellt. Bei einigen Ausführungsformen kann die Verwendung der impliziten Knoten und/oder von induktivem Schlussfolgern „gestapelt“ werden. Wenn zum Beispiel induktives Schlussfolgern zulässt, dass die Inferenz (durch den Durchgangsknoten 606) vorgenommen wird, dass der Software-Hash-Wert einer bestimmten Malware-Familie zugehörig ist, kann das System in der Lage sein, eine ähnliche Inferenz vorzunehmen, ob ein bestimmter Bedrohungsakteur (z.B. ein Land, eine „Hacker“-Gruppe usw.) hinter der Malware steckt (z.B. über die Kante 614). Beispielsweise können durch einen oder mehrere Durchgangsknoten (z.B. AV-Engine-Erkennungen) verschiedene Typen von Informationen darüber gefunden werden, dass eine bestimmte Malware-Familie „normalerweise“ den Aktionen eines bestimmten Bedrohungsakteurs zugehörig ist. Folglich kann in 7 der Knoten 604 als impliziter Knoten (oder als ein solcher fungierend) betrachtet werden. Ein Prozess eines probabilistischen induktiven Schlussfolgerns ähnlich dem oben beschriebenen kann eingesetzt werden. Jegliche solche vorgenommenen Inferenzen können dann auf beliebige geeignete Weise eingesetzt werden (z.B. um den Benutzer zu benachrichtigen, zum Trainieren des Systems usw.).
-
Unter Bezugnahme auf 8 wird ein Graph 800 (ähnlich den oben beschriebenen) dargestellt. Der Graph enthält vier explizite Knoten 802 bis 808 (und/oder einen expliziten Abschnitt oder einen expliziten Graphen, der die Knoten 802 bis 808 enthält) und drei implizite (oder Durchgangs-)Knoten 810 bis 814 (und/oder einen impliziten Abschnitt oder einen impliziten Graphen, der die Knoten 810 bis 814 enthält). Der Graph 800 und/oder die Knoten 802 bis 814 können als Antwort auf eine Benutzereingabe erzeugt werden. Wie dargestellt, stellen die expliziten Knoten 802 bis 808 eine Domäne, eine IP-Adresse, einen Software-Hash-Wert bzw. eine Malware-Familie dar. Die impliziten Knoten 810 bis 814 stellen „gleichgeordnete Elemente“ 810, (einen) Download(s) 812 und AV-Engine-Erkennungen 814 dar.
-
Das heißt, wenn der in 8 dargestellte Graph 800 eingesetzt wird, kann das System zuerst versuchen, eine bestimmte IP-Adresse mithilfe von deduktivem Schlussfolgern von der betreffenden Domäne aufzulösen. Wenn dies nicht möglich ist, kann das System versuchen, eine Inferenz durch den gleichgeordneten Knoten 810 vorzunehmen (oder deduktives Schlussfolgern zu verwenden) (d.h., versuchen zu folgern, ob die IP-Adresse zu der Domäne aufgelöst werden kann, da sie sich auf „gleichgeordnete“ Domänen bezieht, wie diejenigen, die in einem anderen Land verwaltet werden). Wenn das System nicht in der Lage ist abzuleiten, dass die Software, die dem Software-Hash-Wert zugehörig ist, Daten mit der IP-Adresse austauscht, kann das System in ähnlicher Weise nach einer Möglichkeit suchen, eine Inferenz vorzunehmen, dass der Software-Hash-Wert sich auf die IP-Adresse bezieht, da die verwandte Software von der IP-Adresse durch den Download-Knoten 812 heruntergeladen worden ist. Der implizite AV-Engine-Erkennungs-Knoten 814 kann wie oben beschrieben eingesetzt werden. Es ist zu beachten, dass in dem in 8 dargestellten Graphen 800 der Benutzer einen Durchgangsknoten zwischen jedem der Paare von aufeinanderfolgenden expliziten Knoten definiert hat. Insofern versteht es sich, dass implizite (oder Durchgangs-)Knoten zusammen mit induktivem Schlussfolgern an mehreren Stellen auf einem Graphen (oder in einer Graphdatenbank) eingesetzt (oder definiert) werden können (d.h., wenn die verfügbaren Informationen solche Inferenzen zulassen).
-
9 veranschaulicht einen Graphen 900 (oder zumindest einen Abschnitt davon) gemäß einer Ausführungsform der vorliegenden Erfindung. Der Graph enthält explizite Knoten 902 bis 906 und implizite (oder Durchgangs-)Knoten 908 bis 920. Die expliziten Knoten 902, 904 und 906 können einen bestimmten Software-Hash-Wert, eine bestimmte Malware-Familie bzw. einen bestimmten Bedrohungsakteur darstellen, und jeder der impliziten Knoten 908 bis 920 kann eine bestimmte AV-Engine darstellen. Wenn das System nicht in der Lage ist, mithilfe von deduktivem Schlussfolgern von dem Knoten 902 zu dem Knoten 904 zu traversieren, kann das System anschließend die impliziten Knoten abfragen. Als Beispiele kann der Hash-Wert des Knotens 908 als „Trojaner.generisch“ gekennzeichnet sein und kann der des Knotens 910 als „unsicher“ gekennzeichnet sein. Der Knoten 912 kann die Kennzeichnung „Malware (AI-Bewertung = 100)“ aufweisen und so weiter. Es ist zu beachten, dass einige der AV-Engines den Hash-Wert als verdächtiger, schädlicher usw. und/oder spezifischer und/oder mit größerer Konfidenz als andere kennzeichnen. Dies kann bei sonstigen Ausführungsformen ebenso sein (d.h., wenn die hierin beschriebenen Verfahren/Systeme auf sonstige Szenarien/Gebiete angewendet werden). Dies kann dazu eingesetzt werden, ein Gewichtungsschema auf die eingesetzten Durchgangsknoten anzuwenden (z.B. können größere Konfidenz und/oder spezifische Informationen und/oder Informationsquellen eine höhere Gewichtung bekommen). Selbst wenn nicht „bekannt“ ist, dass der Hash-Wert Malware zugehörig ist, können die verschiedenen Kennzeichnungen usw. für den Hash-Wert, die durch Abfragen der impliziten Knoten erkannt werden, jedoch zulassen, dass das System folgert, dass die Software Malware ist und/oder mit der jeweiligen Malware-Familie in Zusammenhang steht, wie oben beschrieben.
-
Weiterhin unter Bezugnahme auf 9 ist zu beachten, dass mehrere verschiedene unabhängige Pfade genutzt werden können, um unter Verwendung von induktivem Schlussfolgern zwischen dem Knoten 902 und dem Knoten 904 zu traversieren. Beispielsweise kann eine erste Traversierung (ein Pfad) durch den Knoten 908 verlaufen, wohingegen eine zweite Traversierung, die sich extern von, außerhalb usw. der ersten Traversierung (und dem/des Knoten(s) 908) befindet, durch den Knoten 918 verlaufen kann.
-
Im Hinblick auf die Berechnung von Wahrscheinlichkeiten und/oder Bewertungen kann beim Traversieren von einem ersten Knoten (A) zu einem zweiten Knoten (B) unter Verwendung von deduktivem Schlussfolgern die Wahrscheinlichkeit allgemein als P(A und B) = P(A) * P(B gegeben) ausgedrückt werden. Da P(B gegeben A) aus einer Datenbanksuche stammt (d.h., eine bekannte Tatsache, zu 100 % sicher usw.), beträgt die Wahrscheinlichkeit stets 1. In einer mathematischen Form kann die Wahrscheinlichkeit ausgedrückt werden als
-
Beim Traversieren zwischen einem ersten Knoten (A) zu einem zweiten Knoten (B) durch einen impliziten (oder Durchgangs-)Knoten (V) unter Verwendung von induktivem Schlussfolgern kann die Wahrscheinlichkeit jedoch allgemein als P(A und B) = P(A und V) * P(B|(A und V)) ausgedrückt werden, was als P(A) * P(V|A) * P(B|(A und V)) geschrieben werden kann. Da P(V|A) aus einer Datenbanksuche stammt, beträgt es stets 1. Folglich gilt P(A und V) = P(A) und P(A und B) = P(A) * P(B|V). Es ist zu beachten, dass V ein Satz ist und mehr als ein Element aufweisen kann (z.B. {v
1, v
2, ..., v
n}). P(B |V) kann durch die Anzahl von Knoten #(v
dP) mit Trennschärfe ermittelt werden und kann ausgedrückt werden als
-
Für jeden Durchgangs- (oder impliziten) Knoten kann seine Trennschärfe ausgedrückt werden als
-
Einfach ausgedrückt, ist es wünschenswert, dass der Knoten weniger Klassen als seine Anzahl von Kanten erreicht. Bei einigen Ausführungsformen ist, wenn ein Knoten durch drei Kanten auf drei Klassen „verweist“, der Knoten nicht ausreichend diskriminant, um auf eine spezifische Klasse zu verweisen. In Gleichung 3 stellt p die Anzahl der von dem jeweiligen Knoten ausgehenden Kanten dar und stellt q die Anzahl von Knotenklassen dar, die durch die aktuelle Klasse erreichbar ist. Allgemein kann die Trennschärfe ausgedrückt werden als
-
In Gleichung 4 gilt X = Sensitivität/(1 - Sensitivität) und Y = Spezifität/(1 - Spezifität). Die Sensitivität kann definiert sein als tp/(tp + ƒn), und die Spezifität kann definiert sein als tp/ifp + tn). Bei einigen Ausführungsformen kann die Knotentrennschärfe zwischen 0 und 3 (oder 4) skaliert werden, wobei ein Wert von etwa 2,5 oder größer (oder 3,0) als ausreichend betrachtet wird, um zum Erzeugen einer Vorhersage verwendet zu werden. Bei einigen Ausführungsformen beruht die Wahrscheinlichkeit auf vorherigen Knoten. Bei der Verwendung von induktivem Schlussfolgern kann zum Beispiel eine Wahrscheinlichkeit, die einem Traversieren von dem Knoten B zu dem Knoten C zugehörig ist, durch die Wahrscheinlichkeit beeinflusst werden, die einem Traversieren von dem Knoten A zu dem Knoten B zugehörig ist.
-
Unter Bezugnahme auf 10 werden ein Verfahren (und/oder System) 1000 zum Schlussfolgern (oder zur Graphdatenverarbeitung) dargestellt. In Block 1002 stellt ein Benutzer einen oder mehrere Schlussfolgerungsschritte bereit, die bei einigen Ausführungsformen sowohl explizite Knoten als auch implizite (oder Durchgangs-)Knoten enthalten. Mit anderen Worten, bei einigen Ausführungsformen werden die impliziten Knoten (und vielleicht explizite Knoten) als Antwort auf eine Benutzereingabe erzeugt. Bei einigen Ausführungsformen kann der Benutzer darüber hinaus einen Satz von Zielen (oder Zielknoten) mit Wahrscheinlichkeiten bereitstellen, wie zum Beispiel in Block 1004.
-
In Block 1006 versucht das System, auf Grundlage (oder unter Verwendung) von deduktivem Schlussfolgern zu einem nächsten Ziel zu traversieren, wie oben beschrieben. Wenn eine solche Traversierung möglich ist, werden in Block 1008 jegliche implizite Knoten, die bereits traversierten expliziten Knoten zugehörig sind, erzeugt (und können künftig genutzt werden). In Block 1010 können dann gegebenenfalls zumindest einige der Ziele konsolidiert werden (z.B. auf Grundlage von hohen Wahrscheinlichkeiten, Ähnlichkeit usw.), und das Verfahren 1000 kehrt zu Block 1006 zurück.
-
Wenn jedoch keine (weitere) Traversierung unter Verwendung von deduktivem Schlussfolgern möglich ist, versucht das System in Block 1012, unter Verwendung von induktivem Schlussfolgern zu einem nächsten Ziel zu traversieren, wie oben beschrieben. Wenn dies möglich ist, geht das Verfahren zu Block 1010 über und kehrt anschließend zu Block 1006 zurück. Wenn dies nicht möglich ist, ermittelt das System in Block 1014, ob eine beliebige zusätzliche Traversierung möglich ist. In diesem Fall kann das System zu Block 1006 zurückkehren, und anderenfalls ist der Schlussfolgerungsprozess in Block 1016 abgeschlossen. Das System kann anschließend eine beliebige geeignete Vorhersage, Benachrichtigung usw. auf Grundlage der Traversierung(en) erzeugen, die während des Schlussfolgerungsprozesses vorgenommen wurden, vielleicht einschließlich Informationen, die eine verbesserte Erklärbarkeit bereitstellten.
-
11 veranschaulicht einen Schlussfolgerungspfad 1100 als Eingabe oder durch einen Benutzer definiert (und wie auf einer graphischen Benutzeroberfläche oder einer Datenverarbeitungseinheit dargestellt). Wie dargestellt, enthält der Schlussfolgerungspfad eine Reihe von Schlussfolgerungsschritten, die jeweils zumindest einem Paar von Knoten zugehörig sind. Im Besonderen sind die ersten (oder obersten) sechs Schlussfolgerungsschritte 1102 dem System zugehörig, das versucht, unter Verwendung von deduktivem Schlussfolgern von einem ersten expliziten Knoten direkt zu einem zweiten expliziten Knoten (z.B. von einem Domänen-Knoten zu einem IP-Adress-Knoten, von einem Domänen-Knoten zu einer Malware-Familie usw.) zu traversieren. Die letzten (oder untersten) zwei Schlussfolgerungsschritte 1104 sind dem System zugehörig, das versucht, unter Verwendung von induktivem Schlussfolgern von einem ersten expliziten Knoten durch einen Durchgangsknoten zu einem zweiten expliziten Knoten (z.B. von einem Hash-Wert-Knoten durch einen AV-Erkennungs-Knoten zu einem Malware-Familien-Knoten usw.) zu traversieren. Bei einigen Ausführungsformen kann das System eine solche Eingabe von dem Benutzer empfangen und sie dazu verwenden, die Graphen zu erzeugen und die Traversierungen durchzuführen, wie oben beschrieben. Bei einigen Ausführungsformen nutzt das System nur die Schlussfolgerungsschritte, die die Verwendung von impliziten Knoten (und/oder die Verwendung von induktivem Schlussfolgern) enthalten, wenn es nicht möglich ist, die zugehörigen expliziten Knoten unter Verwendung von deduktivem Schlussfolgern zu traversieren.
-
Insofern ermöglichen bei einigen Ausführungsformen die hierin beschriebenen Verfahren und Systeme, dass „zusätzliche“ (oder implizite oder Durchgangs-)Knoten in Graphen (oder Graphdatenbanken) (z.B. für jedes Paar von expliziten Knoten) definiert werden. Ein impliziter Graph (oder ein Abschnitt des Graphen, der die impliziten Knoten enthält) kann automatisch für induktives Schlussfolgern erzeugt werden. Bei einigen Ausführungsformen können die impliziten Knoten (und/oder das zugehörige induktive Schlussfolgern) für komplizierte Schlussfolgerungsszenarien „gestapelt“ werden. Darüber hinaus können die hierin beschriebenen Verfahren und Systeme zulassen, dass die expliziten Knoten (oder ein expliziter Abschnitt des Graphen) und die impliziten Knoten (oder implizite Abschnitte des Graphen) unter Verwendung sowohl von deduktivem als auch induktivem Schlussfolgern (oder „hybridem“ Schlussfolgern) traversiert werden.
-
Die hierin beschriebenen Verfahren und Systeme können ein „Whitebox“-Schlussfolgern bereitstellen, das durch Menschen überprüft werden und/oder leicht verständlich sein kann (zumindest relativ betrachtet im Vergleich mit den meisten Al-Systemen), da zum Beispiel die Schlussfolgerungsschritte (einschließlich jeglichen eingesetzten induktiven Schlussfolgerns) für den Benutzer bereitgestellt werden können. Mit anderen Worten, die hierin beschriebenen Verfahren und/oder Systeme können eine verbesserte Erklärbarkeit, Verantwortlichkeit, Vertrauenswürdigkeit usw. im Vergleich mit den meisten Al-Systemen bereitstellen. Darüber hinaus sind die hierin beschriebenen Verfahren und Systeme in der Lage, inkrementell aus „bekannten“ Fällen zu lernen und die unbekannten Fälle zu klassifizieren. Im Gegensatz dazu können die meisten Al-Systeme wiederholt trainiert und eingesetzt werden, auch wenn das eingesetzte Modell nicht mehr funktioniert. Des Weiteren können die hierin beschriebenen Verfahren und Systeme dynamisch konfiguriert werden, um neue Klassen vorherzusagen, ohne zuvor erstellte Graphen (oder Wissensgraphen) zu beeinflussen. Im Gegensatz dazu müssen die meisten Al-Systeme neu trainiert werden.
-
Unter Bezugnahme auf 12 wird ein Ablaufplan eines beispielhaften Verfahrens 1200 für eine Graphdatenverarbeitung (oder ein Schlussfolgern) bereitgestellt. Das Verfahren 1200 beginnt (Schritt 1202) zum Beispiel damit, dass Informationen oder eine Eingabe im Hinblick auf einen oder mehrere explizite Knoten und einen oder mehrere implizite Knoten (wie oben beschrieben) von einem Benutzer empfangen werden.
-
Es wird ein Graph (oder eine Graphdatenbank) erzeugt, der eine Mehrzahl von expliziten Knoten und zumindest einen impliziten Knoten enthält (Schritt 1204). Der zumindest eine implizite Knoten kann eine Mehrzahl von impliziten Knoten enthalten. Das Erzeugen des Graphen kann auf der empfangenen Benutzereingabe beruhen.
-
Zwischen einem ersten expliziten Knoten der Mehrzahl von expliziten Knoten und einem zweiten expliziten Knoten der Mehrzahl von expliziten Knoten wird unter Verwendung von deduktivem Schlussfolgern traversiert (Schritt 1206).
-
Zwischen einem dritten expliziten Knoten der Mehrzahl von expliziten Knoten und einem vierten expliziten Knoten der Mehrzahl von expliziten Knoten wird durch den zumindest einen impliziten Knoten unter Verwendung von induktivem Schlussfolgern traversiert (Schritt 1208). Diese Traversierung kann eine erste Traversierung von dem dritten expliziten Knoten zu dem vierten expliziten Knoten durch einen ersten der Mehrzahl von impliziten Knoten unter Verwendung von induktivem Schlussfolgern und eine zweite Traversierung von dem dritten expliziten Knoten zu dem vierten expliziten Knoten durch einen zweiten der Mehrzahl von impliziten Knoten unter Verwendung von induktivem Schlussfolgern enthalten. Die erste Traversierung kann außerhalb des zweiten der Mehrzahl von impliziten Knoten erfolgen, und die zweite Traversierung kann außerhalb des ersten der Mehrzahl von impliziten Knoten erfolgen. Bei einigen Ausführungsformen kann das Traversieren zwischen dem dritten der Mehrzahl von expliziten Knoten und dem vierten der Mehrzahl von expliziten Knoten ein Traversieren von dem dritten der Mehrzahl von expliziten Knoten durch einen ersten der Mehrzahl von impliziten Knoten zu einem zweiten der Mehrzahl von impliziten Knoten unter Verwendung von induktivem Schlussfolgern und ein Traversieren von dem zweiten der Mehrzahl von impliziten Knoten zu dem vierten der Mehrzahl von expliziten Knoten unter Verwendung von induktivem Schlussfolgern enthalten. Das Traversieren zwischen dem dritten der Mehrzahl von expliziten Knoten und dem vierten der Mehrzahl von expliziten Knoten durch den zumindest einen impliziten Knoten kann unter Verwendung von probabilistischem induktiven Schlussfolgern durchgeführt werden.
-
Bei einigen Ausführungsformen kann eine Abfrage empfangen werden, die dem Graphen zugehörig ist. Eine Antwort auf die Abfrage (und/oder ein Signal, das dieses darstellt) kann auf Grundlage des Traversierens zwischen dem ersten der Mehrzahl von expliziten Knoten und dem zweiten der Mehrzahl von expliziten Knoten und des Traversierens zwischen dem dritten der Mehrzahl von expliziten Knoten und dem vierten der Mehrzahl von expliziten Knoten erzeugt werden.
-
Das Verfahren 1200 endet (Schritt 1210) zum Beispiel damit, dass der Graph unter Verwendung von deduktivem und induktivem Schlussfolgern so weit wie möglich traversiert wird, wie oben beschrieben. Bei einigen Ausführungsformen können Rückmeldungen von Benutzern ebenfalls genutzt werden, um die Leistungsfähigkeit des Systems im Laufe der Zeit zu verbessern.
-
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) enthalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert 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 materielle 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 Festwertspeicher (ROM), ein löschbarer programmierbarer Festwertspeicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatten-Festwertspeicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination von diesen. 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, Router, Firewalls, Switches, 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.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ 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). Bei einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, feldprogrammierbare Gate-Arrays (FPGA) oder programmierbare Logik-Arrays (PLA) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsdaten der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
-
Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder 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 Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen implementiert 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 Mittel zur Implementierung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder 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 Blockschaubilder angegebenen Funktion/Schritts implementieren.
-
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 Blockschaubilder festgelegten Funktionen/Schritte implementieren.
-
Die Ablaufpläne und die Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und Arbeitsweise möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaubildern 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. Bei einigen alternativen Implementierungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt auftreten. Zwei nacheinander dargestellte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können bisweilen je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme implementiert werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.