DE102020210874A1 - Apparatus, system and method for preventing malicious attacks by program code on a vehicle - Google Patents

Apparatus, system and method for preventing malicious attacks by program code on a vehicle Download PDF

Info

Publication number
DE102020210874A1
DE102020210874A1 DE102020210874.9A DE102020210874A DE102020210874A1 DE 102020210874 A1 DE102020210874 A1 DE 102020210874A1 DE 102020210874 A DE102020210874 A DE 102020210874A DE 102020210874 A1 DE102020210874 A1 DE 102020210874A1
Authority
DE
Germany
Prior art keywords
program codes
vehicle
execution environment
codes
malicious
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102020210874.9A
Other languages
German (de)
Inventor
Herschel Chen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of DE102020210874A1 publication Critical patent/DE102020210874A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Abstract

Die Anmeldung stellt eine Vorrichtung, ein System und ein Verfahren zur Verhinderung böswilliger Angriffe durch Programmcodes auf ein Fahrzeug vor, wobei die Programmcodes so eingerichtet werden, dass sie in einer isolierten Ausführungsumgebung eines elektronischen Systems des Fahrzeugs durchgeführt werden. Die Vorrichtung umfasst: ein Bestimmungsmodul, das zum Bestimmen einer Betriebsart und eines Bereichs eines Betriebsobjekts für einen Betrieb der Programmcodes konfiguriert ist; ein Berechnungsmodul, das abhängig von der Betriebsart und dem Bereich des Betriebsobjekts einen Einflusswert berechnet, der einen Grad eines Einflusses auf die Sicherheit des Fahrzeugs, falls die Programmcodes in einer ursprünglichen Ausführungsumgebung des elektronischen Systems des Fahrzeugs zur Ausführung des Betriebs durchgeführt würden, repräsentiert; und ein Entscheidungsmodul, das zum Auswerten des Einflusswerts konfiguriert wird, um festzustellen, ob die Programmcodes Schadcodes sind; und beim Feststellen, dass die Programmcodes Schadcodes sind, eine Durchführung der Programmcodes in der ursprünglichen Ausführungsumgebung zu verbieten.The application presents an apparatus, a system and a method for preventing malicious attacks by program codes on a vehicle, the program codes being set up in such a way that they are carried out in an isolated execution environment of an electronic system of the vehicle. The apparatus includes: a determination module configured to determine an operation mode and a range of an operation object for operation of the program codes; a calculation module which, depending on the operating mode and the area of the operating object, calculates an influence value which represents a degree of influence on the safety of the vehicle if the program codes were carried out in an original execution environment of the electronic system of the vehicle for executing the operation; and a decision module that is configured to evaluate the influence value in order to determine whether the program codes are malicious codes; and upon determining that the program codes are malicious codes, to prohibit execution of the program codes in the original execution environment.

Description

Technisches GebietTechnical area

Die Anmeldung betrifft eine Vorrichtung, ein System und ein Verfahren zur Verhinderung böswilliger Angriffe durch Programmcodes auf ein Fahrzeug.The application relates to a device, a system and a method for preventing malicious attacks by program code on a vehicle.

Stand der TechnikState of the art

Da das Internet der Fahrzeuge eine Interaktion zwischen einem Fahrzeug und anderen Fahrzeugen sowie Kommunikationsnetzen ermöglichen kann, weist es viele Vorteile auf, die beispielsweise die Fähigkeit, die Wahrscheinlichkeit einer Fahrzeugkollision zu verringern, die Unterstützung eines Fahrzeugbesitzers durch Navigieren in Echtzeit, und die Verbesserung der Verkehrseffizienz umfassen.Since the Internet of Vehicles can enable interaction between a vehicle and other vehicles and communication networks, it has many advantages, including the ability to reduce the likelihood of a vehicle collision, assisting a vehicle owner with real-time navigation, and improving traffic efficiency include.

Mit zunehmender Interaktion zwischen dem Fahrzeug und der Außenwelt sind jedoch fahrzeuginterne Softwares und fahrzeuginterne elektronische Systeme komplexer geworden, was potenzielle Probleme der Fahrzeugsicherheit mit sich bringt. Aufgrund der zunehmenden Lücken im Fahrzeugsystem ist es beispielsweise für Hacker einfacher, böswillige Angriffe auf Fahrzeuge über das Netzwerk erfolgreich vorzunehmen. Selbst in einem fahrzeuginternen Netzwerk besteht auch das Risiko, dass Schadprogramme über verschiedene Schnittstellen in das fahrzeuginterne System gelangen und die böswillige Kontrolle lokal im fahrzeuginternen Netzwerk initiieren. Ferner sind einige Schadprogramme unter statischer Beobachtung schwer zu erkennen. Sobald diese Schadprogramme in einer bestimmten Umgebung durchgeführt werden, wird ihre Aggressivität ausgelöst, wodurch die Schlüsselkomponenten des fahrzeuginternen elektronischen Systems modifiziert werden, so dass das fahrzeuginterne System beschädigt wird und schreckliche Sicherheitsrisiken im fahrzeuginternen System verursacht werden.However, as the interaction between the vehicle and the outside world has increased, in-vehicle software and in-vehicle electronic systems have become more complex, creating potential vehicle safety issues. Due to the increasing number of gaps in the vehicle system, it is easier for hackers, for example, to successfully carry out malicious attacks on vehicles over the network. Even in an in-vehicle network, there is also the risk that malicious programs will get into the vehicle-internal system via various interfaces and initiate malicious control locally in the vehicle-internal network. Furthermore, some malicious programs are difficult to detect under static observation. As soon as these malicious programs are executed in a certain environment, their aggressiveness is triggered, thereby modifying the key components of the in-vehicle electronic system, thus damaging the in-vehicle system and creating terrible security risks in the in-vehicle system.

Daher ist eine technische Ausgestaltung dringend erforderlich, um die oben genannten Probleme im Stand der Technik zu lösen.Therefore, a technical design is urgently required in order to solve the above-mentioned problems in the prior art.

Offenbarung der ErfindungDisclosure of the invention

Angesichts der oben genannten Probleme im Stand der Technik stellt die Anmeldung eine technische Ausgestaltung zur Verhinderung böswilliger Angriffe durch Programmcodes auf ein Fahrzeug bereit, mit der effektiv sichergestellt werden kann, dass ein böswilliger Betrieb der Programmcodes keine schädlichen Auswirkungen auf das fahrzeuginterne System erzeugt.In view of the above-mentioned problems in the prior art, the application provides a technical embodiment for preventing malicious attacks by program codes on a vehicle, with which it can be effectively ensured that malicious operation of the program codes does not produce any harmful effects on the vehicle-internal system.

Gemäß einem Aspekt der Anmeldung wird eine Vorrichtung zur Verhinderung böswilliger Angriffe durch Programmcodes auf ein Fahrzeug bereitgestellt, wobei die Programmcodes so eingerichtet sind, dass sie in einer isolierten Ausführungsumgebung eines elektronischen Systems des Fahrzeugs durchgeführt werden, die Vorrichtung umfassend: ein Bestimmungsmodul, das zum Bestimmen einer Betriebsart und eines Bereich eines Betriebsobjekts für einen Betrieb der Programmcodes konfiguriert ist; ein Berechnungsmodul, das abhängig von der Betriebsart und dem Bereich des Betriebsobjekts einen Einflusswert berechnet, der einen Grad eines Einflusses auf die Sicherheit des Fahrzeugs, falls die Programmcodes in einer ursprünglichen Ausführungsumgebung des elektronischen Systems des Fahrzeugs zur Ausführung des Betriebs durchgeführt würden, repräsentiert; und ein Entscheidungsmodul, das zum Auswerten des Einflusswerts konfiguriert wird, um festzustellen, ob die Programmcodes Schadcodes sind; und beim Feststellen, dass die Programmcodes Schadcodes sind, eine Durchführung der Programmcodes in der ursprünglichen Ausführungsumgebung zu verbieten.According to one aspect of the application, a device for preventing malicious attacks by program codes on a vehicle is provided, the program codes being set up such that they are carried out in an isolated execution environment of an electronic system of the vehicle, the device comprising: a determination module that is used to determine an operating mode and a range of an operating object are configured to operate the program codes; a calculation module which, depending on the operating mode and the area of the operating object, calculates an influence value which represents a degree of influence on the safety of the vehicle if the program codes were carried out in an original execution environment of the electronic system of the vehicle for executing the operation; and a decision module that is configured to evaluate the influence value in order to determine whether the program codes are malicious codes; and upon determining that the program codes are malicious codes, to prohibit execution of the program codes in the original execution environment.

Gemäß einer möglichen Ausführungsform ist das Entscheidungsmodul ferner so konfiguriert, dass beim Feststellen, dass die Programmcodes Schadcodes sind, die Programmcodes von der isolierten Ausführungsumgebung abgeführt werden und diese Situation als ein abnormales Ereignis einem Speicher des elektronischen Systems des Fahrzeugs zur Speicherung bereitgestellt wird; und dass beim Feststellen, dass die Programmcodes keine Schadcodes sind, die Programmcodes in die ursprüngliche Ausführungsumgebung zur Durchführung der Programmcodes in der ursprünglichen Ausführungsumgebung ausgegeben werden.According to one possible embodiment, the decision module is further configured such that when it is determined that the program codes are malicious codes, the program codes are removed from the isolated execution environment and this situation is made available as an abnormal event to a memory of the electronic system of the vehicle for storage; and that when it is established that the program codes are not malicious codes, the program codes are output into the original execution environment for executing the program codes in the original execution environment.

