EP1894101A1 - Verfahren und vorrichtung zum überwachen eines unerlaubten speicherzugriffs einer rechenvorrichtung, insbesondere in einem kraftfahrzeug - Google Patents
Verfahren und vorrichtung zum überwachen eines unerlaubten speicherzugriffs einer rechenvorrichtung, insbesondere in einem kraftfahrzeugInfo
- Publication number
- EP1894101A1 EP1894101A1 EP05753228A EP05753228A EP1894101A1 EP 1894101 A1 EP1894101 A1 EP 1894101A1 EP 05753228 A EP05753228 A EP 05753228A EP 05753228 A EP05753228 A EP 05753228A EP 1894101 A1 EP1894101 A1 EP 1894101A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- computing device
- memory
- monitoring means
- monitoring
- sequence pattern
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
- G06F12/1441—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
Definitions
- the invention relates to a method and a device for monitoring unauthorized memory access to a predetermined memory area in a computing device, in particular in a motor vehicle.
- memory protection is understood to mean the capability of a microcomputer operating system to effectively prevent individual processes of the operating system from accessing those memory areas for which they have no authorization.
- microcontrollers e.g., MPC 566 made by Motorola
- memory protection unit e.g., RAM 466
- MPC 566 made by Motorola
- the protection can not be applied to all types of memory, such as memory. internal and external memory or volatile and non-volatile memory, equally applied.
- a computing device with a plurality of computers which is embodied, for example, in a CAN (Controller Area Network) network in a motor vehicle
- the computers designated as controllers are provided with no hardware-implemented memory protection for cost reasons.
- the runtime pattern of the computing device or of a computer is used dynamically and in an automated manner, for example when updating a runtime pattern.
- Unauthorized memory accesses can lead to errors in other sequence patterns or computers of the computing device. There is thus a fundamental need to prevent unauthorized memory accesses, in particular to a predetermined memory area in a computing device.
- CMSD configuration management system
- CMS configuration management system
- the identity of a monitored process is uniquely determined and the correct operation of the monitored process is verified. Unless proper operation of the monitored process could be verified, the monitored process is restarted and a unique self-identification of the monitored system against the computing device after reboot is effected.
- the described device has the initially mentioned disadvantage that, on the one hand, there is no direct monitoring of an unauthorized memory access to a predetermined memory area and, on the other hand, an additional device in the form of hardware components has to be provided.
- the object of the present invention is to provide a method and a device for monitoring unauthorized memory access to a predetermined memory area in a computing device, in particular for a motor vehicle, so that the computing device has no undefined Can assume state. In particular, no additional hardware components should be necessary.
- the basic idea of the present invention is to monitor unauthorized memory access to a predetermined memory area in a computing device by integrating the memory access information of the sequence pattern contained in the specification of a sequence pattern in a suitable manner for monitoring purposes of the sequence pattern.
- the method for monitoring unauthorized memory access to a predetermined memory area in the computing device, in particular in a vehicle is characterized by the following steps: First, a runtime pattern is provided in the computing device. There is further provided a monitoring means, comprising at least one sensor means arranged to detect an event of the computing device, and at least one detection means arranged to track the behavior of the event detected by the sensor means. In a further step, the monitoring means is integrated into the sequence pattern. There is a monitoring of the sequence pattern during its term by the memory means as events memory accesses to a memory address or an address range are detected.
- the monitoring means does not represent a hardware-implemented element of the computing device, but rather is a computer program product which is integrated in a suitable manner into the runtime pattern embodied as software.
- the sensor means is a "software sensor” and the detection means is also implemented in software Approach makes it possible to monitor memory accesses of the sequence pattern during its runtime during operation. In particular, it is possible to detect and appropriately handle unauthorized memory accesses. It is based on the assumption that the specification is set such that, according to the specification, unauthorized memory access to a predetermined memory area in the computing device is not permitted.
- errors ie unauthorized memory access
- the reliability of the sequence pattern or the computing device is thereby increased.
- the step of generating the monitoring means in which a specified behavior of the sequence pattern is defined with states and state changes associated with at least one event and the at least one event, wherein the specified behavior is converted into a program code.
- this step provides that the e.g. in textual form specified behavior of the sequence pattern is converted into a readable and processable by the computing device form.
- a setting of permitted and / or unauthorized address areas of a memory device takes place, wherein a behavior deviating from the specified behavior exists if the sequence pattern wishes to access an unauthorized address area.
- those memory areas of the memory device are identified which are to be protected against unauthorized memory access. These can be, for example, those memory areas in which the operating system of the computing device or of a computer of the computing device are stored.
- a comparison of the desired memory address follows with the memory addresses specified in the 1 specification. If a match is found, then a predefined fixed Reaction can be initiated, for example, the access of the sequence pattern can be suppressed to the desired memory area.
- the generation of the monitoring means, and in particular the transfer of the monitoring means in the program code takes place automatically. This ensures high efficiency of the program code, i. the monitoring means requires only a few memory resources. Furthermore, the expiration pattern, if it works as intended, is not affected by the monitoring means.
- the step of integrating the monitoring means in the sequence pattern comprises the introduction of the program code into a sequence pattern program code.
- this present program code is integrated into the program code of the sequence pattern.
- the integration may include the addition of additional lines of code in the execution pattern program code.
- the integration may also include the provision of additional objects or modules. It is also a combination of the above options conceivable.
- an access to a memory area attempted by the runtime pattern is monitored as an event, wherein the monitoring means checks whether the memory access takes place in an unauthorized or a permitted memory area, in response to an access to an unauthorized area Denial of the memory access and / or the call of an error handling routine and / or a signaling of the unauthorized memory access by the sequence pattern takes place. Specifically, the deviation is detected by the detection means of the monitoring means, which can distinguish unauthorized memory accesses from permitted memory accesses. According to a further embodiment, upon detection of an event by the monitoring means, more precisely the sensor means of the monitoring means, a function call is made in the sequence pattern program code.
- the integration of the monitoring means in the sequence pattern thus makes it possible to carry out a check of its behavior, ie a check for an unauthorized memory access, at predefined locations in the sequence pattern and a predetermined function, for example the signaling, the Storing variables or the like may call.
- the monitoring means is provided in one computer of a plurality of computers, and this computer of the plurality of computers of the computing device is limited to its expiration pattern, i. unauthorized memory access, monitored.
- the monitoring means is provided in at least two computers of a plurality of computers of the computing device, and memory accesses between the computers of the computing device are monitored. Which of the two variants is selected, if appropriate in a combination, depends on the procedure of integration of the monitoring means in the sequence pattern.
- a monitoring means is provided with at least one sensor means which is adapted to detect an event, in particular a desired memory access, of the computing device.
- At least one detection means is provided, which is set up to track the behavior of the event detected by the sensor means, wherein the monitoring means is integrated in a sequence pattern on the computing device, and wherein the Monitoring means is adapted to monitor the execution pattern during its term by the memory means as events memory accesses to a memory address or an address range are detected.
- the computing device has a plurality of computers coupled to one another, wherein the monitoring device is arranged in at least one of the computers.
- the computing device is a bus system and the computers are bus subscribers of this bus system, which are coupled together via a bus line, via which the exchange of messages is possible.
- a bus subscriber represents a control unit of a bus system.
- the monitoring means is a computer program product which is integrated in the sequence pattern.
- a further embodiment provides that the monitoring means is designed to monitor at least one of the computers of the computing device.
- Another embodiment provides that the monitoring means for monitoring memory accesses between at least two computers of the computing device is formed.
- the invention further describes a computer program product for a computing device of a motor vehicle, in which a monitoring means controlling the arithmetic unit, a monitoring means is integrated, which comprises a computer-readable specification of the behavior of the sequence pattern and which is adapted to determine memory accesses at runtime of the sequence pattern and a response thereto when there is memory access to an unauthorized memory area of a memory device of the computing device.
- FIGS. Show it: 1 shows a device according to the invention for monitoring a sequence of a computing device
- Fig. 2 shows a computing device according to the invention with a plurality of computers, wherein the device for monitoring in one of
- FIG. 3 shows a further computing device with a plurality of computers, in which the device for monitoring in multiple computers is distributed, and
- Fig. 4 is a schematic representation of that of the device for
- FIG. 1 shows two computers 4 of a computing device 1 designed as bus subscribers, wherein in the left half a representation without the monitoring means according to the invention and in the right half a representation with the monitoring means according to the invention is shown.
- the computer 4 components not shown in detail are provided in the figure, which allow to first apply a flow pattern 15 (software) and bring to expiration.
- the computer 4 has a memory device which may comprise volatile and / or non-volatile memories and in which areas for an operating system, one or more sequence patterns and optionally further sequence-pattern components may be provided.
- the computer 4 has a plurality of data inputs and outputs 7, via which data can be transmitted to the computer 4 and from the computer 4.
- the functionality of the computer is essentially determined by the sequence pattern 15.
- the sequence pattern 15 receives the information supplied via the data inputs and outputs 7, processes them in accordance with the sequence pattern 15 and provides, for example, results on at least some of the data inputs and outputs 7.
- the smooth running of the sequence pattern 15 is essentially ensured by careful testing.
- the computer 4 shown in the right-hand part of FIG. 1 is provided with a monitoring means 10 which has sensors 11 and detection means 12.
- the number of four sensors 11 and a recognition means 12 shown in FIG. 1 is chosen merely by way of example and could be chosen arbitrarily in practice.
- the schematic illustration shows two sensors 11 which filter the messages transmitted via the data inputs and outputs 7 and feed them to the recognition means 12.
- sensors 11 are provided in the interior of the sequence pattern 15, which detect certain events of the sequence pattern 15 and supply the detected events to the recognition means 12.
- the sensors 11 and the recognition means 12 are designed in the form of software code sections, which are integrated in a suitable location in the sequence pattern 15 in a manner to be described below.
- FIG. 2 shows a computing device 1 which has a total of four computers 2, 3, 4, 5, of which the computer 4 is equipped with a monitoring means 10 in the manner described above.
- An alternative exemplary embodiment is shown in FIG. 3, which by way of example comprises only three computers 2, 3, 4, wherein the monitoring means 10 is arranged distributed in all of the computers 2, 3, 4.
- the computers are coupled together via a bus line 6, via which the computer can exchange messages. While the embodiment of FIG. 2 only provides for monitoring the behavior of the sequence pattern of the computer 4 for unauthorized memory accesses, the interaction of the individual components can be monitored with the representation shown in FIG. 3 if one of the computers accesses the memory device of one of the other Computer would like to access.
- the monitoring of the sequence pattern of the computing device can be carried out in operation in two ways. Component-level monitoring is possible within which the monitoring means monitors a computer of the computing device as a component of the computing device. It is also possible to monitor at the system level, on the interaction of the individual components, ie computers of the computing device, is monitored. In another, not shown, embodiment, a combination of the two forms shown in Figures 2 and 3 could be provided.
- a prerequisite is a specification that satisfies the desired behavior of a computing device, i. a flow pattern of the computing device, describes exactly and in detail. In particular, this includes information about unauthorized memory areas of the memory device, which may be e.g. are assigned exclusively to the operating system.
- This specification or parts of the specification of the computing device to be monitored are formalized in an appropriate language. From the established formal specification, the monitoring means will be generative prior to the commissioning of the computing device, i. automated, generated. The relevant information from the specification in formalized form is incorporated into the monitoring means.
- the monitoring means containing the specification, together with the sequence pattern is applied to the computing device, i. either one or a plurality of computers, applied.
- the computing device which may, for example, be a bus system in a motor vehicle, it collects all information relevant to the fulfillment of its monitoring task. This is done using the software sensors described in the introduction, which are part of the generated monitoring means and register memory accesses of the sequence pattern.
- a predefined response e.g. denying access.
- the reaction could also be, for example, turning off the computer, calling a predetermined routine, or the like.
- the sequence of monitoring is better apparent from FIG. 4. From this the logical view of the processes becomes understandable.
- software sensors 11 are mounted which monitor memory accesses in the computing device 1. Detects one of the sensors 11 a Memory access (event E1 or E2), it forwards it to the detection means 12, which tracks the behavior (eg the desired address) of the monitored system based on the incoming events. In case of access to an unauthorized storage area, the recognition means 12 may trigger a response as described above. The sensors and the detection means together form the monitoring means. Logically, the specified behavior that compares the recognition means to the actual behavior of the computing device is committed in a recognizer configuration. In practice, this information is incorporated in the recognition means 12. The information on which locations in the computing device to be monitored which sensors 11 are to be placed is contained in a sensor configuration which is created as part of the formalization of the specification.
- the generated code is as efficient as handwritten code.
- the generation provides significant advantages over a manually created code:
- the generator ensures that no conflicts occur due to the same naming of program variables.
- the specified module concept ensures clarity and maintainability of the monitoring device.
- the generator can ensure that no unwanted loops are hidden in the monitoring code, which costs resources at runtime or can considerably disrupt the computing device in its course.
- the generated monitoring means is highly efficient in terms of its memory and computing time requirements.
- the resource requirements for a particular monitoring device depend on the specification used to input the generation. In principle, it is possible to calculate the resource requirements of a monitoring scenario during generation by the generator. Likewise, an analysis of the required computing time per monitored event possible. In this way it can be left out whether the monitoring of each monitored event can work as expected. If, for example, an event is reported by a software sensor out of an interrupt, the monitoring must not usually delay the execution of the interrupt beyond a certain limit.
- the invention makes it possible to achieve memory protection without explicit hardware support. This is achieved using software sensors and detection means which are combined in the monitoring means.
- the monitoring means is arranged to ensure the correct functioning of a sequence pattern.
- the term "correct function" of a sequence pattern is to be understood as meaning whether the sequence pattern unauthorized accesses a memory area or not.
- the unauthorized memory areas are first specified in the specification.
- the specification is implemented in software code sections and integrated into the process pattern to be monitored.
- the thus modified execution pattern includes the mentioned software sensors and the recognition means that can detect memory accesses. If access to an unauthorized area is attempted, this is prevented by the monitoring means, or more precisely the recognition means. This ensures memory protection.
- a boundary condition to be taken into consideration is that as a rule a very large number of memory accesses per unit of time must be checked by the computing device and therefore the monitoring can impair the performance of the computing device.
- the integration of the monitoring means in the sequence pattern means that software code sections of the monitoring means are inserted in the program code of the sequence pattern before each point at which a potentially unauthorized memory access is performed. These check whether the destination address of the intended access falls into an unauthorized memory area. If this is the case, then an error can be signaled or the sequence pattern or the computing device can be stopped.
- the additional software code sections of the monitoring means can be implemented as a function call, wherein in the called function, the destination address is compared with the previously defined, unauthorized memory areas.
- the unauthorized memory areas may be stored in tabular form in the memory device for this purpose, for example. However, they can also be integrated into the program section of the called function.
- the additional expenditure of computation time and storage requirement caused by the integration of the monitoring means into the runtime pattern can be kept low, in particular in computing devices or computers with a processor with load / store architecture, since a large part of the computations are processed there in the internal processor registers and the addressing types are usually easy to perform.
- a reduction of the overhead is possible because only targeted, critical areas of the program code of the sequence pattern are provided with the monitoring means. This could for example relate to memory accesses of sequence patterns, which are loaded after configuration and delivery of the computing device in retrospect by the user of the computing device.
- the invention thus provides a method and a device which ensure the proper functioning of a sequence pattern in a computing device.
- the safety can be improved.
- the monitoring means prior to delivery of a computing device, the monitoring means could be used in development to simplify testing. In support of the diagnosis, the monitoring means can detect error situations and record them in fault memory entries.
- a sequence pattern in a computing device in particular a bus system in a motor vehicle
- errors can be detected at runtime that were not revealed in tests.
- the detected errors can be signaled and / or prevented.
- the operational safety of Computing device is thereby increased.
- information security becomes relevant and can be improved.
- diagnostics can be supported by detecting the error context. This is possible with minimal effort.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
Abstract
Es wird ein Verfahren und eine Vorrichtung zum Überwachen eines unerlaubten Speicherzugriffs auf einen vorbestimmten Speicherbereich in einer Rechenvorrichtung (1) beschrieben, in der ein Überwachungsmittel (10) mit zumindest einem Sensormittel (11) vorgesehen ist, das dazu eingerichtet ist, ein Ereignis der Rechenvorrichtung (1) zu erkennen, und zumindest einem Erkennungsmittel (12), das dazu eingerichtet ist, das Verhalten des von dem Sensormittel (11) erkannten Ereignisses zu verfolgen, wobei das Überwachungsmittel (10) in ein Ablaufmuster (15) auf der Rechenvorrichtung (1) integriert ist, und wobei das Überwachungsmittel (10) dazu eingerichtet ist, das Ablaufmuster (15) zu dessen Laufzeit zu überwachen, indem durch das Überwachungsmittel (10) als Ereignisse (E1,E2) Speicherzugriffe auf eine Speicheradresse oder einen Adressbereich detektiert werden.
Description
Verfahren und Vorrichtung zum Überwachen eines unerlaubten Speicherzugriffs einer Rechen Vorrichtung, insbesondere in einem Kraftfahrzeug
Die Erfindung betrifft ein Verfahren und eine Vorrichtung zum Überwachen unerlaubter Speicherzugriffe auf einen vorbestimmten Speicherbereich in einer Rechenvorrichtung, insbesondere in einem Kraftfahrzeug.
Unter dem Begriff des „Speicherschutzes" ist die Fähigkeit eines auf einem Mikrorechner laufenden Betriebssystems zu verstehen, einzelne Prozesse des Betriebssystems effektiv am Zugriff auf solche Speicherbereiche zu hindern, für die sie keine Autorisierung besitzen.
Das Unterbinden eines unerlaubten Speicherzugriffs geschieht in der Regel mit Unterstützung des Mikrorechners, d.h. mit Hardware-Komponenten. Dies sind oftmals spezielle, teuere Komponenten. So gibt es MikroController (z.B. MPC 566 der Firma Motorola) die mit einer Speicherschutzeinheit versehen sind. Diese unterliegt jedoch verschiedenen Einschränkungen. So können beispielsweise lediglich vier zusammenhängende Speicherbereiche gleichzeitig durch die Speicherschutzeinheit geschützt werden, Weiterhin kann der Schutz nicht auf alle Speicherarten, wie z.B. interne und externe Speicher oder flüchtige und nichtflüchtige Speicher, gleichermaßen angewendet werden.
In einer Rechenvorrichtung mit einer Mehrzahl an Rechnern, die z.B. in einem CAN (Controller Area Network)-Netzwerk in einem Kraftfahrzeug ausgebildet ist, sind die als Steuergeräte bezeichneten Rechner aus Kostengründen mit keinem hardwaremäßig realisierten Speicherschutz versehen. Bei solchen Rechnern, die keinen Speicherschutz unterstützen, ist es nicht möglich, Prozesse am unautorisierten Zugriff auf Speicherbereiche zu hindern. Dies kann dann zu Problemen führen, wenn Ablaufmuster der Rechenvorrichtung bzw. eines Rechners dynamisch und in automatisierter Weise zum Einsatz kommen, wie z.B. beim Aktualisieren eines Ablaufmusters. Unerlaubte Speicherzugriffe können dabei zu Fehlern in anderen Ablaufmustern oder Rechnern der Rechenvorrichtung führen.
Es besteht somit ein grundsätzliches Bedürfnis, unerlaubte Speicherzugriffe, insbesondere auf einen vorbestimmten Speicherbereich in einer Rechenvorrichtung, zu unterbinden.
Die DE 699 07 709 T2 beschreibt eine Prozessüberwachung in einem Rechnersystem. Diese Vorrichtung findet ihre besondere Anwendung in der Überwachung eines Vorganges bzw. Prozesses, der Daemon (CMSD) eines Konfigurationsverwaltungssystems (CMS) genannt wird. Ein Daemon stellt eine Hintergrunddienstleistung in einer Rechenvorrichtung bereit. Der verwaltet verschiedene Systemeinheiten oder Objekte, die physikalische Geräte oder auch Softwareeinheiten sein können. Wenn der CMSD-Dienst nicht mehr verfügbar ist, so können zumindest bestimmte Teile der Betriebsweise der Rechenvorrichtung beeinträchtigt sein. Um eine Prozessüberwachung mit einem hohen Maß an Zuverlässigkeit bereitzustellen und einen automatischen Neustart eines überwachten Prozesses, der ausgefallen oder fehlerhaft ist, gewährleisten zu können, wird vorgeschlagen, eine Prozessüberwachungseinrichtung bereitzustellen, wobei der überwachte Prozess nicht eine Tochter der Prozessüberwachungseinrichtung ist. Im Rahmen der Überwachung wird die Identität eines überwachten Prozesses eindeutig bestimmt und der korrekte Betrieb des überwachten Prozesses verifiziert. Sofern ein korrekter Betrieb des überwachten Prozesses nicht verifiziert werden konnte, wird der überwachte Prozess neu gestartet und eine eindeutige Selbstidentifizierung des überwachten Systems gegenüber der Rechenvorrichtung nach dem Neustart bewirkt. Die beschriebene Vorrichtung weist den eingangs erwähnten Nachteil auf, dass einerseits keine direkte Überwachung eines unerlaubten Speicherzugriffs auf einen vorbestimmten Speicherbereich erfolgt und andererseits eine zusätzliche Einrichtung in Form von Hardware-Komponenten vorgesehen werden muss.
Die Aufgabe der vorliegenden Erfindung besteht darin, ein Verfahren und eine Vorrichtung zum Überwachen eines unerlaubten Speicherzugriffs auf einen vorbestimmten Speicherbereich in einer Rechenvorrichtung, insbesondere für ein Kraftfahrzeug, anzugeben, so dass die Rechenvorrichtung keinen Undefinierten
Zustand annehmen kann. Dabei sollen insbesondere keine zusätzlichen Hardware- Komponenten notwendig sein.
Diese Aufgabe wird mit einem Verfahren gemäß den Merkmalen des Patentanspruches 1 , mit einer Vorrichtung gemäß den Merkmalen des Patentanspruches 10 sowie mit einem Computerprogrammprodukt gemäß den Merkmalen des Patentanspruches 16 gelöst. Vorteilhafte Ausgestaltungen ergeben sich jeweils aus den abhängigen Patentansprüchen.
Der Grundgedanke der vorliegenden Erfindung besteht darin, einen unerlaubten Speicherzugriff auf einen vorbestimmten Speicherbereich in einer Rechenvorrichtung dadurch zu überwachen, dass die in der Spezifikation eines Ablaufmusters enthaltenen Informationen über Speicherzugriffe des Ablaufmusters in geeigneter Weise zu Überwachungszwecken des Ablaufmusters in dieses integriert werden.
Das Verfahren zum Überwachen eines unerlaubten Speicherzugriffs auf einen vorbestimmten Speicherbereich in der Rechenvorrichtung, insbesondere in einem Fahrzeug, ist durch die folgende Schritte gekennzeichnet: Es wird zunächst ein Ablaufmuster in der Rechenvorrichtung vorgesehen. Es ist ferner ein Überwachungsmittel vorgesehen, mit zumindest einem Sensormittel, das dazu eingerichtet ist, ein Ereignis der Rechenvorrichtung zu erkennen, und mit zumindest einem Erkennungsmittel, das dazu eingerichtet ist, das Verhalten des von dem Sensormittel erkannten Ereignisses zu verfolgen. In einem weiteren Schritt wird das Überwachungsmittel in das Ablaufmuster integriert. Es erfolgt eine Überwachung des Ablaufmusters zu dessen Laufzeit, indem durch das Überwachungsmittel als Ereignisse Speicherzugriffe auf eine Speicheradresse oder einen Adressbereich detektiert werden.
Das Überwachungsmittel stellt hierbei kein hardwarerealisiertes Element der Rechenvorrichtung dar, sondern es handelt sich vielmehr um ein Computerprogrammprodukt, welches in das als Software ausgeführte Ablaufmuster in geeigneter Weise integriert ist. Demgemäß ist das Sensormittel ein „Software- Sensor" und das Erkennungsmittel ist ebenfalls softwaremäßig realisiert. Diese
Vorgehensweise ermöglicht es, Speicherzugriffe des Ablaufmusters zu dessen Laufzeit im Betrieb zu überwachen. Es ist insbesondere möglich, unerlaubte Speicherzugriffe zu detektieren und geeignet zu behandeln. Dabei wird als Annahme zugrunde gelegt, dass die Spezifikation derart festgelegt ist, dass laut Spezifikation ein unerlaubter Speicherzugriff auf einen vorbestimmten Speicherbereich in der Rechen Vorrichtung nicht erlaubt ist. Durch die Überwachung des Ablaufmusters zur Laufzeit können Fehler, d.h. unerlaubte Speicherzugriffe, erkannt werden, die beispielsweise in vorangegangenen Tests nicht erkannt wurden. Die Betriebssicherheit des Ablaufmusters bzw. der Rechenvorrichtung wird dadurch erhöht.
Gemäß einer zweckmäßigen Ausgestaltung ist der Schritt des Erzeugens des Überwachungsmittels vorgesehen, in dem ein spezifiziertes Verhalten des Ablaufmusters mit zumindest einem Ereignis und dem zumindest einen Ereignis zugeordneten Zuständen und Zustandsänderungen festgelegt wird, wobei das spezifizierte Verhalten in einen Programmcode umgesetzt wird. Mit anderen Worten sieht dieser Schritt vor, dass das z.B. in textlicher Form vorliegende spezifizierte Verhalten des Ablaufmusters in eine durch die Rechenvorrichtung lesbare und verarbeitbare Form umgesetzt wird.
In einer Ausbildung erfolgt in dem Schritt des Erzeugens des Überwachungsmittels ein Festlegen von erlaubten und/oder unerlaubten Adressbereichen einer Speichervorrichtung, wobei ein von dem spezifizierten Verhalten abweichendes Verhalten vorliegt, wenn das Ablaufmuster einen Zugriff auf einen unerlaubten Adressbereich vornehmen möchte. In der Spezifizierung werden somit, z.B. in tabellarischer Form, diejenigen Speicherbereiche der Speichervorrichtung gekennzeichnet, welche vor einem unerlaubten Speicherzugriff geschützt werden sollen. Dies können beispielsweise diejenigen Speicherbereiche sein, in welchen das Betriebssystem der Rechenvorrichtung oder eines Rechners der Rechenvorrichtung hinterlegt sind. Während der Überwachung des Ablaufmusters zu dessen Laufzeit wird detektiert, ob das Ablaufmuster einen Speicherzugriff vornehmen möchte. Ist dies der Fall, so folgt ein Vergleich der gewünschten Speicheradresse mit den in der1 Spezifikation festgelegten Speicheradressen. Wird eine Übereinstimmung festgestellt, so kann eine vorher definierte festgelegte
Reaktion eingeleitet werden, z.B. kann der Zugriff des Ablaufmusters auf den gewünschten Speicherbereich unterbunden werden.
Gemäß einer weiteren Ausgestaltung ist vorgesehen, dass das Erzeugen des Überwachungsmittels, und insbesondere das Überführen des Überwachungsmittels in den Programmcode, automatisch erfolgt. Hierdurch ist eine hohe Effizienz des Programmcodes sichergestellt, d.h. das Überwachungsmittel benötigt nur wenige Speicherressourcen. Weiterhin wird das Ablaufmuster, sofern es bestimmungsgemäß arbeitet, durch das Überwachungsmittel nicht beeinträchtigt.
Gemäß einer weiteren bevorzugten Ausgestaltung umfasst der Schritt des Integrierens des Überwachungsmittels in das Ablaufmuster das Einbringen des Programmcodes in einen Ablaufmusterprogrammcode. Nachdem in dem Schritt des Erzeugens des Überwachungsmittels das spezifizierte Verhalten der Rechenvorrichtung in eine durch die Rechenvorrichtung lesbare Form in Form eines Computerprogrammprodukts gebracht wurde, wird in dem Schritt des Integrierens des Überwachungsmittels dieser vorliegende Programmcode in den Programmcode des Ablaufmusters integriert. Die Integration kann dabei das Hinzufügen zusätzlicher Codezeilen in den Ablaufmusterprogrammcode umfassen. Die Integration kann auch das Vorsehen zusätzlicher Objekte oder Module umfassen. Es ist auch eine Kombination der genannten Möglichkeiten denkbar.
Gemäß einer weiteren Ausgestaltung wird als Ereignis ein von dem Ablaufmuster versuchter Zugriff auf einen Speicherbereich überwacht, wobei durch das Überwachungsmittel eine Überprüfung erfolgt, ob der Speicherzugriff in einen unerlaubten oder einen erlaubten Speicherbereich erfolgt, wobei im Falle eines Zugriffs auf einen unerlaubten Bereich als Reaktion ein Verweigern des Speicherzugriffs und/oder der Aufruf einer Fehlerbehandlungsroutine und/oder eine Signalisierung des unerlaubten Speicherzugriffs durch das Ablaufmuster erfolgt. Konkret wird die Abweichung durch das Erkennungsmittel des Überwachungsmittels festgestellt, das unerlaubte Speicherzugriffe von erlaubten Speicherzugriffen unterscheiden kann.
Gemäß einer weiteren Ausgestaltung erfolgt bei der Detektion eines Ereignisses durch das Überwachungsmittel, genauer das Sensormittel des Überwachungsmittels, ein Funktionsaufruf in dem Ablaufmusterprogrammcode. Die Integration des Überwachungsmittels in dem Ablaufmuster schafft somit die Möglichkeit, an vordefinierten Stellen in dem Ablaufmuster eine Überprüfung dessen Verhaltens, d.h. eine Überprüfung auf einen unerlaubten Speicherzugriff, durchzuführen und bei einer Abweichung von einem spezifizierten Verhalten eine vorgegebene Funktion, die beispielsweise die Signalisierung, das Speichern von Variablen oder ähnliches beinhalten kann, aufzurufen.
Gemäß einer Variante ist das Überwachungsmittel in einem Rechner einer Mehrzahl an Rechnern vorgesehen, und dieser Rechner der Mehrzahl an Rechnern der Rechenvorrichtung wird auf sein Ablaufmuster, d.h. einen unerlaubten Speicherzugriff, hin überwacht.
Gemäß einer anderen Variante ist das Überwachungsmittel in zumindest zwei Rechnern einer Mehrzahl an Rechnern der Rechenvorrichtung vorgesehen, und es werden Speicherzugriffe zwischen den Rechnern der Rechenvorrichtung überwacht. Welche der beiden Varianten, gegebenenfalls in einer Kombination, gewählt wird, hängt von der Vorgehensweise der Integration des Überwachungsmittels in das Ablaufmuster ab.
Mit der erfindungsgemäßen Vorrichtung sind die gleichen Vorteile verbunden, wie sie vorstehend in Verbindung mit dem Verfahren beschrieben wurden.
In der erfindungsgemäßen Vorrichtung zum Überwachen eines unerlaubten Speicherzugriffs auf einen vorbestimmten Speicherbereich in einer Rechenvorrichtung, insbesondere in einem Kraftfahrzeug, ist ein Überwachungsmittel mit zumindest einem Sensormittel vorgesehen, das dazu eingerichtet ist, ein Ereignis, insbesondere einen gewünschten Speicherzugriff, der Rechenvorrichtung zu erkennen. Es ist zumindest ein Erkennungsmittel vorgesehen, das dazu eingerichtet ist, das Verhalten des von dem Sensormittel erkannten Ereignisses zu verfolgen, wobei das Überwachungsmittel in ein Ablaufmuster auf der Rechenvorrichtung integriert ist und wobei das
Überwachungsmittel dazu eingerichtet ist, das Ablaufmuster zu dessen Laufzeit zu überwachen, indem durch das Überwachungsmittel als Ereignisse Speicherzugriffe auf eine Speicheradresse oder einen Adressbereich detektiert werden.
In einer Ausgestaltung weist die Rechenvorrichtung eine Mehrzahl an miteinander gekoppelten Rechnern auf, wobei das Überwachungsmittel in zumindest einem der Rechner angeordnet ist.
In einer anderen Ausgestaltung ist die Rechenvorrichtung ein Bussystem und die Rechner sind Busteilnehmer dieses Bussystems, die über eine Busleitung miteinander gekoppelt sind, über welche der Austausch von Nachrichten möglich ist. Ein Busteilnehmer stellt dabei ein Steuergerät eines Bussystems dar.
In einer weiteren Ausgestaltung ist das Überwachungsmittel ein Computerprogrammprodukt, das in das Ablaufmuster integriert ist.
Eine weitere Ausgestaltung sieht vor, dass das Überwachungsmittel zur Überwachung zumindest eines der Rechner der Rechenvorrichtung ausgebildet ist.
Eine andere Ausgestaltung sieht vor, dass das Überwachungsmittel zur Überwachung von Speicherzugriffen zwischen zumindest zwei Rechnern der Rechenvorrichtung ausgebildet ist.
Die Erfindung beschreibt ferner ein Computerprogrammprodukt für eine Rechenvorrichtung eines Kraftfahrzeugs, bei dem in ein die Recheneinheit steuerndes Ablaufmuster ein Überwachungsmittel integriert ist, das eine computerlesbare Spezifikation des Verhaltens des Ablaufmusters umfasst und das dazu eingerichtet ist, zur Laufzeit des Ablaufmusters Speicherzugriffe festzustellen und eine Reaktion hierauf einzuleiten, wenn ein Speicherzugriff auf einen unerlaubten Speicherbereich einer Speichervorrichtung der Rechenvorrichtung vorliegt.
Die Erfindung wird nachfolgend anhand der Figuren näher erläutert. Es zeigen:
Fig. 1 eine erfindungsgemäße Vorrichtung zum Überwachen eines Ablaufs einer Rechenvorrichtung,
Fig. 2 eine erfindungsgemäße Rechenvorrichtung mit einer Mehrzahl an Rechnern, bei der die Vorrichtung zum Überwachen in einem der
Rechner integriert ist,
Fig. 3 eine weitere Rechenvorrichtung mit einer Mehrzahl an Rechnern, bei der die Vorrichtung zum Überwachen in mehreren Rechnern verteilt ist, und
Fig. 4 eine schematische Darstellung, aus der das der Vorrichtung zum
Überwachen zugrunde liegende Prinzip hervorgeht.
Figur 1 zeigt zwei als Busteilnehmer ausgebildete Rechner 4 einer Rechenvorrichtung 1 , wobei in der linken Hälfte eine Darstellung ohne das erfindungsgemäße Überwachungsmittel und in der rechten Hälfte eine Darstellung mit dem erfindungsgemäßen Überwachungsmittel gezeigt ist. In dem Rechner 4 sind in der Figur nicht näher dargestellte Komponenten vorgesehen, die es erlauben, zunächst ein Ablaufmuster 15 (Software) aufzubringen und zum Ablauf zu bringen. Insbesondere weist der Rechner 4 eine Speichereinrichtung auf, die flüchtige und/oder nicht-flüchtige Speicher umfassen kann und in der Bereiche für ein Betriebssystem, ein oder mehrere Ablaufmuster und gegebenenfalls weitere Ablaufmuster-Komponenten vorgesehen sein können. Der Rechner 4 verfügt über eine Mehrzahl an Datenein- und -ausgängen 7, über die Daten in den Rechner 4 und von dem Rechner 4 übertragen werden können. Die Funktionalität des Rechners ist im wesentlichen durch das Ablaufmuster 15 bestimmt. Das Ablaufmuster 15 empfängt die über die Datenein- und -ausgänge 7 gelieferten Informationen, bearbeitet diese gemäß dem Ablaufmuster 15 und stellt z.B. Ergebnisse an zumindest einigen der Datenein- und -ausgänge 7 zur Verfügung. Der reibungslose Ablauf des Ablaufmusters 15 ist im wesentlichen durch ein sorgfältiges Testen sichergestellt.
Um im Falle eines unerlaubten Speicherzugriffs eine nicht definierte Fehlfunktion des Rechners 4 zu vermeiden, ist der im rechten Teil der Fig. 1 dargestellte Rechner 4 mit einem Überwachungsmittel 10 versehen, welches Sensoren 11 und Erkennungsmittel 12 aufweist. Die in der Fig. 1 dargestellte Anzahl an vier Sensoren 11 und einem Erkennungsmittel 12 ist lediglich beispielhaft gewählt und könnte in der Praxis beliebig gewählt werden. Die schematische Darstellung zeigt dabei zwei Sensoren 11 , die die über die Datenein- und -ausgänge 7 übertragenen Nachrichten filtern und dem Erkennungsmittel 12 zuführen. Des weiteren sind zwei Sensoren 11 im Inneren des Ablaufmusters 15 vorgesehen, welche bestimmte Ereignisse des Ablaufmusters 15 detektieren und die erkannten Ereignisse dem Erkennungsmittel 12 zuführen. Die Sensoren 11 und das Erkennungsmittel 12 sind in Form von Softwarecodeabschnitten ausgebildet, die in weiter unten beschriebener Weise an geeigneter Stelle in das Ablaufmuster 15 integriert sind.
In Fig. 2 ist eine Rechenvorrichtung 1 dargestellt, welche insgesamt vier Rechner.2, 3, 4, 5 aufweist, von denen der Rechner 4 in der oben beschriebenen Weise mit einem Überwachungsmittel 10 ausgestattet ist. Ein alternatives Ausgestaltungsbeispiel ist in Fig. 3 dargestellt, welches beispielhaft lediglich drei Rechner 2, 3, 4 umfasst, wobei das Überwachungsmittel 10 verteilt in sämtlichen der Rechner 2, 3, 4 angeordnet ist. In beiden Ausführungsbeispielen sind die Rechner über eine Busleitung 6 miteinander gekoppelt, über welche die Rechner Nachrichten austauschen können. Während das Ausführungsbeispiel gemäß Fig. 2 lediglich eine Überwachung des Verhaltens des Ablaufmusters des Rechners 4 auf unerlaubte Speicherzugriffe vorsieht, kann mit der in Fig. 3 gezeigten Darstellung das Zusammenspiel der einzelnen Komponenten, überwacht werden, wenn einer der Rechner auf die Speichereinrichtung eines der anderen Rechner zugreifen möchte. Die Überwachung des Ablaufmusters der Rechenvorrichtung kann im Betrieb damit auf zweierlei Weise durchgeführt werden. Es ist eine Überwachung auf Komponentenebene möglich, innerhalb der das Überwachungsmittel einen Rechner der Rechenvorrichtung als Komponente der Rechenvorrichtung überwacht. Es ist ebenfalls eine Überwachung auf Systemebene möglich, auf der das Zusammenspiel der einzelnen Komponenten, d.h. Rechner der Rechenvorrichtung, überwacht wird.
In einer anderen, nicht dargestellten, Ausführungsform, könnte auch eine Kombination der beiden dargestellten Formen gemäß Figuren 2 und 3 vorgesehen sein.
Um das erfindungsgemäße Überwachungsmittel auf einem oder einer Mehrzahl an Rechnern integrieren zu können, ist folgende Vorgehensweise zweckmäßig. Voraussetzung ist eine Spezifikation, welche das gewünschte Verhalten einer Rechenvorrichtung, d.h. eines Ablaufmusters der Rechenvorrichtung, genau und detailliert beschreibt. Diese beinhaltet insbesondere Informationen über unerlaubte Speicherbereiche der Speichereinrichtung, die z.B. ausschließlich dem Betriebssystem zugeordnet sind. Diese Spezifikation oder Teile der Spezifikation der zu überwachenden Rechenvorrichtung werden in einer geeigneten Sprache formalisiert. Aus der erstellten formalen Spezifikation wird das Überwachungsmittel vor Inbetriebnahme der Rechenvorrichtung generativ, d.h. automatisiert, erzeugt. Die relevanten Informationen aus der in formalisierter Form vorliegenden Spezifikation werden dabei in das Überwachungsmittel eingearbeitet. Das die Spezifikation enthaltende Überwachungsmittel wird zusammen mit dem Ablaufmuster auf die Rechenvorrichtung, d.h. entweder einen oder eine Mehrzahl an Rechnern, aufgebracht. Während des Betriebs der Rechenvorrichtung, bei welchem es sich beispielsweise um ein Bussystem in einem Kraftfahrzeug handeln kann, sammelt diese alle zur Erfüllung seiner Überwachungsaufgabe relevanten Informationen. Dies geschieht unter Verwendung der eingangs beschriebenen Softwaresensoren, die Teil des generierten Überwachungsmittels sind und Speicherzugriffe des Ablaufmusters registrieren. Beim Feststellen einer Abweichung von der Spezifikation, d.h. beim Feststellen eines unerlaubten Speicherzugriffs, wird eine vordefinierte Reaktion, z.B. das Verweigern des Zugriffs, eingeleitet. Die Reaktion könnte beispielsweise auch im Abschalten bzw. Neustarten der Rechenvorrichtung, im Aufruf einer vorbestimmten Routine oder dergleichen bestehen.
Der Ablauf der Überwachung geht aus Fig. 4 besser hervor. Aus dieser wird die logische Sicht der Abläufe verständlich. In der zu überwachenden Rechenvorrichtung 1 sind Softwaresensoren 11 angebracht, die Speicherzugriffe in der Rechenvorrichtung 1 beobachten. Detektiert einer der Sensoren 11 einen
Speicherzugriff (Ereignis E1 bzw. E2), so leitet er dieses an das Erkennungsmittel 12 weiter, der anhand der eingehenden Ereignisse das Verhalten (z.B. die gewünschte Adresse) des zu überwachenden Systems verfolgt. Im Fall eines Zugriffs auf einen unerlaubten Speicherbereich kann das Erkennungsmittel 12 eine Reaktion, wie oben beschrieben, anstoßen. Die Sensoren und das Erkennungsmittel bilden zusammen das Überwachungsmittel. Aus logischer Sicht ist das spezifizierte Verhalten, das das Erkennungsmittel mit dem tatsächlichen Verhalten der Rechenvorrichtung vergleicht, in einer Erkennerkonfiguration festgeschrieben. In der Praxis ist diese Information in dem Erkennungsmittel 12 eingearbeitet. Die Informationen, an welchen Stellen in der zu überwachenden Rechenvorrichtung welche Sensoren 11 platziert werden sollen, ist in einer Sensorkonfiguration enthalten, die im Rahmen der Formalisierung der Spezifikation erstellt wird.
Durch die Verwendung von Funktionsaufrufen und/oder durch eingebetteten Code kann die Überwachung zur Laufzeit mit minimalem Aufwand erfolgen. Der generierte Code ist ähnlich effizient wie handgeschriebener Code. Gleichzeitig bietet die Generierung wesentliche Vorteile gegenüber einem manuell erstellten Code: Der Generator sorgt dafür, dass keine Konflikte durch gleiche Namensgebung von Programmvariablen auftreten. Das vorgegebene Modulkonzept sorgt für Übersichtlichkeit und Wartbarkeit des Überwachungsmittels. Gleichzeitig kann der Generator sicherstellen, dass im Überwachungscode keine ungewollten Schleifen versteckt sind, die zur Laufzeit Ressourcen kosten oder die Rechenvorrichtung in ihrem Ablauf beträchtlich stören können.
Nach der Erzeugung des Überwachungsmittels wird dieses auf die Rechenvorrichtung aufgebracht. Die Grundannahme ist dabei, dass der oder die entsprechenden Rechner über freie Ressourcen verfügen. Das generierte Überwachungsmittel ist hoch effizient hinsichtlich seines Speicher- und Rechenzeitbedarfs. Wie hoch die Ressourcenanforderungen für ein spezielles Überwachungsmittel sind, hängt von der Spezifikation ab, die als Eingabe der Generierung dient. Prinzipiell ist es dabei möglich, den Ressourcenbedarf eines Überwachungsszenarios bei der Generierung durch den Generator berechnen zu lassen. Ebenso ist eine Analyse der benötigen Rechenzeit je überwachtem Ereignis
möglich. Auf diese Weise kann abgesehen werden, ob die Überwachung jedes überwachten Ereignisses erwartungsgemäß funktionieren kann. Wird beispielsweise ein Ereignis von einem Softwaresensor aus einem Interrupt heraus gemeldet, so darf die Überwachung die Abarbeitung des Interrupts meist nicht über eine bestimmte Grenze hinaus verzögern.
Die Erfindung ermöglicht es, einen Speicherschutz ohne explizite Hardware- Unterstützung zu erreichen. Dies wird unter Einsatz von Softwaresensoren und Erkennungsmitteln erzielt, welche in dem Überwachungsmittel zusammengefasst sind. Das Überwachungsmittel ist dazu eingerichtet, die korrekte Funktion eines Ablaufmusters sicherzustellen. Im Zusammenhang mit dieser Erfindung ist der Begriff der „korrekten Funktion" eines Ablaufmusters dahingehend zu verstehen, ob das Ablaufmuster unerlaubterweise auf einen Speicherbereich zugreift oder nicht.
Zur Realisierung werden zunächst die unerlaubten Speicherbereiche in der Spezifikation festgelegt. Die Spezifikation wird in Softwarecodeabschnitte umgesetzt und in das zu überwachende Ablaufmuster integriert. Das derart modifizierte Ablaufmuster umfasst die erwähnten Softwaresensoren und das Erkennungsmittel, die Speicherzugriffe feststellen können. Wird ein Zugriff in einen unerlaubten Bereich versucht, so wird dies durch das Überwachungsmittel, genauer das Erkennungsmittel, unterbunden. Hierdurch ist ein Speicherschutz gewährleistet. Eine dabei zu berücksichtigende Randbedingung ist, dass in der Regel durch die Rechenvorrichtung sehr viele Speicherzugriffe pro Zeiteinheit überprüft werden müssen und deshalb die Überwachung die Performance der Rechenvorrichtung beeinträchtigen kann.
Anschaulich bedeutet die Integration des Überwachungsmittels in das Ablaufmuster, dass in dem Programmcode des Ablaufmusters vor jeder Stelle, an der ein potentiell unerlaubter Speicherzugriff durchgeführt wird, Softwarecodeabschnitte des Überwachungsmittels eingefügt werden. Diese überprüfen, ob die Zieladresse des beabsichtigten Zugriffs in einen unerlaubten Speicherbereich fällt. Ist dies der Fall, so kann ein Fehler signalisiert oder das Ablaufmuster bzw. die Rechenvorrichtung angehalten werden. Die zusätzlichen Softwarecodeabschnitte des Überwachungsmittels können als Funktionsaufruf realisiert sein, wobei in der
aufgerufenen Funktion die Zieladresse mit den vorher definierten, unerlaubten Speicherbereichen verglichen wird. Die unerlaubten Speicherbereiche können hierzu beispielsweise in tabellarischer Form in der Speichervorrichtung eingespeichert sein. Sie können jedoch auch in den Programmabschnitt der aufgerufenen Funktion integriert sein.
Der durch die Integration des Überwachungsmittels in das Ablaufmuster erzeugte Mehraufwand an Rechenzeit und Speicherbedarf kann insbesondere bei Rechenvorrichtungen bzw. Rechnern mit einem Prozessor mit Load/Store- Architektur gering gehalten werden, da dort ein großer Teil der Berechnungen in den internen Prozessor-Registern abgewickelt werden kann und die Adressierungsarten in der Regel einfach durchzuführen sind. Eine Reduktion des Mehraufwandes ist dadurch möglich, dass lediglich gezielte, kritische Bereiche des Programmcodes des Ablaufmusters mit dem Überwachungsmittel versehen werden. Dies könnte beispielsweise Speicherzugriffe von Ablaufmustern betreffen, die nach Konfiguration und Auslieferung der Rechenvorrichtung im nachhinein durch den Nutzer der Rechenvorrichtung geladen werden.
Mit der Erfindung werden somit ein Verfahren und eine Vorrichtung bereitgestellt, die das bestimmungsgemäße Funktionieren eines Ablaufmusters in einer Rechenvorrichtung sicherstellen. Bei der Anwendung in einem Kraftfahrzeug bedeutet dies, dass der Benutzer des Kraftfahrzeugs ein korrektes Funktionieren erfährt. Dadurch kann insbesondere auch seine Sicherheit verbessert werden.
Darüber hinaus sind weitere Anwendungen für die Überwachung denkbar. So könnte beispielsweise vor Auslieferung einer Rechenvorrichtung das Überwachungsmittel in der Entwicklung zur Vereinfachung von Tests eingesetzt werden. Zur Unterstützung der Diagnose kann das Überwachungsmittel Fehlersituationen erkennen und in Fehlerspeichereinträgen vermerken.
Durch die Überwachung eines Ablaufmusters in einer Rechenvorrichtung, insbesondere einem Bussystem in einem Kraftfahrzeug, können zur Laufzeit Fehler erkannt werden, die in Tests nicht offenbar wurden. Die erkannten Fehler können signalisiert und/oder unterbunden werden. Die Betriebssicherheit der
Rechenvorrichtung wird dadurch erhöht. Mit steigendem Anteil an sensitiven Daten wird auch Informationssicherheit relevant und kann verbessert werden. Durch die Erkennung von Fehlerzuständen kann die Diagnose durch Erfassung des Fehlerkontextes unterstützt werden. Dies ist mit minimalem Aufwand möglich.
Bezugszeichenliste
1 Rechenvorrichtung
2 Rechner
3 Rechner
4 Rechner
5 Rechner
6 Busleitung
7 Datenein-und -ausgang
10 Überwachungsmittel
11 Sensormittel
12 Erkennermittel
15 Ablaufmuster
Claims
1. Verfahren zum Überwachen eines unerlaubten Speicherzugriffs auf einen vorbestimmten Speicherbereich in einer Rechenvorrichtung (1 ), insbesondere in einem Kraftfahrzeug, gekennzeichnet durch die Schritte: Vorsehen eines Ablaufmusters (15) in der Rechenvorrichtung (1 ), Vorsehen eines Überwachungsmittels (10) mit zumindest einem Sensormittel (11), das dazu eingerichtet ist, ein Ereignis (E1.E2) der Rechenvorrichtung (1 ) zu erkennen, und zumindest einem
Erkennungsmittel (12), das dazu eingerichtet ist, das Verhalten des von dem Sensormittel (11 ) erkannten Ereignisses zu verfolgen, Integrieren des Überwachungsmittels (10) in das Ablaufmuster (15), Überwachen des Ablaufmusters (15) zu dessen Laufzeit, indem durch das Überwachungsmittel (10) als Ereignisse (E1 ,E2) Speicherzugriffe auf eine Speicheradresse oder einen Adressbereich detektiert werden.
2. Verfahren nach Anspruch 1 , dadurch gekennzeichnet, dass der Schritt des Erzeugens des Überwachungsmittels (10) vorgesehen ist, in dem ein spezifiziertes Verhalten des Ablaufmusters (15) mit zumindest einem Ereignis (E1 ,E2) und dem zumindest einen Ereignis zugeordneten Zuständen und Zustandsänderungen festgelegt wird, wobei das spezifizierte Verhalten in einen Programmcode umgesetzt wird.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass in dem Schritt des Erzeugens des Überwachungsmittels (10) ein Festlegen von erlaubten und/oder unerlaubten Adressbereichen eines
Speichers erfolgt, wobei ein von dem spezifizierten Verhalten abweichendes Verhalten vorliegt, wenn das Ablaufmuster (15) einen Zugriff auf einen unerlaubten Adressbereich vornehmen möchte.
4. Verfahren nach Anspruch 2 oder 3, dadurch gekennzeichnet, dass das Erzeugen des Überwachungsmittels (10), und insbesondere das Überführen in den Programmcode, automatisch erfolgt.
5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der Schritt des Integrierens des Überwachungsmittels (10) in das Ablaufmuster (15) das Einbringen des Programmcodes in einen Ablaufmusterprogrammcode umfasst.
6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass als Ereignis ein von dem Ablaufmuster (15) versuchter Zugriff auf einen Speicherbereich überwacht wird, wobei durch das Überwachungsmittel (10) eine Überprüfung erfolgt, ob der Speicherzugriff in einen unerlaubten oder einen erlaubten Speicherbereich erfolgt, und im Falle eines Zugriffs auf einen unerlaubten Bereich als Reaktion ein Verweigern des Speicherzugriffs und/oder der Aufruf einer Fehlerbehandlungsroutine und/oder eine Signalisierung des unerlaubten Speicherzugriffs durch das Ablaufmuster (15) erfolgt.
7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass bei der Detektion eines Ereignisses durch das Überwachungsmittel (10) ein Funktionsaufruf in dem Ablaufmusterprogrammcode erfolgt.
8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Überwachungsmittel (10) in einem Rechner (4) einer Mehrzahl an
Rechnern (2,3,4,5) vorgesehen ist, und dieser Rechner der Mehrzahl an Rechnern der Rechenvorrichtung (1) auf sein Ablaufmuster überwacht wird.
9. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Überwachungsmittel (10) in zumindest zwei Rechnern (2,3,4) einer Mehrzahl an Rechnern (2,3,4) vorgesehen ist, und Speicherzugriffe zwischen den Rechnern der Rechenvorrichtung (1 ) überwacht werden.
10. Vorrichtung zum Überwachen eines unerlaubten Speicherzugriffs auf einen vorbestimmten Speicherbereich in einer Rechenvorrichtung (1 ), insbesondere in einem Kraftfahrzeug, in der ein Überwachungsmittel (10) mit zumindest einem Sensormittel (11 ) vorgesehen ist, das dazu eingerichtet ist, ein Ereignis (E1.E2) der Rechenvorrichtung (1) zu erkennen, und zumindest einem Erkennungsmittel (12), das dazu eingerichtet ist, das Verhalten des von dem Sensormittel (11 ) erkannten Ereignisses (E1.E2) zu verfolgen, wobei das Überwachungsmittel (10) in ein Ablaufmuster auf der
Rechenvorrichtung (1 ) integriert ist, und wobei das Überwachungsmittel (10) dazu eingerichtet ist, das Ablaufmuster (15) zu dessen Laufzeit zu überwachen, indem durch das Überwachungsmittel (10) als Ereignisse (E1.E2) Speicherzugriffe auf eine Speicheradresse oder einen Adressbereich detektiert werden.
1 1. Vorrichtung nach Anspruch 10, dadurch gekennzeichnet, dass die Rechenvorrichtung (1 ) eine Mehrzahl an miteinander gekoppelten Rechnern (2,3,4,5) aufweist, wobei das Überwachungsmittel (10) in zumindest einem der Rechner (4) angeordnet ist.
12. Vorrichtung nach Anspruch 10 oder 11 , dadurch gekennzeichnet, dass die Rechenvorrichtung (1 ) ein Bussystem, insbesondere in einem
Kraftfahrzeug, ist und die Rechner (2,3,4,5) Busteilnehmer dieses Bussystems sind, die über eine Busleitung (6) miteinander gekoppelt sind, über welche der Austausch von Nachrichten möglich ist.
13. Vorrichtung nach einem der Ansprüche 10 bis 12, dadurch gekennzeichnet, dass das Überwachungsmittel (10) ein Computerprogrammprodukt darstellt, das in das Ablaufmuster integriert ist.
14. Vorrichtung nach einem der Ansprüche 10 bis 13, dadurch gekennzeichnet, dass das Überwachungsmittel (10) zur Überwachung zumindest eines der Rechner (2,3,4) der Rechenvorrichtung ausgebildet ist.
15. Vorrichtung nach einem der Ansprüche 10 bis 14, dadurch gekennzeichnet, dass das Überwachungsmittel (10) zur Überwachung von Speicherzugriffen zwischen zumindest zwei Rechnern (2,3,4) der Rechenvorrichtung (1 ) ausgebildet ist.
16. Computerprogrammprodukt für eine Rechenvorrichtung eines Kraftfahrzeugs, dadurch gekennzeichnet, dass in ein die Rechenvorrichtung steuerndes Ablaufmuster (15) ein
Überwachungsmittel (10) integriert ist, das eine computerlesbare Spezifikation des Verhaltens des Ablaufmusters (15) umfasst und das dazu eingerichtet ist, zur Laufzeit des Ablaufmusters (15) Speicherzugriffe festzustellen und eine Reaktion hierauf einzuleiten, wenn ein Speicherzugriff auf einen unerlaubten Speicherbereich einer Speichervorrichtung der
Rechenvorrichtung (1 ) vorliegt.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2005/006767 WO2006136189A1 (de) | 2005-06-23 | 2005-06-23 | Verfahren und vorrichtung zum überwachen eines unerlaubten speicherzugriffs einer rechenvorrichtung, insbesondere in einem kraftfahrzeug |
Publications (1)
Publication Number | Publication Date |
---|---|
EP1894101A1 true EP1894101A1 (de) | 2008-03-05 |
Family
ID=35788467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP05753228A Withdrawn EP1894101A1 (de) | 2005-06-23 | 2005-06-23 | Verfahren und vorrichtung zum überwachen eines unerlaubten speicherzugriffs einer rechenvorrichtung, insbesondere in einem kraftfahrzeug |
Country Status (3)
Country | Link |
---|---|
US (1) | US9286244B2 (de) |
EP (1) | EP1894101A1 (de) |
WO (1) | WO2006136189A1 (de) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10540524B2 (en) | 2014-12-31 | 2020-01-21 | Mcafee, Llc | Memory access protection using processor transactional memory support |
EP3179371A1 (de) * | 2015-12-08 | 2017-06-14 | Gilwa GmbH embedded systems | Verfahren und vorrichtung zum nicht intrusiven sammeln von funktionsablaufverfolgungsdaten |
US10650621B1 (en) | 2016-09-13 | 2020-05-12 | Iocurrents, Inc. | Interfacing with a vehicular controller area network |
DE112018003038T5 (de) * | 2017-06-14 | 2020-08-06 | Sumitomo Electric Industries, Ltd. | Vorrichtung für fahrzeuginterne Kommunikation, Kommunikationssteuerverfahren und Kommunikationssteuerungsprogramm |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2740235A1 (fr) * | 1995-10-24 | 1997-04-25 | Peugeot | Dispositif de controle du fonctionnement d'un systeme electronique embarque a bord d'un vehicule automobile |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4093987A (en) * | 1977-03-24 | 1978-06-06 | International Business Machines Corporation | Hardware control storage area protection method and means |
US5513337A (en) * | 1994-05-25 | 1996-04-30 | Intel Corporation | System for protecting unauthorized memory accesses by comparing base memory address with mask bits and having attribute bits for identifying access operational mode and type |
JP3877763B2 (ja) * | 1994-06-16 | 2007-02-07 | ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング | プログラミングされた制御装置に対するデータおよび/またはプログラム部分の最適化方法および制御装置 |
US5920690A (en) * | 1997-08-11 | 1999-07-06 | Motorola, Inc. | Method and apparatus for providing access protection in an integrated circuit |
US6049876A (en) * | 1998-02-09 | 2000-04-11 | Motorola, Inc. | Data processing system and method which detect unauthorized memory accesses |
WO2000022527A1 (en) * | 1998-10-09 | 2000-04-20 | Sun Microsystems, Inc. | Process monitoring in a computer system |
FR2790844B1 (fr) * | 1999-03-09 | 2001-05-25 | Gemplus Card Int | Procede et dispositif de surveillance du deroulement d'un programme, dispositif programme permettant la surveillance de son programme |
US7430670B1 (en) * | 1999-07-29 | 2008-09-30 | Intertrust Technologies Corp. | Software self-defense systems and methods |
DE10110050A1 (de) * | 2001-03-02 | 2002-09-05 | Bosch Gmbh Robert | Verfahren zur Absicherung sicherheitskritischer Programmteile vor versehentlicher Ausführung und eine Speichereinrichtung zur Durchführung dieses Verfahrens |
FR2849226B1 (fr) * | 2002-12-20 | 2005-12-02 | Oberthur Card Syst Sa | Procede et dispositif de securisation de l'execution d'un programme informatique. |
DE10315638A1 (de) * | 2003-04-04 | 2004-10-28 | Infineon Technologies Ag | Programmgesteuerte Einheit |
US20050071668A1 (en) * | 2003-09-30 | 2005-03-31 | Yoon Jeonghee M. | Method, apparatus and system for monitoring and verifying software during runtime |
US7873947B1 (en) * | 2005-03-17 | 2011-01-18 | Arun Lakhotia | Phylogeny generation |
-
2005
- 2005-06-23 WO PCT/EP2005/006767 patent/WO2006136189A1/de not_active Application Discontinuation
- 2005-06-23 EP EP05753228A patent/EP1894101A1/de not_active Withdrawn
-
2007
- 2007-12-20 US US11/961,947 patent/US9286244B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2740235A1 (fr) * | 1995-10-24 | 1997-04-25 | Peugeot | Dispositif de controle du fonctionnement d'un systeme electronique embarque a bord d'un vehicule automobile |
Non-Patent Citations (1)
Title |
---|
See also references of WO2006136189A1 * |
Also Published As
Publication number | Publication date |
---|---|
US9286244B2 (en) | 2016-03-15 |
US20080178292A1 (en) | 2008-07-24 |
WO2006136189A1 (de) | 2006-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2981926B1 (de) | Datenspeichervorrichtung zum geschützten datenaustausch zwischen verschiedenen sicherheitszonen | |
DE19927657A1 (de) | Partitionierung und Überwachung von softwaregesteuerten Systemen | |
EP1479003B1 (de) | Verfahren und vorrichtung zur steuerung einer funktionseinheit eines kraftfahrzeugs | |
EP1639465B1 (de) | Verfahren zur überwachung des programmlaufs in einem mikro-computer | |
DE102018214999A1 (de) | Vorrichtung zur Absicherung von Diagnosebefehlen an ein Steuergerät und entsprechendes Kraftfahrzeug | |
EP3709166B1 (de) | Verfahren und system zur sicheren signalmanipulation für den test integrierter sicherheitsfunktionalitäten | |
EP3473512A1 (de) | Funktionsmodul, steuereinheit für ein betriebsassistenzsystem und arbeitsvorrichtung | |
EP1262856B1 (de) | Programmgesteuerte Einheit | |
EP1804144A1 (de) | Überprüfung des Steuerprogramms eines Steuergerätes für eine Maschine | |
WO2006136189A1 (de) | Verfahren und vorrichtung zum überwachen eines unerlaubten speicherzugriffs einer rechenvorrichtung, insbesondere in einem kraftfahrzeug | |
WO2008014940A1 (de) | Steuergerät und verfahren zur steuerung von funktionen | |
EP3983897B1 (de) | Verfahren zum sicherstellen und aufrechterhalten der funktion eines sicherheitskritischen gesamtsystems | |
DE102013021231A1 (de) | Verfahren zum Betrieb eines Assistenzsystems eines Fahrzeugs und Fahrzeugsteuergerät | |
WO2003075104A2 (de) | Einrichtung und verfahren zur beurteilung und erzielung von sicherheit bei systemen sowie entsprechendes computerprogramm | |
EP1733284B1 (de) | Ablaufsteuerung von funktionen auf miteinander wechselwirkenden geräten | |
EP1563358B1 (de) | Verfahren zur sicheren überprüfung eines speicherbereiches eines mikrocontrollers in einem steuergerät und steuergerät mit einem geschützten mikrocontroller | |
WO2005001692A2 (de) | Verfahren und vorrichtung zur überwachung eines verteilten systems | |
DE102013202961A1 (de) | Verfahren zum Überwachen eines Stackspeichers in einem Betriebssystem eines Steuergeräts eines Kraftfahrzeuges | |
DE102004051991A1 (de) | Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms | |
DE102006045153A1 (de) | System und Verfahren zum Verteilen und Ausführen von Programmcode in einem Steuergerätenetzwerk | |
WO2005006091A1 (de) | Steuergerät und netzwerk für eine mehrzahl von vorrichtungen | |
EP1248965B1 (de) | Verfahren zur verhinderung von fehlfunktionen in einem signalverarbeitenden system und prozessorsystem | |
DE102017212560A1 (de) | Verfahren zum ausfallsicheren Durchführen einer sicherheitsgerichteten Funktion | |
DE10220811B4 (de) | Verfahren und Vorrichtung zur Überwachung der Funktionsweise eines Systems | |
DE102021212594A1 (de) | Verfahren zum Starten einer Speichereinheit einer Recheneinheit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20071124 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): DE FR GB |
|
RBV | Designated contracting states (corrected) |
Designated state(s): DE FR GB |
|
DAX | Request for extension of the european patent (deleted) | ||
17Q | First examination report despatched |
Effective date: 20090212 |
|
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: BAYERISCHE MOTOREN WERKE AKTIENGESELLSCHAFT |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20170712 |