DE102021210328A1 - MEMORY-USE-BASED DETECTION OF INFRINGEMENTS INTO A SYSTEM - Google Patents

MEMORY-USE-BASED DETECTION OF INFRINGEMENTS INTO A SYSTEM Download PDF

Info

Publication number
DE102021210328A1
DE102021210328A1 DE102021210328.6A DE102021210328A DE102021210328A1 DE 102021210328 A1 DE102021210328 A1 DE 102021210328A1 DE 102021210328 A DE102021210328 A DE 102021210328A DE 102021210328 A1 DE102021210328 A1 DE 102021210328A1
Authority
DE
Germany
Prior art keywords
software
usage information
memory usage
memory
reference memory
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
DE102021210328.6A
Other languages
German (de)
Inventor
Paulius Duplys
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
Priority to DE102021210328.6A priority Critical patent/DE102021210328A1/en
Priority to CN202211126606.0A priority patent/CN115828232A/en
Publication of DE102021210328A1 publication Critical patent/DE102021210328A1/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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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

Abstract

Ein erster Aspekt der vorliegenden Offenbarung betrifft ein computer-implementiertes Verfahren zur Erkennung von Eindringen in ein System, umfassend Aufzeichnen einer Speicherbenutzungsinformation bei Ausführung mindestens eines Teils einer Software des Systems; Prüfen, ob die Speicherbenutzungsinformation von einer für den mindestens einen Teil der Software vorbestimmten Referenzspeicherbenutzungsinformation abweicht; und Bewerten der Software als manipuliert, wenn das Prüfen positiv ausfällt.Ein zweiter Aspekt der vorliegenden Offenbarung betrifft ein computer-implementiertes Verfahren zur Aufzeichnung und Speicherung von einer Referenzspeicherbenutzungsinformation für Software in einem System, umfassend Aufzeichnen einer Referenzspeicherbenutzungsinformation bei Ausführung mindestens eines Teils der Software und Speichern der Referenzspeicherbenutzungsinformation für den mindestens einen Teil der Software in dem System.Ein dritter Aspekt der vorliegenden Offenbarung betrifft ein System, das dafür ausgelegt ist, die Verfahren der vorliegenden Offenbarung auszuführen.A first aspect of the present disclosure relates to a computer-implemented method for detecting intrusion into a system, comprising recording memory usage information upon execution of at least a portion of software of the system; checking whether the memory usage information deviates from a reference memory usage information predetermined for the at least part of the software; and evaluating the software as tampered with if the verification is positive.A second aspect of the present disclosure relates to a computer-implemented method for recording and storing reference memory usage information for software in a system, comprising recording reference memory usage information upon execution of at least a portion of the software and storing reference memory usage information for the at least a portion of the software in the system. A third aspect of the present disclosure relates to a system configured to perform the methods of the present disclosure.

Description

Stand der TechnikState of the art

Systeme, insbesondere eingebettete Systeme, können sicherheitsrelevant sein und sollten gegen Eindringen abgesichert sein. Eingebettete Systeme können Hardware wie z.B. einen elektronischen Rechner und Software umfassen, die beide in einem technischen Kontext eingebunden („eingebettet“) sind. Eingebettete Systeme können - vermöge Hardware und/oder Software - zum Beispiel dafür ausgelegt sein, ein weiteres technisches System wie z.B. ein Fahrzeug oder z.B. eine Motorsteuerung des Fahrzeugs zu überwachen, zu steuern und/oder zu regeln. Wird Eindringen in ein System nicht erkannt, kann das System und ggf. das weitere technische System in unerwünschter und/oder unzulässiger Art manipuliert werden.Systems, especially embedded systems, can be security relevant and should be secured against intrusion. Embedded systems may include hardware, such as an electronic calculator, and software, both of which are incorporated (“embedded”) in a technical context. Embedded systems can be designed - by means of hardware and/or software - for example to monitor, control and/or regulate another technical system such as a vehicle or an engine control of the vehicle. If intrusion into a system is not detected, the system and possibly the further technical system can be manipulated in an undesirable and/or impermissible manner.

Die zunehmende Anzahl von elektronischen Steuereinheiten in (mechatronischen) Systemen sowie die zunehmende Digitalisierung oder Interoperabilität von elektronischen Steuereinheiten kann zu immer mehr Schnittstellen des Systems (z.B. eine Multimedia-Schnittstelle im Fahrzeug) und dadurch zu einer immer größer werdenden Angriffsfläche für mögliches Eindringen führen. Um Eindringen zu erkennen und möglichst zu verhindern, werden Eindringenserkennungssysteme (englisch: intrusion detection systems, IDS) entwickelt.The increasing number of electronic control units in (mechatronic) systems as well as the increasing digitization or interoperability of electronic control units can lead to more and more interfaces of the system (e.g. a multimedia interface in the vehicle) and thus to an ever-increasing attack surface for possible intrusion. Intrusion detection systems (IDS) are being developed to detect and, if possible, prevent intrusion.

Eingebettete Systeme, insbesondere elektronische Steuereinheiten, können restriktiv ausgelegt sein. Zum Beispiel kann die Funktionalität eingebetteter Systeme nach Spezifikationen und/oder Normen bestimmt oder zertifiziert sein. Im Gegensatz zu z.B. Systemen wie Mehrzweckcomputern mit universellen Betriebssystemen kann die Funktionalität eingebetteter Systeme durch eine (kleinere) Vielzahl von Routinen implementiert werden. Eine Methode, ein Eindringen in das System zu erkennen, kann dann zum Beispiel umfassen, den Stromverbrauch und/oder dessen zeitlichen Verlauf beim Ausführen einer Routine aufzuzeichnen und mit einem Referenzstromverbrauch bzw. Referenzverlauf zu vergleichen. Abweichungen in einem solchen Vergleich können darauf hindeuten, dass die Routine (in der Zwischenzeit) manipuliert wurde. Somit kann Eindringen in das System erkannt und entsprechende Maßnahmen eingeleitet werden. Die Messung des Stroms während der Ausführung von Routinen erfordert allerdings eine dafür ausgelegte zusätzliche Hardware und ist daher mit Zusatzkosten verbunden.Embedded systems, especially electronic control units, can be designed restrictively. For example, the functionality of embedded systems can be determined or certified according to specifications and/or standards. In contrast to e.g. systems such as general-purpose computers with general-purpose operating systems, the functionality of embedded systems can be implemented by a (smaller) variety of routines. A method for detecting an intrusion into the system can then include, for example, recording the power consumption and/or its time profile when a routine is executed and comparing it with a reference power consumption or reference profile. Deviations in such a comparison may indicate that the routine has been tampered with (in the meantime). Intrusion into the system can thus be detected and appropriate measures initiated. However, measuring the current during the execution of routines requires dedicated additional hardware and is therefore associated with additional costs.

Offenbarung der ErfindungDisclosure of Invention

Ein erster allgemeiner Aspekt der vorliegenden Offenbarung betrifft ein computer-implementiertes Verfahren zur Erkennung von Eindringen in ein System. Das Verfahren umfasst Aufzeichnen einer Speicherbenutzungsinformation bei Ausführung mindestens eines Teils einer Software des Systems. Das Verfahren umfasst weiterhin Prüfen, ob die Speicherbenutzungsinformation von einer für den mindestens einen Teil der Software vorbestimmten Referenzspeicherbenutzungsinformation abweicht. Das Verfahren umfasst weiterhin Bewerten der Software als manipuliert, wenn das Prüfen positiv ausfällt. Das Verfahren kann Einleiten mindestens einer Maßnahme umfassen, wenn die Software als manipuliert bewertet worden ist.A first general aspect of the present disclosure relates to a computer-implemented method for detecting intrusion into a system. The method includes recording memory usage information upon execution of at least a portion of software of the system. The method further comprises checking whether the memory usage information deviates from a reference memory usage information predetermined for the at least part of the software. The method further includes evaluating the software as tampered with if the testing is positive. The method may include initiating at least one action if the software has been determined to be tampered with.

Ein zweiter allgemeiner Aspekt der vorliegenden Offenbarung betrifft ein computer-implementiertes Verfahren zur Aufzeichnung und Speicherung von einer Referenzspeicherbenutzungsinformation für Software in dem System. Das Verfahren umfasst Aufzeichnen einer Referenzspeicherbenutzungsinformation bei Ausführung mindestens eines Teils der Software. Das Verfahren umfasst weiterhin Speichern der Referenzspeicherbenutzungsinformation für den mindestens einen Teil der Software in dem System.A second general aspect of the present disclosure relates to a computer-implemented method for recording and storing reference memory usage information for software in the system. The method includes recording reference memory usage information upon execution of at least a portion of the software. The method further includes storing the reference memory usage information for the at least a portion of the software in the system.

