DE102020215199A1 - Verfahren und Vorrichtung zum Prüfen von auf einer Recheneinrichtung ausführbarem Programmcode - Google Patents

Verfahren und Vorrichtung zum Prüfen von auf einer Recheneinrichtung ausführbarem Programmcode Download PDF

Info

Publication number
DE102020215199A1
DE102020215199A1 DE102020215199.7A DE102020215199A DE102020215199A1 DE 102020215199 A1 DE102020215199 A1 DE 102020215199A1 DE 102020215199 A DE102020215199 A DE 102020215199A DE 102020215199 A1 DE102020215199 A1 DE 102020215199A1
Authority
DE
Germany
Prior art keywords
program code
checking
exemplary embodiments
program
further exemplary
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
DE102020215199.7A
Other languages
English (en)
Inventor
Shady Ismail Ahmed Mohamed
Matthias Hartl
Oliver Heilwagen
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 DE102020215199.7A priority Critical patent/DE102020215199A1/de
Publication of DE102020215199A1 publication Critical patent/DE102020215199A1/de
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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Verfahren zum Prüfen von auf einer Recheneinrichtung ausführbarem Programmcode, aufweisend: Erzeugen eines mit einem ersten Programmcode assoziierten Prozesses, Prüfen des ersten Programmcodes.