Gemäß einer möglichen Ausführungsform wertet das Entscheidungsmodul den Einflusswert aus, indem ein vorgegebener Schwellenwert für den Bereich des Betriebsobjekts aus mehreren in dem Speicher des elektronischen Systems des Fahrzeugs gespeicherten vorgegebenen Schwellenwerten ausgewählt wird, der berechnete Einflusswert mit dem ausgewählten vorgegebenen Schwellenwert zum Erhalten eines Vergleichsergebnisses verglichen wird, die Programmcodes als Schadcodes festgestellt werden, wenn das Vergleichsergebnis zeigt, dass der Einflusswert größer als oder gleich dem vorgegebenen Schwellenwert ist, und die Programmcodes nicht als Schadcodes festgestellt werden, wenn das Vergleichsergebnis zeigt, dass der Einflusswert kleiner als der vorgegebene Schwellenwert ist.According to one possible embodiment, the decision module evaluates the influencing value by selecting a predetermined threshold value for the area of the operating object from a plurality of predetermined threshold values stored in the memory of the electronic system of the vehicle, and comparing the calculated influencing value with the selected predetermined threshold value to obtain a comparison result , the program codes are determined to be malicious codes if the comparison result shows that the influencing value is greater than or equal to the specified threshold value, and the program codes are not determined to be malicious codes if the comparison result shows that the influencing value is smaller than the specified threshold value.

Gemäß einer möglichen Ausführungsform umfasst die Vorrichtung ferner ein Verifizierungsmodul, das konfiguriert ist, die Programmcodes mittels im Speicher des elektronischen Systems des Fahrzeugs gespeicherter Verifizierungsdaten zu verifizieren, wobei die Verifizierungsdaten optional eine digitalisierte Whitelist darstellen; wobei das Verifizierungsmodul so konfiguriert ist, dass es im Fall, dass Etikettendaten der Programmcodes mit den Verifizierungsdaten übereinstimmen, das Einfließen der Programmcodes durch das Verifizierungsmodul in das Bestimmungsmodul zulässt; und dass es im Fall, dass Etikettendaten der Programmcodes mit den Verifizierungsdaten nicht übereinstimmen, die Programmcodes von der isolierten Ausführungsumgebung abführt, die Durchführung der Programmcodes in der ursprünglichen Ausführungsumgebung verbietet, und diese Situation als ein abnormales Ereignis dem Speicher zur Speicherung bereitstellt.According to one possible embodiment, the device further comprises a verification module which is configured to verify the program codes by means of verification data stored in the memory of the electronic system of the vehicle, the verification data optionally representing a digitized whitelist; where the The verification module is configured such that, in the event that label data of the program codes match the verification data, it allows the program codes to flow through the verification module into the determination module; and that in the event that the label data of the program codes do not match the verification data, it removes the program codes from the isolated execution environment, prohibits the execution of the program codes in the original execution environment, and provides this situation as an abnormal event to the memory for storage.

Gemäß einer möglichen Ausführungsform sind die Programmcodes verschlüsselte Programmcodes, wobei die Vorrichtung ferner ein Entschlüsselungsmodul umfasst, das zwischen dem Verifizierungsmodul und dem Bestimmungsmodul verbunden ist und dazu konfiguriert ist, die durch das Verifizierungsmodul durchlaufenden verschlüsselten Programmcodes zu entschlüsseln und die entschlüsselten Programmcodes an das Bestimmungsmodul zu übertragen.According to one possible embodiment, the program codes are encrypted program codes, the device further comprising a decryption module which is connected between the verification module and the determination module and is configured to decrypt the encrypted program codes passing through the verification module and to transmit the decrypted program codes to the determination module .

Gemäß einer möglichen Ausführungsform ist das Berechnungsmodul ferner zum Ermitteln eines aktuellen Zustands des Fahrzeugs konfiguriert, der zumindest einen aktuellen Zustand eines fahrenden Fahrzeugs oder eines stillstehenden Fahrzeugs enthält, wobei das Berechnungsmodul den Einflusswert berechnet, indem der Einflusswert mit einem vorerstellten Einflusswertmodell berechnet wird, wobei die Betriebsart, der Bereich des Betriebsobjekts sowie der aktuelle Zustand Modelleingaben sind und der Einflusswert eine Modellausgabe ist.According to one possible embodiment, the calculation module is further configured to determine a current state of the vehicle, which contains at least one current state of a moving vehicle or a stationary vehicle, the calculation module calculating the influence value by calculating the influence value with a pre-created influence value model, the Operating mode, the area of the operating object and the current state are model inputs and the influencing value is a model output.

Gemäß einer möglichen Ausführungsform ist das Einflusswertmodell ein maschinelles Lernmodell.According to one possible embodiment, the influencing value model is a machine learning model.

Gemäß einer möglichen Ausführungsform umfasst das maschinelle Lernmodell mindestens eines von einem zufälligen Waldmodell, einem Support-Vektor-Maschine-Modell und einem Modell eines faltenden neuronalen Netzwerks.According to one possible embodiment, the machine learning model comprises at least one of a random forest model, a support vector machine model and a model of a convolutional neural network.

Gemäß einer möglichen Ausführungsform umfasst die Vorrichtung ferner ein Handshake-Modul, das dazu konfiguriert ist, die Programmcodes über ein Handshake-Protokoll in das elektronische System des Fahrzeugs zu synchronisieren; und wobei das Handshake-Modul ferner dazu konfiguriert ist, das Handshake-Protokoll mittels im Speicher des elektronischen Systems des Fahrzeugs gespeicherter Identitätsauthentifizierungsdaten zu vervollständigen.According to one possible embodiment, the device further comprises a handshake module which is configured to synchronize the program codes into the electronic system of the vehicle via a handshake protocol; and wherein the handshake module is further configured to complete the handshake protocol using identity authentication data stored in the memory of the electronic system of the vehicle.

Gemäß einer möglichen Ausführungsform sind die isolierte Ausführungsumgebung und die ursprüngliche Ausführungsumgebung voneinander unabhängige Ausführungsumgebungen in dem elektronischen System des Fahrzeugs, wobei die Vorrichtung in der isolierten Ausführungsumgebung angeordnet ist, und wobei die isolierte Ausführungsumgebung eine virtuelle Ausführungsumgebung zum virtuellen Durchführen der Programmcodes umfasst, wobei die virtuelle Ausführungsumgebung optional eine virtuelle Maschine oder eine Sandbox ist.According to one possible embodiment, the isolated execution environment and the original execution environment are mutually independent execution environments in the electronic system of the vehicle, the device being arranged in the isolated execution environment, and wherein the isolated execution environment comprises a virtual execution environment for the virtual execution of the program codes, the virtual Execution environment is optionally a virtual machine or a sandbox.

Gemäß einer möglichen Ausführungsform umfasst die Betriebsart mindestens eine der folgenden Betriebe: Lesebetrieb, Schreibbetrieb und Löschbetrieb, wobei der Bereich des Betriebsobjekts mindestens einen der folgenden Bereiche umfasst: ein Basissystem, ein audiovisuelles Unterhaltungssystem, ein Fahrassistenzsystem, ein Antriebssystem und ein Bremssystem.According to one possible embodiment, the operating mode comprises at least one of the following operations: read operation, write operation and erase operation, the area of the operating object comprising at least one of the following areas: a basic system, an audiovisual entertainment system, a driver assistance system, a drive system and a braking system.

Gemäß einem weiteren Aspekt der Anmeldung wird ein System zur Verhinderung böswilliger Angriffe durch Programmcodes auf ein Fahrzeug bereitgestellt, wobei das System optional ein elektronisches System des Fahrzeugs oder ein mit dem elektronischen System des Fahrzeugs gekoppeltes System oder ein Steuergerät des elektronischen Systems des Fahrzeugs ist, das System umfassend: eine isolierte Ausführungsumgebung, die eine virtuelle Ausführungsumgebung zum virtuellen Durchführen der Programmcodes umfasst; eine oben beschriebene Vorrichtung, die in der isolierten Ausführungsumgebung angeordnet ist und die ein Bestimmungsmodul zum Bestimmen einer Betriebsart und eines Bereichs eines Betriebsobjekts der Programmcodes, ein Berechnungsmodul, das abhängig von der Betriebsart und dem Bereich des Betriebsobjekts einen Einflusswert berechnet, ein Entscheidungsmodul, das zum Auswerten des Einflusswerts konfiguriert ist, um zu feststellen, ob die Programmcodes Schadcodes sind; und einen Speicher, der zum Speichern von Referenzdaten zur Unterstützung der einzelnen Module der Vorrichtung und abnormalen Ereignissen konfiguriert ist; wobei beim Feststellen durch das Entscheidungsmodul, dass die Programmcodes Schadcodes sind, eine Durchführung der Programmcodes in der ursprünglichen Ausführungsumgebung verboten wird und diese Situation als ein abnormales Ereignis im Speicher gespeichert wird; und wobei beim Feststellen durch das Entscheidungsmodul, dass die Programmcodes keine Schadcodes sind, die Programmcodes in die ursprüngliche Ausführungsumgebung zur Durchführung der Programmcodes in der ursprünglichen Ausführungsumgebung ausgegeben werden.According to a further aspect of the application, a system for preventing malicious attacks by program codes on a vehicle is provided, the system optionally being an electronic system of the vehicle or a system coupled to the electronic system of the vehicle or a control unit of the electronic system of the vehicle which A system comprising: an isolated execution environment comprising a virtual execution environment for virtually executing the program codes; a device described above, which is arranged in the isolated execution environment and which has a determination module for determining an operating mode and a range of an operating object of the program codes, a calculation module that calculates an influence value depending on the operating mode and the range of the operating object, a decision module that is used for Evaluating the influencing value is configured to determine whether the program codes are malicious codes; and a memory configured to store reference data in support of the individual modules of the device and abnormal events; when it is determined by the decision module that the program codes are malicious codes, execution of the program codes in the original execution environment is prohibited and this situation is stored as an abnormal event in the memory; and when it is determined by the decision module that the program codes are not malicious codes, the program codes are output into the original execution environment for executing the program codes in the original execution environment.

Gemäß einer möglichen Ausführungsform umfasst das System ferner eine Kommunikationsschnittstelle für eine drahtlose Kommunikation mit einem Cloud-Speicher, wobei der Speicher über die Kommunikationsschnittstelle das abnormale Ereignis in den Cloud-Speicher hochlädt und über die Kommunikationsschnittstelle aktualisierte Referenzdaten aus dem Cloud-Speicher erhält.According to one possible embodiment, the system further comprises a communication interface for wireless communication with a cloud storage, the storage uploading the abnormal event to the cloud storage via the communication interface and via the Communication interface receives updated reference data from the cloud storage.