Die vorbestimmte Referenzspeicherbenutzungsinformation für den mindestens einen Teil der Software im Verfahren zur Erkennung von Eindringen in das System nach dem ersten allgemeinen Aspekt (oder einer Ausführungsform davon) kann nach dem Verfahren zur Aufzeichnung und Speicherung der Referenzspeicherbenutzungsinformation für Software in dem System nach dem zweiten allgemeinen Aspekt (oder einer Ausführungsform davon) erzeugt werden. Ein dritter allgemeiner Aspekt der vorliegenden Offenbarung betrifft ein System, das dafür ausgelegt ist, das computer-implementierte Verfahren zur Erkennung von Eindringen in das System nach dem ersten allgemeinen Aspekt (oder einer Ausführungsform davon) und/oder das computer-implementierte Verfahren zur Aufzeichnung und Speicherung der Referenzspeicherbenutzungsinformation für Software in dem System nach dem zweiten allgemeinen Aspekt (oder einer Ausführungsform davon) auszuführen.The predetermined reference memory usage information for the at least part of the software in the method for detecting intrusion into the system according to the first general aspect (or an embodiment thereof) may be according to the method for recording and storing the reference memory usage information for software in the system according to the second general aspect (or an embodiment thereof). A third general aspect of the present disclosure relates to a system arranged to use the computer-implemented method for detecting system intrusion of the first general aspect (or an embodiment thereof) and/or the computer-implemented method for recording and storage of reference memory usage information for software in the system according to the second general aspect (or an embodiment thereof).

Ein vierter allgemeiner Aspekt der vorliegenden Offenbarung betrifft ein Computer-Programm, das dafür ausgelegt ist das computer-implementierte Verfahren zur Erkennung von Eindringen in das System nach dem ersten allgemeinen Aspekt (oder einer Ausführungsform davon) und/oder das computer-implementierte Verfahren zur Aufzeichnung und Speicherung der Referenzspeicherbenutzungsinformation für Software in dem System nach dem zweiten allgemeinen Aspekt (oder einer Ausführungsform davon) auszuführen. Ein fünfter allgemeiner Aspekt der vorliegenden Offenbarung betrifft ein computer-lesbares Medium oder Signal, das das Computer-Programm nach dem vierten allgemeinen Aspekt speichert und/oder enthält.A fourth general aspect of the present disclosure relates to a computer program arranged for the computer-implemented method for detecting system intrusion according to the first general aspect (or an embodiment thereof) and/or the computer-implemented method for recording and storing reference memory usage information for software in the system according to the second general aspect (or an embodiment thereof). A fifth general aspect of the present disclosure relates to a computer-readable medium or signal carrying the computer stores and/or contains a program according to the fourth general aspect.

Ein sechster allgemeiner Aspekt der vorliegenden Offenbarung betrifft ein Computersystem, das dafür ausgelegt ist, das Computer-Programm nach dem vierten allgemeinen Aspekt auszuführen.A sixth general aspect of the present disclosure relates to a computer system configured to execute the computer program according to the fourth general aspect.

Die in dieser Offenbarung vorgeschlagenen Verfahren sind auf die Erkennung von Eindringen in das System gerichtet. Wird ein Eindringen erkannt, kann mindestens eine (Gegen)maßnahme eingeleitet werden, die zum Beispiel darauf gerichtet ist, das Eindringen zu verhindern und/oder eine übergeordnete elektronische Steuereinheit zu informieren.The methods proposed in this disclosure are directed to detecting intrusions into the system. If an intrusion is detected, at least one (counter)measure can be initiated, which is aimed, for example, at preventing the intrusion and/or informing a superordinate electronic control unit.

Die Verfahren können für restriktiv ausgelegte Systeme besonders vorteilhaft sein. Ein restriktiv ausgelegtes System kann zum Beispiel ein eingebettetes System (mit Software) sein, wobei die Funktionalität und/oder deren Implementierung (strengen) Regeln unterliegen. Diese Regeln können zum Beispiel durch eine Spezifikation und/oder eine Norm vorgegeben sein. Eine Regel kann zum Beispiel sein, dass Speicher nicht dynamisch alloziert werden darf (z.B. via malloc in C). In diesem Fall werden zum Beispiel fixe Speicheradressen in den Programmiercode der Software geschrieben („hardcoding“). Weiterhin kann die Software zum Beispiel eine (kleinere) Vielzahl von wohl-definierten Routinen umfassen. Der Fokus auf restriktiv ausgelegte Systeme kann eine nur unwesentliche Einschränkung darstellen, da gerade sicherheitsrelevante Systeme häufig restriktiv ausgelegt sind.The methods can be particularly advantageous for restrictively designed systems. A restrictively designed system can, for example, be an embedded system (with software), where the functionality and/or its implementation are subject to (strict) rules. These rules can be specified, for example, by a specification and/or a standard. A rule can be, for example, that memory must not be allocated dynamically (e.g. via malloc in C). In this case, for example, fixed memory addresses are written into the programming code of the software ("hardcoding"). Furthermore, the software can, for example, comprise a (smaller) number of well-defined routines. The focus on restrictively designed systems can only represent an insignificant limitation, since security-relevant systems in particular are often restrictively designed.

Das Prüfen, ob die Speicherbenutzungsinformation von einer für den mindestens einen Teil der Software (z.B. für eine Routine der Software) vorbestimmten Referenzspeicherbenutzungsinformation abweicht, umfasst einen Vergleich der bei Ausführung des mindestens einen Teils der Software aufgezeichneten Speicherbenutzungsinformation mit der für den mindestens einen Teil der Software vorbestimmten (zuvor ebenfalls z.B. unter Standardbedingungen aufgezeichneten) Referenzspeicherbenutzungsinformation. Dadurch kann bei Ausführung des mindestens einen Teils der Software geprüft werden, ob der mindestens eine Teil der Software dem für die Software vorgesehenen Teil entspricht oder ob er z.B. durch fremden (Programmier)code manipuliert wurde. Die Erkennung von Eindringen kann sehr genau und somit verlässlich sein. Dadurch kann die Sicherheit des Systems verbessert werden. Weiterhin kann die Erkennung von Eindringen in dem System selbst erfolgen (englisch: „host-based“) und hängt z.B. nicht von anderen mit dem System in Verbindung stehenden Systemen und/oder einem Netzwerk ab.Checking whether the memory usage information differs from reference memory usage information predetermined for the at least part of the software (e.g. for a routine of the software) includes a comparison of the memory usage information recorded when the at least part of the software is executed with that for the at least part of the software predetermined reference memory usage information (previously also recorded e.g. under standard conditions). As a result, when the at least one part of the software is executed, it can be checked whether the at least one part of the software corresponds to the part intended for the software or whether it has been manipulated, for example, by external (programming) code. Intrusion detection can be very accurate and therefore reliable. This can improve the security of the system. Furthermore, the detection of intrusions can take place in the system itself (“host-based”) and does not depend, for example, on other systems connected to the system and/or a network.

Im Gegensatz zu einer im Stand der Technik bekannten Erkennung von Eindringen auf Basis des Stromverbrauchs und/oder dessen Verlaufs, die im System auf einer zusätzlichen Sensorik-Hardware für die Strommessung basiert, erfordern die in dieser Offenbarung vorgeschlagenen Verfahren nicht notwendigerweise eine zusätzliche Hardware im System. Das Aufzeichnen (englisch auch: logging) der Speicherbenutzungsinformation bei Ausführung des mindestens einen Teils der Software des Systems und/oder das Aufzeichnen der dazugehörigen Referenzspeicherbenutzungsinformation können nämlich ausschließlich in der Software implementiert werden. Eine Softwareänderung kann kostengünstiger als eine Hardware-Erweiterung sein.In contrast to a prior art detection of intrusion based on current consumption and/or its history, which is based on additional sensor hardware for the current measurement in the system, the methods proposed in this disclosure do not necessarily require additional hardware in the system . The recording (also: logging) of the memory usage information when executing at least part of the software of the system and/or the recording of the associated reference memory usage information can be implemented exclusively in the software. A software change can be more cost-effective than a hardware upgrade.

Weiterhin kann ein System (z.B. eine elektronische Steuereinheit in einem Fahrzeugfeld) auch nachträglich - zum Beispiel durch eine Aktualisierung der Software und ohne Hardware-Erweiterung - derart angepasst werden, dass die in dieser Offenbarung vorgeschlagenen Verfahren in dem System zur Anwendung gebracht werden können. Dadurch können Systeme auch nachträglich gegen Eindringen abgesichert werden.Furthermore, a system (e.g. an electronic control unit in a vehicle field) can also be adapted subsequently - for example by updating the software and without hardware expansion - in such a way that the methods proposed in this disclosure can be used in the system. This means that systems can also be secured against intrusion at a later date.

