-
TECHNISCHES GEBIET
-
Aspekte der Offenbarung beziehen sich auf einen verbesserten Ansatz zum Fingerprinting einer Mikrocontrollereinheit (MCU) mittels Analyse einer physikalischen Eigenschaft der MCU während Ausführung von Programmanweisungen sowie auf Durchführen von Eindringungsdetektion basierend auf dem Fingerprinting.
-
KURZDARSTELLUNG
-
Gemäß einem oder mehreren veranschaulichenden Beispielen beinhaltet ein Verfahren zur Anweisungsklassifikation und Softwareeindringungsdetektion Überwachen einer Programmanweisungsausführung eines Prozessors einer Mikrocontrollereinheit (MCU) mittels Seitenkanalsignalanalyse, wobei das Überwachen Erfassen eines Signalverlaufs einer physikalischen Eigenschaft der MCU, die Informationen in Zusammenhang mit der Programmanweisungsausführung der MCU preisgibt, beinhaltet, wobei der Signalverlauf einen Wert der physikalischen Eigenschaft über die Zeit angibt; Extrahieren, aus dem Signalverlauf, von Zeitbereichsmerkmalen, Frequenzbereichsmerkmalen und Mel-Frequenz-Cepstrum-Koeffizienten(MFCC)-Merkmalen; Nutzen eines Modells zur Anweisungsdetektion zum Identifizieren einer Ausführungssignatur basierend auf den Zeitbereichsmerkmalen, den Frequenzbereichsmerkmalen und den MFCC-Merkmalen; Vergleichen der Ausführungssignatur mit einer oder mehreren Referenzausführungssignaturen; und Durchführen einer Behebungsmaßnahme als Reaktion darauf, dass die Ausführungssignatur nicht mit der einen oder den mehreren Referenzausführungssignaturen übereinstimmt.
-
Gemäß einem oder mehreren veranschaulichenden Beispielen wird ein System zur Anweisungsklassifikation und Softwareeindringungsdetektion beschrieben. Das System beinhaltet eine Messvorrichtung, ausgelegt zum Überwachen einer Programmanweisungsausführung eines Prozessors einer MCU mittels Seitenkanalsignalanalyse, zum Erfassen eines Signalverlaufs einer physikalischen Eigenschaft der MCU, die Informationen in Zusammenhang mit der Programmanweisungsausführung der MCU preisgibt, wobei der Signalverlauf einen Wert der physikalischen Eigenschaft über die Zeit angibt, wobei die physikalische Eigenschaft der MCU eines oder mehrere von Spannung, Leistung, Schall, elektromagnetischer Strahlung, Vibration, Licht oder Wärme beinhaltet. Das System beinhaltet ferner eine Analysevorrichtung in Kommunikation mit der Messvorrichtung. Die Analysevorrichtung ist programmiert zum Empfangen, von der Messvorrichtung, des von der MCU erfassten Signalverlaufs; Extrahieren, aus dem Signalverlauf, von Zeitbereichsmerkmalen, Frequenzbereichsmerkmalen und MFCC-Merkmalen; Nutzen eines Modells zur Anweisungsdetektion zum Identifizieren einer Ausführungssignatur basierend auf den Zeitbereichsmerkmalen, den Frequenzbereichsmerkmalen und den MFCC-Merkmalen; Vergleichen der Ausführungssignatur mit einer oder mehreren Referenzausführungssignaturen; und Durchführen einer Behebungsmaßnahme als Reaktion darauf, dass die Ausführungssignatur nicht mit der einen oder den mehreren Referenzausführungssignaturen übereinstimmt.
-
Gemäß einem oder mehreren veranschaulichenden Beispielen beinhaltet ein nichtflüchtiges computerlesbares Medium Anweisungen zur Anweisungsklassifikation und Softwareeindringungsdetektion, die bei Ausführung durch eine Analysevorrichtung bewirken, dass die Analysevorrichtung Operationen durchführt, die Folgendes beinhalten: Empfangen, von einer Messvorrichtung, eines Signalverlaufs einer physikalischen Eigenschaft einer MCU, der Informationen in Zusammenhang mit einer Programmanweisungsausführung der MCU preisgibt, wobei der Signalverlauf einen Wert der physikalischen Eigenschaft über die Zeit angibt, wobei die physikalische Eigenschaft der MCU eines oder mehrere von Spannung, Leistung, Schall, elektromagnetischer Strahlung, Vibration, Licht oder Wärme beinhaltet; Extrahieren, aus dem Signalverlauf, von Zeitbereichsmerkmalen, Frequenzbereichsmerkmalen und MFCC-Merkmalen; Nutzen eines Modells zur Anweisungsdetektion zum Identifizieren einer Ausführungssignatur basierend auf den Zeitbereichsmerkmalen, den Frequenzbereichsmerkmalen und den MFCC-Merkmalen; Vergleichen der Ausführungssignatur mit einer oder mehreren Referenzausführungssignaturen; und Durchführen einer Behebungsmaßnahme als Reaktion darauf, dass die Ausführungssignatur nicht mit der einen oder den mehreren Referenzausführungssignaturen übereinstimmt, wobei die Behebungsmaßnahme eines oder mehrere von Zurücksetzen von Puffern der MCU, Neustarten der MCU, Neuflashen einer Software der MCU mit einer aus einem Nur-Lese-Speicher abgerufenen Kopie der Software, Sperren der MCU gegenüber einem Netzwerk, Sperren von Interrupts der MCU oder Stoppen einer Ausführung der MCU beinhaltet.
-
Figurenliste
-
- 1 zeigt ein beispielhaftes System für die Erfassung von Signalverläufen, die Seitenkanal-Informationsleckagen beinhalten;
- 2 zeigt ein beispielhaftes Programm zum Erzeugen von Signalverlaufsdaten bezüglich einer einzigen Anweisung;
- 3 veranschaulicht einen beispielhaften Prozess für das Training des Modells hinsichtlich Anweisungsdetektion;
- 4 veranschaulicht einen beispielhaften Prozess für das Erstellen von Referenzausführungssignaturen;
- 5 veranschaulicht einen beispielhaften Prozess für die Verwendung des Modells bei einer Softwareeindringungsdetektion; und
- 6 veranschaulicht eine beispielhafte Rechenvorrichtung.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Ausführungsformen der vorliegenden Offenbarung werden hier beschrieben. Es versteht sich jedoch, dass die offenbarten Ausführungsformen lediglich Beispiele sind und andere Ausführungsformen verschiedene und alternative Formen annehmen können. Die Figuren sind nicht notwendigerweise maßstabsgetreu; einige Merkmale könnten übertrieben oder minimiert sein, um Einzelheiten bestimmter Komponenten zu zeigen. Die hier offenbarten speziellen strukturellen und funktionalen Einzelheiten sind daher nicht als beschränkend aufzufassen, sondern lediglich als eine repräsentative Basis, um Fachleute zu lehren, die Ausführungsformen verschiedentlich einzusetzen. Durchschnittsfachleute auf dem Gebiet werden verstehen, dass verschiedene unter Bezugnahme auf irgendeine der Figuren veranschaulichte und beschriebene Merkmale mit in einer oder mehreren anderen Figuren veranschaulichten Merkmalen kombiniert werden können, um Ausführungsformen zu produzieren, die nicht explizit veranschaulicht oder beschrieben sind. Die Kombinationen von veranschaulichten Merkmalen stellen repräsentative Ausführungsformen für typische Anwendungen bereit. Verschiedene Kombinationen und Modifikationen der mit den Lehren dieser Offenbarung konsistenten Merkmale könnten jedoch für bestimmte Anwendungen oder Implementierungen erwünscht sein.
-
Aufgrund ihrer erhöhten Konnektivität mit internen und externen Netzwerken können Kraftfahrzeug-Mikrocontrollereinheiten (Kraftfahrzeug-MCUs) Ziele für Angriffe durch Software- oder Parametermodifikation darstellen. Im Kraftfahrzeugumfeld können solche Angriffe selbst für einen kurzen Zeitraum schwerwiegend sein. Eine Laufzeitdetektion solcher Angriffe ist also äußerst wichtig für Kraftfahrzeugschutz und -sicherheit.
-
Ein prozessorbasiertes System kann Informationen über Seitenkanäle preisgeben. Diese Seitenkanäle können Leistungsaufnahme, elektromagnetische Ausstrahlungen oder sogar Audio beinhalten. Diese Offenbarung bezieht sich auf eine neue und nicht offensichtliche Technik, bei der diese Seitenkanal-Informationsleckagen erfasst werden, um die Qualität von Techniken, deren Ziel die Abschwächung bösartiger Angriffe ist, zu verbessern. Kabel und/oder Sensoren können verwendet werden, um die Leistungsaufnahme oder andere physikalische Eigenschaften der betrachteten MCU zu messen. Bei einigen Implementierungen erfordern die beschriebenen Ansätze keine Software- oder Hardwaremodifikation der zu messenden Vorrichtungen.
-
Während einer Profilierungsphase werden gültige Programme ausgeführt, um eine Datenbank ihrer individuellen Signaturen zu erstellen. Andere oder modifizierte Programme, die nicht in der Datenbank profiliert sind, sollten im Idealfall andere Charakteristiken aufweisen und somit andere Signaturen erzeugen. Die Signaturen oder Merkmale der Profile zum Verifizieren der Gültigkeit eines auf der MCU laufenden Programms müssen sorgfältig gewählt werden und sollten sich selbst bei Änderung einer beliebigen einzigen Operation in einem gültigen Programm signifikant voneinander unterscheiden. Der offenbarte Ansatz gibt an, wie man solche Merkmale berechnet und wählt, um die Effizienz eines Eindringungsdetektionssystems zu erhöhen.
-
Zur Laufzeit werden Signaturen aus den Echtzeitmessungen extrahiert und mit den Referenzausführungssignaturen, die anhand während einer Profilierungsphase genommener Trainingsmessungen berechnet wurden, verglichen. Durch kontinuierliches Überwachen der getesteten MCU kann mittels des Vergleichs mit diesen Ausführungssignaturen eine physische Laufzeiteindringungsdetektion auf niedriger Ebene durchgeführt werden.
-
Es sei angemerkt, dass bei vielen Beispielen hierin eine Verwendung des offenbarten Ansatzes in Fahrzeugen, die ECUs oder eingebettete Prozessoren verwenden (also nahezu jedes heutige Kraftfahrzeug), erörtert wird. Bei anderen Beispielen lässt sich der Ansatz auch auf Internetder-Dinge(IoT)-Vorrichtungen (mit einem Prozessor/Mikrocontroller) und allgemein auf jedes eingebettete System mit einem Prozessor, der Programmanweisungen ausführt, anwenden, wobei die Programmanweisungsausführung mit der durch den Prozessor während der Ausführung des Programms aufgenommenen Leistung in Zusammenhang steht. Es sei außerdem angemerkt, dass, obgleich sich viele Beispiele hierin auf Leistungsaufnahme beziehen, diese Art von Analyse an anderen Signalverlaufsarten (oder Kombinationen von Signalverläufen), die Seitenkanal-Informationsleckagen beinhalten, durchgeführt werden kann, wie beispielsweise elektromagnetische Signalverläufe, Schallsignalverläufe, Vibrationssignalverläufe oder beliebige andere durch eine Sensorvorrichtung gemessene physikalische Messsignalverläufe.
-
1 zeigt ein beispielhaftes System 100 für die Erfassung von Signalverläufen 102, die Seitenkanal-Informationsleckagen beinhalten. Wie gezeigt, wird eine Messvorrichtung 110 zum Erfassen von Informationen über die Zeit verwendet, um die Seitenkanal-Informationsleckagen von der MCU 104 einer elektronischen Steuereinheit (ECU) 106 zu sammeln. Eine Analysevorrichtung 114 ist mit der Messvorrichtung 110 verbunden. Wie hier ausführlich beschrieben, werden die Signalverläufe 102 durch die Analysevorrichtung 114 dazu verwendet, Klassifikatoren eines Modells 112 zu trainieren (Profilierung), wobei das Modell 112, sobald es trainiert ist, zum Detektieren bösartiger Modifikationen (die auf ein Sicherheitsrisiko hinweisen können) oder sogar unbeabsichtigter Modifikationen von Programmen (die auf ein Schutzrisiko hinweisen können) verwendet wird. Das Modell 112 kann beispielsweise dazu verwendet werden, die durch die MCU 104 ausgeführten Anweisungen mit gespeicherten Ausführungssignaturen 120 bekannter ordnungsgemäßer Software zu vergleichen.
-
Obgleich in dem Beispielsystem 100 nur eine einzige MCU 104 gezeigt ist, sei angemerkt, dass sich der beschriebene Ansatz auf eine einzige MCU 104, eine Sammlung von MCUs 104, die eine einzige Aufgabe durchführen, oder mehrere individuell arbeitende MCUs 104 anwenden lässt. Es sei außerdem angemerkt, dass die Analysevorrichtung 114 hinsichtlich der MCU 104 lokal sein kann oder in anderen Beispielen ein Fernrechensystem, wie etwa ein Gateway in dem Fahrzeug, zu dem die Signalverläufe 102 gesendet werden, oder ein Fernserver außerhalb des Fahrzeugs sein kann. Es sei ferner angemerkt, dass die Analysevorrichtung 114, die zum Durchführen des Trainings des Modells 112 verwendet wird, und die Analysevorrichtung 114, die zum Vergleichen des trainierten Modells 112 und des Messsignalverlaufs während der Verifikation verwendet wird, unterschiedliche Vorrichtungen sein können.
-
Bei einem Beispiel kann eine verbesserte und kostengünstige Weise des Klassifizierens von auf der MCU 104 laufenden Anweisungen hoher Ebene durchgeführt werden, indem der von einem Versorgungsspannungsanschlussstift 108 abgegriffene Leistungsseitenkanal verwendet wird. Wie gezeigt, wird ein Beispiel eines solchen Abgriffs durch Sondieren zugänglicher Anschlussstifte 108 der MCU 104 erzielt. Zwei Anschlussstifte 108 von der MCU 104 (z. B. ein VDD, ein E/A) sind mit einer Messvorrichtung 110 (z. B. einem Oszilloskop) für Eindringungsdetektionszwecke unter Verwendung von Leistungsseitenkanälen verbunden. Ein solcher Ansatz nutzt ein neues Verfahren zur Sondierung einer MCU 104, um eine physikalische Messung der MCU 104 durchzuführen, die zu einem Signalverlauf führt, der eine messbare Änderung aufgrund spezifischer in der CPU dieser MCU 104 laufender Programme angibt.
-
Andere Beispiele der Messvorrichtung 110 können einen mit den Leistungsanschlussstiften der getesteten MCU 104 verbundenen zusätzlichen Controller, ein Hardwaresicherheitsmodul mit Zugriff auf den Leistungsanschlussstift der getesteten/untersuchten MCU 104, das in demselben Gehäuse wie die getestete MCU 104 zur Verfügung steht, beinhalten. Dies ist wichtig, da viele Kraftfahrzeug-ECUs 106 mehr als eine MCU 104 enthalten, von denen eine möglicherweise eine „sichere“ MCU 104 ist, die mitunter als Hardwaresicherheitsmodul (HSM) bezeichnet wird.
-
In vielen seitenkanalleistungsbasierten Angriffs- oder Eindringungsdetektionssystemen wird zum Messen der Leistung ein kleiner Widerstand von einigen wenigen Ohm zwischen der Leistungsversorgung und dem Versorgungsspannungsanschlussstift 108 (VDD) der die MCU 104 enthaltenden ECU 106 eingeführt. Im Fall der Kraftfahrzeug-MCU 104 ist die MCU 104 üblicherweise nur ein Teil einer Platine, die andere Komponenten enthält, wie etwa ADCs (Analog-Digital-Umsetzer), FFT-Blöcke (FFT: Fast Fourier Transform - Schnelle FourierTransformation), einen CAN-Controller (CAN: Controller Area Network) und/oder einen E/A-Controller (E/A: Eingabe/Ausgabe). Eine Leistungsversorgung mit einer ersten Spannung (z. B. 12 Volt in vielen Beispielen) kann für die Platine verwendet werden, während die MCU 104 bei einer zweiten Spannung (z. B. 1,2 Volt VDD in vielen Beispielen) arbeiten kann, die die MCU 104 von einem Leistungswandler auf der Platine, der die erste Spannung in die zweite Spannung umwandelt, empfängt. Bei einem anderen Beispiel erzeugt die MCU 104 die zweite Spannung selbst. Somit würde, bei Durchführung einer Messung des Stroms und der Leistung von der ersten Spannungsleitung, dieses Signal eine Leistungsaufnahme nicht nur von der MCU 104, sondern außerdem auch von anderen Komponenten auf der Platine enthalten. Solche Daten wären daher rauschbehaftet und zur Klassifizierung durch die MCU 104 ausgeführter Programme 116 schwer verwendbar.
-
Eine nicht-beeinflussende Messung der der MCU 104 zugeführten Leistung mit der zweiten Spannung durch Anbringen eines Inline-Nebenschlusswiderstands gestaltet sich möglicherweise schwierig. Dennoch gibt es einige Stellen, an denen es möglich ist, die interne Leistungsschiene mit der zweiten Spannung der MCU 104 zu sondieren. Werden Programme 116 durch die MCU 104 ausgeführt, so würden jegliche Schwankungen der zweiten Spannung auf dem VDD-Anschlussstift 108 Informationen über die mit diesen Programmen 116 in Zusammenhang stehende dynamische und statische Leistungsaufnahme enthalten. Daher kann, anstatt einen Widerstand zum Messen der Leistung zu verwenden, stattdessen der Zweite-Spannung-Anschlussstift 108 sondiert werden, um eine Spannungsvariation aufgrund verschiedener in der CPU der MCU 104 laufender Anweisungen zu messen. Gegebenenfalls kann ein E/A-Anschlussstift 108 der MCU 104 als externer Trigger verwendet werden (sehr häufig werden nicht alle E/A-Anschlussstifte 108 eines Mikrocontrollers verwendet). Anhand des Leistungssignalverlaufs lässt sich nicht ohne Weiteres erkennen, wo eine Ausführung eines gewünschten Programms 116 beginnt und wo sie endet. Zu diesem Zweck kann die MCU 104 den Zustand eines E/A-Anschlussstifts 108 zu Beginn und am Ende einer Ausführung des Programms 116 umschalten. Somit wäre, wenn das Programm 116 kontinuierlich läuft, der Signalverlauf zwischen zwei aufeinanderfolgenden E/A-Umschaltungen die Region, in der das Programm 116 eine Ausführung beginnt und beendet. Beide dieser Techniken - Verlagerung zum Zweite-Spannung-Anschlussstift 108 und Verwendung eines E/A-Anschlussstifts 108 als Hardwaretrigger - unterstützen eine Verbesserung der Klassifikationsgenauigkeit anhand Seitenkanalleistungssignalverläufen 102 gegenüber vorherigen Techniken unter Verwendung eines Reihenwiderstands zur Leistungsmessung. Es sei angemerkt, dass andere Trigger zum Steuern der Signalverlaufserfassung verwendet werden können. So kann das Erfassen der Signalverläufe 102 beispielsweise durch ein oder mehrere überwachte Hardware- oder Softwareinterrupts der MCU 104 getriggert werden. Ein mögliches Beispiel könnte ein durch einen Scheduler angeforderter Interrupt sein, der einen Kontextwechsel zu einem anderen Prozess, Programm oder Thread initiiert. In der Unterbrechungsroutine kann ein externer Port getriggert werden, um die Messvorrichtung 110 über den Kontextwechsel zu informieren. Dies würde beispielsweise eine Durchführung einer Signalverlaufserfassung je Prozess, Programm oder Thread gestatten.
-
Wie erwähnt, ist die Leistungsversorgungsspannung ein Beispiel einer Vorrichtungsmessung einer physikalischen Eigenschaft der MCU 104, die zum Erzeugen eines Signalverlaufs verwendet werden kann. Es sei erwähnt, dass auch andere Messungen und/oder physikalische Eigenschaften verwendet werden können, wie etwa Schall (z. B. mit einem Mikrofon gemessen), Vibration (z. B. mit einem MEMS-Sensor gemessen), ein Signalverlauf von einer elektromagnetischen Sonde und so weiter.
-
Beispielsweise kann zusätzlich oder alternativ ein externer oder interner Sensor 122 zum Bereitstellen einer Vorrichtungsmessung einer anderen physikalischen Eigenschaft (z. B. Schall, Temperatur) genutzt werden, um eine anfängliche Basislinienmessung (Profilierung) durchzuführen. Diese zusätzliche oder alternative Messung kann durchgeführt werden, um die Identifizierung von Merkmalen zu unterstützen, die die maximale Trennung unter physikalischen Eigenschaften (z. B. Leistungsaufnahme, Wärmedissipation, Schall usw.) verschiedener Anweisungen oder Funktionen (d. h. eines Anweisungssatzes) der MCU 104 bereitstellen. Dann können Klassifikatoren (z. B. geeignete Maschinenlernalgorithmen oder neuronale Netze) des Modells 112 an diesen berechneten Merkmalen verwendet werden, um laufende Anweisungen rasch zu identifizieren und somit eine schnelle Eindringungsdetektion zu ermöglichen.
-
Im Hinblick auf eine Merkmalsextraktion sind Signalverläufe 102, die Tausende oder gar Millionen von Abtastpunkten enthalten, üblicherweise zu groß und rechenaufwendig, um direkt in ein beliebiges Klassifikationsmodell 112 eingespeist zu werden. Zudem erfordern die meisten Maschinenlernalgorithmen eine Vorverarbeitung, um Einzelheiten über Frequenz, Abtastrate oder andere relevante Informationen über die Hardware zu erlernen. Anstatt eine Hauptkomponentenanalyse (PCA: Principal Component Analysis) zu verwenden, um eine Dimensionalität der Daten blind zu reduzieren, werden einige brauchbare Merkmale extrahiert, sodass diese extrahierten Merkmale zum Trainieren des Klassifikators des Modells 112 verwendet werden. Einige häufig verwendete Merkmale sind mittlere Signalverlaufsleistung, maximale Leistung, minimale Leistung, statistische Eigenschaften eines Signalverlaufs wie etwa Standardabweichung, Schiefe, Wölbung und Effektivleistung (Root-Mean-Square(RMS)-Leistung). Auch Frequenzbereichsmerkmale wie etwa Bandenergien werden verwendet, da einige Frequenzen in hohem Maße mit einer bestimmten Anweisung oder einem Anweisungssatz, die/der durch ein Programm 116 ausgeführt wird, in Zusammenhang stehen könnten.
-
Der Ansatz verwendet eindeutige Merkmale in einem Klassifikationslernelement des Modells 112, die im Vergleich zu Merkmalen, die zuvor in diesen Arten von Systemen zur Eindringungsdetektion verwendet wurden, eine verbesserte Genauigkeit bereitstellen. Insbesondere verwendet der beschriebene Ansatz Mel-Frequenz-Cepstrum-Koeffizienten (MFCC) als zusätzliche Merkmale für das Modell 112, wodurch die Test- und Trainingsgenauigkeit mehrerer Maschinenlernmodelle 112 im Vergleich zu Fällen, bei denen keine MFCC-Merkmale verwendet werden, um 5%-10% verbessert werden. MFCCs werden ausführlich erörtert in M. Sahidullah et al. (M. Sahidullah und G. Saha, „Design, analysis and experimental evaluation of block-based transformation in MFCC computation for speaker recognition", Speech Communication, Band 54, Nr. 4, S. 543-565, 2012).
-
MFCCs werden in erster Linie zur Sprachsignalverarbeitung verwendet, wobei die Frequenzbänder im regulären Frequenzbereich nicht gleichmäßig beabstandet sind. Vielmehr sind die Frequenzbänder auf der Mel-Skala (modifizierter Frequenzbereich) gleichmäßig beabstandet, um eine bessere Repräsentation des menschlichen auditorischen Systems zu erhalten. Obgleich es sich bei den im beschriebenen Ansatz analysierten Signalen nicht um Sprachsignale handelt, zeigt die Verwendung von MFCCs als Merkmale eine Verbesserung der Klassifikationsgenauigkeit im Bereich von 5%-15%, insbesondere für Einzelanweisungsklassifikation. Nach Analyse der Merkmale in einem Beispieltest wurde erkannt, dass eine Verwendung lediglich der 10. MFCC (von 13 in dem Test) zu mehr als 10% der Klassifikationsgenauigkeit beiträgt, was in Anbetracht der Tatsache, dass im Test insgesamt 35 Merkmale genutzt wurden, signifikant ist.
-
2 zeigt ein beispielhaftes Programm 116 zum Erzeugen von Daten eines Signalverlaufs 102 bezüglich einer einzigen Anweisung. Wie gezeigt ist die einzige Anweisung die „and“-Anweisung. Unter Verwendung eines solchen Programms 116 können Signalverläufe für die „and“-Anweisung erfasst werden. Ähnliche Programme 116, die jede Anweisung mehrfach in einer Schleife verwenden (z. B. fünfmal wie gezeigt) können auch verwendet werden, um Signalverläufe für andere Anweisungen zu erfassen, wie etwa „add“, „multiply“, „left shift“, „right shift“, „or“ und „xor“. Dadurch können repräsentative Signalverläufe 102 für jede eines Satzes von Anweisungen erfasst werden. Dann können Zeitbereichsmerkmale und Frequenzbereichsmerkmale der Signalverläufe 102 extrahiert werden, wie hier erörtert. Darüber hinaus können auch MFCC-Merkmale berechnet werden.
-
Während der Laufzeit der ECU 106 im Feld können Seitenkanalleistungsmessungen (oder andere physikalische Eigenschaften) in einem spezifischen Zeitfenster durchgeführt werden. Dann werden Merkmale oder Ausführungssignaturen anhand dieser Messungen berechnet und mit den gespeicherten Ausführungssignaturen 120 für bekannte Programme 116, die auf der MCU 104 laufen, verglichen. Anhand dieses Vergleichs können die in dem aktuellen Programm 116 laufenden Anweisungen oder Funktionen gefunden werden und folglich lassen sich jegliche unbeabsichtigte Anweisungen aufgrund irgendeiner bösartigen Softwaremodifikation auf sehr niedriger Ebene detektieren. Durch Einbeziehen zusätzlicher Schritte als Behebungsmaßnahmen, wie etwa Zurücksetzen von Puffern der MCU 104, Neustarten des Prozessors der MCU 104, Neuflashen der Software der MCU 104 mit einer aus einem Nur-Lese-Speicher abgerufenen Softwarekopie, Sperren der ECU (MCU 104) gegenüber dem Netzwerk bis auf Weiteres, Sperren von Interrupts, Stoppen des Prozessors und/oder Ausgeben eines Warnhinweises, kann das Eindringungsdetektionssystem dementsprechend hilfreich sein bei einer Verhinderung solcher Ausführungen bösartiger Programme 116 (Eindringungsprävention).
-
Klassifikationstechniken wie etwa Support Vector Machines (SVMs) mit verschiedenen Kernels, (tiefe) neuronale Netze, Ensemble-Modelle, baumbasierte Klassifikatoren usw. können zur Anweisungsklassifikation und somit zur robusten Detektion von Softwareeindringung verwendet werden.
-
Variationen des beschriebenen Ansatzes sind möglich. Als eine mögliche Variation können die Messungen an jede(s) externe dedizierte Vorrichtung oder Eindringungsdetektionssystem (IDS) übertragen werden, die/das möglicherweise leistungsstärker und vertrauenswürdiger ist.
-
Als eine andere Möglichkeit können zusätzlich zur Klassifizierung individueller Anweisungen komplexe und kritische Programme als Ganzes einem Fingerprinting unterzogen werden. Solche sensiblen Anwendungen können bei diesem Eindringungsdetektionsverfahren einem Verifikationsschritt unterzogen werden, um jegliche Bedrohung durch irgendeine bösartige Modifikation aktiv zu verhindern.
-
Als noch eine weitere Möglichkeit könnten Ferndatenerfassungs- und -verifikationsverfahren hinzugefügt werden. Dies würde dabei helfen, die Fingerprint-Datenbank von Zeit zu Zeit zu aktualisieren, um jeglichen Änderungen der Leistungsaufnahme, verursacht durch Umgebungsänderungen, Prozessvariation oder Alterung, nachzukommen. Es können Fernverifikationsverfahren hinzugefügt werden, die, wenn sie getriggert werden, eine Ausführung einer Sequenz von Anweisung zum Fingerprinting verursachen würden, und dann kann ein Netzwerk-Eindringungsdetektionssystem (Netzwerk-IDS) eine Antwort zum Zertifizieren der Gültigkeit all dieser Anweisungen senden.
-
3 veranschaulicht einen beispielhaften Prozess 300 für das Training des Modells 112 hinsichtlich Anweisungsdetektion. Bei einem Beispiel kann der Prozess 300 durch eine Analysevorrichtung 114 im Kontext des Systems 100 durchgeführt werden.
-
Bei Operation 302 wird ein Testprogramm 116 ausgeführt. Ein Beispiel für ein solches Programm 116 ist in 2 gezeigt. Das Testprogramm 116 kann durch einen Prozessor der MCU 104 ausgeführt werden.
-
Bei Operation 304 wird eine Ausführung der MCU 104 durch das Testprogramm 116 überwacht, um Ausführungsdetails des Betriebs der MCU 104 zu erfassen. Beispielsweise wird ein Leistungssignalverlauf durch eine mit einem oder mehreren Anschlussstiften der MCU 104 verbundenen Messvorrichtung 110 erfasst. Bei einigen Beispielen können zusätzliche oder alternative physikalische Messungen unter Verwendung von dem Sensor 122 empfangener Daten durchgeführt werden. Diese Ausführungsdetails werden durch die Analysevorrichtung 114 empfangen.
-
Bei Operation 306 werden Merkmale extrahiert. Bei einem Beispiel extrahiert die Analysevorrichtung 114 Merkmale, die eines oder mehrere von mittlerer Signalverlaufsleistung, maximaler Leistung, minimaler Leistung, statistischen Eigenschaften eines Signalverlaufs wie etwa Standardabweichung, Schiefe, Wölbung, RMS-Leistung, Bandenergien und MFCCs beinhalten können.
-
Bei Operation 308 wird das Modell 112 trainiert. Bei einem Beispiel trainiert die Analysevorrichtung 114 das Modell 112 basierend auf den extrahierten Merkmalen und den bekannten Anweisungen des Testprogramms 116. Nach Operation 308 endet der Prozess 300. Es sei angemerkt, dass der Prozess 300 für mehrere Testprogramme 116 durchgeführt werden kann, um eine erhöhte Abdeckung möglicher Anweisungsausführungsfälle zu ermöglichen.
-
4 veranschaulicht einen beispielhaften Prozess 400 für das Erstellen von Referenzausführungssignaturen 120. Bei einem Beispiel kann der Prozess 400 wie der Prozess 300 durch die Analysevorrichtung 114 im Kontext des Systems 100 durchgeführt werden. Bei Operation 402 wird ein Referenzprogramm 116 ausgeführt. Das Referenzprogramm 116 kann insbesondere durch einen Prozessor der MCU 104 ausgeführt werden.
-
Bei Operation 404 werden Ausführungsdetails des Referenzprogramms 116 erfasst. Bei einem Beispiel, und ähnlich wie oben bezüglich Operation 304 des Prozesses 300 erörtert, können physikalische Messungen der MCU 104 durchgeführt werden, um einen Signalverlauf 102 einer erfassten Ausführung des Programms 116 zu erzeugen.
-
Bei Operation 406 wird eine Referenzausführungssignatur 120 bezüglich der Ausführung des Programms 116 erstellt. Bei einem Beispiel kann das Modell 112 (z. B. gemäß dem Prozess 300 trainiert) dazu verwendet werden, die Ausführungssignatur 120 unter Verwendung der bei Operation 404 erfassten Ausführungsdetails als Eingabe zu erstellen. Nach Operation 406 endet der Prozess 400.
-
Es sei angemerkt, dass die Referenzausführungssignatur 120 bei einigen Beispielen in manipulationssicherer Speicherung gespeichert werden kann, um zu garantieren, dass die Referenzausführungssignaturen 120 zur Zeit ihrer Verwendung nicht modifiziert wurden. Eine manipulationssichere Speicherung könnte bereitgestellt werden über ein Hardwaresicherheitsmodul, Speicherung in Nur-Lese-Speicher, Speicherung in einer anderen Vorrichtung (die als sicher gilt), alle oder beliebige der Obigen kombiniert mit einer kryptografischen Signatur oder einem Nachrichtenauthentifizierungscode (MAC: Message Authentication Code), wobei der private Schlüssel oder der geheime Schlüssel in einem für einen Angreifer unzugänglichen sicheren Speicher gespeichert ist.
-
5 veranschaulicht einen beispielhaften Prozess 500 für die Verwendung des Modells 112 hinsichtlich Softwareeindringungsdetektion. Bei einem Beispiel kann der Prozess 500 wie die Prozesse 300 und 400 durch die Analysevorrichtung 114 im Kontext des Systems 100 durchgeführt werden.
-
Bei Operation 502 wird eine Ausführung der MCU 104 überwacht, um Ausführungsdetails des Betriebs der MCU 104 zu erfassen. Bei einem Beispiel, und ähnlich wie oben bezüglich Operationen 304 und 306 des Prozesses 300 erörtert, können physikalische Messungen der MCU 104 durchgeführt werden und/oder ein Signalverlauf 102 einer Ausführung des Programms 116 erfasst werden.
-
Bei Operation 504 wird eine Ausführungssignatur 120 der Ausführung der MCU 104 identifiziert. Bei einem Beispiel, und ähnlich wie oben bezüglich Operation 406 des Prozesses 400 erörtert, kann das Modell 112 (z. B. gemäß dem Prozess 300 trainiert) dazu verwendet werden, die Ausführungssignatur 120 unter Verwendung der bei Operation 502 erfassten Ausführungsdetails als Eingabe zu erstellen.
-
Bei Operation 506 wird die Ausführungssignatur 120 mit den Referenzausführungssignaturen 120 verglichen. Bei Operation 508 wird bestimmt, ob die Ausführungssignatur 120 mit der der einen oder der mehreren Referenzausführungssignaturen 120 übereinstimmt. Bei dem Vergleich kann beispielsweise bestimmt werden, ob ein Fehlerbetrag zwischen der Ausführungssignatur 120 und den Referenzausführungssignaturen 120 innerhalb einer maximalen Toleranz liegt. Trifft dies zu, kehrt die Steuerung zu Operation 502 zurück. Ansonsten geht die Steuerung zu Operation 510 über.
-
Bei Operation 510 wird eine Behebungsmaßnahme durchgeführt. Als einige Beispiele kann die Behebungsmaßnahme eines oder mehrere der Folgenden beinhalten: Zurücksetzen von Puffern der MCU 104, Neustarten des Prozessors der MCU 104, Neuflashen der Software der MCU 104 mit einer aus einem Nur-Lese-Speicher abgerufenen Softwarekopie, Sperren der ECU (MCU 104) gegenüber dem Netzwerk bis auf Weiteres, Sperren von Interrupts, Stoppen des Prozessors und/oder Ausgeben eines Warnhinweises. Nach Operation 510, wenn der Prozessor nicht gestoppt ist, geht die Steuerung zu Operation 502 über. Ansonsten endet der Prozess 500.
-
6 veranschaulicht eine beispielhafte Rechenvorrichtung 600. Die Algorithmen und/oder Methodiken einer oder mehrerer hier erörterter Ausführungsformen können unter Verwendung einer solchen Rechenvorrichtung implementiert werden. Beispielsweise kann es sich bei der Analysevorrichtung 114 um eine solche Rechenvorrichtung 600 handeln. Bei einem anderen Beispiel können die Messvorrichtung 110, die MCU 104 und/oder die ECU 106 solche Vorrichtungen beinhalten oder sein. Die Rechenvorrichtung 600 kann einen Speicher 602, einen Prozessor 604 und eine nichtflüchtige Speicherung 606 beinhalten. Der Prozessor 604 kann eine oder mehrere Vorrichtungen beinhalten, ausgewählt aus Hochleistungsrechen(HPC)-Systemen einschließlich Hochleistungskernen, Mikroprozessoren, Mikrocontrollern, digitalen Signalprozessoren, Mikrocomputern, Zentralverarbeitungseinheiten, feldprogrammierbaren Gate-Arrays, programmierbaren Logikvorrichtungen, Zustandsmaschinen, Logikschaltungen, analogen Schaltungen, digitalen Schaltungen oder beliebigen anderen Vorrichtungen, die (analoge oder digitale) Signale basierend auf sich in dem Speicher 602 befindenden computerausführbaren Anweisungen manipulieren. Der Speicher 602 kann eine einzige Speichervorrichtung oder mehrere Speichervorrichtungen beinhalten, die unter anderem Direktzugriffsspeicher (RAM), flüchtigen Speicher, nichtflüchtigen Speicher, statischen Direktzugriffsspeicher (SRAM), dynamischen Direktzugriffsspeicher (DRAM), Flash-Speicher, Cache-Speicher oder eine beliebige andere Vorrichtung, die zum Speichern von Informationen in der Lage ist, beinhalten. Die nichtflüchtige Speicherung 606 kann eine oder mehrere beständige Datenspeicherungsvorrichtungen beinhalten, wie etwa eine Festplatte, ein optisches Laufwerk, ein Bandlaufwerk, eine nichtflüchtige Solid-State-Vorrichtung, eine Cloud-Speicherung oder eine beliebige andere Vorrichtung, die zum beständigen Speichern von Informationen in der Lage ist.
-
Der Prozessor 604 kann dazu ausgelegt sein, in den Speicher 602 zu lesen und computerausführbare Anweisungen, die sich in Programmanweisungen 608 der nichtflüchtigen Speicherung 606 befinden und Algorithmen und/oder Methodiken einer oder mehrerer Ausführungsformen umsetzen, auszuführen. Die Programmanweisungen 608 können Betriebssysteme und Anwendungen beinhalten. Die Programmanweisungen 608 können von Computerprogrammen kompiliert oder interpretiert werden, die unter Verwendung einer Vielzahl von Programmiersprachen und/oder -technologien erstellt wurden, einschließlich unter anderem, und entweder allein oder in Kombination, Java, C, C++, C#, Objective-C, Fortran, Pascal, Java Script, Python, Perl und PL/SQL.
-
Bei Ausführung durch den Prozessor 604 können die computerausführbaren Anweisungen der Programmanweisungen 608 bewirken, dass die Rechenvorrichtung 600 eine(n) oder mehrere der hierin offenbarten Algorithmen und/oder Methodiken implementiert. Die nichtflüchtige Speicherung 606 kann auch Daten 610 beinhalten, die Funktionen, Merkmale und Prozesse der einen oder der mehreren hierin beschriebenen Ausführungsformen unterstützen. Diese Daten 610 können als einige Beispiele Signalverläufe 102, das Modell 112, die Ausführungssignaturen 120 und die Daten von dem Sensor 122 beinhalten.
-
Die hier offenbarten Prozesse, Verfahren oder Algorithmen können lieferbar sein an/implementiert werden durch eine Verarbeitungsvorrichtung, einen Controller oder einen Computer, die/der eine beliebige existierende programmierbare elektronische Steuereinheit oder dedizierte elektronische Steuereinheit beinhalten kann. Gleichermaßen können die Prozesse, Verfahren oder Algorithmen als Daten und durch einen Controller oder einen Computer ausführbare Anweisungen in vielen Formen gespeichert werden, darunter unter anderem Informationen, die auf nichtbeschreibbaren Speicherungsmedien wie etwa ROM-Vorrichtungen permanent gespeichert sind, und Informationen, die auf beschreibbaren Speicherungsmedien wie etwa Disketten, Magnetbändern, CDs, RAM-Vorrichtungen und anderen magnetischen und optischen Medien, änderbar gespeichert sind. Die Prozesse, Verfahren oder Algorithmen können auch in einem ausführbaren Softwareobjekt implementiert werden. Alternativ können die Prozesse, Verfahren oder Algorithmen in Gänze oder teilweise unter Verwendung geeigneter Hardwarekomponenten umgesetzt werden, wie etwa anwendungsspezifischer integrierter Schaltungen (ASICs), feldprogrammierbarer Gate-Arrays (FPGAs), Zustandsmaschinen, Controller oder anderer Hardwarekomponenten oder -vorrichtungen oder einer Kombination von Hardware-, Software- und Firmwarekomponenten.
-
Obgleich oben beispielhafte Ausführungsformen beschrieben sind, ist nicht beabsichtigt, dass diese Ausführungsformen alle möglichen durch die Ansprüche eingeschlossenen Formen beschreiben. Die in der Beschreibung verwendeten Ausdrücke sind Ausdrücke der Beschreibung und nicht der Beschränkung, und es versteht sich, dass verschiedene Änderungen vorgenommen werden können, ohne von der Idee und dem Schutzumfang der Offenbarung abzuweichen. Wie zuvor beschrieben, können die Merkmale verschiedener Ausführungsformen kombiniert werden, um weitere Ausführungsformen der Erfindung zu bilden, die möglicherweise nicht explizit beschrieben oder veranschaulicht sind. Obgleich verschiedene Ausführungsformen als Vorteile ergebend oder gegenüber anderen Ausführungsformen oder Implementierungen im Stand der Technik bezüglich einer oder mehrerer erwünschter Charakteristiken bevorzugt beschrieben worden sein können, erkennen Durchschnittsfachleute auf dem Gebiet, dass ein(e) oder mehrere Merkmale oder Charakteristiken beeinträchtigt werden können, um erwünschte Gesamtsystemattribute zu erzielen, die von der speziellen Anwendung und Implementierung abhängen. Diese Attribute können unter anderem Kosten, Stärke, Haltbarkeit, Lebenszykluskosten, Vermarktungsfähigkeit, Erscheinungsbild, Aufmachung, Größe, Wartbarkeit, Gewicht, Herstellbarkeit, Montagefreundlichkeit usw. beinhalten. Von daher liegen jegliche in dem Maße als weniger wünschenswert als andere Ausführungsformen oder Implementierungen im Stand der Technik bezüglich einer oder mehreren Charakteristiken beschriebene Ausführungsformen nicht außerhalb des Schutzumfangs der Offenbarung und können für gewisse Anwendungen wünschenswert sein.
-
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 Nicht-Patentliteratur
-
- M. Sahidullah et al. (M. Sahidullah und G. Saha, „Design, analysis and experimental evaluation of block-based transformation in MFCC computation for speaker recognition“, Speech Communication, Band 54, Nr. 4, S. 543-565, 2012 [0020]