Description

  • Stand der Technik
  • Die Offenbarung bezieht sich auf ein Verfahren zum Prüfen von auf einer Recheneinrichtung ausführbarem Programmcode.
  • Die Offenbarung bezieht sich ferner auf eine Vorrichtung zum Prüfen von auf einer Recheneinrichtung ausführbarem Programmcode.
  • Offenbarung der Erfindung
  • Beispielhafte Ausführungsformen beziehen sich auf ein Verfahren zum Prüfen von auf einer Recheneinrichtung ausführbarem Programmcode, aufweisend: Erzeugen eines mit einem ersten Programmcode assoziierten Prozesses, Prüfen des ersten Programmcodes.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass der erste Programmcode wenigstens eines der folgenden Elemente aufweist: a) ausführbare Datei, b) Programmbibliothek bzw. einen Teil einer Programmbibliothek.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist: Ausführen des mit dem ersten Programmcode assoziierten Prozesses, wobei beispielsweise das Ausführen a) vor dem Prüfen oder b) nach dem Prüfen oder c) während des Prüfens erfolgt.
  • Bei weiteren beispielhaften Ausführungsformen kann der Prozess beispielsweise erzeugt und zunächst angehalten werden (englisch: „spawn on hold“), wobei dann z.B. das Prüfen des ersten Programmcodes ausgeführt wird. Bei weiteren beispielhaften Ausführungsformen kann dann nach dem Prüfen ggf. der zunächst angehaltene Prozess aktiviert bzw. ausgeführt werden.
  • Bei weiteren beispielhaften Ausführungsformen kann der Prozess beispielsweise erzeugt werden, wobei z.B. das Prüfen des ersten Programmcodes gleichzeitig zu der Ausführung des Prozesses ausgeführt wird.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Prüfen des ersten Programmcodes wenigstens eines der folgenden Elemente aufweist:
    1. a) Bilden einer Prüfsumme, beispielsweise einer CRC-Prüfsumme, b) Bilden eines Hashwerts.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Prüfsumme bzw. der Hashwert mit einer entsprechenden Referenz-Prüfsumme bzw. einem entsprechenden Referenz-Hashwert verglichen wird, wobei bei einer Übereinstimmung einer aktuell gebildeten Prüfsumme z.B. mit der Referenz-Prüfsumme bei weiteren beispielhaften Ausführungsformen darauf geschlossen werden kann, dass der erste Programmcode integer ist, beispielsweise mit einem Referenz-Programmcode übereinstimmt, der für die Bildung der Referenz-Prüfsumme verwendet worden ist.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist: Ermitteln eines Codesegments des mit dem ersten Programmcode assoziierten Prozesses, Prüfen wenigstens eines Teils des Codesegments.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist: Steuern eines Betriebs der Recheneinrichtung basierend auf dem Prüfen. Beispielsweise kann im Falle einer negativen Prüfung, die z.B. auf eine Manipulation bzw. sonstige unerwünschte Veränderung des Programmcodes bezüglich eines Referenz-Programmcodes hindeutet, eine Fehlerreaktion eingeleitet werden.
  • Bei weiteren beispielhaften Ausführungsformen kann die Fehlerreaktion z.B. wenigstens eines der folgenden Elemente aufweisen: a) Beenden des Prozesses, b) Signalisieren eines Fehlers, z.B. an ein Betriebssystem und/oder eine Anwendung bzw. eine externe Einheit, c) Erzeugen eines neuen mit dem ersten Programmcode assoziierten Prozesses.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass der Recheneinrichtung ein Betriebssystem zugeordnet ist, beispielsweise ein unixoides Betriebssystem, beispielsweise Unix oder Linux, und/oder ein zumindest teilweise Portable Operating System Interface (POSIX)-kompatibles Betriebssystem.
  • Weitere beispielhafte Ausführungsformen beziehen sich auf eine Vorrichtung zur Ausführung des Verfahrens gemäß den Ausführungsformen.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung die Recheneinrichtung aufweist.
  • Weitere beispielhafte Ausführungsformen beziehen sich auf ein computerlesbares Speichermedium, umfassend Befehle, die bei der Ausführung durch einen Computer diesen veranlassen, das Verfahren gemäß den Ausführungsformen auszuführen.
  • Weitere beispielhafte Ausführungsformen beziehen sich auf ein Computerprogramm, umfassend Befehle, die bei der Ausführung des Programms durch einen Computer diesen veranlassen, das Verfahren gemäß den Ausführungsformen auszuführen.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Computerprogramm einen Teil eines bzw. des Betriebssystems für die Recheneinrichtung bildet, wobei beispielsweise das Computerprogramm in eine Funktion des Betriebssystems integriert ist, die dazu ausgebildet ist, Prozesse zu erzeugen.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Computerprogramm eine unabhängige bzw. eigenständige Komponente bildet, die z.B. mittels des Betriebssystems ladbar bzw. ausführbar ist.
  • Weitere beispielhafte Ausführungsformen beziehen sich auf ein Datenträgersignal, das das Computerprogramm gemäß den Ausführungsformen überträgt und/oder charakterisiert.
  • Weitere beispielhafte Ausführungsformen beziehen sich auf eine Verwendung des Verfahrens gemäß den Ausführungsformen und/oder der Vorrichtung gemäß den Ausführungsformen und/oder des computerlesbaren Speichermediums gemäß den Ausführungsformen und/oder des Computerprogramms gemäß den Ausführungsformen und/oder des Datenträgersignals gemäß den Ausführungsformen für wenigstens eines der folgenden Elemente: a) Prüfen wenigstens eines Teils des ersten Programmcodes, beispielsweise auf eine Integrität hin und/oder das Vorliegen von beispielsweise unerwünschten Änderungen bzw. Manipulationen, b) dynamisches, also z.B. während einer Ausführung des ersten Programmcodes erfolgendes, Prüfen des wenigstens einen Teils des ersten Programmcodes, c) wiederholtes Prüfen des ersten Programmcodes, beispielsweise während einer Laufzeit des Prozesses, d) Reduzieren einer Startzeit von mittels der Recheneinrichtung ausführbaren Programmen, beispielsweise Anwendungen.
  • Weitere Merkmale, Anwendungsmöglichkeiten und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen der Erfindung, die in den Figuren der Zeichnung dargestellt sind. Dabei bilden alle beschriebenen oder dargestellten Merkmale für sich oder in beliebiger Kombination den Gegenstand der Erfindung, unabhängig von ihrer Zusammenfassung in den Ansprüchen oder deren Rückbeziehung sowie unabhängig von ihrer Formulierung bzw. Darstellung in der Beschreibung bzw. in der Zeichnung.
  • In der Zeichnung zeigt:
    • 1 schematisch ein vereinfachtes Blockdiagramm gemäß beispielhaften Ausführungsformen,
    • 2A schematisch ein vereinfachtes Flussdiagramm von Verfahren gemäß weiteren beispielhaften Ausführungsformen,
    • 2B schematisch ein vereinfachtes Flussdiagramm von Verfahren gemäß weiteren beispielhaften Ausführungsformen,
    • 2C schematisch ein vereinfachtes Flussdiagramm von Verfahren gemäß weiteren beispielhaften Ausführungsformen,
    • 3 schematisch ein vereinfachtes Flussdiagramm von Verfahren gemäß weiteren beispielhaften Ausführungsformen,
    • 4 schematisch ein vereinfachtes Flussdiagramm von Verfahren gemäß weiteren beispielhaften Ausführungsformen,
    • 5 schematisch ein vereinfachtes Diagramm von Verfahren gemäß weiteren beispielhaften Ausführungsformen,
    • 6 schematisch ein vereinfachtes Diagramm von Verfahren gemäß weiteren beispielhaften Ausführungsformen,
    • 7 schematisch ein vereinfachtes Diagramm von Verfahren gemäß weiteren beispielhaften Ausführungsformen,
    • 8 schematisch ein vereinfachtes Blockdiagramm gemäß beispielhaften Ausführungsformen,
    • 9 schematisch ein vereinfachtes Blockdiagramm gemäß beispielhaften Ausführungsformen, und
    • 10 schematisch Aspekte von Verwendungen gemäß weiteren beispielhaften Ausführungsformen.
  • Beispielhafte Ausführungsformen, vgl. 1, 2A, beziehen sich auf ein Verfahren zum Prüfen von auf einer Recheneinrichtung 10 ausführbarem Programmcode, aufweisend: Erzeugen 100 (2A) eines mit einem ersten Programmcode PC1 assoziierten Prozesses P-PC1, Prüfen 104 des ersten Programmcodes PC1.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass der erste Programmcode PC1 (1) wenigstens eines der folgenden Elemente aufweist:
    1. a) ausführbare Datei EXE, b) Programmbibliothek LIB bzw. einen Teil einer Programmbibliothek.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist: Ausführen 108 (2A) des mit dem ersten Programmcode PC1 assoziierten Prozesses P-PC1, wobei beispielsweise das Ausführen a) vor dem Prüfen oder b) nach dem Prüfen (s. 2A) oder c) während des Prüfens erfolgt.
  • 2B zeigt beispielhaft einen Ablauf aufweisend: Erzeugen 100 des Prozesses P-PC1, Ausführen 102 des mit dem ersten Programmcode PC1 assoziierten Prozesses P-PC1, Prüfen 104 des ersten Programmcodes PC1, z.B. während der Ausführung 102 bzw. zumindest teilweise zeitlich überlappend mit der Ausführung 102.
  • Bei weiteren beispielhaften Ausführungsformen, 2C, kann der Prozess P-PC1 beispielsweise erzeugt und zunächst angehalten werden (englisch: „spawn on hold“), vgl. Schritt 100, wobei dann z.B. das Prüfen 104 des ersten Programmcodes PC1 ausgeführt wird. Bei weiteren beispielhaften Ausführungsformen kann dann nach dem Prüfen 104 ggf. der zunächst angehaltene Prozess aktiviert bzw. ausgeführt werden, vgl. Block 106.
  • Bei weiteren beispielhaften Ausführungsformen, 3, ist vorgesehen, dass das Prüfen 104 des ersten Programmcodes PC1 wenigstens eines der folgenden Elemente aufweist: a) Bilden 104a einer Prüfsumme, beispielsweise einer CRC-Prüfsumme, b) Bilden 104b eines Hashwerts.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Prüfsumme bzw. der Hashwert mit einer entsprechenden Referenz-Prüfsumme bzw. einem entsprechenden Referenz-Hashwert verglichen wird, wobei bei einer Übereinstimmung einer aktuell gebildeten Prüfsumme z.B. mit der Referenz-Prüfsumme bei weiteren beispielhaften Ausführungsformen darauf geschlossen werden kann, dass der erste Programmcode integer ist, beispielsweise mit einem Referenz-Programmcode übereinstimmt, der für die Bildung der Referenz-Prüfsumme verwendet worden ist.
  • Bei weiteren beispielhaften Ausführungsformen, 4, ist vorgesehen, dass das Verfahren weiter aufweist: Ermitteln 110 eines Codesegments CS des mit dem ersten Programmcode PC1 assoziierten Prozesses P-PC1, Prüfen 112 wenigstens eines Teils des Codesegments CS.
  • Bei weiteren beispielhaften Ausführungsformen kann das Ermitteln 110 des Codesegments CS beispielsweise wenigstens einen der folgenden Aspekte aufweisen: a) Ermitteln einer Prozessliste, beispielsweise mittels einer Funktion eines Betriebssystems BS (1), b) Ermitteln wenigstens eines Speicherbereichs, der einem interessierenden Prozess z.B. aus der Prozessliste zugeordnet ist, c) Ermitteln des Codesegments CS aus dem wenigstens einen Speicherbereich.
  • Bei weiteren beispielhaften Ausführungsformen kann das Prinzip gemäß den Ausführungsformen auf ausführbare Programme und/oder (Teile von) z.B. geteilten Programmbibliotheken („shared libraries“) angewandt werden.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist: Steuern 114 eines Betriebs der Recheneinrichtung 10 (1) basierend auf dem Prüfen 112. Beispielsweise kann im Falle einer negativen Prüfung, die z.B. auf eine Manipulation bzw. sonstige unerwünschte Veränderung des Programmcodes PC1 bezüglich eines Referenz-Programmcodes hindeutet, eine Fehlerreaktion eingeleitet werden.
  • Bei weiteren beispielhaften Ausführungsformen kann die Fehlerreaktion z.B. wenigstens eines der folgenden Elemente aufweisen: a) Beenden des Prozesses P-PC1, b) Signalisieren eines Fehlers, z.B. an ein bzw. das Betriebssystem BS und/oder eine Anwendung bzw. eine externe Einheit, c) Erzeugen eines neuen mit dem ersten Programmcode assoziierten Prozesses.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass der Recheneinrichtung 10 (1) ein Betriebssystem BS zugeordnet ist, beispielsweise ein unixoides Betriebssystem, beispielsweise Unix oder Linux, und/oder ein zumindest teilweise Portable Operating System Interface (POSIX)-kompatibles Betriebssystem.
  • 5 zeigt schematisch ein vereinfachtes Diagramm gemäß weiteren beispielhaften Ausführungsformen. Block B1 symbolisiert einen flüchtigen Speicher, z.B. Arbeitsspeicher (RAM) der Recheneinrichtung 10 (1), Block B2 symbolisiert einen nichtflüchtigen Speicher, z.B. Flash-Speicher. Block B3 symbolisiert eine Datenbank, die beispielsweise zumindest zeitweise aus dem nichtflüchtigen Speicher B2 ladbar ist, und die z.B. Daten für Verfahren zur Ausführung der Prüfung 104 (z.B. Integritätsprüfung) aufweisen kann.
  • Block B4 symbolisiert eine Einrichtung zur Verwaltung von Prozessen, beispielsweise ausgebildet als ein Computerprogramm zum Erstellen und/oder Beenden von Prozessen, beispielsweise mit Anwendungsprogrammen assoziierten Prozessen. Block B5 symbolisiert eine Einrichtung zum Verwalten von Fehlern, z.B. mit einer Sicherheit (z.B. gegen Angriffe) assoziierten Fehlern. Block B6 symbolisiert ein Prüfen, beispielsweise gemäß den Ausführungsformen, vgl. z.B. auch Block 104 gemäß 2A. Block B7 symbolisiert einen Prozess, beispielsweise einen mit einer Anwendung B8 assoziierten Prozess.
  • Bei weiteren beispielhaften Ausführungsformen erzeugt die Einrichtung B4 einen Prozess B7 basierend auf der Anwendung B8, vgl. die Pfeile a1, a2. Sobald der Prozess B7 erzeugt worden ist, signalisiert die Einrichtung B4 dies bei weiteren beispielhaften Ausführungsformen z.B. der Einrichtung B5, vgl. den Pfeil a3.
  • Bei weiteren beispielhaften Ausführungsformen initiiert die Einrichtung B5 eine Überprüfung B6, vgl. den Pfeil a4. Bei weiteren beispielhaften Ausführungsformen wird hierbei eine Prozessliste gelesen, vgl. den Pfeil a5, und es werden ein oder mehrere Codesegmente in einem dem Prozess B7 zugewiesenen Speicherbereich geprüft, vgl. auch den Block 104 gemäß 2A.
  • Bei weiteren beispielhaften Ausführungsformen können die zu prüfenden Codesegmente z.B. ausführbaren Programmcode und/oder (geteilte) Programmbibliotheken aufweisen.
  • Bei weiteren beispielhaften Ausführungsformen gibt die Überprüfung B6 ein Ergebnis an die Einrichtung B5 zurück, vgl. den Pfeil a6.
  • Bei weiteren beispielhaften Ausführungsformen wird ggf., z.B. bei negativer Überprüfung, eine Fehlerreaktion a7 ausgeführt.
  • Der Doppelpfeil a8 symbolisiert ein optionales Laden und/oder Validieren z.B. von Referenzdaten, z.B. für die Überprüfung B6, 104 gemäß weiteren beispielhaften Ausführungsformen.
  • Bei weiteren beispielhaften Ausführungsformen können die Referenzdaten a8 z. B. auch erwartete Abhängigkeiten der zu überprüfenden Codesegmente und/oder Programmbibliotheken aufweisen, und/oder die genannten Referenz-Prüfsummen bzw. Referenz-Hashwerte.
  • 6 zeigt schematisch ein vereinfachtes Diagramm gemäß weiteren beispielhaften Ausführungsformen, wobei die Elemente B1, B2, B3, B4, B5, a1, a2, a3, a7, a8 gemäß 6 mit den Elementen B1, B2, B3, B4, B5, a1, a2, a3, a7, a8 gemäß 5 korrespondieren. Bei weiteren beispielhaften Ausführungsformen, und im Unterschied zu 5, ist bei 6 die Funktionalität des Überprüfens B6' in die Anwendung B8' bzw. den entsprechenden Prozess B7' integriert, was z.B. eine „interne“ Überprüfung des Prozesses B7' bzw. des mit dem Prozess B7' assoziierten Programmcodes bzw. entsprechender Codesegmente CS ermöglicht. Der Pfeil a5' symbolisiert beispielhaft ein Lesen des Prozesses B7' bzw. von mit dem Prozess B7' assoziierten Daten, beispielsweise durch die vorliegend beispielhaft integrierte Funktionalität B6' des Überprüfens. Der Pfeil a6' symbolisiert die Übermittlung eines Ergebnisses des Überprüfens an die Einrichtung B5.
  • 7 zeigt schematisch ein vereinfachtes Diagramm gemäß weiteren beispielhaften Ausführungsformen. Bei weiteren beispielhaften Ausführungsformen, und im Unterschied zu 5 und 6, ist bei 7 die Funktionalität des Überprüfens B6" in eine Prozessverwaltungsfunktion des Betriebssystems BS (1) integriert. Der Pfeil a5" symbolisiert beispielhaft ein Lesen des Prozesses B7 bzw. von mit dem Prozess B7 assoziierten Daten (z.B. Programmcode und/oder (Teile von) Bibliotheken). Der Pfeil a6" symbolisiert die Übermittlung eines Ergebnisses des Überprüfens an die Einrichtung B5.
  • Bei weiteren beispielhaften Ausführungsformen kann eine z.B. initiale Überprüfung der Funktion bzw. Funktionalität B6, B6', B6" zum Prüfen 104 ( 2A) ausgeführt werden, indem sie zum Bestandteil eines Dateisystems DS ( 1) für das Starten („Booten“) des Betriebssystems BS gemacht wird, wobei das Dateisystem DS für das Booten des Betriebssystems BS bei weiteren beispielhaften Ausführungsformen beispielsweise als komplettes Abbild („image“) überprüft wird.
  • Weitere beispielhafte Ausführungsformen, 8, beziehen sich auf eine Vorrichtung 200 zur Ausführung des Verfahrens gemäß den Ausführungsformen. Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung 200 die Recheneinrichtung 10 gemäß 1 aufweist bzw. repräsentiert. Bei weiteren beispielhaften Ausführungsformen ist die Vorrichtung 200 z.B. als eingebettetes System („embedded system“) ausgebildet.
  • Bei weiteren beispielhaften Ausführungsformen, vgl. 8, ist vorgesehen, dass die Vorrichtung 200 aufweist: eine wenigstens einen (vorliegend z.B. drei) Rechenkern(e) 202a, 202b, 202c aufweisende Recheneinrichtung („Computer“) 202, eine der Recheneinrichtung 202 zugeordnete Speichereinrichtung 204 zur zumindest zeitweisen Speicherung wenigstens eines der folgenden Elemente: a) Daten DAT, b) Computerprogramm PRG, insbesondere zur Ausführung eines Verfahrens gemäß den Ausführungsformen.
  • Bei weiteren beispielhaften Ausführungsformen weist die Speichereinrichtung 204 einen flüchtigen Speicher 204a (z.B. Arbeitsspeicher (RAM)) auf, und/oder einen nichtflüchtigen (NVM-) Speicher 204b (z.B. Flash-EEPROM).
  • Bei weiteren beispielhaften Ausführungsformen weist die Recheneinrichtung 202 wenigstens eines der folgenden Elemente auf bzw. ist als wenigstens eines dieser Elemente ausgebildet: Mikroprozessor (µP), Mikrocontroller (µC), anwendungsspezifischer integrierter Schaltkreis (ASIC), System on Chip (SoC), programmierbarer Logikbaustein (z.B. FPGA, field programmable gate array), oder beliebige Kombinationen hieraus.
  • Weitere beispielhafte Ausführungsformen beziehen sich auf ein computerlesbares Speichermedium SM, umfassend Befehle PRG, die bei der Ausführung durch einen Computer 202 diesen veranlassen, das Verfahren gemäß den Ausführungsformen auszuführen.
  • Weitere beispielhafte Ausführungsformen beziehen sich auf ein Computerprogramm PRG, umfassend Befehle, die bei der Ausführung des Programms durch einen Computer 202 diesen veranlassen, das Verfahren gemäß den Ausführungsformen auszuführen.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Computerprogramm PRG einen Teil eines bzw. des Betriebssystems BS für die Recheneinrichtung 10, 202 bildet, wobei beispielsweise das Computerprogramm PRG in eine Funktion F des Betriebssystems BS integriert ist, die dazu ausgebildet ist, Prozesse zu erzeugen bzw. zu verwalten.
  • Weitere beispielhafte Ausführungsformen beziehen sich auf ein Datenträgersignal DCS, das das Computerprogramm PRG gemäß den Ausführungsformen charakterisiert und/oder überträgt. Das Datenträgersignal DCS ist beispielsweise über eine optionale Datenschnittstelle 206 der Vorrichtung 200 empfangbar.
  • Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Computerprogramm eine unabhängige bzw. eigenständige Komponente bildet, die z.B. mittels des Betriebssystems BS ladbar bzw. ausführbar ist.
  • 9 zeigt beispielhaft eine Verwendung der Vorrichtung 200 in einem Kraftfahrzeug 1, beispielsweise zum Überprüfen eines einem Prozess zugeordneten Programmcodes z.B. eines Steuergeräts des Kraftfahrzeugs.
  • Die Anwendung des Prinzips gemäß den Ausführungsformen ist nicht auf Kraftfahrzeuge begrenzt, sondern kann z.B. auch bei anderen Recheneinrichtungen (z.B. anderer Zielsysteme) verwendet werden.
  • Weitere beispielhafte Ausführungsformen, 10, beziehen sich auf eine Verwendung 300 des Verfahrens gemäß den Ausführungsformen und/oder der Vorrichtung gemäß den Ausführungsformen und/oder des computerlesbaren Speichermediums gemäß den Ausführungsformen und/oder des Computerprogramms gemäß den Ausführungsformen und/oder des Datenträgersignals gemäß den Ausführungsformen für wenigstens eines der folgenden Elemente: a) Prüfen 302 wenigstens eines Teils des ersten Programmcodes PC1, beispielsweise auf eine Integrität hin und/oder das Vorliegen von beispielsweise unerwünschten Änderungen bzw. Manipulationen,
    • b) dynamisches, also z.B. während einer Ausführung des ersten Programmcodes erfolgendes, Prüfen 304 des wenigstens einen Teils des ersten Programmcodes,
    • c) wiederholtes Prüfen 306 des ersten Programmcodes, beispielsweise während einer Laufzeit des Prozesses P-PC1, d) Reduzieren 308 einer Startzeit von mittels der Recheneinrichtung 10, 202 ausführbaren Programmen, beispielsweise Anwendungen.