Beim Aufzeichnen der Speicherbenutzungsinformation/Referenzspeicherbenutzungsinformation und/oder beim Prüfen, ob die Speicherbenutzungsinformation von einer für den mindestens einen Teil der Software vorbestimmten Referenzspeicherbenutzungsinformation abweicht, kann der Rechenaufwand und/oder der Speicherbedarf gezielt eingestellt werden. Zum Beispiel können der Rechenaufwand und der Speicherbedarf sowohl beim Aufzeichnen als auch beim Vergleichen dadurch reduziert werden, dass jeweils nicht die kompletten Speicheradressen aufgezeichnet und/oder verglichen werden, sondern stattdessen nur bestimmte Bits der Speicheradressen aufgezeichnet und/oder verglichen werden. Weitere Möglichkeiten werden in der detaillierten Beschreibung offenbart. Eine Reduzierung des Rechenaufwands durch solche Möglichkeiten kann prinzipiell mit einer geringeren Genauigkeit des Vergleichs von Speicherbenutzungsinformation und Referenzspeicherbenutzungsinformation und somit mit einer geringeren Genauigkeit der Erkennung von Eindringen einhergehen. Allerdings wird durch solche Möglichkeiten nicht notwendigerweise die Genauigkeit der Erkennung beeinträchtigt. Insbesondere in restriktiv ausgelegten Systemen können die Speicherbenutzungsinformation und die Referenzspeicherbenutzungsinformation eine für den Vergleich große Redundanz aufweisen, die reduziert werden kann, ohne die Genauigkeit der Erkennung von Eindringen wesentlich zu beeinträchtigen. Ein Fehler (falsch-positiv oder falschnegativ) beim Erkennen von Eindringen kann dann zum Beispiel sehr unwahrscheinlich sein. In jedem Fall kann je nach Software oder je nach Routine der Software ein Optimum zwischen Effizienz und Genauigkeit gezielt (gesucht und) eingestellt werden.When recording the memory use information/reference memory use information and/or when checking whether the memory use information deviates from reference memory use information predetermined for the at least part of the software, the computing effort and/or the memory requirements can be adjusted in a targeted manner. For example, the computing effort and the memory requirements can be reduced both when recording and when comparing by not recording and/or comparing the complete memory addresses, but instead only recording and/or comparing specific bits of the memory addresses. Further possibilities are disclosed in the detailed description. In principle, a reduction in the computing effort through such possibilities can be accompanied by a lower accuracy of the comparison of memory use information and reference memory use information and thus with a lower accuracy of the detection of intrusions. However, such possibilities do not necessarily affect the accuracy of the recognition. In particular in systems designed to be restrictive, the memory usage information and the reference memory usage information can have a high level of redundancy for the comparison, which can be reduced without significantly impairing the accuracy of the intrusion detection. An error (false positive or false negative) when detecting intrusion, for example, can then be very unlikely. In any case, you can depending on the software or depending on the routine of the software, an optimum between efficiency and accuracy can be (searched for and) set.

Für das Prüfen, ob die Speicherbenutzungsinformation von einer für den mindestens einen Teil der Software vorbestimmten Referenzspeicherbenutzungsinformation abweicht, kann es vorteilhaft sein, wenn die Speicheradressen in der Speicherbenutzungsinformation und der Referenzspeicherbenutzungsinformation jeweils eine absolute Bedeutung haben. Andererseits kann eine absolute Bedeutung entbehrlich sein, wenn zum Beispiel relative Unterschiede der Speicheradressen im zeitlichen Verlauf verglichen werden.For checking whether the memory usage information deviates from reference memory usage information predetermined for the at least part of the software, it can be advantageous if the memory addresses in the memory usage information and the reference memory usage information each have an absolute meaning. On the other hand, an absolute meaning can be dispensable if, for example, relative differences in the memory addresses are compared over time.

Figurenlistecharacter list

  • 1 illustriert schematisch ein computer-implementiertes Verfahren zur Erkennung von Eindringen in ein System. 1 Figure 12 schematically illustrates a computer-implemented method for detecting intrusion into a system.
  • 2 illustriert schematisch ein computer-implementiertes Verfahren zur Aufzeichnung und Speicherung von einer Referenzspeicherbenutzungsinformation für Software einem System. 2 Figure 12 schematically illustrates a computer-implemented method for recording and storing reference memory usage information for software in a system.
  • 3 illustriert schematisch eine Ausführungsform des computer-implementierten Verfahrens zur Erkennung von Eindringen in ein System. 3 Figure 12 schematically illustrates an embodiment of the computer-implemented method for detecting intrusion into a system.
  • 4 illustriert schematisch ein System, das dafür ausgelegt ist, die computer-implementierten Verfahren dieser Offenbarung auszuführen. 4 FIG. 12 schematically illustrates a system configured to perform the computer-implemented methods of this disclosure.
  • 5 visualisiert eine beispielhafte Softwarespur als Beispiel für eine Speicherbenutzungsinformation. 5 visualizes an example software track as an example of memory usage information.

Detaillierte BeschreibungDetailed description

Die in dieser Offenbarung vorgeschlagenen Verfahren sind auf die Erkennung von Eindringen in das System 300 gerichtet.The methods proposed in this disclosure are directed to detecting intrusions into the system 300 .

Das System 300 kann ein technisches System sein. Zum Beispiel kann das System ein eingebettetes System sein. Das eingebettete System kann Hardware wie z.B. einen elektronischen Rechner (Computer) und (implementierte) Software umfassen, die beide in einem technischen Kontext eingebunden („eingebettet“) sind. Das eingebettete System kann - vermöge Hardware und/oder Software - zumindest dafür ausgelegt sein, ein weiteres technisches System zu überwachen, zu steuern und/oder zu regeln. Alternativ oder zusätzlich kann das eingebettete System dafür ausgelegt sein, Daten und/oder Signale zu empfangen. Alternativ oder zusätzlich kann das eingebettete System dafür ausgelegt sein, Daten und/oder Signale zu verarbeiten. Alternativ oder zusätzlich kann das eingebettete System dafür ausgelegt sein, Daten und/oder Signale zu senden.The system 300 can be a technical system. For example, the system can be an embedded system. The embedded system may include hardware such as an electronic calculator (computer) and (implemented) software, both of which are incorporated (“embedded”) in a technical context. By means of hardware and/or software, the embedded system can at least be designed to monitor, control and/or regulate another technical system. Alternatively or additionally, the embedded system can be designed to receive data and/or signals. Alternatively or additionally, the embedded system can be designed to process data and/or signals. Alternatively or additionally, the embedded system can be designed to send data and/or signals.

Das (weitere) technische System kann zum Beispiel ein mechatronisches System sein. Das (weitere) technische System kann zum Beispiel ein Fahrzeug oder ein technisches (Sub)system innerhalb des Fahrzeugs (z.B. eine Motorsteuerung) sein. Alternativ oder zusätzlich kann das (weitere) technische System ein Roboter oder ein technisches (Sub)system innerhalb des Roboters sein. Alternativ oder zusätzlich kann das (weitere) technische System eine Industrieanlage oder ein technisches (Sub)system innerhalb der Industrieanlage sein. Alternativ oder zusätzlich kann das (weitere) technische System ein technisches System von vernetzten und/oder fernsteuerbaren Geräten wie z.B. ein Smart Home (z.B. Thermosteuerung) sein.The (additional) technical system can be a mechatronic system, for example. The (further) technical system can, for example, be a vehicle or a technical (sub)system within the vehicle (e.g. an engine control). Alternatively or additionally, the (further) technical system can be a robot or a technical (sub)system within the robot. Alternatively or additionally, the (further) technical system can be an industrial plant or a technical (sub)system within the industrial plant. Alternatively or additionally, the (further) technical system can be a technical system of networked and/or remotely controllable devices such as a smart home (e.g. thermal control).

Das System und/oder dessen Software können zum Beispiel restriktiv ausgelegt sein. Zum Beispiel kann das System und/oder dessen Software durch eine Spezifikation und/oder eine Norm eingeschränkt sein. Dadurch kann zum Beispiel verhindert werden, dass die Software des Systems um beliebige Applikationen, Funktionalitäten und/oder Schnittstellen erweitert werden kann. Weiterhin kann die Software zum Beispiel eine (kleinere) Vielzahl von wohl-definierten Routinen umfassen. Die Restriktivität des Systems 300 kann die Erkennung von Eindringen nach den in dieser Offenbarung vorgeschlagenen Verfahren 100, 200 verbessern.For example, the system and/or its software may be designed to be restrictive. For example, the system and/or its software may be restricted by a specification and/or standard. This can prevent, for example, the system software from being able to be expanded by any applications, functionalities and/or interfaces. Furthermore, the software can, for example, comprise a (smaller) number of well-defined routines. The restrictiveness of the system 300 may improve intrusion detection according to the methods 100, 200 proposed in this disclosure.

Offenbart wird ein computer-implementiertes Verfahren 100 zur Erkennung von Eindringen in ein System 300.A computer-implemented method 100 for detecting intrusion into a system 300 is disclosed.

Das Verfahren 100, schematisch dargestellt in 1, umfasst Aufzeichnen 110 einer Speicherbenutzungsinformation bei Ausführung (d.h. während der Ausführung) mindestens eines Teils einer Software des Systems 300. Der mindestens eine Teil der Software kann zum Beispiel eine Routine der Software sein. Die Software (und optional das System 300) kann dafür ausgelegt sein, die Speicherbenutzungsinformation bei Ausführung des mindestens einen Teils der Software aufzuzeichnen 110. Gegebenenfalls kann ein System nachträglich zumindest durch Softwareänderung für das Aufzeichnen 110 der Speicherbenutzungsinformation angepasst werden. Eine Hardware-Erweiterung ist dabei nicht notwendigerweise erforderlich. Die Speicherbenutzungsinformation kann eine Zeitreihe von Daten umfassen.The method 100, shown schematically in 1 12, comprises recording 110 memory usage information upon execution (ie, during execution) of at least a portion of software of the system 300. The at least a portion of the software may be, for example, a routine of the software. The software (and optionally the system 300) can be designed to record 110 the memory usage information when the at least part of the software is executed. A hardware extension is not necessarily required. The memory usage information may include a time series of data.