Gemäß einem anderen Aspekt der Anmeldung wird ein Verfahren zur Verhinderung böswilliger Angriffe durch Programmcodes auf ein Fahrzeug bereitgestellt, wobei das Verfahren optional durch die oben beschriebene Vorrichtung und/oder das oben beschriebene System ausgeführt wird, das Verfahren umfassend: Synchronisieren der Programmcodes in eine isolierte Ausführungsumgebung eines elektronischen Systems des Fahrzeugs; Bestimmen einer Betriebsart und eines Bereichs eines Betriebsobjekts für einen Betrieb der Programmcodes; Berechnen eines Einflusswerts abhängig von der Betriebsart und dem Bereich des Betriebsobjekts, wobei der Einflusswert einen Grad eines Einflusses auf die Sicherheit des Fahrzeugs, falls ein Programm in einer ursprünglichen Ausführungsumgebung des elektronischen Systems des Fahrzeugs zur Ausführung des Betriebs durchgeführt würde, repräsentiert; Auswerten des Einflusswerts, um festzustellen, ob die Programmcodes Schadcodes sind; und Verbieten einer Durchführung der Programmcodes in der ursprünglichen Ausführungsumgebung, falls festgestellt wird, dass die Programmcodes Schadcodes sind.According to another aspect of the application, a method for preventing malicious attacks by program codes on a vehicle is provided, the method optionally being carried out by the device described above and / or the system described above, the method comprising: synchronizing the program codes in an isolated execution environment an electronic system of the vehicle; Determining an operating mode and a range of an operating object for an operation of the program codes; Calculating an influence value depending on the operating mode and the area of the operating object, the influence value representing a degree of influence on the safety of the vehicle if a program were carried out in an original execution environment of the electronic system of the vehicle for executing the operation; Evaluating the influencing value in order to determine whether the program codes are malicious codes; and prohibiting execution of the program codes in the original execution environment if it is determined that the program codes are malicious codes.

Gemäß der technischen Ausgestaltung der Anmeldung wird durch eine virtuelle Durchführung der in die Fahrzeugseite hineingehenden Programmcodes ein Einflusswert des Betriebs dieser Programmcodes ermittelt, wobei mit dem Einflusswert bestimmt wird, ob die Programmcodes einen böswilligen Betrieb enthalten, wobei beim Feststellen des Vorhandenseins eines böswilligen Betriebs verboten wird, die Schadcodes in der ursprünglichen Ausführungsumgebung des elektronischen Systems des Fahrzeugs durchzuführen. Dadurch können die in die Fahrzeugseite hineingehenden Programmcodes effektiv erkannt werden und es kann sichergestellt werden, dass die Schadcodes keine schädlichen Angriffe auf das fahrzeuginterne System erzeugen.According to the technical embodiment of the application, a virtual execution of the program codes going into the vehicle side determines an influencing value for the operation of these program codes, the influencing value being used to determine whether the program codes contain a malicious operation, and if the existence of a malicious operation is detected, it is prohibited to execute the malicious code in the original execution environment of the vehicle's electronic system. As a result, the program codes entering the vehicle side can be effectively recognized and it can be ensured that the malicious codes do not generate any harmful attacks on the vehicle-internal system.

FigurenlisteFigure list

  • 1 zeigt ein schematisches Blockdiagramm einer Vorrichtung zur Verhinderung böswilliger Angriffe durch Programmcodes auf ein Fahrzeug gemäß einer ausführbaren Ausführungsform der Anmeldung. 1 shows a schematic block diagram of a device for preventing malicious attacks by program code on a vehicle according to an executable embodiment of the application.
  • 2 zeigt ein System zur Verhinderung böswilliger Angriffe durch Programmcodes auf ein Fahrzeug gemäß einer ausführbaren Ausführungsform der Anmeldung, umfassend die Vorrichtung und Ausführungsumgebung in 1. 2 FIG. 13 shows a system for preventing malicious attacks by program code on a vehicle according to an executable embodiment of the application, comprising the device and execution environment in FIG 1 .
  • 3 zeigt ein Flussdiagramm eines Verfahrens zur Verhinderung böswilliger Angriffe durch Programmcodes auf ein Fahrzeug gemäß einer ausführbaren Ausführungsform der Anmeldung. 3 FIG. 3 shows a flow diagram of a method for preventing malicious attacks by program code on a vehicle according to an executable embodiment of the application.
  • 4 zeigt ein Flussdiagramm von Teilschritten der Hauptschritte in 3. 4th FIG. 13 shows a flow chart of sub-steps of the main steps in FIG 3 .

Ausführliche AusführungsformenDetailed embodiments

Die Erfindung betrifft hauptsächlich eine technische Ausgestaltung zur Verhinderung böswilliger Angriffe durch Programmcodes auf ein Fahrzeug. Gemäß der technischen Ausgestaltung der Anmeldung werden die Programmcodes nach dem Hineingehen in die Fahrzeugseite zunächst virtuell in einer isolierten Ausführungsumgebung durchgeführt. Falls während der virtuellen Durchführung der Programmcodes erkannt wird, dass die Programmcodes einen böswilligen Betrieb enthalten, wird die Durchführung der Programmcodes in der ursprünglichen Ausführungsumgebung verboten, wodurch verhindert wird, dass die Schadcodes das elektronische System des Fahrzeugs beeinträchtigt. Auf diese Weise kann durch die virtuelle Durchführung der Programmcodes vollkommen festgestellt werden, ob die Programmcodes einen böswilligen Betrieb enthalten; und selbst wenn die Programmcodes einen böswilligen Betrieb enthalten, wird keine schädliche Auswirkung auf das elektronische System des Fahrzeugs ausgeübt, wodurch die Schadcodes effektiv erkannt werden und verhindert wird, dass die in die Fahrzeugseite hineingehenden Schadcodes das Fahrzeug angreifen.The invention mainly relates to a technical embodiment for preventing malicious attacks by program codes on a vehicle. According to the technical configuration of the application, after entering the vehicle side, the program codes are initially carried out virtually in an isolated execution environment. If it is detected during the virtual execution of the program codes that the program codes contain a malicious operation, the execution of the program codes in the original execution environment is prohibited, which prevents the malicious code from affecting the electronic system of the vehicle. In this way, through the virtual execution of the program codes, it can be completely determined whether the program codes contain malicious operation; and even if the program codes contain malicious operation, no harmful effect is exerted on the vehicle's electronic system, thereby effectively detecting the malicious codes and preventing the malicious codes entering the vehicle side from attacking the vehicle.

Vor der Beschreibung von spezifischen Ausführungsbeispielen der Anmeldung werden die Begriffe der Anmeldung zunächst definiert.Before describing specific exemplary embodiments of the application, the terms of the application are first defined.

In der Anmeldung sind die isolierte Ausführungsumgebung und die ursprüngliche Ausführungsumgebung voneinander unabhängige Ausführungsumgebungen im fahrzeuginternen elektronischen System. Die isolierte Ausführungsumgebung kann weiterhin eine virtuelle Ausführungsumgebung umfassen. Mit anderen Worten ist die virtuelle Ausführungsumgebung ein Teil der isolierten Ausführungsumgebung. Bezüglich der Vorrichtung zur Verhinderung böswilliger Angriffe durch Programmcodes auf ein Fahrzeug gemäß der Anmeldung werden beispielsweise die Programmcodes in der virtuellen Ausführungsumgebung durchgeführt, und die Vorrichtung wird in einem Bereich der isolierten Ausführungsumgebung durchgeführt, der anders als die virtuelle Ausführungsumgebung ist.In the application, the isolated execution environment and the original execution environment are mutually independent execution environments in the in-vehicle electronic system. The isolated execution environment can further comprise a virtual execution environment. In other words, the virtual execution environment is part of the isolated execution environment. With regard to the device for preventing malicious attacks by program codes on a vehicle according to the application, for example, the program codes are executed in the virtual execution environment, and the device is executed in an area of the isolated execution environment that is different from the virtual execution environment.

In der Anmeldung bezieht sich „die virtuelle Ausführungsumgebung“ auf einen Codesicherheitsmechanismus, dient zum virtuellen Durchführen von Programmcodes, und ist insbesondere dazu geeignet, Schadcodes (z.B. Programmcodes, die nicht vertrauenswürdig oder destruktiv sind oder deren Programmabsicht nicht bestimmbar ist) durchzuführen, die möglicherweise böswilliges Angriffsverhalten aufweisen. Alle Änderungen, die durch das Durchführen der Programmcodes in der virtuellen Ausführungsumgebung verursacht werden, haben keinen Einfluss auf das System. Die virtuelle Ausführungsumgebung kann als eine virtuelle Maschine oder eine Sandbox ausgeführt werden.In the application, "the virtual execution environment" refers to a code security mechanism, is used for the virtual execution of program codes, and is particularly suitable for executing malicious codes (e.g. program codes that are not trustworthy or destructive or whose program intent cannot be determined), that have potentially malicious attack behavior. Any changes caused by executing the program code in the virtual execution environment have no effect on the system. The virtual execution environment can run as a virtual machine or a sandbox.

In der Anmeldung bezieht sich die isolierte Ausführungsumgebung auch auf einen Codesicherheitsmechanismus, und dient zum virtuellen Durchführen von Softwares (Anwendungen), die mit Programmen interagieren müssen, bei denen es sich möglicherweise um Schadcodes handelt, wobei diese Softwares beispielsweise eine Vorrichtung zur Verhinderung böswilliger Angriffe durch Programmcodes auf ein Fahrzeug gemäß der Anmeldung umfasst. Dadurch kann verhindert werden, dass das System während der Interaktion zwischen der Vorrichtung und den Schadcodes unbeabsichtigt oder böswillig beeinflusst wird, wodurch die Sicherheitsstufe des Systems weiter verbessert wird.In the application, the isolated execution environment also refers to a code security mechanism, and is used for the virtual execution of software (applications) that have to interact with programs that may be malicious code, such software, for example, a device to prevent malicious attacks Includes program codes on a vehicle according to the application. This can prevent the system from being unintentionally or maliciously influenced during the interaction between the device and the malicious code, which further improves the security level of the system.