Claims (13)

  1. Verfahren zum Prüfen von auf einer Recheneinrichtung (10) ausführbarem Programmcode, aufweisend: Erzeugen (100) eines mit einem ersten Programmcode (PC1) assoziierten Prozesses (P-PC1), Prüfen (104) des ersten Programmcodes (PC1).
  2. Verfahren nach Anspruch 1, wobei der erste Programmcode (PC1) wenigstens eines der folgenden Elemente aufweist: a) ausführbare Datei (EXE), b) Programmbibliothek (LIB) bzw. einen Teil einer Programmbibliothek (LIB).
  3. Verfahren nach wenigstens einem der vorstehenden Ansprüche, weiter aufweisend: Ausführen (102; 106) des mit dem ersten Programmcode (PC1) assoziierten Prozesses (P-PC1), wobei beispielsweise das Ausführen (102; 106) a) vor dem Prüfen (104) oder b) nach dem Prüfen (104) oder c) während des Prüfens (104) erfolgt.
  4. Verfahren nach wenigstens einem der vorstehenden Ansprüche, wobei das Prüfen (104) des ersten Programmcodes (PC1) wenigstens eines der folgenden Elemente aufweist: a) Bilden (104a) einer Prüfsumme, beispielsweise einer CRC-Prüfsumme, b) Bilden (104b) eines Hashwerts.
  5. Verfahren nach wenigstens einem der vorstehenden Ansprüche, weiter aufweisend: Ermitteln (110) eines Codesegments (CS) des mit dem ersten Programmcode (PC1) assoziierten Prozesses (P-PC1), Prüfen (112) wenigstens eines Teils des Codesegments (CS).
  6. Verfahren nach wenigstens einem der vorstehenden Ansprüche, weiter aufweisend: Steuern (114) eines Betriebs der Recheneinrichtung (10) basierend auf dem Prüfen (104; 106; 112).
  7. Verfahren nach wenigstens einem der vorstehenden Ansprüche, wobei der Recheneinrichtung (10) ein Betriebssystem (BS) zugeordnet ist, beispielsweise ein unixoides Betriebssystem (BS).
  8. Vorrichtung (200) zur Ausführung des Verfahrens nach wenigstens einem der vorstehenden Ansprüche.
  9. Computerlesbares Speichermedium (SM), umfassend Befehle (PRG), die bei der Ausführung durch einen Computer (202) diesen veranlassen, das Verfahren nach wenigstens einem der Ansprüche 1 bis 7 auszuführen.
  10. Computerprogramm (PRG), umfassend Befehle, die bei der Ausführung des Programms (PRG) durch einen Computer (202) diesen veranlassen, das Verfahren nach wenigstens einem der Ansprüche 1 bis 7 auszuführen.
  11. Computerprogramm (PRG) nach Anspruch 10, wobei das Computerprogramm (PRG) einen Teil eines bzw. des Betriebssystems (BS) für die Recheneinrichtung (202) bildet, wobei beispielsweise das Computerprogramm (PRG) in eine Funktion (F) des Betriebssystems (BS) integriert ist, die dazu ausgebildet ist, Prozesse zu erzeugen.
  12. Datenträgersignal (DCS), das das Computerprogramm (PRG) nach wenigstens einem der Ansprüche 10 bis 11 überträgt und/oder charakterisiert.
  13. Verwendung (300) des Verfahrens nach wenigstens einem der Ansprüche 1 bis 7 und/oder der Vorrichtung (200) nach Anspruch 8 und/oder des computerlesbaren Speichermediums (SM) nach Anspruch 9 und/oder des Computerprogramms (PRG) nach wenigstens einem der Ansprüche 10 bis 11 und/oder des Datenträgersignals (DCS) nach Anspruch 12 für wenigstens eines der folgenden Elemente: a) Prüfen (302) wenigstens eines Teils des ersten Programmcodes (PC1), beispielsweise auf eine Integrität hin und/oder das Vorliegen von beispielsweise unerwünschten Änderungen bzw. Manipulationen, b) dynamisches, also z.B. während einer Ausführung des ersten Programmcodes (PC1) erfolgendes, Prüfen (304) des wenigstens einen Teils des ersten Programmcodes (PC1), c) wiederholtes Prüfen (306) des ersten Programmcodes (PC1), beispielsweise während einer Laufzeit des Prozesses (P-PC1), d) Reduzieren (308) einer Startzeit von mittels der Recheneinrichtung (200) ausführbaren Programmen, beispielsweise Anwendungen.