Das Verfahren 100 umfasst weiterhin Prüfen 120, ob die Speicherbenutzungsinformation von einer für den mindestens einen Teil der Software vorbestimmten Referenzspeicherbenutzungsinformation abweicht. Das Prüfen 120 kann (anders als in 1 und 3 dargestellt) bereits während des Aufzeichnens 110 zumindest auf Basis der bereits aufgezeichneten 110 Daten für die Speicherbenutzungsinformation erfolgen. In der Tat kann das Prüfen 120 im Wesentlichen (d.h. mit kleinem Zeitverzug) parallel zum Aufzeichnen 110 erfolgen. Wird ein Eindringen erkannt, kann umso schneller eingegriffen werden, je geringer der Zeitverzug ist.The method 100 further comprises checking 120 whether the memory usage information deviates from a reference memory usage information predetermined for the at least part of the software. Checking 120 can (unlike in 1 and 3 shown) already take place during the recording 110 at least on the basis of the already recorded 110 data for the memory usage information. In fact, checking 120 can occur substantially (ie, with a small time delay) in parallel with recording 110 . If an intrusion is detected, the shorter the time delay, the quicker action can be taken.

Das Verfahren 100 umfasst weiterhin Bewerten 130 der Software als manipuliert, wenn das Prüfen 120 positiv ausfällt, d.h. wenn die Speicherbenutzungsinformation von einer für den mindestens einen Teil der Software vorbestimmten Referenzspeicherbenutzungsinformation abweicht. Wird die Software als manipuliert bewertet 130, kann ein Eindringen in das System 300 erkannt werden.The method 100 further comprises assessing 130 the software as manipulated if the verification 120 is positive, i.e. if the memory usage information deviates from a reference memory usage information predetermined for the at least part of the software. If the software is evaluated as tampered with 130, a breach into the system 300 can be detected.

Das Verfahren 100 kann weiterhin Einleiten 140 mindestens einer Maßnahme umfassen, wenn die Software als manipuliert bewertet 130 worden ist. Die mindestens eine Maßnahme kann zum Beispiel dafür ausgelegt sein, das Eindringen in das System 300 zu verhindern oder zu stoppen. Dazu kann zum Beispiel die kann die verbleibende Ausführung des mindestens einen Teils der Software gestoppt werden. Alternativ oder zusätzlich kann die mindestens eine Maßnahme zum Beispiel dafür ausgelegt sein, erkanntes Eindringen an eine übergeordnete elektronische Steuereinheit und/oder ein Cloud-Backend (zur weiteren Prüfung) zu übermitteln.The method 100 may further include initiating 140 at least one action if the software has been assessed 130 as tampered with. The at least one measure may be designed to prevent or stop intrusion into the system 300, for example. For this purpose, for example, the remaining execution of the at least part of the software can be stopped. Alternatively or additionally, the at least one measure can be designed, for example, to transmit detected intrusions to a higher-level electronic control unit and/or a cloud backend (for further testing).

Das Verfahren 100 kann weiterhin Bewerten 150 der Software als nicht manipuliert umfassen, wenn das Prüfen 120 negativ ausfällt. In diesem Fall liegt mit großer Wahrscheinlichkeit kein Eindringen in das System vor.The method 100 may further include evaluating 150 the software as not tampered with if the verification 120 fails. In this case, there is a high probability of no intrusion into the system.

Die Speicherbenutzungsinformation kann von der für den mindestens einen Teil der Software vorbestimmten Referenzspeicherbenutzungsinformation abweichen, wenn die Speicherbenutzungsinformation und die für den mindestens einen Teil der Software vorbestimmten Referenzspeicherbenutzungsinformation ein vorbestimmtes Kriterium erfüllen. Das vorbestimmte Kriterium kann derart ausgelegt sein, dass geringfügige Abweichungen zwischen der Speicherbenutzungsinformation und der dazugehörigen Referenzspeicherbenutzungsinformation nicht als Abweichungen bewertet werden.The memory usage information can deviate from the reference memory usage information predetermined for the at least part of the software if the memory usage information and the reference memory usage information predetermined for the at least part of the software meet a predetermined criterion. The predetermined criterion can be designed in such a way that slight discrepancies between the memory use information and the associated reference memory use information are not evaluated as discrepancies.

Zum Beispiel können die Speicherbenutzungsinformation SBI und die dazugehörige Referenzspeicherbenutzungsinformation RSBI jeweils ein mathematisches Objekt in ein und demselben normierten Vektorraum sein. SBI und RSBI können zum Beispiel Zeitreihen gleicher Länge und gleicher Zeitabstände in einem von den Speicheradressen aufgespannten Vektorraum sein. Das vorbestimmte Kriterium kann dann zum Beispiel die Ungleichung | S B I R S B I | > δ

Figure DE102021210328A1_0001
umfassen, d.h. SBI kann von RSBI abweichen, wenn eine Norm der Differenz von SBI und RSBI (in dem normierten Vektorraum) größer als δ ist. δ >_ 0 ist hier ein Maß dafür, wie sehr SBI und RSBI voneinander abweichen müssen, um eine Abweichung festzustellen. Im Falle, dass SBI = A und RSBI = A' jeweils laufende Mittelwerte A, A' sind, kann das vorbestimmte Kriterium zum Beispiel die Ungleichung | A A ' | > δ
Figure DE102021210328A1_0002
umfassen. Im Falle, SBI = T und RSBI = T' Softwarespuren T, T' sind, kann das vorbestimmte Kriterium zum Beispiel die Ungleichung i = 1 n | T i T i ' | > δ
Figure DE102021210328A1_0003
umfassen, wobei Ti, Ti' Koordinaten der Softwarespuren T, T und n die Länge der Softwarespuren T, T sein können.For example, the memory usage information SBI and the associated reference memory usage information RSBI can each be a mathematical object in one and the same normalized vector space. SBI and RSBI can, for example, be time series of the same length and the same time intervals in a vector space spanned by the memory addresses. The predetermined criterion can then, for example, be the inequality | S B I R S B I | > δ
Figure DE102021210328A1_0001
ie SBI may deviate from RSBI if a norm of the difference of SBI and RSBI (in the normed vector space) is greater than δ. δ >_ 0 is a measure of how much the SBI and RSBI must differ from each other in order to detect a deviation. For example, in case SBI = A and RSBI = A' are respectively running averages A, A', the predetermined criterion can be the inequality | A A ' | > δ
Figure DE102021210328A1_0002
include. For example, in case SBI = T and RSBI = T' are software traces T, T', the predetermined criterion can be the inequality i = 1 n | T i T i ' | > δ
Figure DE102021210328A1_0003
include, where T i , T i 'coordinates of the software tracks T, T and n the length of the software tracks T, T can be.

Offenbart wird weiterhin ein computer-implementiertes Verfahren 200 zur Aufzeichnung und Speicherung von einer Referenzspeicherbenutzungsinformation für Software in dem System 300. Das Verfahren 200 ist darauf gerichtet, die Referenzspeicherbenutzungsinformation als Vergleichsmaßstab für das Verfahren 100 zur Erkennung von Eindringen in das System z.B. unter Standardbedingungen, bei denen Eindringen ausgeschlossen ist, aufzuzeichnen und zu speichern. Das Verfahren 200 kann zum Beispiel bei der initialen Einrichtung (englisch: set-up) des Systems 300 und/oder bei einer Reinitialisierung zum Beispiel nach einer Softwareaktualisierung durchgeführt werden. Das Verfahren 200 ist schematisch in 2 illustriert.A computer-implemented method 200 for recording and storing reference memory usage information for software in the system 300 is also disclosed which intrusion is excluded, to record and store. The method 200 can be carried out, for example, during the initial set-up of the system 300 and/or during a reinitialization, for example after a software update. The method 200 is shown schematically in 2 illustrated.

Das Verfahren 200 umfasst Aufzeichnen 210 einer Referenzspeicherbenutzungsinformation bei Ausführung (d.h. während der Ausführung) mindestens eines Teils der Software. Das Verfahren 200 kann Ausführen des mindestens einen Teils der Software umfassen. Das Vorgehen beim Aufzeichnen 210 der Referenzspeicherbenutzungsinformation kann dem Vorgehen beim Aufzeichnen 110 der Speicherbenutzungsinformation im Verfahren 100 entsprechen. Dadurch können die Speicherbenutzungsinformation und die Referenzspeicherbenutzungsinformation vergleichbarer sein.The method 200 includes recording 210 reference memory usage information upon execution (i.e., during execution) of at least a portion of the software. The method 200 may include executing the at least a portion of the software. The procedure for recording 210 the reference memory usage information can correspond to the procedure for recording 110 the memory usage information in the method 100 . This allows the memory usage information and the reference memory usage information to be more comparable.