In der Anmeldung dient die ursprüngliche Ausführungsumgebung zum Durchführen der Programmcodes, die als sichere Programmcodes erkannt werden. Beispielsweise können die in das elektronische System des Fahrzeugs hineingehenden Programmcodes in der ursprünglichen Ausführungsumgebung durchgeführt werden, nur wenn sie als sichere Programmcodes erkannt werden (d.h. sie haben kein böswilliges Angriffsverhalten).In the application, the original execution environment is used to execute the program codes that are recognized as secure program codes. For example, the program codes going into the vehicle's electronic system can be executed in the original execution environment only if they are recognized as secure program codes (i.e. they have no malicious attack behavior).

Nachfolgend wird unter Bezugnahme auf die beiliegenden Zeichnungen auf einzelne Ausführungsbeispiele der vorliegenden Anmeldung näher eingegangen.In the following, individual exemplary embodiments of the present application will be discussed in greater detail with reference to the accompanying drawings.

1 zeigt eine Vorrichtung 10 zur Verhinderung böswilliger Angriffe durch Programmcodes auf ein Fahrzeug gemäß einer ausführbaren Ausführungsform der Anmeldung. 2 zeigt ein System 100 zur Verhinderung böswilliger Angriffe durch Programmcodes auf ein Fahrzeug gemäß einer ausführbaren Ausführungsform der Anmeldung. Das System 100 kann als ein elektronisches System des Fahrzeugs oder ein mit dem elektronischen System des Fahrzeugs gekoppeltes System oder ein Teil des elektronischen Systems des Fahrzeugs ausgeführt werden, der beispielsweise eine fahrzeuginterne elektronische Steuereinheit oder ein fahrzeuginternes Steuergerät oder ein fahrzeuginterner Prozessor ist. Das System 100 umfasst hauptsächlich eine Vorrichtung 10, einen Speicher 30 und mehrere Ausführungsumgebungen. Zumindest umfassen die mehreren Ausführungsumgebungen eine isolierte Ausführungsumgebung 40 und eine ursprüngliche Ausführungsumgebung 50, die voneinander unabhängig sind. Die isolierte Ausführungsumgebung kann ferner eine virtuelle Ausführungsumgebung 20 umfassen. 1 shows an apparatus 10 for preventing malicious attacks by program code on a vehicle according to an executable embodiment of the application. 2 shows a system 100 for preventing malicious attacks by program code on a vehicle according to an executable embodiment of the application. The system 100 can be implemented as an electronic system of the vehicle or a system coupled to the electronic system of the vehicle or a part of the electronic system of the vehicle, which is for example an in-vehicle electronic control unit or an in-vehicle control device or an in-vehicle processor. The system 100 mainly comprises a device 10 , a memory 30th and multiple execution environments. At a minimum, the multiple execution environments include an isolated execution environment 40 and an original execution environment 50 that are independent of each other. The isolated execution environment can also be a virtual execution environment 20th include.