DE102020215199.7A 2020-12-02 2020-12-02 Verfahren und Vorrichtung zum Prüfen von auf einer Recheneinrichtung ausführbarem Programmcode Pending DE102020215199A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102020215199.7A DE102020215199A1 (de) 2020-12-02 2020-12-02 Verfahren und Vorrichtung zum Prüfen von auf einer Recheneinrichtung ausführbarem Programmcode

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102020215199.7A DE102020215199A1 (de) 2020-12-02 2020-12-02 Verfahren und Vorrichtung zum Prüfen von auf einer Recheneinrichtung ausführbarem Programmcode

Publications (1)

Publication Number Publication Date
DE102020215199A1 true DE102020215199A1 (de) 2022-06-02

Family

ID=81586395

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020215199.7A Pending DE102020215199A1 (de) 2020-12-02 2020-12-02 Verfahren und Vorrichtung zum Prüfen von auf einer Recheneinrichtung ausführbarem Programmcode

Country Status (1)

Country Link
DE (1) DE102020215199A1 (de)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011109426A1 (de) 2011-08-04 2012-12-27 Daimler Ag Verfahren zur Erkennung von Datenänderungen in einem Steuergerät
US20130024727A1 (en) 2011-07-18 2013-01-24 Airbus Operations (S.A.S.) Method for automatically reloading software and a device for automatically reloading software
DE102015210512A1 (de) 2015-06-09 2016-12-15 Robert Bosch Gmbh Verfahren zum Betreiben einer Recheneinheit eines Kraftfahrzeugs bei einem Unfall des Kraftfahrzeugs
US9654499B2 (en) 2014-06-20 2017-05-16 Vencore Labs, Inc. System and Method for mitigating TOC/TOU attacks in a cloud computing enviroment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130024727A1 (en) 2011-07-18 2013-01-24 Airbus Operations (S.A.S.) Method for automatically reloading software and a device for automatically reloading software
DE102011109426A1 (de) 2011-08-04 2012-12-27 Daimler Ag Verfahren zur Erkennung von Datenänderungen in einem Steuergerät
US9654499B2 (en) 2014-06-20 2017-05-16 Vencore Labs, Inc. System and Method for mitigating TOC/TOU attacks in a cloud computing enviroment
DE102015210512A1 (de) 2015-06-09 2016-12-15 Robert Bosch Gmbh Verfahren zum Betreiben einer Recheneinheit eines Kraftfahrzeugs bei einem Unfall des Kraftfahrzeugs