Das Verfahren 200 umfasst weiterhin Speichern 220 der Referenzspeicherbenutzungsinformation für den mindestens einen Teil der Software in dem System 300. Das Speichern 220 kann (anders als in 2 und 3 dargestellt) bereits während des Aufzeichnens 210 zumindest auf Basis der bereits aufgezeichneten 210 Daten für die Referenzspeicherbenutzungsinformation erfolgen. In der Tat kann das Speichern 220 im Wesentlichen (d.h. mit kleinem Zeitverzug) parallel zum Aufzeichnen 210 erfolgen. Das Speichern 220 der Referenzspeicherbenutzungsinformation kann zum Beispiel in einem Speicher des Systems, insbesondere in einem nicht-volatilen Speicher des Systems 300 (in 4 nicht dargestellt), erfolgen. Bei besonderen Sicherheitsanforderungen kann die Referenzspeicherbenutzungsinformation zum Beispiel in einen Festwertspeicher (englisch: read-only memory) gespeichert werden.The method 200 further includes storing 220 the reference storage usage information tion for the at least a portion of the software in the system 300. The storing 220 may (unlike in 2 and 3 shown) already take place during the recording 210 at least on the basis of the already recorded 210 data for the reference memory usage information. In fact, the storing 220 can occur essentially (ie with a small time delay) in parallel with the recording 210 . The storage 220 of the reference memory usage information can be, for example, in a memory of the system, in particular in a non-volatile memory of the system 300 (in 4 not shown), take place. In the case of special security requirements, the reference memory usage information can be stored, for example, in a read-only memory.

Die vorbestimmte Referenzspeicherbenutzungsinformation für den mindestens einen Teil der Software im Verfahren 100 zur Erkennung von Eindringen in das System 300 kann nach dem Verfahren 200 zur Aufzeichnung und Speicherung der Referenzspeicherbenutzungsinformation für Software in dem System 300 erzeugt und/oder angepasst werden. Eine Anpassung kann zum Beispiel nach einer softwareaktualisierungsbedingten Reinitialisierung notwendig werden. Die Verknüpfung der Verfahren 100, 200 ist schematisch in 3 dargestellt.The predetermined reference memory usage information for the at least a portion of the software in the method 100 for detecting intrusions into the system 300 may be generated and/or adjusted after the method 200 for recording and storing the reference memory usage information for software in the system 300. An adjustment may be necessary, for example, after a software update-related reinitialization. The linking of the methods 100, 200 is shown schematically in 3 shown.

Die Speicherbenutzungsinformation für den mindestens einen Teil der Software kann zumindest eine Zeitreihe von Speicheradressen in einem Speicher des Systems 300 umfassen, die bei Ausführung des mindestens einen Teil der Software ausgeführt, gelesen und/oder beschrieben werden. Alternativ oder zusätzlich kann die Referenzspeicherbenutzungsinformation für den mindestens einen Teil der Software zumindest eine Zeitreihe von Speicheradressen in einem Speicher des Systems 300 umfassenThe memory usage information for the at least a portion of the software may include at least a time series of memory addresses in a memory of the system 300 that are executed, read, and/or written when the at least a portion of the software is executed. Alternatively or additionally, the reference memory usage information for the at least a portion of the software may include at least one time series of memory addresses in a memory of the system 300

Die Speicherbenutzungsinformation für den mindestens einen Teil der Software kann eine Softwarespur sein. Alternativ oder zusätzlich kann die Referenzspeicherbenutzungsinformation für den mindestens einen Teil der Software eine Softwarespur sein.The memory usage information for the at least a portion of the software may be a software track. Alternatively or additionally, the reference storage usage information for the at least part of the software can be a software track.

Alternativ oder zusätzlich kann die Speicherbenutzungsinformation für den mindestens einen Teil der Software einen laufenden Mittelwert einer Softwarespur umfassen (oder ein laufender Mittelwert der Softwarespur sein). Alternativ oder zusätzlich kann die Referenzspeicherbenutzungsinformation für den mindestens einen Teil der Software einen laufenden Mittelwert einer Softwarespur umfassen (oder ein laufender Mittelwert der Softwarespur sein). Der laufende Mittelwert der Softwarespur kann zum Beispiel auf einem Hamming-Gewicht von Speicheradressen basieren. Das Hamming-Gewicht kann äquivalent zur Hamming-Distanz von Speicheradressen jeweils zur Null-Speicheradresse sein. Bei binärer Darstellung von Speicheradressen ist das Hamming-Gewicht äquivalent zur Bitsumme. Laufende Mittelwerte können vorteilhaft sein, um den Speicherbedarf und/oder den Rechenaufwand (z.B. beim Prüfen 120) zu reduzieren.Alternatively or additionally, the memory usage information for the at least a portion of the software may include (or be a running average of the software track) a running average of a software track. Alternatively or additionally, the reference memory usage information for the at least a portion of the software may include (or be a running average of the software track) a running average of a software track. For example, the software track running average may be based on a Hamming weight of memory addresses. The Hamming weight can be equivalent to the Hamming distance of each memory address from the zero memory address. When representing memory addresses in binary, the Hamming weight is equivalent to the bit sum. Running averages may be beneficial to reduce memory requirements and/or computational effort (e.g., in testing 120).

Alternativ oder zusätzlich kann die Speicherbenutzungsinformation für den mindestens einen Teil der Software eine Softwarespur umfassen (oder sein), die auf eine vorbestimmte Auswahl von Bits oder Bytes der Speicheradressen eingeschränkt ist. Alternativ oder zusätzlich kann die Referenzspeicherbenutzungsinformation für den mindestens einen Teil der Software eine Softwarespur umfassen (oder sein), die auf eine vorbestimmte Auswahl von Bits oder Bytes der Speicheradressen eingeschränkt ist. Die vorbestimmte Auswahl der Bits kann zum Beispiel die bits 0, 2, 8, 10 und 24 von 32-bit Speicheradressen umfassen. In einem anderen Beispiel kann die vorbestimmte Auswahl z.B. die Bytes 0 und 3 von 32-bit Speicheradressen umfassen. Es kann auch nur ein Bit oder nur ein Byte ausgewählt werden. Es kann vorteilhaft sein, charakteristische Bits/Bytes der Speicheradressen in der vorbestimmten Auswahl zu berücksichtigen. Durch eine (nicht-triviale) vorbestimmte Auswahl der Bits oder Bytes der Speicheradressen kann zum Beispiel Redundanz in der Speicherbenutzungsinformation und/oder der Referenzspeicherbenutzungsinformation reduziert werden. Durch die (nicht-triviale) vorbestimmte Auswahl der Bits oder Bytes der Speicheradressen kann der Speicherbedarf und/oder der Rechenaufwand (z.B. bereits beim Aufzeichnen 110, 210) reduziert werden. Zudem kann durch sie Rauschen reduziert werden.Alternatively or additionally, the memory usage information for the at least part of the software may include (or be) a software track that is restricted to a predetermined selection of bits or bytes of the memory addresses. Alternatively or additionally, the reference memory usage information for the at least a portion of the software may include (or be) a software track that is restricted to a predetermined selection of bits or bytes of the memory addresses. The predetermined selection of bits may include, for example, bits 0, 2, 8, 10, and 24 of 32-bit memory addresses. For example, in another example, the predetermined selection may include bytes 0 and 3 of 32-bit memory addresses. Only one bit or only one byte can also be selected. It can be advantageous to consider characteristic bits/bytes of the memory addresses in the predetermined selection. For example, redundancy in the memory usage information and/or the reference memory usage information can be reduced by a (non-trivial) predetermined selection of the bits or bytes of the memory addresses. The (non-trivial) predetermined selection of the bits or bytes of the memory addresses can reduce the memory requirements and/or the computing effort (e.g. already during recording 110, 210). They can also reduce noise.