Nachdem die Programmcodes 21 über das Handshake-Protokoll in die Fahrzeugseite (z.B. das elektronische System des Fahrzeugs) hineingehen, werden sie zunächst virtuell in der isolierten Ausführungsumgebung 40 (z.B. der virtuellen Ausführungsumgebung 20 der isolierten Ausführungsumgebung 40) durchgeführt. Alle Änderungen, die durch das Durchführen der Programmcodes in der isolierten Ausführungsumgebung verursacht werden, haben keinen Einfluss auf das elektronischen System des Fahrzeugs. Wenn beispielsweise die Programmcodes, die einen Löschbetrieb zum Löschen von Daten in dem audiovisuellen Unterhaltungssystem des Fahrzeugs ausführen, in der virtuellen Ausführungsumgebung 40 durchgeführt werden, wird der Löschbetrieb nicht tatsächlich ausgeführt. Daher wird kein Verlust für das elektronische System des Fahrzeugs verursacht, selbst wenn die Programmcodes Schadcodes sind, die möglicherweise Viren oder böswillige Angriffe enthalten. Die virtuelle Ausführungsumgebung ist beispielsweise eine virtuelle Maschine oder eine Sandbox.After the program codes 21 If you enter the vehicle page (eg the vehicle's electronic system) via the handshake protocol, they are initially virtual in the isolated execution environment 40 (e.g. the virtual execution environment 20th the isolated execution environment 40 ) carried out. Any changes caused by executing the program code in the isolated execution environment have no effect on the vehicle's electronic system. For example, when the program codes that perform an erasing operation for erasing data in the audiovisual entertainment system of the vehicle are in the virtual execution environment 40 are performed, the erasing operation is not actually performed. Therefore, no loss is caused to the vehicle's electronic system even if the program codes are malicious codes that may contain viruses or malicious attacks. The virtual execution environment is, for example, a virtual machine or a sandbox.

Die Vorrichtung 10 wird in der isolierten Ausführungsumgebung 40 angeordnet, und dient zum Erkennen, ob die Programmcodes Schadcodes sind, beim Erkennen von Schadcodes zum Abführen der Schadcodes von der isolierten Ausführungsumgebung, und zum Verbieten der Durchführung der Schadcodes in der ursprünglichen Ausführungsumgebung des elektronischen Systems des Fahrzeugs. Die Vorrichtung 10 ist beispielsweise als eine Software ausgeführt, die in der isolierten Ausführungsumgebung 40 durchgeführt wird. Auf diese Weise hat die Vorrichtung 10 während des Betriebs in der isolierten Ausführungsumgebung keine schädliche Auswirkung auf das elektronische System des Fahrzeugs, selbst wenn die Vorrichtung 10 mit Schadcodes interagiert, weil die isolierte Ausführungsumgebung von der ursprünglichen Ausführungsumgebung isoliert ist.The device 10 is in the isolated execution environment 40 arranged, and is used to detect whether the program codes are malicious codes, when detecting malicious codes to remove the malicious codes from the isolated execution environment, and to prohibit the execution of the malicious codes in the original execution environment of the electronic system of the vehicle. The device 10 is executed, for example, as software that runs in the isolated execution environment 40 is carried out. In this way the device 10 no detrimental effect on the vehicle's electronic system during operation in the isolated execution environment, even if the device 10 interacts with malicious code because the isolated execution environment is isolated from the original execution environment.

Wenn die Vorrichtung 10 feststellt, dass die Programmcodes 21 keine Schadcodes sind, wird das Hineingehen der Programmcodes in die ursprüngliche Ausführungsumgebung 50 zugelassen, um diese Programmcodes in der ursprünglichen Ausführungsumgebung 50 durchzuführen. Nachdem die Programmcodes in der ursprünglichen Ausführungsumgebung durchgeführt wurden, ändert der Betrieb der Programmcodes ihr Betriebsobjekt. Wenn beispielsweise die Programmcodes, die einen Löschbetrieb zum Löschen von Daten in dem audiovisuellen Unterhaltungssystem des Fahrzeugs ausführen, in der ursprünglichen Ausführungsumgebung durchgeführt werden, wird der Löschbetrieb tatsächlich ausgeführt.When the device 10 finds that the program codes 21 are not malicious code, the entry of the program code into the original execution environment 50 allowed to run these program codes in the original execution environment 50 perform. After the program codes are executed in the original execution environment, the operation of the program codes changes their operational object. For example, when the program codes that perform an erasing operation for erasing data in the audiovisual entertainment system of the vehicle are performed in the original execution environment, the erasing operation is actually carried out.

Der Speicher 30 kann sich in dem elektronischen System des Fahrzeugs befinden und dient zum Speichern von Referenzdaten, die die Vorrichtung 10 beim Ausführen von dessen Funktionen unterstützt. Die Referenzdaten umfassen beispielsweise Identitätsauthentifizierungsdaten 31 zur Unterstützung vom Handshake, Verifizierungsdaten 32 (z.B. Whitelist) zur Unterstützung des Verifizierens, und vorgegebene Schwellenwerte 33 zur Unterstützung des Vergleichens. Der Speicher 30 dient auch zum Speichern von abnormalen Ereignissen, die beispielsweise während der virtuellen Durchführung der Programmcodes auftreten.The memory 30th can be located in the vehicle's electronic system and is used to store reference data that the device 10 supported in performing its functions. The reference data include, for example, identity authentication data 31 to support the handshake, verification data 32 (e.g. whitelist) to support verification, and predefined threshold values 33 to aid comparison. The memory 30th is also used to store abnormal events that occur, for example, during the virtual execution of the program code.

Ferner kann das System 100 auch eine Kommunikationsschnittstelle (nicht gezeigt) für die drahtlose Kommunikation mit einem Cloud-Speicher umfassen. Der Speicher 30 kann das abnormale Ereignis über die Kommunikationsschnittstelle in den Cloud-Speicher hochladen und lokal löschen, wodurch lokaler Speicherplatz des Speichers gespart wird. Der Speicher 30 kann über die Kommunikationsschnittstelle auch aktualisierte Referenzdaten aus dem Cloud-Speicher erhalten, beispielsweise eine aktualisierte Whitelist, wodurch die Fähigkeit der technischen Ausgestaltung der Anmeldung verbessert wird, Schadcodes zu erkennen und den Schutz vor den Schadcodes bereitzustellen.The system can also 100 also comprise a communication interface (not shown) for wireless communication with a cloud storage. The memory 30th can upload the abnormal event to the cloud storage via the communication interface and delete it locally, thereby saving local storage space of the storage. The memory 30th can also receive updated reference data from the cloud storage via the communication interface, for example an updated whitelist, which improves the ability of the technical design of the registration to recognize malicious codes and to provide protection against the malicious codes.

Die Vorrichtung 10 umfasst ein Handshake-Modul 11, ein Verifizierungsmodul 12, ein Entschlüsselungsmodul 13, ein Bestimmungsmodul 14, ein Berechnungsmodul 15 und ein Entscheidungsmodul 16. Jedes Modul und das Arbeitsprinzip der Vorrichtung 10 werden nachstehend speziell vorgestellt.The device 10 includes a handshake module 11 , a verification module 12th , a decryption module 13th , a determination module 14th , a calculation module 15th and a decision module 16 . Each module and the principle of operation of the device 10 are specifically presented below.

Das Handshake-Modul 11 führt einen Handshake durch, bevor die Programmcodes in das elektronische System des Fahrzeugs (die Fahrzeugseite) hineingehen, um eine gegenseitige Identitätsauthentifizierung zwischen der Fahrzeugseite und den von außen in die Fahrzeugseite hineingehenden Programmcodes 21 durchzuführen. Nachdem das Handshake-Protokoll vervollständigt wurde, können die Programmcodes 21 in die isolierte Ausführungsumgebung 40 (z.B. der virtuellen Ausführungsumgebung 20 in der isolierten Ausführungsumgebung 40) des elektronischen Systems des Fahrzeugs synchronisiert werden. Beispielsweise vervollständigt das Handshake-Modul 11 mittels der im Speicher 30 gespeicherten Identitätsauthentifizierungsdaten 31 den Handshake.The handshake module 11 Carries out a handshake before the program codes enter the vehicle's electronic system (the vehicle side) in order to establish mutual identity authentication between the vehicle side and the program codes entering the vehicle side from outside 21 perform. After the handshake protocol has been completed, the program codes 21 into the isolated execution environment 40 (e.g. the virtual execution environment 20th in the isolated execution environment 40 ) of the vehicle's electronic system. For example, completes the handshake module 11 by means of the in memory 30th stored identity authentication data 31 the handshake.

Das Verifizierungsmodul 12 verifiziert die Programmcodes, die nach Vervollständigung des Handshakes in die isolierte Ausführungsumgebung 40 hineingehen. Die Programmcodes können erst nach einer erfolgreichen Verifizierung weiter durchgeführt werden. Andernfalls werden sie von der isolierten Ausführungsumgebung abgeführt und dies wird als abnormales Ereignis markiert.The verification module 12th verifies the program code that is transferred to the isolated execution environment after the handshake has been completed 40 go inside. The program codes can only be carried out after a successful verification. Otherwise, they will be purged from the isolated execution environment and this will be marked as an abnormal event.

In einem Ausführungsbeispiel sind die Programmcodes nicht als Klartext gebildet. Beispielsweise sind Programmcodes digital verschlüsselte Codes und weisen Etikettendaten auf. Das Verifizierungsmodul 12 führt mittels der digitalisierten Verifizierungsdaten 32 (z.B. der Whitelist) in dem Speicher 30 eine Verifizierung durch. Das Verifizierungsmodul führt einen Filterbetrieb basierend auf der Whitelist durch. Wenn die Etikettendaten in der Whitelist enthalten sind, lässt das Verifizierungsmodul 12 das Durchlaufen der Programmcodes zu. Wenn die Etikettendaten hingegen nicht in der Whitelist enthalten sind, lässt das Verifizierungsmodul das Durchlaufen der Programmcodes nicht zu, so dass die Programmcodes von der isolierten Ausführungsumgebung abgeführt werden. Ferner speichert in diesem Fall das Verifizierungsmodul 12 diese Situation als ein abnormales Ereignis in den Speicher 30.In one embodiment, the program codes are not formed as plain text. For example, program codes are digitally encrypted codes and include label data. The verification module 12th leads by means of the digitized verification data 32 (e.g. the whitelist) in the memory 30th verification by. The verification module performs a filter operation based on the whitelist. If the label data is whitelisted, the verification module leaves 12th running through the program codes. If, on the other hand, the label data is not included in the whitelist, the verification module does not allow the program codes to run through, so that the program codes are removed from the isolated execution environment. In this case, the verification module also saves 12th this situation as an abnormal event in the memory 30th .

Das Entschlüsselungsmodul 13 entschlüsselt den verschlüsselten Programmcode, der durch das Verifizierungsmodul 12 durchläuft. Beispielsweise werden die Programmcodes symmetrisch verschlüsselt und enthalten einen symmetrischen Schlüssel. Das Entschlüsselungsmodul verwendet den Schlüssel zum Entschlüsseln und überträgt die entschlüsselten Programmcodes an das Bestimmungsmodul 14.The decryption module 13th decrypts the encrypted program code passed by the verification module 12th passes through. For example, the program codes are encrypted symmetrically and contain a symmetric key. The decryption module uses the key for decryption and transmits the decrypted program codes to the determination module 14th .

Das Bestimmungsmodul 14 bestimmt aus den entschlüsselten Programmcodes Informationen (z.B. die Betriebsart, den Bereich des Betriebsobjekts und den Betriebsparameter), die im Zusammenhang mit den Programmcodes stehen. Die Betriebsart umfasst beispielsweise einen Lesebetrieb, einen Schreibbetrieb und einen Löschbetrieb. Der Bereich des Betriebsobjekts bezieht sich auf die Position des Betriebsobjekts im Fahrzeug, und umfasst beispielsweise ein Basissystem, ein audiovisuelles Unterhaltungssystem, ein Fahrassistenzsystem, ein Antriebssystem und ein Bremssystem. Der Betriebsparameter bezieht sich auf den spezifischen Inhalt des Betriebs, beispielsweise das Löschen spezifischer Daten im audiovisuellen Unterhaltungssystem.The determination module 14th determines from the decrypted program codes information (for example the operating mode, the area of the operating object and the operating parameters) that are related to the program codes. The operating mode includes, for example, a read mode, a write mode and an erase mode. The area of the operating object relates to the position of the operating object in the vehicle and includes, for example, a basic system, an audiovisual entertainment system, a driver assistance system, a drive system and a braking system. The operating parameter relates to the specific content of the operation, for example the deletion of specific data in the audiovisual entertainment system.

Das Berechnungsmodul 15 ermittelt einen aktuellen Zustand des Fahrzeugs, der zumindest einen aktuellen Zustand eines fahrenden Fahrzeugs und einen Stillstand des Fahrzeugs enthält. Der aktuelle Zustand kann ferner die aktuelle Fahrzeuggeschwindigkeit, die aktuelle Beschleunigung, die aktuelle Verfolgungsentfernung des Fahrzeugs usw. umfassen. Das Berechnungsmodul berechnet den Einflusswert basierend auf der Abbildungsbeziehung zwischen dem aktuellen Zustand, der Betriebsart und dem Objektbereich. In der Anmeldung soll unter dem Einflusswert ein Grad eines Einflusses verstanden werden, der auf einer Sicherheit des Fahrzeugs ausgeübt wird, falls die Programmcodes in einer ursprünglichen Ausführungsumgebung des elektronischen Systems des Fahrzeugs zur Ausführung des (von den Programmcodes angegebenen) Betriebs durchgeführt würden.The calculation module 15th determines a current state of the vehicle, which contains at least a current state of a moving vehicle and a standstill of the vehicle. The current state may further include the current vehicle speed, current acceleration, current tracking distance of the vehicle, and so on. The calculation module calculates the influence value based on the mapping relationship between the current state, the operating mode and the object area. In the application, the influence value should be understood to mean a degree of influence which is exercised on a safety of the vehicle if the program codes were executed in an original execution environment of the electronic system of the vehicle for executing the operation (indicated by the program codes).

In einem Ausführungsbeispiel verwendet das Berechnungsmodul ein vorerstelltes Einflusswertmodell, um den Einflusswert zu berechnen. Die Betriebsart, der Bereich des Betriebsobjekts sowie der aktuelle Zustand sind Modelleingaben, und der Einflusswert ist eine Modellausgabe. Das Einflusswertmodell kann als ein maschinelles Lernmodell ausgeführt werden, das beispielsweise ein zufälliges Waldmodell, ein Support-Vektor-Maschine-Modell oder ein faltendes neuronales Netzwerk oder ein Kombinationsmodell davon ist.In one embodiment, the calculation module uses a predefined influencing value model in order to calculate the influencing value. The operating mode, the area of the operating object and the current state are model inputs, and the influence value is a model output. The influencing value model can be implemented as a machine learning model, which is, for example, a random forest model, a support vector machine model or a folding neural network or a combination model thereof.

Daher hat das Berechnungsmodul die Vorteile, die durch die Verwendung des oben genannten maschinellen Lernmodells bereitgestellt werden. Beispielsweise können das zufällige Waldmodell und das Support-Vektor-Maschine-Modell eine Überanpassung mehrdimensionaler Parameter vermeiden. Das faltende neuronale Netzwerk ist ein starker Klassifikator, der Daten stark klassifizieren kann, um robustere Berechnungsergebnisse zu erhalten. Daher kann das Berechnungsmodul ein genaueres und robusteres Berechnungsergebnis, d.h. Einflusswert, berechnen.Therefore, the calculation module has the advantages provided by using the above machine learning model. For example, the random forest model and the support vector machine model can avoid over-fitting multidimensional parameters. The convolutional neural network is a powerful classifier that can strongly classify data to get more robust computation results. Therefore, the calculation module can calculate a more accurate and more robust calculation result, i.e. influence value.

Das Entscheidungsmodul 16 wertet den berechneten Einflusswert aus, um festzustellen, ob die Programmcodes Schadcodes sind, die einen böswilligen Angriffsbetrieb enthalten.The decision module 16 evaluates the calculated influence value in order to determine whether the program codes are malicious codes that contain malicious attacks.

In einem Ausführungsbeispiel wählt das Entscheidungsmodul 16 den vorgegebenen Schwellenwert für den Bereich des Betriebsobjekts aus mehreren in dem Speicher des elektronischen Systems des Fahrzeugs gespeicherten vorgegebenen Schwellenwerten aus. Der berechnete Einflusswert wird mit dem ausgewählten vorgegebenen Schwellenwert verglichen. Wenn das Vergleichsergebnis zeigt, dass der Einflusswert größer als oder gleich dem vorgegebenen Schwellenwert ist, stellt das Entscheidungsmodul 16 fest, dass die Programmcodes Schadcodes sind. Wenn das Vergleichsergebnis zeigt, dass der Einflusswert kleiner als der vorgegebene Schwellenwert ist, stellt das Entscheidungsmodul 16 fest, dass die Programmcodes keine Schadcodes sind.In one embodiment, the decision module chooses 16 the predetermined threshold value for the area of the operating object from a plurality of predetermined threshold values stored in the memory of the electronic system of the vehicle. The calculated influence value is compared with the selected predetermined threshold value. If the comparison result shows that the influence value is greater than or equal to the predefined threshold value, the decision module provides 16 states that the program codes are malicious codes. If the comparison result shows that the influence value is smaller than the predefined threshold value, the decision module makes 16 states that the program codes are not malicious codes.

Wenn das Entscheidungsmodul feststellt, dass die Programmcodes Schadcodes sind, werden die Programmcodes von der isolierten Ausführungsumgebung abgeführt und die Durchführung der Programmcodes ist in der ursprünglichen Ausführungsumgebung verboten. Ferner speichert das Entscheidungsmodul diese Situation als ein abnormales Ereignis in den Speicher. Ferner können im Falle eines abnormalen Ereignisses die Programmcodes permanent aus dem elektronischen System des Fahrzeugs gelöscht oder in dem elektronischen System des Fahrzeugs permanent isoliert werden. Beim Feststellen durch das Entscheidungsmodul, dass die Programmcodes keine Schadcodes sind, werden die Programmcodes in die ursprüngliche Ausführungsumgebung ausgegeben, um die Programmcodes in der ursprünglichen Ausführungsumgebung durchzuführen.If the decision module determines that the program codes are malicious codes, the program codes are removed from the isolated execution environment and the execution of the program codes is prohibited in the original execution environment. Furthermore, the decision module stores this situation as an abnormal event in the memory. Furthermore, in the event of an abnormal event, the program codes can be permanently deleted from the vehicle's electronic system or permanently isolated in the vehicle's electronic system. When the decision module determines that the program codes are not malicious codes, the program codes are output into the original execution environment in order to execute the program codes in the original execution environment.

Daraus ist ersichtlich, dass gemäß der technischen Ausgestaltung der Anmeldung durch gezieltes Auswählen eines vorgegebenen Schwellenwerts weiter effektiv sichergestellt werden kann, dass die Schadcodes erkannt werden und ihre Durchführung verboten ist. Die mehreren vorgegebenen Schwellenwerte, die in dem Speicher 30 gespeichert sind, haben unterschiedliche Werte für unterschiedliche Bereiche des Betriebsobjekts. Diese Werte werden wie folgt eingestellt: Der vorgegebene Schwellenwert für den Bereich mit größerer Auswirkung auf die Fahrzeugsicherheit ist höher als der vorgegebene Schwellenwert für den Bereich mit geringerer Auswirkung darauf. Beispielsweise ist der vorgegebene Schwellenwert für das Bremssystem höher als der vorgegebene Schwellenwert für das audiovisuelle Unterhaltungssystem.It can be seen from this that, according to the technical design of the registration, it is possible to further effectively ensure that the malicious codes are recognized and their implementation is prohibited by specifically selecting a predetermined threshold value. The multiple predetermined thresholds that are in memory 30th are stored have different values for different areas of the operational object. These values are set as follows: The predetermined threshold value for the area with greater impact on vehicle safety is higher than the predetermined threshold value for the area with less impact thereon. For example, the predetermined threshold value for the braking system is higher than the predetermined threshold value for the audiovisual entertainment system.

Ferner wird gemäß der technischen Ausgestaltung der Anmeldung der Einflusswert ermittelt, indem der aktuelle Zustand des Fahrzeugs, die Betriebsart und der Bereich des Betriebsobjekts berücksichtigt werden, was die Fähigkeit zur Verhinderung von Angriffen durch Schadcodes weiter verbessern kann. Beispielsweise sollte das Durchführen eines Programmcodes in einem fahrenden Fahrzeug ein höheres Risiko als das Durchführen eines Programmcodes in einem stillstehenden Fahrzeug aufweisen, weswegen dem Ersteren ein größerer Einflusswert zugeordnet ist. Das Durchführen eines Löschbetriebs in einem Fahrzeug weist ein höheres Risiko als das Durchführen eines Lesebetriebs in einem Fahrzeug auf, weswegen dem Ersteren ein größerer Einflusswert zugeordnet ist.Furthermore, according to the technical configuration of the application, the influencing value is determined by taking into account the current state of the vehicle, the operating mode and the area of the operating object, which can further improve the ability to prevent attacks by malicious codes. For example, executing a program code in a moving vehicle should have a higher risk than executing a program code in a stationary vehicle, which is why the former is assigned a greater influencing value. Carrying out an extinguishing operation in a vehicle has a higher risk than carrying out a reading operation in a vehicle, which is why the former is assigned a greater influence value.

Ferner kann gemäß der technischen Ausgestaltung der Anmeldung eine Echtzeitüberwachung des in die Fahrzeugseite hineingehenden Programmcodes realisiert werden, ohne dass Referenzdaten von einem Backend-System (Cloud-Datenbank) in Echtzeit abgerufen werden müssen. Weiterhin können gemäß der technischen Ausgestaltung der Anmeldung beim Verbinden mit dem Backend-System (Cloud-Datenbank) aktualisierte Referenzdaten vom Backend-System (Cloud-Datenbank) abgerufen werden, was die Fähigkeit zum Erkennen von Schadcodes und zum Schutz vor den Schadcodes weiter verbessert.Furthermore, according to the technical configuration of the registration, real-time monitoring of the program code going into the vehicle side can be implemented without reference data having to be called up in real time from a back-end system (cloud database). Furthermore, according to the technical design of the registration when connecting to the backend system (cloud database), updated reference data can be retrieved from the backend system (cloud database), which further improves the ability to recognize malicious codes and to protect against malicious codes.

Die Anmeldung betrifft auch ein Verfahren 300 zur Verhinderung böswilliger Angriffe durch Programmcodes auf ein Fahrzeug. Das Verfahren 300 kann durch die oben beschriebene Vorrichtung 10 durchgeführt werden. Das Verfahren 300 kann auch durch das oben beschriebene System 100 durchgeführt werden. Daher gelten auch hier die oben genannten relevanten Merkmale und Vorteile.The application also relates to a method 300 to prevent malicious attacks by program code on a vehicle. The procedure 300 can by the device described above 10 be performed. The procedure 300 can also be done through the system described above 100 be performed. Therefore, the relevant features and advantages mentioned above also apply here.

Das Verfahren 300 umfasst hauptsächlich die folgenden Schritte:

  • In Schritt S310 wird der Handshake durchgeführt, um die Programmcodes in eine isolierte Ausführungsumgebung eines elektronischen Systems des Fahrzeugs zu synchronisieren.
The procedure 300 mainly comprises the following steps:
  • In step S310 the handshake is carried out in order to synchronize the program codes in an isolated execution environment of an electronic system of the vehicle.

In Schritt S320 werden die Programmcodes mittels der Verifizierungsdaten im Speicher verifiziert.In step S320 the program codes are verified by means of the verification data in the memory.

Falls die Programmcodes nicht erfolgreich verifiziert werden, fährt das Verfahren 300 dann mit Schritt S330 fort. Im Schritt S330 werden die Programmcodes von der isolierten Ausführungsumgebung abgeführt und diese Situation wird als ein abnormales Ereignis im Speicher gespeichert.If the program codes are not successfully verified, the process continues 300 then with step S330 away. In step S330 the program codes are evacuated from the isolated execution environment and this situation is stored in memory as an abnormal event.

Falls die Programmcodes erfolgreich verifiziert werden, fährt das Verfahren 300 dann mit Schritt S340 fort. Im Schritt S340 werden die verschlüsselten Programmcodes entschlüsselt.If the program codes are successfully verified, the process continues 300 then with step S340 away. In step S340 the encrypted program codes are decrypted.

Anschließend fährt das Verfahren mit Schritt S350 fort. In Schritt S320 werden die Betriebsart und der Bereich des Betriebsobjekts für den Betrieb der Programmcodes aus den entschlüsselten Programmcodes bestimmt.The procedure then continues with step S350 away. In step S320 the operating mode and the area of the operating object for the operation of the program codes are determined from the decrypted program codes.

In Schritt S360 wird der Einflusswert abhängig von der Betriebsart und dem Bereich des Betriebsobjekts berechnet. Der Einflusswert repräsentiert einen Grad eines Einflusses auf die Sicherheit des Fahrzeugs, falls die Programmcodes in einer ursprünglichen Ausführungsumgebung des elektronischen Systems des Fahrzeugs zur Ausführung des Betriebs durchgeführt würden.In step S360 the influence value is calculated depending on the operating mode and the area of the operating object. The influence value represents a degree of influence on the safety of the vehicle if the program codes were carried out in an original execution environment of the electronic system of the vehicle for executing the operation.

In Schritt S370 wird der Einflusswert ausgewertet, um festzulegen, ob der Betrieb der Programmcodes Schadcodes entspricht, die böswillige Angriffe auf das Fahrzeug erzeugen.In step S370 the influencing value is evaluated in order to determine whether the operation of the program codes corresponds to malicious codes that generate malicious attacks on the vehicle.

Beim Feststellen, dass die Programmcodes Schadcodes sind, fährt das Verfahren mit Schritt S330 fort.If it is determined that the program codes are malicious codes, the procedure continues with step S330 away.

Beim Feststellen, dass die Programmcodes keine Schadcodes sind, fährt das Verfahren mit Schritt S380 fort. Im Schritt S380 wird veranlasst, dass die Programmcodes in die ursprüngliche Ausführungsumgebung hineingehen, um in der ursprünglichen Ausführungsumgebung durchgeführt zu werden.If it is determined that the program codes are not malicious codes, the procedure continues with step S380 away. In step S380 the program codes are made to go into the original execution environment to be executed in the original execution environment.

In einem Ausführungsbeispiel kann der Schritt S370 folgende Teilschritte umfassen:

  • In Schritt S371 ist ein vorgegebener Schwellenwert für den Bereich des Betriebsobjekts aus mehreren in dem Speicher gespeicherten vorgegebenen Schwellenwerten ausgewählt.
In one embodiment, the step S370 The following sub-steps include:
  • In step S371 a predetermined threshold value for the area of the operating object is selected from a plurality of predetermined threshold values stored in the memory.

In Schritt S372 wird der berechnete Einflusswert mit dem ausgewählten vorgegebenen Schwellenwert zum Erhalten eines Vergleichsergebnisses verglichen.In step S372 the calculated influence value is compared with the selected predetermined threshold value in order to obtain a comparison result.

Wenn das Vergleichsergebnis ist, dass der Einflusswert größer als oder gleich dem vorgegebenen Schwellenwert ist, fährt das Verfahren mit Schritt S330 fort.If the comparison result is that the influencing value is greater than or equal to the predefined threshold value, the method continues with step S330 away.

Wenn das Vergleichsergebnis ist, dass der Einflusswert kleiner als der vorgegebene Schwellenwert ist, fährt das Verfahren mit Schritt S380 fort.If the comparison result is that the influencing value is less than the predefined threshold value, the method continues with step S380 away.

Obwohl oben einige Ausführungsformen beschrieben wurden, sind sie ausschließlich exemplarisch angegeben, ohne den Umfang der Anmeldung zu beschränken. Die beigefügten Ansprüche sowie die äquivalenten Substitutionen dazu sollen alle Modifikationen, Ersätze und Änderungen, die innerhalb des Umfangs und Hauptkonzepts der Anmeldung vorgenommen werden, enthalten.Although some embodiments have been described above, they are only given by way of example without restricting the scope of the application. The appended claims and their equivalent substitutions are intended to cover all modifications, substitutions, and changes that come within the scope and main concept of the application.

Claims (12)

Vorrichtung (10) zur Verhinderung böswilliger Angriffe durch Programmcodes (21) auf ein Fahrzeug, wobei die Programmcodes so eingerichtet sind, dass sie in einer isolierten Ausführungsumgebung eines elektronischen Systems des Fahrzeugs durchgeführt werden, die Vorrichtung umfassend: ein Bestimmungsmodul (13), das zum Bestimmen einer Betriebsart und eines Bereich eines Betriebsobjekts für einen Betrieb der Programmcodes konfiguriert ist; ein Berechnungsmodul (15), das abhängig von der Betriebsart und dem Bereich des Betriebsobjekts einen Einflusswert berechnet, der einen Grad eines Einflusses auf die Sicherheit des Fahrzeugs, falls die Programmcodes in einer ursprünglichen Ausführungsumgebung des elektronischen Systems des Fahrzeugs zur Ausführung des Betriebs durchgeführt würden, repräsentiert; und ein Entscheidungsmodul (16), das zum Auswerten des Einflusswerts konfiguriert wird, um festzustellen, ob die Programmcodes Schadcodes sind; und beim Feststellen, dass die Programmcodes Schadcodes sind, eine Durchführung der Programmcodes in der ursprünglichen Ausführungsumgebung zu verbieten.Apparatus (10) for preventing malicious attacks by program codes (21) on a vehicle, the program codes being set up such that they are carried out in an isolated execution environment of an electronic system of the vehicle, the apparatus comprising: a determination module (13) configured to determine an operation mode and a range of an operation object for operation of the program codes; a calculation module (15) which, depending on the operating mode and the area of the operating object, calculates an influence value which indicates a degree of influence on the safety of the vehicle if the program codes were carried out in an original execution environment of the electronic system of the vehicle for executing the operation, represents; and a decision module (16) which is configured to evaluate the influence value in order to determine whether the program codes are malicious codes; and upon determining that the program codes are malicious codes, to prohibit execution of the program codes in the original execution environment. Vorrichtung (10) nach Anspruch 1, wobei das Entscheidungsmodul ferner so konfiguriert ist, dass beim Feststellen, dass die Programmcodes Schadcodes sind, die Programmcodes von der isolierten Ausführungsumgebung abgeführt werden und diese Situation als ein abnormales Ereignis einem Speicher des elektronischen Systems des Fahrzeugs zur Speicherung bereitgestellt wird; und dass beim Feststellen, dass die Programmcodes keine Schadcodes sind, die Programmcodes in die ursprüngliche Ausführungsumgebung zur Durchführung der Programmcodes in der ursprünglichen Ausführungsumgebung ausgegeben werden.Device (10) according to Claim 1 wherein the decision module is further configured such that when it is determined that the program codes are malicious codes, the program codes are extracted from the isolated execution environment and this situation is made available as an abnormal event to a memory of the electronic system of the vehicle for storage; and that when it is established that the program codes are not malicious codes, the program codes are output into the original execution environment for executing the program codes in the original execution environment. Vorrichtung (10) nach Anspruch 1 oder 2, wobei das Entscheidungsmodul den Einflusswert auswertet, indem ein vorgegebener Schwellenwert für den Bereich des Betriebsobjekts aus mehreren in dem Speicher des elektronischen Systems des Fahrzeugs gespeicherten vorgegebenen Schwellenwerten ausgewählt wird, der berechnete Einflusswert mit dem ausgewählten vorgegebenen Schwellenwert zum Erhalten eines Vergleichsergebnisses verglichen wird, die Programmcodes als Schadcodes festgestellt werden, wenn das Vergleichsergebnis zeigt, dass der Einflusswert größer als oder gleich dem vorgegebenen Schwellenwert ist, und die Programmcodes nicht als Schadcodes festgestellt werden, wenn das Vergleichsergebnis zeigt, dass der Einflusswert kleiner als der vorgegebene Schwellenwert ist.Device (10) according to Claim 1 or 2 The decision module evaluates the influence value by selecting a predetermined threshold value for the area of the operating object from a plurality of predetermined threshold values stored in the memory of the electronic system of the vehicle, comparing the calculated influence value with the selected predetermined threshold value to obtain a comparison result, the program codes are determined as malicious codes if the comparison result shows that the influencing value is greater than or equal to the specified threshold value, and the program codes are not determined as malicious codes if the comparison result shows that the influencing value is smaller than the specified threshold value. Vorrichtung (10) nach einem der Ansprüche 1 bis 3, wobei die Vorrichtung ferner ein Verifizierungsmodul (12) umfasst, das konfiguriert ist, die Programmcodes mittels im Speicher des elektronischen Systems des Fahrzeugs gespeicherter Verifizierungsdaten zu verifizieren, wobei die Verifizierungsdaten optional eine digitalisierte Whitelist darstellen; wobei das Verifizierungsmodul so konfiguriert ist, dass es im Fall, dass Etikettendaten der Programmcodes mit den Verifizierungsdaten übereinstimmen, das Einfließen der Programmcodes durch das Verifizierungsmodul in das Bestimmungsmodul zulässt; und dass es im Fall, dass Etikettendaten der Programmcodes mit den Verifizierungsdaten nicht übereinstimmen, die Programmcodes von der isolierten Ausführungsumgebung abführt, die Durchführung der Programmcodes in der ursprünglichen Ausführungsumgebung verbietet, und diese Situation als ein abnormales Ereignis dem Speicher zur Speicherung bereitstellt.Device (10) according to one of the Claims 1 to 3 wherein the device further comprises a verification module (12) configured to verify the program codes by means of verification data stored in the memory of the electronic system of the vehicle, the verification data optionally representing a digitized whitelist; wherein the verification module is configured such that, in the event that label data of the program codes match the verification data, it allows the program codes to flow through the verification module into the determination module; and that in the event that the label data of the program codes do not match the verification data, it removes the program codes from the isolated execution environment, prohibits the execution of the program codes in the original execution environment, and provides this situation as an abnormal event to the memory for storage. Vorrichtung (10) nach Anspruch 4, wobei die Programmcodes verschlüsselte Programmcodes sind, wobei die Vorrichtung ferner ein Entschlüsselungsmodul (13) umfasst, das zwischen dem Verifizierungsmodul und dem Bestimmungsmodul verbunden ist und dazu konfiguriert ist, die durch das Verifizierungsmodul durchlaufenden verschlüsselten Programmcodes zu entschlüsseln und die entschlüsselten Programmcodes an das Bestimmungsmodul zu übertragen.Device (10) according to Claim 4 the program codes being encrypted program codes, the apparatus further comprising a decryption module (13) connected between the verification module and the determination module and configured to decrypt the encrypted program codes passing through the verification module and to deliver the decrypted program codes to the determination module transfer. Vorrichtung (10) nach einem der Ansprüche 1 bis 5, wobei das Berechnungsmodul ferner zum Ermitteln eines aktuellen Zustands des Fahrzeugs konfiguriert ist, der zumindest einen aktuellen Zustand eines fahrenden Fahrzeugs oder eines stillstehenden Fahrzeugs enthält; und wobei das Berechnungsmodul den Einflusswert berechnet, indem der Einflusswert mit einem vorerstellten Einflusswertmodell berechnet wird, wobei die Betriebsart, der Bereich des Betriebsobjekts sowie der aktuelle Zustand Modelleingaben sind und der Einflusswert eine Modellausgabe ist; wobei das Einflusswertmodell optional ein maschinelles Lernmodell ist; wobei ferner optional das maschinelle Lernmodell mindestens ein von einem zufälligen Waldmodell, einem Support-Vektor-Maschine-Modell und einem Modell eines faltenden neuronalen Netzwerks umfasst.Device (10) according to one of the Claims 1 to 5 wherein the calculation module is further configured to determine a current state of the vehicle, which contains at least one current state of a moving vehicle or a stationary vehicle; and wherein the calculation module calculates the influencing value by calculating the influencing value with a pre-created influencing value model, the operating mode, the area of the operating object and the current state being model inputs and the influencing value being a model output; wherein the influencing value model is optionally a machine learning model; further optionally wherein the machine learning model comprises at least one of a random forest model, a support vector machine model, and a convolutional neural network model. Vorrichtung (10) nach einem der Ansprüche 1 bis 6, wobei die Vorrichtung ferner ein Handshake-Modul (11) umfasst, das dazu konfiguriert ist, die Programmcodes über ein Handshake-Protokoll in dem elektronischen System des Fahrzeugs zu synchronisieren; und wobei das Handshake-Modul ferner dazu konfiguriert ist, das Handshake-Protokoll mittels im Speicher des elektronischen Systems des Fahrzeugs gespeicherter Identitätsauthentifizierungsdaten zu vervollständigen.Device (10) according to one of the Claims 1 to 6th wherein the device further comprises a handshake module (11) which is configured to synchronize the program codes via a handshake protocol in the electronic system of the vehicle; and wherein the handshake module is further configured to complete the handshake protocol using identity authentication data stored in the memory of the electronic system of the vehicle. Vorrichtung (10) nach einem der Ansprüche 1 bis 7, wobei die isolierte Ausführungsumgebung und die ursprüngliche Ausführungsumgebung voneinander unabhängige Ausführungsumgebungen in dem elektronischen System des Fahrzeugs sind, wobei die Vorrichtung in der isolierten Ausführungsumgebung angeordnet ist; und wobei die isolierte Ausführungsumgebung eine virtuelle Ausführungsumgebung zum virtuellen Durchführen der Programmcodes umfasst, wobei die virtuelle Ausführungsumgebung optional eine virtuelle Maschine oder eine Sandbox ist.Device (10) according to one of the Claims 1 to 7th wherein the isolated execution environment and the original execution environment are independent execution environments in the electronic system of the vehicle, the device being located in the isolated execution environment; and wherein the isolated execution environment comprises a virtual execution environment for virtually executing the program code, the virtual execution environment optionally being a virtual machine or a sandbox. Vorrichtung (10) nach einem der Ansprüche 1 bis 8, wobei die Betriebsart mindestens eine der folgenden Betriebe umfasst: Lesebetrieb, Schreibbetrieb und Löschbetrieb, und wobei der Bereich des Betriebsobjekts mindestens einen der folgenden Bereiche umfasst: ein Basissystem, ein audiovisuelles Unterhaltungssystem, ein Fahrassistenzsystem, ein Antriebssystem und ein Bremssystem.Device (10) according to one of the Claims 1 to 8th , wherein the operating mode comprises at least one of the following operations: read operation, write operation and erase operation, and wherein the area of the operating object comprises at least one of the following areas: a basic system, an audio-visual entertainment system, a driver assistance system, a drive system and a braking system. System (100) zur Verhinderung böswilliger Angriffe durch Programmcodes auf ein Fahrzeug, wobei das System optional ein elektronisches System des Fahrzeugs oder ein mit dem elektronischen System des Fahrzeugs gekoppeltes System oder ein Steuergerät des elektronischen Systems des Fahrzeugs ist, das System umfassend: eine isolierte Ausführungsumgebung (40), die eine virtuelle Ausführungsumgebung (20) zum virtuellen Durchführen der Programmcodes umfasst; und eine Vorrichtung (10) nach einem der Ansprüche 1 bis 9, die in der isolierten Ausführungsumgebung angeordnet ist und die ein Bestimmungsmodul zum Bestimmen einer Betriebsart und eines Bereichs eines Betriebsobjekts der Programmcodes, ein Berechnungsmodul, das abhängig von der Betriebsart und dem Bereich des Betriebsobjekts einen Einflusswert berechnet, ein Entscheidungsmodul, das zum Auswerten des Einflusswerts konfiguriert ist, um festzustellen, ob die Programmcodes Schadcodes sind; und einen Speicher (30), der zum Speichern von Referenzdaten zur Unterstützung der einzelnen Module der Vorrichtung und abnormalen Ereignissen konfiguriert ist; wobei beim Feststellen durch das Entscheidungsmodul, dass die Programmcodes Schadcodes sind, eine Durchführung der Programmcodes in der ursprünglichen Ausführungsumgebung verboten wird und diese Situation als ein abnormales Ereignis im Speicher gespeichert wird; und wobei beim Feststellen durch das Entscheidungsmodul, dass die Programmcodes keine Schadcodes sind, die Programmcodes in die ursprüngliche Ausführungsumgebung zur Durchführung der Programmcodes in der ursprünglichen Ausführungsumgebung ausgegeben werden.A system (100) for preventing malicious attacks by program code on a vehicle, the system optionally being an electronic system of the vehicle or a system coupled to the electronic system of the vehicle or a control unit of the electronic system of the vehicle, the system comprising: an isolated execution environment (40), which comprises a virtual execution environment (20) for virtually executing the program code; and a device (10) according to one of the Claims 1 to 9 which is arranged in the isolated execution environment and which has a determination module for determining an operating mode and an area of an operating object of the program codes, a calculation module that calculates an influence value depending on the operating mode and the area of the operating object, a decision module that configures to evaluate the influence value is to determine whether the program codes are malicious codes; and a memory (30) configured to store reference data in support of the individual modules of the device and abnormal events; when it is determined by the decision module that the program codes are malicious codes, execution of the program codes in the original execution environment is prohibited and this situation is stored as an abnormal event in the memory; and when it is determined by the decision module that the program codes are not malicious codes, the program codes are output into the original execution environment for executing the program codes in the original execution environment. System (100) nach Anspruch 10, wobei das System ferner eine Kommunikationsschnittstelle für eine drahtlose Kommunikation mit einem Cloud-Speicher umfasst, wobei der Speicher über die Kommunikationsschnittstelle das abnormale Ereignis in den Cloud-Speicher hochlädt und über die Kommunikationsschnittstelle aktualisierte Referenzdaten aus dem Cloud-Speicher erhält.System (100) according to Claim 10 , wherein the system further comprises a communication interface for wireless communication with a cloud storage, the storage uploading the abnormal event to the cloud storage via the communication interface and receiving updated reference data from the cloud storage via the communication interface. Verfahren (300) zur Verhinderung böswilliger Angriffe durch Programmcodes auf ein Fahrzeug, wobei das Verfahren optional durch eine Vorrichtung (10) nach einem der Ansprüche 1 bis 9 und/oder ein System (100) nach einem der Ansprüche 10 und 11 ausgeführt wird, das Verfahren umfassend: Synchronisieren der Programmcodes in eine isolierte Ausführungsumgebung eines elektronischen Systems des Fahrzeugs; Bestimmen einer Betriebsart und eines Bereichs eines Betriebsobjekts für einen Betrieb der Programmcodes; Berechnen eines Einflusswerts abhängig von der Betriebsart und dem Bereich des Betriebsobjekts, wobei der Einflusswert einen Grad eines Einflusses auf die Sicherheit des Fahrzeugs, falls ein Programm in einer ursprünglichen Ausführungsumgebung des elektronischen Systems des Fahrzeugs zur Ausführung des Betriebs durchgeführt würde, repräsentiert; Auswerten des Einflusswerts, um festzustellen, ob die Programmcodes Schadcodes sind; und Verbieten einer Durchführung der Programmcodes in der ursprünglichen Ausführungsumgebung, falls festgestellt wird, dass die Programmcodes Schadcodes sind.Method (300) for preventing malicious attacks by program codes on a vehicle, the method optionally being carried out by a device (10) according to one of the Claims 1 to 9 and / or a system (100) according to one of the Claims 10 and 11 is carried out, the method comprising: synchronizing the program codes in an isolated execution environment of an electronic system of the vehicle; Determining an operating mode and a range of an operating object for an operation of the program codes; Calculating an influence value depending on the operating mode and the area of the operating object, the influence value representing a degree of influence on the safety of the vehicle if a program were carried out in an original execution environment of the electronic system of the vehicle for executing the operation; Evaluating the influencing value in order to determine whether the program codes are malicious codes; and prohibiting execution of the program codes in the original execution environment if it is determined that the program codes are malicious codes.
DE102020210874.9A 2019-09-30 2020-08-28 Apparatus, system and method for preventing malicious attacks by program code on a vehicle Pending DE102020210874A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910939331.4A CN112580031A (en) 2019-09-30 2019-09-30 Apparatus, system and method for preventing malicious attack of program code on vehicle
CN201910939331.4 2019-09-30

Publications (1)

Publication Number Publication Date
DE102020210874A1 true DE102020210874A1 (en) 2021-04-01

Family

ID=74873117

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020210874.9A Pending DE102020210874A1 (en) 2019-09-30 2020-08-28 Apparatus, system and method for preventing malicious attacks by program code on a vehicle

Country Status (2)

Country Link
CN (1) CN112580031A (en)
DE (1) DE102020210874A1 (en)

Also Published As

Publication number Publication date
CN112580031A (en) 2021-03-30

Similar Documents

Publication Publication Date Title
DE69534757T2 (en) System and method for secure storage and distribution of data using digital signatures
DE202014011086U1 (en) System for determining a trustworthiness category of applications that perform an interface overlay
DE60130172T2 (en) A secure and open computer platform
DE102020126182A1 (en) PRIVACY AND DATA PROTECTION ON SMART EDGE DEVICES
DE202011111121U1 (en) System for capturing complex malware
DE202013102179U1 (en) System to detect malicious code executed by a virtual machine
EP3688928B1 (en) Datacule structure and method for the manipulation-proof saving of data
DE112012000279T5 (en) Determine the vulnerability of computer software applications to rights extension attacks
DE102015209108A1 (en) Method and decision gateway for authorizing a function of an embedded controller
DE102013108022A1 (en) Method for activating the development mode of a secure electronic control unit
DE102014208855A1 (en) Method for carrying out communication between control units
DE102007030622A1 (en) Method and application for linking between systems based on hardware security units
EP2913772A1 (en) Method and computer system for protecting a computer program against influence
WO2011107319A2 (en) Method for verifying a memory block of a nonvolatile memory
DE112010004580T5 (en) Secure pin management of a user-trusted unit
EP2442251B9 (en) Individual updating of computer programs
DE112021000689T5 (en) ATTESTATION OF NEURAL PROCESSES
DE102010008538A1 (en) Method and system for detecting malicious software
DE102018217431A1 (en) Secure key exchange on one device, especially an embedded device
DE112014004611T5 (en) Control system and authentication device
DE102020210874A1 (en) Apparatus, system and method for preventing malicious attacks by program code on a vehicle
DE102023110645A1 (en) Safety procedures and safety device
DE102005046696A1 (en) Secured program code producing method for license verification, involves storing modified program code including exchanged references, coded program blocks and program block with decoded function as protected computer program
DE102014208840A1 (en) Method for handling software functions in a controller
DE102021110768B3 (en) Forensics module and embedded system