Similar Documents

Publication Publication Date Title
DE102012109615B4 (de) Verwendung eines Manifests zur Präsenzaufzeichnung von gültiger Software und Kalibrierung
DE102014201682A1 (de) Verfahren zur Koexistenz von Software mit verschiedenen Sicherheitsstufen in einem Multicore-Prozessorsystem
DE102012215729A1 (de) System und Verfahren zum Authentisieren mehrerer Dateien unter Verwendung einer getrennten digitalen Signatur
DE112006001744T5 (de) Manipulationsschutz, um Installation von Betriebssystemen und anderer Software zu beschränken
DE19839680B4 (de) Verfahren und Vorrichtung zur Veränderung des Speicherinhalts von Steuergeräten
DE102014116321A1 (de) Update einer Firmware
DE102013213314A1 (de) Hinterlegen mindestens eines berechenbaren Integritätsmesswertes in einem Speicherbereich eines Speichers
EP3811263B1 (de) Kryptografiemodul und betriebsverfahren hierfür
DE102020215199A1 (de) Verfahren und Vorrichtung zum Prüfen von auf einer Recheneinrichtung ausführbarem Programmcode
DE102018217969A1 (de) Recheneinrichtung und Betriebsverfahren hierfür
DE102022128183B3 (de) Verfahren zum Starten einer Datenverarbeitungseinrichtung, Datenverarbeitungseinrichtung und Kraftfahrzeug
DE102019208129B4 (de) Elektronische Steuereinheit
DE102020207863A1 (de) Verfahren zur sicheren Aktualisierung von Steuergeräten
DE102020207614A1 (de) Recheneinrichtung und Betriebsverfahren hierfür
DE102020212988A1 (de) Sicheres Hochfahren eines Computersystems
EP4275138A1 (de) Verfahren zur überprüfung digitaler signaturen, fahrzeug-recheneinheit und fahrzeug
DE102021211591A1 (de) Verfahren und Vorrichtung zum Verarbeiten von Daten
DE102020207861A1 (de) Verfahren zur Durchführung einer abgesicherten Startsequenz eines Steuergeräts
DE112021002282T5 (de) Elektronische steuervorrichtung und aktualisierungsverfahren für steuerungssoftware
DE102022202691A1 (de) Verfahren zur Durchführung einer abgesicherten Startsequenz einer Recheneinheit
DE202014010619U1 (de) Update einer Firmware
EP3072080A1 (de) Verfahren und vorrichtung zum manipulationsschutz einer recheneinrichtung
DE102019220450A1 (de) Vorrichtung mit einer Schnittstelle und Verfahren zum Betreiben einer Vorrichtung mit einer Schnittstelle
DE102021202021A1 (de) Verfahren und Vorrichtung zum Verarbeiten von Daten
DE102021129670A1 (de) Verfahren, Fahrzeugkomponente und Computerprogramm zum Einräumen einer Berechtigung zum Ausführen eines Computerprogramms durch eine Fahrzeugkomponente eines Fahrzeugs

Legal Events

Date Code Title Description
R163 Identified publications notified