-
VERWANDTE ANMELDUNG
-
Diese Anmeldung beansprucht die Vorteile der Provisionial-US-Anmeldung Nr.
63/124,573 , die am 11. Dezember 2020 eingereicht wurde. Die gesamte Lehre der obigen Anmeldung wird hier durch Bezugnahme aufgenommen.
-
HINTERGRUND
-
„Malware“, kurz für „bösartige Software“, umfasst Viren, Würmer, Trojaner, Ransomware, Spyware, Denial-of-Service (DoS), usw. Es besteht eine ständige Bedrohung durch böswillige Benutzer, die versuchen, den normalen Betrieb zu stören oder über Malware Informationen zu stehlen. Daher ist die Netzsicherheit ein wichtiges Merkmal eines Computernetzes, um den Schutz vor Malware zu gewährleisten.
-
Eine Anwendung zur Eindringlingserkennungssystem („intrusion detection system“, IDS) ist ein Beispiel für eine Netzsicherheitsanwendung. Die IDS-Anwendung kann, als nicht einschränkendes Beispiel, den Inhalt einzelner Pakete untersuchen, die durch ein Netzwerk fließen, und verdächtige Muster erkennen, die auf einen Versuch hinweisen, in ein System einzudringen oder es zu gefährden. Ein nicht einschränkendes Beispiel für ein verdächtiges Muster kann eine bestimmte Textzeichenfolge in einem Paket sein, auf die 100 Zeichen später eine andere bestimmte Textzeichenfolge folgt. Eine solche inhaltsbewusste Vernetzung kann die Überprüfung des Inhalts von Paketen bei Leitungsgeschwindigkeit erfordern. Der Inhalt kann analysiert werden, um festzustellen, ob eine Sicherheitsverletzung oder ein Eindringen vorliegt.
-
Eine große Anzahl von Mustern und Regeln in Form von regulären Ausdrücken (hier auch als reguläre Ausdrucksmuster oder RegEx-Muster bezeichnet) kann verwendet werden, um Sicherheitsverletzungen oder Eindringlinge zu erkennen. Ein regulärer Ausdruck ist eine kompakte Methode zur Beschreibung eines Musters in einer Zeichenkette. Das einfachste Muster, dem ein regulärer Ausdruck entspricht, ist ein einzelnes Zeichen oder eine Zeichenkette, beispielsweise /c/ oder /cat/. Der reguläre Ausdruck kann auch Operatoren und Meta-Zeichen umfassen, die eine besondere Bedeutung aufweisen. Durch die Verwendung von Metazeichen kann der reguläre Ausdruck für kompliziertere Suchvorgänge verwendet werden, beispielsweise „abc.*xyz“, d. h. die Zeichenfolge „abc“ gefolgt von der Zeichenfolge „xyz“ mit einer unbegrenzten Anzahl von Zeichen zwischen „abc“ und „xyz“. Ein weiteres Beispiel ist der reguläre Ausdruck „abc..abc.*xyz“, d. h. die Zeichenfolge „abc“, gefolgt von der Zeichenfolge „abc“ zwei Zeichen später und der Zeichenfolge „xyz“ eine unbegrenzte Anzahl von Zeichen später. Die Suche nach Inhalten kann mit einer Suchmethode durchgeführt werden, die den regulären Ausdruck verarbeitet. Ein solches Suchverfahren kann beispielsweise einen Deterministischen Endlichen Automaten (DFA), einen Nicht-Deterministischen Endlichen Automaten (NFA) oder eine Kombination davon verwenden.
-
ZUSAMMENFASSUNG
-
Eine beispielhafte Ausführungsform eines System-auf-Chip (SoC) umfasst eine Vielzahl von Hardware-Engines. Das SoC ist so konfiguriert, dass es die Vielzahl von Hardware-Engines einsetzt, um ein Eindringungserkennungssystem („intrusion detection system“, IDS) zu implementieren, das so konfiguriert ist, dass es Malware-Datenverkehr in (i) einem nicht verschlüsselten Datenverkehr-Stream, (ii) einem verschlüsselten Datenverkehr-Stream, der vom SoC entschlüsselt werden kann, und (iii) einem verschlüsselten Datenverkehr-Stream, der vom SoC nicht entschlüsselt werden kann, erkennt. Das IDS ist des Weiteren so konfiguriert, dass es eine Aktion durchführt, die auf das Erkennen des Malware-Datenverkehrs in einem empfangenen Datenverkehr-Stream reagiert, der (i), (ii) oder (iii) ist. Die Aktion wird durchgeführt, um bösartige Aktivitäten zu verhindern, die ansonsten durch den Malware-Datenverkehr verursacht werden.
-
Die durchgeführte Aktion kann das Verwerfen des empfangenen Datenverkehr-Streams, das Erzeugen einer Warnung in Verbindung mit dem empfangenen Datenverkehr-Stream oder eine Kombination davon umfassen, als nicht einschränkendes Beispiel.
-
Die Vielzahl von Hardware-Engines umfasst eine ML-Engine (Maschinenlernen), eine CPT-Engine (Kryptographie) und eine DPI-Engine (Deep-Packet-Inspection-Engine). Die DPI-Engine kann hier auch austauschbar als Engine für reguläre Ausdrücke (RegEx, REE) bezeichnet werden.
-
Das SoC kann des Weiteren einen Datenverkehr-Scanner umfassen. Der Datenverkehr-Scanner kann so konfiguriert sein, dass er die Aktion durchführt.
-
Das SoC kann des Weiteren eine Vielzahl von Prozessor-Kernen umfassen. Wenigstens ein Prozessor-Kern der Vielzahl von Prozessor-Kernen kann so konfiguriert sein, dass er den Datenverkehr-Scanner implementiert.
-
Das SoC kann des Weiteren einen Klassifizierer umfassen, der so konfiguriert ist, dass er den empfangenen Datenverkehr-Stream als (i), (ii) oder (iii) klassifiziert. Das IDS kann des Weiteren so konfiguriert sein, dass es die DPI-Engine einsetzt, um den Malware-Datenverkehr zu erkennen, wenn der Klassifizierer den empfangenen Datenverkehr-Stream als (i), d. h. den unverschlüsselten Datenverkehr-Stream, klassifiziert. Das IDS kann des Weiteren so konfiguriert sein, dass es die CPT-Engine und die DPI-Engine einsetzt, um den Malware-Datenverkehr zu erkennen, wenn der Klassifizierer den empfangenen Datenverkehr-Stream als (ii) klassifiziert, d. h. den verschlüsselten Datenverkehr-Stream, der vom SoC entschlüsselt werden kann. Das IDS kann des Weiteren so konfiguriert sein, dass es die ML-Engine und die DPI-Engine einsetzt, um den Malware-Datenverkehr zu erkennen, wenn der Klassifizierer den empfangenen Datenverkehr-Stream als (iii) einstuft, d. h. den verschlüsselten Datenverkehr-Stream, der vom SoC nicht entschlüsselt werden kann.
-
Die DPI-Engine ist so konfiguriert, dass sie nicht verschlüsselte Inhalte des Datenverkehrs verarbeitet. Für den Fall, dass der empfangene Datenverkehr-Stream vom Klassifizierer als (i) klassifiziert wird, d. h. als nicht verschlüsselter Datenverkehr-Stream, kann der Datenverkehr-Scanner so konfiguriert sein, dass er die DPI-Engine veranlasst, den empfangenen Datenverkehr-Stream zu verarbeiten, um den Malware-Datenverkehr zu erkennen.
-
Die CPT-Engine kann so konfiguriert sein, dass sie verschlüsselte Inhalte des Datenverkehrs entschlüsselt. Für den Fall, dass der empfangene Datenverkehr-Stream vom Klassifizierer als (ii) klassifiziert wird, d.h. der verschlüsselte Datenverkehr-Stream, der vom SoC entschlüsselt werden kann, kann der Datenverkehr-Scanner so konfiguriert sein, dass er die CPT-Engine veranlasst, den verschlüsselten Datenverkehr des empfangenen Datenverkehr-Streams zu entschlüsseln und entschlüsselten Datenverkehr zu erzeugen. Der Datenverkehr-Scanner kann des Weiteren so konfiguriert sein, dass er die DPI-Engine veranlasst, den entschlüsselten Datenverkehr zu verarbeiten, um den Malware-Datenverkehr in dem empfangenen Datenverkehr-Stream zu erkennen.
-
Für den Fall, dass der empfangene Datenverkehr-Stream von dem Klassifizierer als (iii) klassifiziert wird, d.h. der verschlüsselte Datenverkehr-Stream, der von dem SoC nicht entschlüsselt werden kann, kann der Datenverkehr-Scanner so konfiguriert sein, dass er Merkmalsinformationen erzeugt, die dem Nicht-Payload-Inhalt der verschlüsselten Pakete in dem empfangenen Datenverkehr-Stream zugeordnet sind, und die erzeugten Merkmalsinformationen mit der ML-Engine teilt. Die ML-Engine kann so konfiguriert sein, dass sie den empfangenen Datenverkehr-Stream auf der Grundlage der erzeugten und freigegebenen Merkmalsinformationen klassifiziert.
-
Der Datenverkehr-Scanner kann des Weiteren so konfiguriert sein, dass er die DPI-Engine einsetzt, um die Merkmalsinformationen zu erzeugen.
-
Die ML-Engine kann des Weiteren so konfiguriert sein, dass sie den empfangenen Datenverkehr-Stream als normal, bekannte Malware oder unbekannte Malware klassifiziert. Für den Fall, dass der empfangene Datenverkehr-Stream als bekannte Malware oder unbekannte Malware klassifiziert wird, kann die ML-Engine weiterhin so konfiguriert sein, dass sie dem Datenverkehr-Scanner mitteilt, dass der Malware-Datenverkehr erkannt wurde. Der Datenverkehr-Scanner kann des Weiteren so konfiguriert sein, dass er die Aktion als Reaktion auf die bereitgestellte Benachrichtigung durchführt.
-
Der Datenverkehr-Scanner kann des Weiteren so konfiguriert sein, dass er die Merkmalsinformationen auf der Grundlage eines Zeitintervalls erzeugt und weitergibt.
-
Der Datenverkehr-Scanner kann des Weiteren so konfiguriert sein, dass er ein gleitendes Fenster auf den empfangenen Datenverkehr-Stream basierend auf dem Zeitintervall anwendet. Das gleitende Fenster kann so konfiguriert sein, dass es Paketdaten aus dem empfangenen Datenverkehr-Stream über das Zeitintervall auf einer Zeitintervall-zu-Zeitintervall-Basis erfasst.
-
Die Merkmalsinformationen können eine maximale Paketlänge, eine minimale Paketlänge oder eine Kombination davon umfassen, die auf der Grundlage der innerhalb des gleitenden Fensters erfassten Paketdaten bestimmt werden.
-
Der Datenverkehr-Scanner kann des Weiteren so konfiguriert sein, dass er die Merkmalsinformationen durch Berechnung wenigstens eines Abschnitts der Merkmalsinformationen erzeugt. Die Berechnung kann auf der Grundlage der innerhalb des gleitenden Fensters erfassten Paketdaten erfolgen. Der wenigstens eine Abschnitt der berechneten Merkmalsinformationen kann paketgrößenbasierte Merkmalsinformationen, paketlebensdauerbasierte Merkmalsinformationen, paketzeitbasierte Merkmalsinformationen, paketentropiebasierte Merkmalsinformationen oder eine Kombination davon umfassen, als nicht einschränkendes Beispiel. Es sollte verstanden werden, dass die Merkmalsinformationen nicht darauf beschränkt sind, paketbasierte Merkmalsinformationen zu umfassen, und dass sie, als nicht einschränkendes Beispiel, Stream-basierte Merkmalsinformationen und/oder Inter-Stream-basierte Merkmalsinformationen umfassen können, die zusätzlich zu oder anstelle von paketbasierten Merkmalsinformationen vorliegen.
-
Der empfangene Datenverkehr-Stream kann Teil einer sicheren Sitzung sein. Die Merkmalsinformationen können des Weiteren mit dem nicht verschlüsselten Inhalt eines anfänglichen, nicht verschlüsselten Pakets der sicheren Sitzung verbunden sein.
-
Das SoC kann des Weiteren einen gemeinsamen Speicher umfassen. Die Vielzahl der Hardware-Engines kann so konfiguriert sein, dass sie den gemeinsamen Speicher nutzen.
-
Der Datenverkehr-Scanner kann so konfiguriert sein, dass er Paketdeskriptoren verwendet, um die Kommunikation zwischen der Vielzahl von Hardware-Engines zu steuern.
-
Gemäß einer anderen beispielhaften Ausführungsform kann ein Verfahren den Empfang eines Datenverkehr-Streams auf einem System-auf-Chip (SoC) umfassen. Das SoC umfasst eine Vielzahl von Hardware-Engines. Das SoC verwendet die Vielzahl von Hardware-Engines, um ein Eindringungserkennungssystem (IDS) zu implementieren, das in der Lage ist, Malware-Datenverkehr in (i) einem nicht verschlüsselten Datenverkehr-Stream, (ii) einem verschlüsselten Datenverkehr-Stream, der vom SoC entschlüsselt werden kann, und (iii) einem verschlüsselten Datenverkehr-Stream, der vom SoC nicht entschlüsselt werden kann, zu erkennen. Das Verfahren umfasst des Weiteren das Erkennen des Malware-Datenverkehrs in dem empfangenen Datenverkehr-Stream durch das IDS des SoC. Der empfangene Datenverkehr-Stream ist (i), (ii), oder (iii). Das Verfahren kann des Weiteren die Durchführung einer Aktion als Reaktion auf das Erkennen umfassen. Die Aktion wird durchgeführt, um bösartige Aktivitäten zu verhindern, die ansonsten durch den Malware-Datenverkehr verursacht werden.
-
Weitere alternative Verfahrensausführungen entsprechen denen, die oben in Verbindung mit der beispielhaften SoC-Ausführungsform beschrieben wurden.
-
Es sollte verstanden werden, dass die hier offenbaren Ausführungsformen in Form eines Verfahrens, einer Vorrichtung, eines Systems oder eines computerlesbaren Mediums mit darauf verkörperten Programmcodes implementiert werden können.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Das Vorstehende wird aus der folgenden genaueren Beschreibung von Ausführungsformen ersichtlich, wie sie in den beigefügten Zeichnungen dargestellt sind, in denen sich gleiche Bezugszeichen auf die gleichen Teile in den verschiedenen Ansichten beziehen. Die Zeichnungen sind nicht notwendigerweise maßstabsgetreu, der Schwerpunkt liegt vielmehr auf der Darstellung von Ausführungsformen.
- 1A ist ein Blockdiagramm einer beispielhaften Ausführungsform einer Netzwerkumgebung, in der eine beispielhafte Ausführungsform zur Eindringungserkennung als nicht einschränkendes Beispiel eingesetzt werden kann.
- 1 B ist ein Blockdiagramm einer beispielhaften Ausführungsform eines System-auf-Chip (SoC) von 1A.
- 1C ist ein Diagramm, das eine Momentaufnahme des verschlüsselten Datenverkehrs für mehrere Produkte zeigt, wie sie in einem Google-Transparenzbericht erfasst wurden.
- 1 D ist eine Zusammenfassung der wirtschaftlichen Auswirkungen eines bösartigen Angriffs.
- 2A ist ein Blockdiagramm einer beispielhaften Ausführungsform eines SoC, das zur Eindringungserkennung verwendet werden kann.
- 2B ist ein Blockdiagramm einer beispielhaften Ausführungsform des Datenverkehrs im IDS-System des SoC von 2A.
- 2C ist ein Blockdiagramm einer anderen beispielhaften Ausführungsform des Datenverkehrs im IDS-System des SoC von 2A.
- 3 ist eine Tabelle mit nicht einschränkenden Beispielsmerkmalen, die von einer hier offenbaren ML-Engine (Machine Learning) verwendet werden können.
- 4 ist ein Diagramm von Anomalien oder Ausreißern nach dem Stand der Technik.
- 5 ist ein Flussdiagramm einer beispielhaften Ausführungsform eines Verfahrens zur Eindringungserkennung.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Es folgt eine Beschreibung von beispielhaften Ausführungsformen.
-
Es sollte verstanden werden, dass ein Datenpaket, auf das hier Bezug genommen wird, eine beliebige Kommunikationseinheit über ein digitales Netzwerk sein kann. Ein solches digitales Netzwerk kann hier austauschbar als Computernetzwerk oder einfach als Netzwerk bezeichnet werden und kann jede Art von Computernetzwerk sein, wie zum Beispiel ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), als nicht einschränkendes Beispiel. Das Netzwerk kann ein drahtgebundenes Netzwerk, ein drahtloses Netzwerk oder eine Kombination davon sein. Datenpakete können in Internet-Protokoll (IP)-Übertragungen verwendet werden. Es sollte jedoch verstanden werden, dass ein Datenpaket, das hier auch einfach als Paket bezeichnet wird, nicht auf eine IP-Übertragung beschränkt ist, und dass ein Datenverkehr-Stream (Fluss), wie hier erwähnt, wenigstens ein Paket umfasst, das von einer Quelle zu einem Ziel gesendet wird.
-
Der Begriff „Malware“, auf den hier Bezug genommen wird, bezieht sich auf jegliche bösartige Software, wie beispielsweise Viren, Würmer, Trojaner, Ransomware, Spyware, Denial-of-Service (DoS) usw., als nicht einschränkendes Beispiel. Malware-Datenverkehr kann hier austauschbar als Malware-Netzwerkverkehr, bösartiger Datenverkehr oder bösartiger Netzwerkverkehr bezeichnet werden und kann, als nicht einschränkendes Beispiel, einen verdächtigen Link oder eine verdächtige Datei umfassen oder den Aufbau einer Verbindung über ein Netzwerk verursachen. Malware-Datenverkehr (bösartiger Datenverkehr) kann hier auch als Angriff bezeichnet werden.
-
Böswillige Aktivitäten, auf die hier Bezug genommen wird, können alle Aktivitäten sein, die die Sicherheit eines Geräts, Systems oder Netzwerks beeinträchtigen oder den Betrieb des Geräts, Systems oder Netzwerks gefährden. Ein nicht einschränkendes Beispiel: Die böswillige Aktivität kann eine Aktion sein, die es ermöglicht, Malware an ein Ziel zu liefern, wo diese Malware wiederum aktiviert werden kann, um ein Gerät, ein System oder ein Netzwerk zu gefährden. Bei der böswilligen Aktivität kann es sich um jede nicht autorisierte Aktivität in einem öffentlichen oder privaten Netzwerk handeln.
-
Die Auswirkungen von Malware auf Netzwerke nehmen ständig zu. Bei Malware-Datenverkehr kann es sich um verschlüsselten oder unverschlüsselten Datenverkehr handeln, der als solcher als Ursache für einen verschlüsselten oder unverschlüsselten Angriff verstanden werden kann. Ein verschlüsselter Angriff kann schwerwiegend, weit verbreitet und für ein Netzwerk schwierig zu erkennen sein, so dass eine Wiederherstellung schwierig ist. Der Trend in Netzwerken geht dahin, dass immer mehr Datenverkehr verschlüsselt wird, so dass die Zahl der Fälle von verschlüsseltem Malware-Datenverkehr weiter zunimmt.
-
Eine hier offenbare Ausführungsform führt eine Datenverkehrsanalyse sowohl für unverschlüsselten als auch für verschlüsselten Datenverkehr in einem einzigen Gerät durch. Gemäß einer Ausführungsform kann eine solche Datenverkehrsanalyse die Auslagerung einer oder mehrerer Aufgaben an eine Engine für Maschinenlernen (ML-Engine), eine Kryptographie-Engine (CPT-Engine), eine Deep-Packet-Inspection-Engine (DPI-Engine) oder eine Kombination davon umfassen, die jeweils auf einem einzigen Gerät implementiert sind. Die DPI-Engine kann hier auch austauschbar als reguläre Ausdrucks-Engine (RegEx, REE) bezeichnet werden.
-
Das einzelne Gerät kann sowohl bekannte als auch unbekannte Angriffe mit einem reduzierten Flächen- und Energiebedarf im Vergleich zur Implementierung von Aspekten der Erkennung von Malware-Datenverkehr auf mehreren Geräten identifizieren, um den Malware-Datenverkehr sowohl in unverschlüsselten als auch in verschlüsselten Arten von Datenverkehr zu erkennen. Da die ML-, CPT- und DPI-Engines in einem einzigen Gerät umfasst sind, werden Latenzzeiten, die andernfalls durch die Kommunikation zwischen separaten Geräten verursacht würden, vermieden, und somit wird der Durchsatz nicht durch die Kommunikation zwischen solchen Geräten beeinträchtigt, da die ML-, CPT- und DPI-Engines alle in demselben Gerät implementiert sind. Ein solches Gerät kann zur Eindringungserkennung und -verhinderung in einer Vielzahl von Bereichen/Märkten eingesetzt werden, beispielsweise in einem Verbraucherprodukt oder in einem Router/Switch/Firewall/Server eines Rechenzentrums usw., um nur ein Beispiel zu nennen. Ein nicht einschränkendes Beispiel ist ein Edge-Router in einem Büronetzwerk, in dem die Vorrichtung eingesetzt werden kann, wie unten in 1A offenbart.
-
1A ist ein Blockdiagramm einer beispielhaften Ausführungsform einer Netzwerkumgebung 100, in der eine beispielhafte Ausführungsform zur Eindringungserkennung als nicht einschränkendes Beispiel verwendet werden kann. In der Netzwerkumgebung 100 verwendet ein Benutzer 102 einen Computer-Laptop 103, um auf das Internet 116 zuzugreifen und elektronische Post (E-Mail) 104 über einen E-Mail-Server 106 eines Büronetzwerks 108 zu senden/empfangen. Das Büronetzwerk 108 umfasst eine Firewall 110, die mit einem Edge-Router 112 verbunden ist. Der Zweck der Firewall 110 ist die Implementierung eines Netzwerksicherheitssystems für das Büronetzwerk 108. Der Edge-Router 112 ist mit einem Intranet 114 des Büronetzwerks 108 verbunden. Server wie der E-Mail-Server 106 und der Webserver 118 sind mit dem Intranet 114 verbunden. Der Edge-Router 112 ermöglicht diesen Servern die Verbindung mit dem Internet 116 und damit den Versand/Empfang der E-Mail 104.
-
In der Netzwerkumgebung 100 gibt es einen bösartigen Akteur 120, der beabsichtigt, das Büronetzwerk 108 über Malware (nicht gezeigt) zu sabotieren, und die Malware bewirkt, dass Malware-Datenverkehr 122 über das Internet 116 an das Büronetzwerk 108 übertragen wird. In der beispielhaften Ausführungsform ist der Malware-Datenverkehr 122 so konzipiert, dass er den E-Mail-Server 106 mit einem E-Mail-Virus (nicht dargestellt) infiziert, der den Betrieb des E-Mail-Servers 106 beeinträchtigt und ansonsten dazu führt, dass der Benutzer 102 die E-Mail 104 nicht senden/empfangen kann. Eine solche Aktivität, d. h. die Infizierung des E-Mail-Servers 106 mit dem E-Mail-Virus, wird als schadhafte Aktivität betrachtet. In der beispielhaften Ausführungsform von 1A kann die Firewall 110 den Malware-Datenverkehr 122 aufgrund seiner Verschlüsselung nicht erkennen und somit eine solche schadhafte Aktivität nicht verhindern. Der Edge-Router 112 kann jedoch den verschlüsselten Malware-Datenverkehr 122 erkennen und ist somit in der Lage, die schadhaften Aktivitäten zu verhindern. Der Edge-Router 112 ist dazu in der Lage, weil er eine beispielhafte Ausführungsform eines System-auf-Chip (SoC) umfasst, die im Folgenden im Hinblick auf 1 B offenbart wird.
-
1B ist ein Blockdiagramm einer beispielhaften Ausführungsform des SoC 124 aus 1A, das oben offenbart wurde. Es sollte verstanden werden, dass das SoC 124 nicht darauf beschränkt ist, von einem Edge-Router, wie dem Edge-Router 112, eingesetzt zu werden, und in jedem elektronischen Gerät eingesetzt werden kann, in dem eine Eindringungserkennung vorteilhaft sein kann, wie beispielsweise einem Server, Router, einer Firewall, einem Laptop, einem Tablet, einem Smartphone, einem Internet-der-Dinge-Gerät (loT), einem Personalcomputer usw., als nicht einschränkendes Beispiel.
-
In der beispielhaften Ausführungsform von 1B umfasst das SoC 124 eine Vielzahl von Hardware-Engines 126. Das SoC 124 ist so konfiguriert, dass es die Vielzahl von Hardware-Engines 126 einsetzt, um ein Eindringungserkennungssystem (IDS) 128 zu implementieren, das so konfiguriert ist, dass es Malware-Datenverkehr, wie den Malware-Datenverkehr 122, in (i) einem nicht verschlüsselten Datenverkehr-Stream (nicht gezeigt), (ii) einem verschlüsselten Datenverkehr-Stream (nicht gezeigt), der vom SoC 124 entschlüsselt werden kann, und (iii) einem verschlüsselten Datenverkehr-Stream (nicht gezeigt), der vom SoC 124 nicht entschlüsselt werden kann, erkennt. Der verschlüsselte Datenverkehr-Stream kann beispielsweise keine sicherheitsrelevanten Informationen umfassen, die eine Entschlüsselung durch das SoC 124 ermöglichen, wie beispielsweise Krypto-Schlüssel und/oder Authentifizierungsschlüssel (nicht einschränkendes Beispiel). Das IDS 128 ist des Weiteren so konfiguriert, dass es als Reaktion auf das Erkennen des Malware-Datenverkehrs 122 in einem empfangenen Datenverkehr-Stream 132, der vom Typ (i), (ii) oder (iii) ist, eine Aktion 130 durchführt. Die Aktion 130 wird durchgeführt, um schadhafte Aktivitäten (nicht dargestellt) zu verhindern, die ansonsten durch den Malware-Datenverkehr 122 verursacht werden. Die durchgeführte Aktion 130 kann beispielsweise das Verwerfen des empfangenen Datenverkehr-Streams 132, das Erzeugen einer Warnung (nicht gezeigt), die mit dem empfangenen Datenverkehr-Stream 132 verbunden ist, oder eine Kombination davon umfassen, wobei dies kein einschränkendes Beispiel ist.
-
Während bestehende DPI-Engines einfachen, d. h. unverschlüsselten Datenverkehr analysieren können, weisen solche Systeme eine Schwäche in Bezug auf verschlüsselten Verkehr auf. Das SoC 124 ist dagegen in der Lage, Malware-Datenverkehr zu erkennen, unabhängig davon, ob dieser Verkehr verschlüsselt oder unverschlüsselt ist, und, falls er verschlüsselt ist, unabhängig davon, ob das SoC 124 den verschlüsselten Verkehr entschlüsseln kann oder nicht. Somit kann man das SoC 124 als ein „All-in-One“-Produkt betrachten, das alle Arten von Datenverkehr auf Malware-Datenverkehr analysieren kann. Das SoC 124, das sowohl verschlüsselten als auch unverschlüsselten Datenverkehr analysieren kann, ist nützlich, da verschlüsselter Datenverkehr, wie das unten offenbare Diagramm 140 in 1C zeigt, seit einiger Zeit auf dem Vormarsch ist.
-
1C ist ein Diagramm, das einen Snapshot 140 des verschlüsselten Datenverkehrs für mehrere Produkte zeigt, wie er in einem Google-Transparenzbericht erfasst wurde. Das Diagramm wird von Google im Laufe der Zeit aktualisiert und ist über https://transparencyreport.google.com/https/overview?hl=en verfügbar. Der Snapshot 140 zeigt, dass bereits im Mai 2019 94 % des gesamten Google-Datenverkehrs verschlüsselt war.
-
1D ist eine Zusammenfassung 150 der bis 2020 erwarteten wirtschaftlichen Auswirkungen schadhafter Angriffe auf der Grundlage der Ponemon 2018 Cost of a Data Breach Study. Wie aus der Zusammenfassung 150 hervorgeht, verwenden bereits 2020 mehr als 70 % der Malware-Kampagnen irgendeine Art von Verschlüsselung, um die Zustellung von E-Mails zu verschleiern. Da verschlüsselter Malware-Datenverkehr in Netzwerken weit verbreitet ist, ist es nützlich, eine Lösung aufzuweisen, die schadhafte Inhalte, d. h. Malware-Datenverkehr, sowohl im verschlüsselten als auch im unverschlüsselten Datenverkehr erkennen kann, ohne das Netzwerk, das eine solche Lösung einsetzt, zu verlangsamen. Eine beispielhafte Ausführungsform des SoC 124 aus 1A und 1B, die oben offenbart wurde, bietet eine solche Lösung. Weitere beispielhafte Ausführungsformen einer solchen Lösung sind im Folgenden in Bezug auf 2A offenbart.
-
2A ist ein Blockdiagramm einer beispielhaften Ausführungsform eines System-auf-Chip (SoC) 224, das zur Eindringungserkennung verwendet werden kann. Das SoC 224 kann wie das oben offenbartes SoC 124 aus 1A und 1B verwendet werden. Bezug nehmend auf 2A umfasst das SoC 224 eine Vielzahl von Hardware-Engines 226. Das SoC 224 ist so konfiguriert, dass es die Vielzahl von Hardware-Engines 226 einsetzt, um ein Eindringungserkennungssystem (IDS) 228 zu implementieren, das so konfiguriert ist, dass es Malware-Datenverkehr, wie den Malware-Datenverkehr 222, in (i) einem nicht verschlüsselten Datenverkehr-Stream (nicht gezeigt), (ii) einem verschlüsselten Datenverkehr-Stream (nicht gezeigt), der vom SoC 124 entschlüsselt werden kann, und (iii) einem verschlüsselten Datenverkehr-Stream (nicht gezeigt), der vom SoC 224 nicht entschlüsselt werden kann, erkennt. Das IDS 228 ist des Weiteren so konfiguriert, dass es eine Aktion 230 durchführt, die auf das Erkennen des Malware-Datenverkehrs 222 in einem empfangenen Datenverkehr-Stream 232 reagiert, der vom Typ (i), (ii) oder (iii) ist. Die Aktion 230 wird durchgeführt, um schadhafte Aktivitäten (nicht gezeigt) zu verhindern, die ansonsten durch den Malware-Datenverkehr 222 verursacht werden.
-
Die Aktion 230 kann das Verwerfen des empfangenen Datenverkehr-Streams 232, das Erzeugen einer Warnung (nicht gezeigt), die mit dem empfangenen Datenverkehr-Stream 232 verbunden ist, oder eine Kombination davon umfassen, als nicht einschränkendes Beispiel. Gemäß der Ausführungsform von 2A umfasst die Vielzahl von Hardware-Engines 226 eine ML-Engine 242 (Maschinenlernen), eine CPT-Engine 244 (Kryptographie) und eine DPI-Engine 246 (Deep-Packet-Inspection).
-
Das SoC 224 unterstützt mehrere Anwendungsfälle der Datenverkehrsanalyse, da es drei Arten von Datenverkehr gibt, nämlich (i), (ii) und (iii), die für die Datenverkehrsanalyse durch das IDS 228 betrachtet werden. Nicht verschlüsselter Datenverkehr, der als Klartext empfangen oder von der CPT-Engine 244 vorentschlüsselt wurde, ist Datenverkehr, der von der DPI-Engine 246 analysiert werden kann. Verschlüsselter Datenverkehr, der auf dem SoC 224 entschlüsselt werden kann, kann über die CPT-Engine 244 und die DPI-Engine 246 verarbeitet werden. Verschlüsselter Datenverkehr, der nicht auf dem SoC entschlüsselt werden kann, kann über die ML-Engine 242 und die DPI-Engine 246 analysiert werden, wie weiter unten offenbart wird.
-
Unter Bezugnahme auf 2A umfasst das SoC 224 des Weiteren einen Klassifizierer 243 und einen Datenverkehr-Scanner 248. Der Datenverkehr-Scanner 248 kann so konfiguriert sein, dass er die Aktion 230 durchführt. Das SoC 224 kann des Weiteren eine Vielzahl von Prozessor-Kernen (nicht gezeigt) umfassen. Wenigstens ein Prozessor-Kern (nicht gezeigt) der Vielzahl von Prozessor-Kernen kann so konfiguriert sein, dass er den Datenverkehr-Scanner 248 implementiert.
-
Der Klassifizierer 243 kann so konfiguriert sein, dass er verschlüsselte Streams oder Pakete identifiziert, die sicherheitsrelevantes Material aufweisen (beispielsweise Krypto- und Authentifizierungsschlüssel, Krypto-Suite, Verfahrensspezifikationen usw., als nicht einschränkendes Beispiel) und die auf dem SoC 224 entschlüsselt werden können. Solche Pakete können an die CPT-Engine 244 und nach der Entschlüsselung an den Datenverkehr-Scanner 248 gesendet werden. Alle anderen Pakete (beispielsweise nicht verschlüsselte und verschlüsselte, die nicht entschlüsselt werden konnten) können direkt an den Datenverkehr-Scanner 248 gesendet werden. Es sollte jedoch verstanden werden, dass solche Pakete nicht übertragen werden müssen, damit ein Paket innerhalb der Architektur des SoC 224 „gesendet“ werden kann.
-
Zum Beispiel kann das SoC 224 einen gemeinsamen Speicher 252 umfassen. Auf den gemeinsamen Speicher 252 können der Klassifizierer 243, der Datenverkehr-Scanner 248, die ML-Engine 242, die CPT-Engine 244 und die DPI-Engine 246 zugreifen, von denen jede einen Lese-/Schreibzugriff auf den gemeinsamen Speicher 252 für die Paketverarbeitung aufweisen kann. Der gemeinsame Speicher 252 kann einen Paketpuffer (nicht dargestellt) umfassen und Metadaten (nicht dargestellt) speichern, die einem jeweiligen Paket paketweise zugeordnet sind. Ein Paket oder ein Abschnitt davon in einer Form, die verarbeitet wurde oder im SoC 224 empfangen wird, kann im gemeinsamen Speicher 252 gespeichert werden. Anstatt den Inhalt des Pakets selbst zu übertragen, kann in einer Ausführungsform ein Paketdeskriptor (Datenstruktur) zum Auffinden des Inhalts verwendet werden, um ihn zu verarbeiten. Als nicht einschränkendes Beispiel kann der Paketdeskriptor einen Zeiger oder Offset zu einem Puffer umfassen, der Paketdaten, Metadaten über das Paket, wie beispielsweise die Größe usw., und eine oder mehrere Instruktionen zur Verarbeitung des Pakets enthält. Ein solcher Paketdeskriptor kann ein nächstes Element für die Verarbeitung des Inhalts bezeichnen. Wenn die CPT-Engine 244 zur Entschlüsselung und die DPI-Engine 246 zur Analyse des entschlüsselten Inhalts eingesetzt wird, kann der Datenverkehr-Scanner 248 den entschlüsselten Inhalt über einen oder mehrere Paketdeskriptoren an die DPI-Engine 246 weiterleiten und so eine Inline-Verbindung zwischen der CPT-Engine 244 und der DPI-Engine 246 herstellen. Ein solcher Paketdeskriptor bzw. solche Paketdeskriptoren können beispielsweise festlegen, dass die Antwort der CPT-Engine (beispielsweise der entschlüsselte Inhalt) von der CPT-Engine 244 zurück zum Datenverkehr-Scanner 248 oder direkt zur DPI-Engine 246 geleitet werden soll.
-
Gemäß einer Ausführungsform kann der Klassifizierer 243 so konfiguriert sein, dass er den empfangenen Datenverkehr-Stream 232 als (i), (ii) oder (iii) klassifiziert, d. h. als (i) einen nicht verschlüsselten Datenverkehr-Stream (nicht gezeigt), (ii) einen verschlüsselten Datenverkehr-Stream (nicht gezeigt), der vom SoC 124 entschlüsselt werden kann, oder (iii) einen verschlüsselten Datenverkehr-Stream (nicht gezeigt), der vom SoC 224 nicht entschlüsselt werden kann. Das IDS 228 kann des Weiteren so konfiguriert sein, dass es die DPI-Engine 246 einsetzt, um den Malware-Datenverkehr 222 zu erkennen, wenn der Klassifizierer den empfangenen Datenverkehr-Stream 232 als (i), d. h. den nicht verschlüsselten Datenverkehr-Stream, einstuft. Das IDS 228 kann des Weiteren so konfiguriert sein, dass es die CPT-Engine 244 und die DPI-Engine 246 einsetzt, um den Malware-Datenverkehr 222 zu erkennen, wenn der Klassifizierer den empfangenen Datenverkehr-Stream 232 als (ii) einstuft, d. h. als verschlüsselten Datenverkehr-Stream, der vom SoC 124 entschlüsselt werden kann. Das IDS 228 kann des Weiteren so konfiguriert sein, dass es die ML-Engine 242 und die DPI-Engine 246 einsetzt, um den Malware-Datenverkehr 222 zu erkennen, wenn der Klassifizierer 243 den empfangenen Datenverkehr-Stream 232 als (iii) einstuft, d. h. einen verschlüsselten Datenverkehr-Stream (nicht dargestellt), der vom SoC 224 nicht entschlüsselt werden kann.
-
Die DPI-Engine 246 kann so konfiguriert werden, dass sie nicht verschlüsselte Inhalte des Datenverkehrs auf Malware-Datenverkehr über die Suche nach Inhalten mit regulären Ausdrücken bzw. deren Abgleich verarbeitet, wie es im Stand der Technik bekannt ist. Für den Fall, dass der empfangene Datenverkehr-Stream 232 vom Klassifizierer 243 als (i) klassifiziert wird, d.h. als unverschlüsselter Datenverkehr-Stream, kann der Datenverkehr-Scanner 248 so konfiguriert sein, dass er die DPI-Engine 246 veranlasst, den empfangenen Datenverkehr-Stream 232 zu verarbeiten, um den Malware-Datenverkehr 222 zu erkennen. Als solches kann der unverschlüsselte Datenverkehr 262 an den Datenverkehr-Scanner 248 gesendet werden, der wiederum den unverschlüsselten Datenverkehr 262 zur Verarbeitung an die DPI-Engine 246 senden kann.
-
Die CPT-Engine 244 kann so konfiguriert sein, dass sie verschlüsselte Inhalte des Datenverkehrs entschlüsselt. Für den Fall, dass der empfangene Datenverkehr-Stream 232 vom Klassifizierer als (ii) klassifiziert wird, d.h. (ii) ein verschlüsselter Datenverkehr-Stream, der vom SoC 124 entschlüsselt werden kann, kann der Datenverkehr-Scanner 248 so konfiguriert sein, dass er (beispielsweise über einen oder mehrere Paketdeskriptoren als nicht einschränkendes Beispiel) die CPT-Engine 244 veranlasst, den verschlüsselten Verkehr 264 des empfangenen Datenverkehr-Streams 232 zu entschlüsseln und den entschlüsselten Verkehr 266 zu erzeugen. Der Datenverkehr-Scanner 248 kann des Weiteren so konfiguriert sein, dass er die DPI-Engine 246 veranlasst (beispielsweise über einen oder mehrere Paketdeskriptoren als nicht einschränkendes Beispiel), den entschlüsselten Datenverkehr 266 zu verarbeiten, um den Malware-Datenverkehr 222 in dem empfangenen Datenverkehr-Stream 232 zu erkennen.
-
Für den Fall, dass der empfangene Datenverkehr-Stream 232 vom Klassifizierer 243 als (iii) klassifiziert wird, d.h. als verschlüsselter Datenverkehr-Stream, der vom SoC 224 nicht entschlüsselt werden kann, kann der Datenverkehr-Scanner 248 so konfiguriert werden, dass er Merkmalsinformationen 268 erzeugt, die mit Nicht-Nutzlast-Inhalten verschlüsselter Pakete im empfangenen Datenverkehr-Stream 232 verbunden sind. Ein solcher Nicht-Nutzlast-Inhalt (beispielsweise ein Paket-Header als nicht-einschränkendes Beispiel) umfasst nichtverschlüsselte Inhalte. Der Datenverkehr-Scanner 248 kann so konfiguriert sein, dass er die erzeugten Merkmalsinformationen 268 mit der ML-Engine 242 teilt. Die ML-Engine 242 kann so konfiguriert sein, dass sie den empfangenen Datenverkehr-Stream 232 auf der Grundlage der erzeugten und freigegebenen Merkmalsinformationen 268 klassifiziert. Der Datenverkehr-Scanner 248 kann des Weiteren so konfiguriert sein, dass er die DPI-Engine 246 einsetzt, um die Merkmalsinformationen 268 zu erzeugen.
-
Die ML-Engine 242 kann so konfiguriert sein, dass sie überwachtes oder unüberwachtes Lernen auf der Grundlage der Merkmalsinformationen 268 durchführt, um den Malware-Datenverkehr 222 zu erkennen. Der Empfang der Merkmalsinformationen 268 im Laufe der Zeit kann die ML-Engine 242 in die Lage versetzen, im Laufe der Zeit zu lernen, was als anomal zu klassifizieren ist, und nach einem solchen Lernprozess die ML-Engine 242 in die Lage versetzen, einen Datenverkehr-Stream (Flow) als Malware-Datenverkehr zu klassifizieren und somit einzelne Datenpakete davon als Malware-Datenverkehr zu klassifizieren.
-
Gemäß einer Ausführungsform kann die ML-Engine 242 des Weiteren so konfiguriert sein, dass sie den empfangenen Datenverkehr-Stream 232 als normal, bekannte Malware oder unbekannte Malware klassifiziert. Eine solche Klassifizierung kann auf den Merkmalsinformationen 268 basieren, die mit dem empfangenen Datenverkehr-Stream 232 verbunden sind, sowie auf historischen Merkmalsinformationen, die mit Paketen des empfangenen Datenverkehr-Streams 232 verbunden sind und vom Datenverkehr-Scanner 248 verwaltet werden. Für den Fall, dass der empfangene Datenverkehr-Stream 232 als bekannte Malware oder unbekannte Malware klassifiziert wird, kann die ML-Engine 242 des Weiteren so konfiguriert sein, dass sie dem Datenverkehr-Scanner 248 die Benachrichtigung 272 bereitstellt, dass der Malware-Datenverkehr 222 erkannt worden ist. Der Datenverkehr-Scanner 248 kann des Weiteren so konfiguriert sein, dass er die Aktion 230 als Reaktion auf die bereitgestellte Benachrichtigung 272 durchführt.
-
Gemäß einer Ausführungsform kann der Datenverkehr-Scanner 248 des Weiteren so konfiguriert sein, dass er die Merkmalsinformationen 268 auf der Grundlage eines Zeitintervalls (nicht dargestellt), wie beispielsweise einer bestimmten Anzahl von Minuten oder Sekunden, erzeugt und weitergibt. Der Datenverkehr-Scanner 248 kann des Weiteren so konfiguriert sein, dass er ein gleitendes Fenster (nicht dargestellt) auf den empfangenen Datenverkehr-Stream 232 basierend auf dem Zeitintervall anwendet. Das gleitende Fenster kann so konfiguriert sein, dass es Paketdaten (nicht gezeigt) aus dem empfangenen Datenverkehr-Stream 232 über das Zeitintervall auf einer Zeitintervall-zu-Zeitintervall-Basis erfasst. Die Merkmalsinformation 268 kann eine maximale Paketlänge, eine minimale Paketlänge oder eine Kombination davon umfassen, die auf der Grundlage der innerhalb des gleitenden Fensters erfassten Paketdaten bestimmt wird.
-
Der Datenverkehr-Scanner 248 kann des Weiteren so konfiguriert sein, dass er die Merkmalsinformationen 268 durch Berechnen wenigstens eines Abschnitts der Merkmalsinformationen 268 erzeugt. Die Berechnung kann auf den Paketdaten basieren, die innerhalb des gleitenden Fensters erfasst wurden. Der wenigstens eine Abschnitt der berechneten Merkmalsinformationen 268 kann paketgrößenbasierte Merkmalsinformationen, paketlebensdauerbasierte („time-to-live“, TTL-basierte) Merkmalsinformationen, paketzeitbasierte Merkmalsinformationen, paketentropiebasierte Merkmalsinformationen oder eine Kombination davon umfassen, als nicht einschränkendes Beispiel. Entropie ist ein Maß dafür, wie zufällig ein Datensatz ist. Je zufälliger der Datensatz ist, desto mehr Entropie enthält er. Es ist zu verstehen, dass die Merkmalsinformationen 268 nicht darauf beschränkt sind, paketbasierte Merkmalsinformationen zu umfassen, sondern beispielsweise auch Stream-basierte Merkmalsinformationen und/oder Inter-Stream-basierte Merkmalsinformationen umfassen können, die zusätzlich zu oder anstelle von paketbasierten Merkmalsinformationen vorliegen.
-
Gemäß einer beispielhaften Ausführungsform kann der empfangene Datenverkehr-Stream 232 Teil einer sicheren Sitzung sein (nicht gezeigt). Die Merkmalsinformationen 268 können des Weiteren mit dem nicht verschlüsselten Inhalt eines anfänglichen unverschlüsselten Pakets der sicheren Sitzung verknüpft sein. Das anfängliche unverschlüsselte Paket kann Daten umfassen, wie beispielsweise einen einheitlichen Ressourcenbeschreiber (URL) des HyperText Transfer Protocol (HTTP), einen DNS-Hostnamen/eine DNS-Adresse oder andere Datenelemente, die nützliche Merkmalsinformationen für das Erkennen des Malware-Datenverkehrs sein können, um nur ein Beispiel zu nennen. 3, die weiter unten offenbart wird, offenbart zusätzliche Merkmalsinformationen, die von der Maschinelernen-Engine 242 verwendet werden können.
-
Wie oben in Bezug auf 2A offenbart, kann der empfangene Datenverkehr-Stream 232 von dem Klassifizierer 242 als (i), (ii) oder (iii) klassifiziert werden, nämlich als (i) ein nicht verschlüsselter Datenverkehr-Stream (nicht gezeigt), (ii) ein verschlüsselter Datenverkehr-Stream (nicht gezeigt), der von dem SoC 124 entschlüsselt werden kann, oder (iii) ein verschlüsselter Datenverkehr-Stream (nicht gezeigt), der nicht von dem SoC 224 entschlüsselt werden kann. Der empfangene Datenverkehr-Stream 232 umfasst wenigstens ein empfangenes (RX-)Paket, und der Klassifizierer 242 kann eine paketweise Klassifizierung vornehmen. Der empfangene Datenverkehr-Stream 232 und damit das wenigstens eine RX-Paket kann von dem SoC 224 an einem Empfangs-Port (RX) empfangen werden, wie nachstehend in Bezug auf 2B offenbart wird.
-
2B ist ein Blockdiagramm einer beispielhaften Ausführungsform des Datenverkehrs im IDS-System 228 des SoC 224 von 2A, das oben offenbart wurde. Das Blockdiagramm umfasst eine DPDK-Schicht 265, die die Sicherheitsfähigkeiten des SoC abstrahiert und ein Data-Plane-Development-Kit (d. h. DPDK) mit Gerätetreibern wie dem ML-Treiber 255 für die ML-Engine 242, dem Sicherheitstreiber 257 und dem Krypto-Entwicklungstreiber 259 für die CPT-Engine 244 und dem Regex-Entwicklungstreiber 261 für die DPI-Engine 261 darstellt. Wie aus der Praxis bekannt, können Gerätetreiber Softwarebibliotheken umfassen, die den Zugriff auf eingebettete Hardware durch höhere Softwareschichten initialisieren und verwalten. Ein Gerätetreiber für die ML-Engine 242, die CPT-Engine 244 und die DPI-Engine 261 kann eine Abstraktion für solche Engines bereitstellen, indem er als Übersetzer zwischen der jeweiligen Hardware-Engine und einer auf dem SoC 224 ausgeführten Anwendung fungiert, die diese verwendet.
-
In der beispielhaften Ausführungsform von 2B wird ein RX-Paket 231 an einem RX-Port 233 des SoC 224 empfangen. Der RX-Port 233 kann jede Art von Port sein, der in der Lage ist, ein Datenpaket zu empfangen. Es versteht sich, dass das SoC 224 nicht darauf beschränkt ist, nur einen einzigen RX-Port aufzuweisen, sondern auch eine Vielzahl von RX-Ports und Sendeports (TX) desselben oder einer Kombination verschiedener Typen aufweisen kann. In der Ausführungsform von 2B folgt das RX-Paket 231 dem unverschlüsselten Datenverkehrspfad 276, wenn es nicht verschlüsselt ist (plain). Es sollte verstanden werden, dass der nicht verschlüsselte Datenverkehrspfad 276 kein physischer Pfad ist und einen Verarbeitungsfluss für das RX-Paket 231 für den Fall darstellt, dass das RX-Paket 231 nicht verschlüsselt ist.
-
Wenn das RX-Paket 231 verschlüsselt ist und eine Prüfung 227, ob das RX-Paket 231 entschlüsselt werden kann oder nicht, positiv ausfällt, wird der verschlüsselte Datenverkehrspfad 275 für unverschlüsselte (einfache) Daten verfolgt. Es ist zu verstehen, dass der unverschlüsselte Datenverkehrspfad 275 kein physischer Pfad ist und einen Verarbeitungsfluss für das RX-Paket 231 für den Fall darstellt, dass das RX-Paket 231 verschlüsselt ist und durch das SoC 224 entschlüsselt werden kann.
-
Unabhängig davon, welchem Datenverkehrspfad gefolgt wird, wird das RX-Paket 231, wenn es nicht als Malware-Datenverkehr erkannt wird, gemäß den Anweisungen des Datenverkehr-Scanners 248 vom TX Port 237 als TX-Paket 239 übertragen.
-
In der Ausführungsform von 2B wird das RX-Paket 231, wenn es dem unverschlüsselten Datenverkehrspfad 276 folgt, von der DPI-Engine 246 analysiert, um festzustellen, ob es sich bei dem RX-Paket 231 um Malware-Datenverkehr handelt oder nicht. Ist dies nicht der Fall, leitet der Datenverkehr-Scanner 248 das RX-Paket 231 zur Übertragung weiter, wie oben offenbart. Handelt es sich bei dem RX-Paket 231 jedoch um verschlüsselten Datenverkehr, der entschlüsselt werden kann, folgt das RX-Paket 231 dem verschlüsselten Datenverkehrspfad 275, wobei die CPT-Engine 244 das RX-Paket 231 entschlüsselt und die entschlüsselte Version des RX-Pakets 231 dann wiederum von der DPI-Engine 246 analysiert wird, um festzustellen, ob es sich bei dem RX-Paket 231 um Malware-Datenverkehr handelt. Wird nicht erkannt, dass es sich um Malware-Datenverkehr handelt, wird das RX-Paket 231 gemäß den Anweisungen des Datenverkehr-Scanners 248 vom TX Port 237 als TX-Paket 239 übertragen.
-
2C ist ein Blockdiagramm einer anderen Ausführungsform des Datenverkehrs im IDS-System 228 des SoC 224 von 2A, das oben offenbart wurde. Die Ausführungsform von 2C umfasst den ML-Fluss 219, der eingesetzt werden kann, wenn es sich bei dem RX-Paket 231 um verschlüsselten Datenverkehr handelt, der auf dem SoC 224 nicht entschlüsselt werden kann, wie durch die Prüfung 227 festgestellt wird. In einem solchen Fall können die ML-Engine 242 und die DPI-Engine 246 eingesetzt werden, um festzustellen, ob es sich bei dem RX-Paket 231 um Malware-Datenverkehr handelt. Während die Nutzlast des RX-Pakets 231 verschlüsselt sein kann, kann die DPI-Engine 246 beispielsweise vom Datenverkehr-Scanner 248 verwendet werden, um Statistiken/Parameter zu sammeln, die es dem Datenverkehr-Scanner 248 ermöglichen, wenigstens einen Abschnitt der Merkmalsinformationen 268 zu berechnen, die mit der ML-Engine 242 geteilt werden, um die ML-Engine 242 in die Lage zu versetzen, zu bestimmen, ob das RX-Paket 231 Malware-Datenverkehr ist.
-
In der Ausführungsform von 2C verwendet die ML-Engine 242 die Merkmalsinformationen 268 vom Datenverkehr-Scanner 248 und liefert die Benachrichtigung 272 an den Datenverkehr-Scanner 248, wenn die ML-Engine feststellt, dass es sich bei dem RX-Paket 231 um Malware-Datenverkehr handelt; in diesem Fall kann der Datenverkehr-Scanner das SoC veranlassen, das RX-Paket 231 zu verwerfen (nicht einschränkendes Beispiel). 3, die im Folgenden offenbart wird, liefert nicht einschränkende Details zu Beispielsmerkmalen, die von der Maschinelern-Engine 242 verwendet werden können, um eine solche Bestimmung vorzunehmen.
-
3 ist eine Tabelle 300 mit nicht einschränkenden Beispielen von Merkmalen, die von der ML-Engine 242 verwendet werden können, die oben in Bezug auf die 2A-C offenbart wurde. Solche Merkmale in der Tabelle 300 sind nicht einschränkende Beispiele. Die Tabelle 300 umfasst eine Auflistung der gemeinsamen Merkmale 382, der Zeitrahmenmerkmale 384 und der Entropiemerkmale 386. Die gemeinsamen Merkmale 382 umfassen nicht einschränkende Beispiele von paketgrößenbasierten Merkmalsinformationen sowie von paketlebensdauerbasierten (TTL-basierten) Merkmalsinformationen. Die Zeitrahmenmerkmale 384 umfassen nicht-begrenzende Beispiele für paketgrößenbasierte Merkmalsinformationen. Die Entropie-Merkmale 386 umfassen nicht-begrenzende Beispiele für paketentropie-basierte Merkmalsinformationen. Die ML-Engine 242, die oben in Bezug auf die 2A-C offenbart wurde, kann, als nicht einschränkendes Beispiel, wenigstens ein Merkmal der Merkmale in der Tabelle 300 von 3 verwenden, um einen verschlüsselten Stream zu klassifizieren, der vom SoC nicht entschlüsselt werden kann, wie oben offenbart wurde. Eine solche Klassifizierung durch die ML-Engine 242 kann auf der Erkennung von Anomalien beruhen, wie nachstehend in Bezug auf 4 offenbart wird.
-
4 ist ein Diagramm 400 nach dem Stand der Technik mit Ausreißern oder Anomalien 490 (beispielsweise 01, 02 und O3) und normalen Mustern 492 (beispielsweise N1 und N2), offenbart in Sqalli, et al. „Classifying malicious activities in Honeynets using entropy and volume-based thresholds“, Security and Communication Networks, 2013; 6; 567-583 (im Folgenden „Sqalli“). Wie in Sqalli offenbart, bezieht sich die Anomalieerkennung auf eine Technik zum Erkennen von Mustern, die sich vom normalen Verhalten unterscheiden. Die Anomalieerkennung hilft dabei, neue oder unbekannte Muster in einem Datensatz zu erkennen. Die Ausreißer oder Anomalien 490 stellen anormale Muster innerhalb eines Datensatzes dar. Unter Bezugnahme auf 4 und 2A-C, die oben offenbart wurden, kann die ML-Engine 242 gemäß einer Ausführungsform eine bekannte Technik zur Erkennung von Anomalien auf die vom Datenverkehr-Scanner 248 bereitgestellten Merkmalsinformationen 268 anwenden, um einen verschlüsselten Stream, der vom SoC 224 nicht entschlüsselt werden kann, als normal, als bekannten Thread oder als unbekannte Anomalien zu klassifizieren, so dass die ML-Engine 242 den Datenverkehr-Scanner 248 über die Benachrichtigung 272 über einen Angriff informieren kann. Als Reaktion auf die Benachrichtigung 272 kann der Datenverkehr-Scanner 248 das SoC 224 veranlassen, die Pakete des verschlüsselten Streams zu verwerfen.
-
5 ist ein Flussdiagramm einer beispielhaften Ausführungsform eines Verfahrens zur Eindringungserkennung. Das Verfahren beginnt (500) und empfängt (502), an einem System-auf-Chip (SoC), einen Datenverkehr-Stream. Das SoC umfasst eine Vielzahl von Hardware-Engines. Das SoC setzt die Vielzahl von Hardware-Engines ein, um ein Eindringungserkennungssystem (IDS) zu implementieren, das in der Lage ist, Malware-Datenverkehr in (i) einem nicht verschlüsselten Datenverkehr-Stream, (ii) einem verschlüsselten Datenverkehr-Stream, der vom SoC entschlüsselt werden kann, und (iii) einem verschlüsselten Datenverkehr-Stream, der vom SoC nicht entschlüsselt werden kann, zu erkennen. Das Verfahren erkennt (504), durch das IDS des SoC, den Malware-Datenverkehr in dem empfangenen Datenverkehr-Stream. Der Datenverkehr-Stream wird als (i), (ii), oder (iii) empfangen. Das Verfahren führt (506) eine Aktion als Reaktion auf das Erkennen aus. Die Aktion wird ausgeführt, um schadhafte Aktivitäten zu verhindern, die ansonsten durch den Malware-Datenverkehr verursacht werden. In der beispielhaften Ausführungsform endet das Verfahren danach (508).
-
Das Verfahren kann des Weiteren das Ausführen der Aktion durch den Datenverkehr-Scanner umfassen. Die Durchführung kann das Verwerfen des empfangenen Datenverkehr-Streams, das Erzeugen einer Warnung in Verbindung mit dem empfangenen Datenverkehr-Stream oder eine Kombination davon umfassen.
-
Das Verfahren kann des Weiteren das Klassifizieren des empfangenen Datenverkehr-Streams als (i), (ii) oder (iii) umfassen, wobei die DPI-Engine eingesetzt wird, um den Malware-Datenverkehr zu erkennen, wenn der empfangene Datenverkehr-Stream als (i) klassifiziert wird (d.h. ein nicht verschlüsselter Datenverkehr-Stream), wobei die CPT-Engine und die DPI-Engine eingesetzt werden, um den Malware-Datenverkehr zu erkennen, wenn der empfangene Datenverkehr-Stream als (ii) klassifiziert wird (d.h., ein verschlüsselter Datenverkehr-Stream, der vom SoC entschlüsselt werden kann), und Einsatz der ML-Engine und der DPI-Engine, um den Malware-Datenverkehr in einem Fall zu erkennen, in dem der empfangene Datenverkehr-Stream als (iii) klassifiziert wird (d.h. ein verschlüsselter Datenverkehr-Stream, der vom SoC nicht entschlüsselt werden kann).
-
Das Verfahren kann des Weiteren das Verarbeiten von nicht verschlüsseltem Datenverkehr-Inhalt durch die DPI-Engine umfassen, und in einem Fall, in dem der empfangene Datenverkehr-Stream durch den Klassifizierer als (i) (d.h. ein nicht verschlüsselter Datenverkehr-Stream) klassifiziert wird, das Veranlassen der DPI-Engine durch den Datenverkehr-Scanner, den empfangenen Datenverkehr-Stream zu verarbeiten, um den Malware-Datenverkehr zu erkennen.
-
Das Verfahren kann des Weiteren die Verarbeitung nicht verschlüsselter Inhalte des Datenverkehrs durch die DPI-Engine, die Entschlüsselung verschlüsselter Inhalte des Datenverkehrs durch die CPT-Engine und, für den Fall, dass der empfangene Datenverkehr-Stream durch den Klassifizierer als (ii) klassifiziert wird (d.h., (d.h. ein verschlüsselter Datenverkehr-Stream, der durch das SoC entschlüsselt werden kann), kann das Verfahren weiterhin umfassen, dass durch den Datenverkehr-Scanner veranlasst wird: a) die CPT-Engine zu veranlassen, verschlüsselten Datenverkehr des empfangenen Datenverkehr-Streams zu entschlüsseln und entschlüsselten Datenverkehr zu erzeugen, und b) die DPI-Engine zu veranlassen, den entschlüsselten Datenverkehr zu verarbeiten, um den Malware-Datenverkehr in dem empfangenen Datenverkehr-Stream zu erkennen.
-
Für den Fall, dass der empfangene Datenverkehr-Stream von dem Klassifizierer als (iii) klassifiziert wird (d.h. ein verschlüsselter Datenverkehr-Stream, der von dem SoC nicht entschlüsselt werden kann), kann das Verfahren weiterhin das Erzeugen von Merkmalsinformationen durch den Datenverkehr-Scanner umfassen, wobei die Merkmalsinformationen dem Nicht-Nutzlast-Inhalt der verschlüsselten Pakete in dem empfangenen Datenverkehr-Stream zugeordnet sind, und das Teilen der erzeugten Merkmalsinformationen mit der ML-Engine. Das Verfahren kann des Weiteren das Klassifizieren des empfangenen Datenverkehr-Streams durch die ML-Engine auf der Grundlage der erzeugten und freigegebenen Merkmalsinformationen umfassen. Das Verfahren kann des Weiteren umfassen, dass der Datenverkehr-Scanner die DPI-Engine einsetzt, um die Merkmalsinformationen zu erzeugen.
-
Das Verfahren kann des Weiteren die Klassifizierung des empfangenen Datenverkehr-Streams als normal, bekannte Malware oder unbekannte Malware durch die ML-Engine umfassen. Für den Fall, dass der empfangene Datenverkehr-Stream als bekannte Malware oder unbekannte Malware klassifiziert wird, kann das Verfahren weiterhin das Bereitstellen einer Benachrichtigung an den Datenverkehr-Scanner durch die ML-Engine, dass der Malware-Datenverkehr erkannt wurde, und das Durchführen der Aktion durch den Datenverkehr-Scanner in Reaktion auf die bereitgestellte Benachrichtigung umfassen.
-
Das Verfahren kann des Weiteren umfassen, dass der Datenverkehr-Scanner die Merkmalsinformationen auf der Grundlage eines Zeitintervalls erzeugt und weitergibt.
-
Das Verfahren kann des Weiteren das Anwenden eines gleitenden Fensters durch den Datenverkehr-Scanner auf den empfangenen Datenverkehr-Stream auf der Grundlage des Zeitintervalls umfassen. Das gleitende Fenster kann so konfiguriert sein, dass es Paketdaten aus dem empfangenen Datenverkehr-Stream über das Zeitintervall auf einer Zeitintervall-zu-Zeitintervall-Basis erfasst. Die Merkmalsinformationen können eine maximale Paketlänge, eine minimale Paketlänge oder eine Kombination davon umfassen, die auf der Grundlage der innerhalb des gleitenden Fensters erfassten Paketdaten bestimmt werden.
-
Das Verfahren kann des Weiteren umfassen, dass der Datenverkehr-Scanner die Merkmalsinformationen durch Berechnen wenigstens eines Abschnitts der Merkmalsinformationen erzeugt. Die Berechnung kann auf den Paketdaten basieren, die innerhalb des gleitenden Fensters erfasst wurden.
-
Das Verfahren kann des Weiteren die Verwendung des gemeinsamen Speichers durch die Vielzahl von Hardware-Engines umfassen. Das Verfahren kann des Weiteren umfassen, dass der Datenverkehr-Scanner Paketdeskriptoren verwendet, um die Kommunikation zwischen der Vielzahl von Hardware-Engines zu steuern.
-
Weitere hier offenbare Ausführungsformen können unter Verwendung eines Computerprogrammprodukts konfiguriert werden; zum Beispiel können Steuerungen in Software zur Implementierung von Beispielausführungen programmiert werden. Weitere Ausführungsbeispiele können ein nichttransitorisches computerlesbares Medium umfassen, das Instruktionen enthält, die von einem Prozessor ausgeführt werden können und, wenn sie geladen und ausgeführt werden, den Prozessor veranlassen, eine Ausführungsform eines hierin beschriebenen Verfahrens auszuführen. Es versteht sich, dass Elemente der Block- und Flussdiagramme in Software oder Hardware, Firmware, einer Kombination davon oder einer anderen ähnlichen Implementierung, die in der Zukunft bestimmt wird, implementiert werden können.
-
Darüber hinaus können die Elemente der hier beschriebenen Block- und Flussdiagramme auf beliebige Weise in Software, Hardware oder Firmware kombiniert oder aufgeteilt werden. Bei Implementierung in Software kann die Software in einer beliebigen Sprache geschrieben werden, die die hier offenbaren Ausführungsformen unterstützen kann. Die Software kann in jeder Form von computerlesbarem Medium gespeichert werden, wie beispielsweise in einem Speicher mit wahlfreiem Zugriff (RAM), einem Festwertspeicher (ROM), einem Compact-Disk-Festwertspeicher (CD-ROM) und so weiter. Im Betrieb lädt ein allgemeiner oder anwendungsspezifischer Prozessor oder Verarbeitungskern die Software und führt sie aus, wie es in der Technik allgemein bekannt ist. Es versteht sich, dass die Block- und Flussdiagramme mehr oder weniger Elemente umfassen, anders angeordnet oder ausgerichtet sein oder anders dargestellt werden können. Es versteht sich, dass die Implementierung die Block-, Fluss- und/oder Netzwerkdiagramme und die Anzahl der Block- und Flussdiagramme, die die Ausführung der hier offenbaren Ausführungsformen veranschaulichen, bestimmen kann.
-
Die Lehren aller hierin zitierten Patente, veröffentlichten Anwendungen und Referenzen sind durch Bezugnahme in ihrer Gesamtheit enthalten.
-
Obwohl die Ausführungsformen insbesondere gezeigt und beschrieben wurden, versteht der Fachmann, dass verschiedene Änderungen in Form und Details vorgenommen werden können, ohne den Umfang der Ausführungsformen, die von den beigefügten Ansprüchen umfasst werden, zu beeinträchtigen.
-
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
-