Eine Softwarespur kann zumindest eine Zeitreihe von Speicheradressen in einem Speicher des Systems 300 umfassen, die bei Ausführung des mindestens einen Teil der Software ausgeführt werden. Alternativ oder zusätzlich kann die Softwarespur (oder eine weitere Softwarespur) zumindest eine Zeitreihe von Speicheradressen in dem Speicher des Systems 300 umfassen, die bei Ausführung des mindestens einen Teil der Software gelesen werden. Alternativ oder zusätzlich kann die (weitere) Softwarespur (oder noch eine weitere Softwarespur) zumindest eine Zeitreihe von Speicheradressen in dem Speicher des Systems 300 umfassen, die bei Ausführung des mindestens einen Teil der Software beschrieben werden. Die Speicheradressen können zum Beispiel numerisch durch eine Bit- oder Bytefolge (z.B. 0x717000) ausgedrückt werden. Indem zum Beispiel die Softwarespur nur Speicheradressen für Schreibzugriffe (oder nur Speicheradressen für Lesezugriffe) umfasst, kann erneut der Speicherbedarf und/oder der Rechenaufwand (z.B. bereits beim Aufzeichnen 110, 210) reduziert werden. Die Werte der Zeitreihe von Speicheradressen können zum Beispiel um ein Attribut aus „Anweisung“, „Lesen" und „Schreiben“ erweitert werden. In graphischen Darstellungen können Speicheradressen für Anweisungen zum Beispiel als schwarze Punkte (über der Zeit) dargestellt werden. Alternativ oder zusätzlich können in graphischen Darstellungen Speicheradressen, die bei Ausführung gelesen worden sind, zum Beispiel als grüne Punkte (über der Zeit) dargestellt werden. Alternativ oder zusätzlich können in graphischen Darstellungen Speicheradressen, die bei Ausführung beschrieben worden sind, zum Beispiel als rote Punkte (über der Zeit) dargestellt werden.A software trace may include at least one time series of memory addresses in a memory of the system 300 that are executed when the at least a portion of the software is executed. Alternatively or additionally, the software track (or another software track) may include at least one time series of memory addresses in the memory of the system 300 that are read upon execution of the at least part of the software. Alternatively or additionally, the (further) software track (or yet another software track) can comprise at least one time series of memory addresses in the memory of the system 300, which are written to when the at least part of the software is executed. For example, the memory addresses can be expressed numerically by a bit or byte sequence (eg, 0x717000). If, for example, the software track only includes memory addresses for write access (or only memory addresses for read access), the memory requirement and/or the computing effort (e.g. already when recording 110, 210). The values of the time series of memory addresses can, for example, be extended by an attribute from "Instruction", "Read" and "Write". In graphic representations, memory addresses for instructions can be shown, for example, as black dots (over time). Alternatively or additionally memory addresses that have been read during execution can be represented in graphs, for example as green dots (above the time).Alternatively or additionally, memory addresses that have been written to during execution can be represented in graphs, for example as red dots (above the time) are displayed.

Die Softwarespur kann - muss aber nicht - eine Zeitreihe von allen Speicheradressen umfassen, die bei Ausführung des mindestens einen Teils der Software ausgeführt, gelesen und/oder beschrieben werden. Eine beispielhafte Softwarespur ist in 5 visualisiert. Dargestellt sind die Speicheradressen, die Anweisungen enthalten, die bei der Ausführung des mindestens einen Teils der Software zu einem jeweiligen Zeitpunkt ausgeführt worden sind. Weiterhin dargestellt sind die Speicheradressen, die bei der Ausführung des mindestens einen Teils der Software zu einem jeweiligen Zeitpunkt gelesen worden sind (hier allerdings ebenfalls in schwarz).The software track can - but does not have to - include a time series of all memory addresses that are executed, read and/or written when the at least part of the software is executed. An example software track is in 5 visualized. Shown are the memory addresses that contain instructions that have been executed in the execution of the at least part of the software at a given point in time. Also shown are the memory addresses that have been read during the execution of the at least part of the software at a particular point in time (here, however, also in black).

Das Aufzeichnen 110 der Speicherbenutzungsinformation bei Ausführung des mindestens einen Teils der Software des Systems kann zum Beispiel auf eine vorbestimmte Auswahl von Anweisungen (z.B. nur Methodenaufrufe oder bestimmte Methodenaufrufe) eingeschränkt werden. Alternativ oder zusätzlich kann das Aufzeichnen 210 der Referenzspeicherbenutzungsinformation bei Ausführung des mindestens einen Teils der Software zum Beispiel auf eine vorbestimmte Auswahl von Anweisungen (z.B. nur Methodenaufrufe oder bestimmte Methodenaufrufe) eingeschränkt werden. Dadurch kann weiterhin der Speicherbedarf und/oder der Rechenaufwand reduziert werden.For example, the recording 110 of memory usage information upon execution of the at least a portion of the system's software may be restricted to a predetermined set of instructions (e.g., only method calls or specific method calls). Alternatively or additionally, the recording 210 of the reference memory usage information when executing the at least part of the software can be restricted to a predetermined selection of instructions (e.g. only method calls or specific method calls), for example. As a result, the memory requirement and/or the computing effort can be further reduced.

Alternativ oder zusätzlich kann zum Beispiel das Aufzeichnen 110 der Speicherbenutzungsinformation bei Ausführung des mindestens einen Teils der Software des Systems auf eine vorbestimmte Auswahl von Speicheradressen und/oder von Speicheradressenbereiche (z.B. spezifische Speicheradressenbereiche für Peripheriegeräte) eingeschränkt werden. Alternativ oder zusätzlich kann zum Beispiel das Aufzeichnen 210 der Referenzspeicherbenutzungsinformation bei Ausführung des mindestens einen Teils der Software auf eine vorbestimmte Auswahl von Speicheradressen und/oder von Speicheradressenbereiche (z.B. spezifische Speicheradressenbereiche für Peripheriegeräte) eingeschränkt werden. Dadurch kann weiterhin der Speicherbedarf und/oder der Rechenaufwand reduziert werden.Alternatively or additionally, for example the recording 110 of the memory usage information when executing the at least part of the software of the system can be restricted to a predetermined selection of memory addresses and/or memory address ranges (e.g. specific memory address ranges for peripheral devices). Alternatively or additionally, for example the recording 210 of the reference memory usage information when executing the at least part of the software can be limited to a predetermined selection of memory addresses and/or memory address ranges (e.g. specific memory address ranges for peripheral devices). As a result, the memory requirement and/or the computing effort can be further reduced.

Ein geringerer Speicherbedarf der Speicherbenutzungsinformation und/oder der Referenzspeicherbenutzungsinformation kann vorteilhafterweise auch zu einem geringeren Rechenaufwand beim Aufzeichnen 110, 210 und/oder beim Prüfen 120, ob die Speicherbenutzungsinformation von einer für den mindestens einen Teil der Software vorbestimmten Referenzspeicherbenutzungsinformation abweicht, führen. Für den Vergleich beim Prüfen 120 kann es sich als vorteilhaft erweisen, wenn die Speicherbenutzungsinformation für den mindestens einen Teil der Software und die Referenzspeicherbenutzungsinformation für den mindestens einen Teil der Software zumindest für diesen mindestens einen Teil der Software von gleicher Art, d.h. z.B. mathematische Objekte in ein und demselben Raum, sind.A lower memory requirement for the memory usage information and/or the reference memory usage information can advantageously also result in less computing effort when recording 110, 210 and/or when checking 120 whether the memory usage information deviates from reference memory usage information predetermined for the at least part of the software. For the comparison during testing 120, it may prove advantageous if the memory usage information for the at least part of the software and the reference memory usage information for the at least part of the software are of the same type, i.e. e.g. mathematical objects, at least for this at least part of the software in one and the same space.

Die Speicherbenutzungsinformation für den mindestens einen Teil der Software kann mindestens eine speicherbenutzungsunabhängige Information umfassen. Alternativ oder zusätzlich kann die Referenzspeicherbenutzungsinformation für den mindestens einen Teil der Software (ebenfalls) mindestens eine speicherbenutzungsunabhängige Information umfassen. Die speicherbenutzungsunabhängige Information kann dafür ausgelegt/geeignet sein, Eindringen in das System verlässlicher und somit besser zu erkennen. Das Prüfen 120, ob die Speicherbenutzungsinformation von der für den mindestens einen Teil der Software vorbestimmten Referenzspeicherbenutzungsinformation abweicht, (oder das vorbestimmte Kriterium) kann weiterhin Analysieren der speicherbenutzungsunabhängigen Information in der Speicherbenutzungsinformation und/oder der Referenzspeicherbenutzungsinformation umfassen.The memory usage information for the at least a portion of the software may include at least one piece of memory usage independent information. As an alternative or in addition, the reference memory use information for the at least one part of the software can (likewise) include at least one piece of memory use-independent information. The memory use-independent information can be designed/suitable for detecting intrusions into the system more reliably and thus better. Checking 120 whether the memory usage information deviates from the reference memory usage information predetermined for the at least part of the software (or the predetermined criterion) may further comprise analyzing the memory usage-independent information in the memory usage information and/or the reference memory usage information.

Die mindestens eine speicherbenutzungsunabhängige Information kann zum Beispiel eine verstrichene Echtzeit für die Ausführung des mindestens einen Teils der Software umfassen. Alternativ oder zusätzlich kann die mindestens eine speicherbenutzungsunabhängige Information mindestens einen Statuswert für ein vorbestimmtes Register eines Prozessors des Systems umfassen. Alternativ oder zusätzlich kann die mindestens eine speicherbenutzungsunabhängige Information Speicherinhalt für mindestens eine vorbestimmte Speicheradresse des Speichers des Systems 300 umfassen. Alternativ oder zusätzlich kann die mindestens eine speicherbenutzungsunabhängige Information mindestens ein Datum, optional mindestens ein Statuswert, eines vorbestimmten Peripheriegeräts umfassen. Alternativ oder zusätzlich kann die mindestens eine speicherbenutzungsunabhängige Information eintreffende Netzwerkdaten aus einem Netzwerk, in das das System 300 integriert ist, umfassen. Alternativ oder zusätzlich kann die mindestens eine speicherbenutzungsunabhängige Information mindestens eine Betriebssysteminformation (für ein Betriebssystem des Systems 300) umfassen. Die mindestens eine Betriebssysteminformation kann zum Beispiel ein Statuswert für das System, offene Dateihandles, Anzahl laufender Prozesse, Anzahl offener Ports und/oder vieles mehr umfassen.The at least one memory usage independent piece of information may include, for example, an elapsed real time for the execution of the at least a portion of the software. Alternatively or additionally, the at least one memory use-independent information can include at least one status value for a predetermined register of a processor of the system. Alternatively or additionally, the at least one piece of memory use-independent information can include memory content for at least one predetermined memory address of the memory of the system 300. As an alternative or in addition, the at least one item of information that is independent of memory use can include at least one date, optionally at least one status value, of a predetermined peripheral device. Alternatively or additionally, the at least one piece of memory-use-independent information can include incoming network data from a network in which the system 300 is integrated. Alterna Alternatively or additionally, the at least one piece of memory use-independent information may include at least one item of operating system information (for an operating system of the system 300). The at least one piece of operating system information can include, for example, a status value for the system, open file handles, number of running processes, number of open ports and/or much more.

Offenbart wird weiterhin ein System 300, das dafür ausgelegt ist, das computer-implementierte Verfahren 100 zur Erkennung von Eindringen in das System 300 auszuführen. Das System 300 kann somit nach dem computer-implementierten Verfahren 100 zur Erkennung von Eindringen in das System 300 gegen Eindringen abgesichert sein. Alternativ oder zusätzlich kann das System 300 weiterhin dafür ausgelegt sein, das computer-implementierte Verfahren 200 zur Aufzeichnung und Speicherung der Referenzspeicherbenutzungsinformation für Software in dem System 300 auszuführen. Das System 300 kann somit (auch) nach dem computer-implementierten Verfahren 200 zur Aufzeichnung und Speicherung von einer Referenzspeicherbenutzungsinformation für Software in dem System 300 gegen Eindringen abgesichert sein. Das System 300 ist schematisch in 4 dargestellt. Das System 300 kann mindestens einen Speicher umfassen. Das System 300 kann zum Beispiel einen Arbeitsspeicher umfassen, der zum Beispiel ein volatiler Speicher sein kann. Die Speicheradressen der Speicherbenutzungsinformation bzw. der Referenzspeicherbenutzungsinformation können sich auf Speicheradressen des Arbeitsspeichers beziehen. Alternativ oder zusätzlich kann das System 300 einen nicht-volatilen Speicher umfassen, der zum Beispiel für das Speichern der Referenzspeicherbenutzungsinformation des mindestens einen Teils der Software genutzt werden kann.A system 300 configured to perform the computer-implemented method 100 for detecting intrusion into the system 300 is further disclosed. The system 300 can thus be secured against intrusion according to the computer-implemented method 100 for detecting intrusions into the system 300 . Alternatively or additionally, the system 300 may be further configured to perform the computer-implemented method 200 for recording and storing reference memory usage information for software in the system 300 . The system 300 can thus (also) be secured against intrusion according to the computer-implemented method 200 for recording and storing reference memory usage information for software in the system 300 . The system 300 is shown schematically in 4 shown. The system 300 may include at least one memory. For example, the system 300 may include memory, which may be, for example, volatile memory. The memory addresses of the memory usage information or the reference memory usage information can relate to memory addresses of the main memory. Alternatively or additionally, the system 300 may include non-volatile memory that may be used, for example, for storing reference memory usage information of the at least a portion of the software.

Offenbart wird weiterhin ein Computer-Programm, das dafür ausgelegt ist, das computer-implementierte Verfahren 100 zur Erkennung von Eindringen in das System 300 auszuführen. Alternativ oder zusätzlich kann das Computer-Programm (oder ein weiteres Computer-Programm) dafür ausgelegt sein, das computer-implementierte Verfahren 200 zur Aufzeichnung und Speicherung der Referenzspeicherbenutzungsinformation für Software in dem System 300 auszuführen. Das Computer-Programm (und/oder das weitere Computer-Programm) kann z.B. in interpretierbarer oder in kompilierter Form vorliegen. Es kann (auch in Teilen) zur Ausführung z.B. als Bit- oder Byte-Folge in den RAM eines Steuergeräts oder Computer geladen werden.A computer program configured to execute the computer-implemented method 100 for detecting intrusion into the system 300 is also disclosed. Alternatively or additionally, the computer program (or another computer program) may be configured to execute the computer-implemented method 200 for recording and storing the reference memory usage information for software in the system 300. The computer program (and/or the further computer program) can be in an interpretable or in a compiled form, for example. It can (also in parts) be loaded into the RAM of a control unit or computer for execution, e.g. as a bit or byte sequence.

Offenbart wird weiterhin ein computer-lesbares Medium oder Signal, das das Computer-Programm (und/oder das weitere Computer-Programm) speichert und/oder enthält. Das Medium kann z.B. eines von RAM, ROM, EPROM, HDD, SDD, ... umfassen, auf/in dem das Signal gespeichert wird.Also disclosed is a computer-readable medium or signal storing and/or containing the computer program (and/or the further computer program). For example, the medium may comprise one of RAM, ROM, EPROM, HDD, SDD, ... on which the signal is stored.

Offenbart wird weiterhin ein Computersystem, das dafür ausgelegt ist, das Computer-Programm (und/oder das weitere Computer-Programm) auszuführen. Das Computer-System kann das System 300 sein. Das Computersystem kann insbesondere mindestens einen Prozessor und mindestens einen Arbeitsspeicher (z.B. RAM, ...) umfassen. Weiterhin kann das Computersystem einen Speicher (z.B. HDD, SDD, ...) umfassen. Das Computersystem einen Server in einem Netzwerk (z.B. Internet, ...) umfassen.A computer system designed to execute the computer program (and/or the further computer program) is also disclosed. The computer system may be system 300. In particular, the computer system can include at least one processor and at least one main memory (e.g. RAM, ...). Furthermore, the computer system can include a memory (e.g. HDD, SDD, ...). The computer system includes a server in a network (e.g. Internet, ...).

Claims (14)

Computer-implementiertes Verfahren (100) zur Erkennung von Eindringen in ein System (300), umfassend: - Aufzeichnen (110) einer Speicherbenutzungsinformation bei Ausführung mindestens eines Teils einer Software des Systems (300); - Prüfen (120), ob die Speicherbenutzungsinformation von einer für den mindestens einen Teil der Software vorbestimmten Referenzspeicherbenutzungsinformation abweicht; - Bewerten (130) der Software als manipuliert, wenn das Prüfen (120) positiv ausfällt.A computer-implemented method (100) for detecting intrusion into a system (300), comprising: - recording (110) memory usage information upon execution of at least a portion of software of the system (300); - checking (120) whether the memory usage information deviates from reference memory usage information predetermined for the at least part of the software; - evaluating (130) the software as manipulated if the checking (120) is positive. Verfahren (100) nach Anspruch 1, umfassend: - Einleiten (140) mindestens einer Maßnahme, wenn die Software als manipuliert bewertet (130) worden ist.Method (100) according to claim 1 , comprising: - initiating (140) at least one action if the software has been evaluated as manipulated (130). Verfahren (100) nach Anspruch 1 oder 2, wobei der mindestens eine Teil der Software des Systems (300) eine Routine der Software ist.Method (100) according to claim 1 or 2 , wherein the at least a portion of the software of the system (300) is a routine of the software. Verfahren (100) nach einem der vorhergehenden Ansprüche, wobei die Speicherbenutzungsinformation von der für den mindestens einen Teil der Software vorbestimmten Referenzspeicherbenutzungsinformation abweicht, wenn die Speicherbenutzungsinformation und die für den mindestens einen Teil der Software vorbestimmten Referenzspeicherbenutzungsinformation ein vorbestimmtes Kriterium erfüllen.The method (100) of any preceding claim, wherein the memory usage information differs from the reference memory usage information predetermined for the at least some portion of the software if the memory usage information and the reference memory usage information predetermined for the at least some portion of the software meet a predetermined criterion. Verfahren (100) nach einem der vorhergehenden Ansprüche, umfassend: - Bewerten (150) der Software als nicht manipuliert, wenn das Prüfen (120) negativ ausfällt.Method (100) according to any one of the preceding claims, comprising: - evaluate (150) the software as not tampered with if the checking (120) is negative. Computer-implementiertes Verfahren (200) zur Aufzeichnung und Speicherung von einer Referenzspeicherbenutzungsinformation für Software in einem System (300), umfassend: - Aufzeichnen (210) einer Referenzspeicherbenutzungsinformation bei Ausführung mindestens eines Teils der Software; - Speichern (220) der Referenzspeicherbenutzungsinformation für den mindestens einen Teil der Software in dem System (300).A computer-implemented method (200) for recording and storing reference memory usage information for software in a system (300), comprising: - recording (210) reference memory usage information upon execution of at least one part of the software; - storing (220) the reference memory usage information for the at least part of the software in the system (300). Verfahren (100) nach einem der Ansprüche 1 bis 5, wobei die vorbestimmte Referenzspeicherbenutzungsinformation für den mindestens einen Teil der Software nach dem Verfahren (200) zur Aufzeichnung und Speicherung von einer Referenzspeicherbenutzungsinformation für Software in dem System (300) nach Anspruch 6 erzeugt wird.Method (100) according to any one of Claims 1 until 5 , wherein the predetermined reference memory usage information for the at least a portion of the software according to the method (200) of recording and storing reference memory usage information for software in the system (300). claim 6 is produced. Verfahren (100, 200) nach einem der vorhergehenden Ansprüche, wobei die Speicherbenutzungsinformation für den mindestens einen Teil der Software und/oder die Referenzspeicherbenutzungsinformation für den mindestens einen Teil der Software zumindest eine Zeitreihe von Speicheradressen in einem Speicher des Systems (300) umfasst, die bei Ausführung des mindestens einen Teil der Software ausgeführt, gelesen und/oder beschrieben werden.Method (100, 200) according to one of the preceding claims, wherein the memory usage information for the at least part of the software and/or the reference memory usage information for the at least part of the software comprises at least one time series of memory addresses in a memory of the system (300) which executed, read and/or written upon execution of the at least part of the software. Verfahren (100, 200) nach einem der vorhergehenden Ansprüche, wobei die Speicherbenutzungsinformation für den mindestens einen Teil der Software und/oder die Referenzspeicherbenutzungsinformation für den mindestens einen Teil der Software eine Softwarespur ist.A method (100, 200) according to any one of the preceding claims, wherein the memory usage information for the at least part of the software and/or the reference memory usage information for the at least part of the software is a software track. Verfahren (100, 200) nach einem der Ansprüche 1 bis 8, wobei die Speicherbenutzungsinformation für den mindestens einen Teil der Software und/oder die Referenzspeicherbenutzungsinformation für den mindestens einen Teil der Software ein laufender Mittelwert einer Softwarespur ist, optional wobei der laufende Mittelwert auf einem Hamming-Gewicht von Speicheradressen basiert.Method (100, 200) according to any one of Claims 1 until 8th , wherein at least one of the memory usage information for the at least a portion of the software and the reference memory usage information for the at least a portion of the software is a running average of a software track, optionally wherein the running average is based on a Hamming weight of memory addresses. Verfahren (100, 200) nach einem der Ansprüche 1 bis 8, wobei die Speicherbenutzungsinformation für den mindestens einen Teil der Software und/oder die Referenzspeicherbenutzungsinformation für den mindestens einen Teil der Software eine Softwarespur ist, die auf eine vorbestimmte Auswahl von Bits oder Bytes der Speicheradressen eingeschränkt ist.Method (100, 200) according to any one of Claims 1 until 8th , wherein at least one of the memory usage information for the at least a portion of the software and the reference memory usage information for the at least a portion of the software is a software track restricted to a predetermined selection of bits or bytes of the memory addresses. Verfahren (100, 200) nach einem der Ansprüche 9 bis 11, wobei eine Softwarespur zumindest eine Zeitreihe von Speicheradressen in einem Speicher des Systems (300) umfasst, die bei Ausführung des mindestens einen Teil der Software ausgeführt, gelesen und/oder beschrieben werden.Method (100, 200) according to any one of claims 9 until 11 , wherein a software track comprises at least one time series of memory addresses in a memory of the system (300) which are executed, read and/or written when the at least part of the software is executed. Verfahren (100, 200) nach Anspruch 11, wobei die Speicherbenutzungsinformation für den mindestens einen Teil der Software und/oder die Referenzspeicherbenutzungsinformation für den mindestens einen Teil der Software mindestens eine speicherbenutzungsunabhängige Information umfasst, wobei die mindestens eine speicherbenutzungsunabhängige Information eines oder mehreres von: - eine verstrichene Echtzeit für die Ausführung des mindestens einen Teils der Software; - mindestens einen Statuswert für ein vorbestimmtes Register eines Prozessors des Systems (300); - Speicherinhalt für mindestens eine vorbestimmte Speicheradresse des Speichers des Systems (300); - mindestens ein Datum, optional mindestens ein Statuswert, eines vorbestimmten Peripheriegeräts; - eintreffende Netzwerkdaten aus einem Netzwerk, in das das System (300) integriert ist; und/oder - mindestens eine Betriebssysteminformation; umfasst.Method (100, 200) according to claim 11 , wherein the memory usage information for the at least a portion of the software and/or the reference memory usage information for the at least a portion of the software comprises at least one piece of memory usage independent information, wherein the at least one memory usage independent piece of information includes one or more of: - an elapsed real time for the execution of the at least one part of the software; - at least one status value for a predetermined register of a processor of the system (300); - memory content for at least one predetermined memory address of the memory of the system (300); - at least one datum, optionally at least one status value, of a predetermined peripheral device; - Incoming network data from a network in which the system (300) is integrated; and/or - at least one item of operating system information; includes. System (300), das dafür ausgelegt ist: - das computer-implementierte Verfahren (100) zur Erkennung von Eindringen in das System (300) nach einem der Ansprüche 1 bis 5 oder 7 bis 13; und/oder - das computer-implementierte Verfahren (200) zur Aufzeichnung und Speicherung von einer Referenzspeicherbenutzungsinformation für Software in dem System (300) nach Anspruch 6 oder 8 bis 13; auszuführen.A system (300) adapted to: - the computer-implemented method (100) for detecting intrusion into the system (300) according to any one of Claims 1 until 5 or 7 until 13 ; and/or - the computer-implemented method (200) for recording and storing reference memory usage information for software in the system (300). claim 6 or 8th until 13 ; to execute.
DE102021210328.6A 2021-09-17 2021-09-17 MEMORY-USE-BASED DETECTION OF INFRINGEMENTS INTO A SYSTEM Pending DE102021210328A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102021210328.6A DE102021210328A1 (en) 2021-09-17 2021-09-17 MEMORY-USE-BASED DETECTION OF INFRINGEMENTS INTO A SYSTEM
CN202211126606.0A CN115828232A (en) 2021-09-17 2022-09-16 System intrusion identification based on memory utilization

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102021210328.6A DE102021210328A1 (en) 2021-09-17 2021-09-17 MEMORY-USE-BASED DETECTION OF INFRINGEMENTS INTO A SYSTEM

Publications (1)

Publication Number Publication Date
DE102021210328A1 true DE102021210328A1 (en) 2023-03-23

Family

ID=85383893

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021210328.6A Pending DE102021210328A1 (en) 2021-09-17 2021-09-17 MEMORY-USE-BASED DETECTION OF INFRINGEMENTS INTO A SYSTEM

Country Status (2)

Country Link
CN (1) CN115828232A (en)
DE (1) DE102021210328A1 (en)

Also Published As

Publication number Publication date
CN115828232A (en) 2023-03-21

Similar Documents

Publication Publication Date Title
DE102014204834A1 (en) Computer-implemented systems and methods for comparing and associating objects
DE112013002012B4 (en) Method of detecting malware in an operating system kernel
DE102007034168A1 (en) Method and device for measuring actual measured data of a component
DE102013213104A1 (en) Device and method for determining a closed state of a front door or a house window
DE102016107718A1 (en) Reading out error vectors from a memory unit
DE102018222169A1 (en) On-board visual determination of kinematic parameters of a rail vehicle
DE3421737C2 (en) Device for determining an overlap of operands
DE102015104763A1 (en) Display method and electronic device
DE102021210328A1 (en) MEMORY-USE-BASED DETECTION OF INFRINGEMENTS INTO A SYSTEM
CN105046154A (en) Webshell detection method and device
EP3134842B1 (en) Computing device and method for detecting attacks on a technical system based on events of an event sequence
DE102018122115A1 (en) Method for detecting the surroundings of a vehicle
DE102009031872A1 (en) Method and device for automatically searching for documents in a data memory
DE102021114574A1 (en) COMPUTER PROGRAM TRUST ASSURANCE FOR INTERNET OF THINGS (IOT) DEVICES
DE112020004607T5 (en) SECURITY REVIEW OF A UNIVERSAL SERIAL BUS DEVICE
EP1892639B1 (en) Secure program code execution
DE102017204400A1 (en) A method of operating a sensor and method and apparatus for analyzing data of a sensor
DE112020003599T5 (en) TEST DEVICE, TEST PROCEDURE, TEST PROGRAM, TEACHING DEVICE, TRAINING METHOD AND TEACHING PROGRAM
DE112015003759T5 (en) Edit multiple counters based on a single access check
DE102019207365A1 (en) Method and device for providing an operating state of a sensor of a vehicle
DE102017005971A1 (en) Device and method for device-specific detection of value range violations of data values in data processing units
WO2019081243A1 (en) Method and apparatus for improving the robustness of a machine learning system
AT520580B1 (en) Method for integrating at least one monitoring and / or control device of a monitoring and / or automation system having a data interface into a user interface
DE102015203968A1 (en) Device for balancing and self-testing of inertial sensors and methods
DE102021212597A1 (en) MEMORY USAGE-BASED FUZZING