DE102017208192A1 - Recheneinheit und Betriebsverfahren für eine Recheneinheit - Google Patents

Recheneinheit und Betriebsverfahren für eine Recheneinheit Download PDF

Info

Publication number
DE102017208192A1
DE102017208192A1 DE102017208192.9A DE102017208192A DE102017208192A1 DE 102017208192 A1 DE102017208192 A1 DE 102017208192A1 DE 102017208192 A DE102017208192 A DE 102017208192A DE 102017208192 A1 DE102017208192 A1 DE 102017208192A1
Authority
DE
Germany
Prior art keywords
execution time
program
program function
arithmetic unit
target system
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
DE102017208192.9A
Other languages
English (en)
Inventor
Heiko Baur
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 DE102017208192.9A priority Critical patent/DE102017208192A1/de
Priority to US15/971,702 priority patent/US10949529B2/en
Publication of DE102017208192A1 publication Critical patent/DE102017208192A1/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/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/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Abstract

Die Erfindung betrifft eine Recheneinheit (100), die dazu ausgebildet ist, wenigstens eine Programmfunktion (PF) eines auf der Recheneinheit (100) ausführbaren Computerprogramms (CP) auszuführen, dadurch gekennzeichnet, dass die Recheneinheit (100) dazu ausgebildet ist, die Ausführungszeit der Programmfunktion (PF) zu ermitteln (200) und mit wenigstens einem Sollwert für die Ausführungszeit der Programmfunktion (PF) zu vergleichen (210).

Description

  • Stand der Technik
  • Die Erfindung betrifft eine Recheneinheit, die dazu ausgebildet ist, wenigstens eine Programmfunktion eines auf der Recheneinheit ausführbaren Computerprogramms auszuführen. Die Erfindung betrifft ferner ein Betriebsverfahren für eine derartige Recheneinheit.
  • Recheneinheiten und Betriebsverfahren der vorstehend genannten Art sind bekannt. Die Programmfunktion des auf der Recheneinheit ausführbaren Computerprogramms kann beispielsweise Teil eines der Recheneinheit zugeordneten Maschinenprogramms sein. Alternativ oder ergänzend ist es möglich, dass Programmfunktionen des auf der Recheneinheit ausführbaren Computerprogramms Bestandteil von Systembibliotheken (libc, „stdio.h“ usw.) oder Standardbibliotheken sind, welche auf bekannten Recheneinheiten beispielsweise zusammen mit einem Betriebssystem oder generell einer Laufzeitumgebung vorinstalliert werden, sodass diese Programmfunktionen bei der Ausbringung neuer Computerprogramme für die Recheneinheit auf dieser nicht gesondert zur Verfügung gestellt werden müssen.
  • Es ist bekannt, dass Angriffe auf bestehende Implementierungen derart möglich sind, dass bestehende Programmfunktionen, die beispielsweise Bestandteil von Systembibliotheken oder Standardbibliotheken sind, gegen manipulierte Programmfunktionen ausgetauscht werden, welche zusätzlich zu den regulären Funktionalitäten der bestehenden Programmfunktionen Schadcode und dergleichen enthalten. Dadurch werden die manipulierten Programmfunktionen gleichsam in eine man-in-the-middle-Angriffsposition versetzt, die es ihnen ermöglicht, Systemaufrufe bzw. Programmfunktionsaufrufe von auf der Recheneinheit ablaufenden Anwendungsprogrammen zu manipulieren und/oder deren Ausgabe bzw. Rückgabewerte an das Anwendungsprogramm zu verändern bzw. zu kopieren und ggf. an einen unbefugten Empfänger zu übermitteln.
  • Offenbarung der Erfindung
  • Demgemäß ist es Aufgabe der vorliegenden Erfindung, eine Recheneinheit der eingangs genannten Art und ein Betriebsverfahren der eingangs genannten Art dahingehend zu verbessern, dass eine gesteigerte Zuverlässigkeit und Sicherheit gegenüber den vorstehend genannten Angriffen gegeben ist.
  • Diese Aufgabe wird bei der Recheneinheit der eingangs genannten Art erfindungsgemäß dadurch gelöst, dass die Recheneinheit dazu ausgebildet ist, die Ausführungszeit der Programmfunktion zu ermitteln und mit wenigstens einem Sollwert für die Ausführungszeit der Programmfunktion zu vergleichen.
  • Erfindungsgemäß ist erkannt worden, dass eine Vielzahl von Programmfunktionen eine im Wesentlichen deterministische, also vorhersagbare, bzw. sogar konstante, Ausführungszeit hat. Dies gilt insbesondere für Programmfunktionen von Standardbibliotheken und sogenannte Systemaufrufe (englisch: system calls), bei denen beispielsweise von einem Betriebssystem zur Verfügung gestellte Funktionalitäten in Form der Programmfunktion nach einem entsprechenden Aufruf durch ein Anwendungsprogramm ausgeführt werden. Insbesondere gilt dies bei sog. eingebetteten Systemen (englisch: embedded system). Erfindungsgemäß kann die Ausführungszeit dieser Programmfunktion ermittelt und mit wenigstens einem Sollwert für die Ausführungszeit verglichen werden. Dies ermöglicht vorteilhaft festzustellen, ob bzw. inwieweit eine tatsächliche Ausführungszeit der betreffenden Programmfunktion von dem Sollwert abweicht, was als Anzeichen für das Vorliegen einer Manipulation bzw. eines Angriffs auf die Recheneinheit bzw der Programmfunktionen bzw. die entsprechende Laufzeitumgebung gewertet werden kann.
  • Bei einer bevorzugten Ausführungsform handelt es sich bei der Ausführungszeit um eine Zeitdifferenz zwischen dem Zeitpunkt des Aufrufs der Programmfunktion und dem Zeitpunkt der Rückkehr aus der aufgerufenen Programmfunktion. Bei einer Ausführungsform kann ein Anwendungsprogramm, das die betreffende Programmfunktion bzw. den Systemaufruf ausführt, diese Zeitdifferenz messen und als tatsächliche Ausführungszeit mit dem Sollwert vergleichen.
  • Bei einer bevorzugten Ausführungsform kann eine Fehlerreaktion von der Recheneinheit ausgeführt werden, wenn die ermittelte Ausführungszeit von dem Sollwert um einen vorgegebenen Differenzwert abweicht, z.B. den Sollwert um den Differenzwert übersteigt. In diesem Fall kann beispielsweise darauf geschlossen werden, dass die aufgerufene Programmfunktion unzulässige bzw. zusätzliche Programmabläufe ausführt. Alternativ oder ergänzend kann eine Fehlerreaktion auch dann eingeleitet werden, wenn die ermittelte Ausführungszeit einen entsprechenden zweiten Sollwert für eine minimale Ausführungszeit um ein vorgebbares Maß unterschreitet. Auch in diesem Fall kann eine Manipulation der vorstehend genannten Art vorliegen.
  • Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die Fehlerreaktion wenigstens einen der folgenden Schritte aufweist: Verarbeiten bzw. Schreiben vorgebbarer Daten, insbesondere dummy-Daten (beispielsweise Daten mit geringem Informationsgehalt bzw. (pseudo-) Zufallsdaten), Benachrichtigen einer anderen Einheit über eine irreguläre Ausführungszeit der Programmfunktion. Dadurch kann einerseits ein wirksamer Angriff auf wertvolle Nutzdaten vereitelt werden und andererseits können durch die andere Einheit beispielsweise Gegenmaßnahmen bzw. eine eingehende Untersuchung der verdächtigen Programmfunktion eingeleitet werden.
  • Bei einer weiteren Ausführungsform ist vorgesehen, dass die Recheneinheit dazu ausgebildet ist, die Programmfunktion mehrmals auszuführen und eine minimale Ausführungszeit und/oder maximale Ausführungszeit und/oder durchschnittliche Ausführungszeit der betreffenden Programmfunktion zu ermitteln. Analog zu den vorstehend genannten Ausführungsformen können auch die minimale Ausführungszeit bzw. die maximale Ausführungszeit bzw. die durchschnittliche Ausführungszeit mit entsprechenden Sollwerten verglichen werden, und bei einer Abweichung von wenigstens einem der möglicherweise mehreren Sollwerte kann eine entsprechende Fehlerreaktion eingeleitet werden.
  • Besonders bevorzugt kann bei weiteren Ausführungsformen eine Programmfunktion, sofern sie mehrmals ausgeführt wird, mit denselben Parametern ausgeführt werden, um sicherzustellen, dass nicht durch die Übergabe unterschiedlicher Parameter bereits unterschiedliche Ausführungszeiten hervorgerufen werden.
  • Bei weiteren Ausführungsformen ist vorstellbar, unterschiedlich große Sollwerte für die Bewertung der tatsächlichen Ausführungszeit vorzusehen, wobei die unterschiedlich großen Sollwerte insbesondere in Abhängigkeit eines Typs der betreffenden Programmfunktion bzw. des betreffenden Systemaufrufs (zum Beispiel Anzahl der Parameter) gewählt werden.
  • Als eine weitere Lösung der Aufgabe der vorliegenden Erfindung ist ein Verfahren zum Betreiben einer Recheneinheit gemäß Patentanspruch 5 angegeben.
  • Weitere Aspekte der Erfindung betreffen ein Verfahren zum Bereitstellen von Programmfunktionen für ein Zielsystem gemäß Patentanspruch 6. Das Verfahren umfasst die Schritte: Bereitstellen einer Programmfunktion eines auf dem Zielsystem ausführbaren Computerprogramms, Ermitteln von eine Ausführungszeit der Programmfunktion auf dem Zielsystem charakterisierenden Informationen, zumindest zeitweises Speichern der die Ausführungszeit der Programmfunktion auf dem Zielsystem charakterisierenden Informationen und/oder hiervon abgeleiteter Informationen.
  • Bei einer Ausführungsform kann ein Ausführen der bereitgestellten Programmfunktion auf einem Referenz-Zielsystem vorgesehen sein, wodurch eine präzise Ermittlung der Ausführungszeit der Programmfunktion ermöglicht ist. Bei weiteren Ausführungsformen kann vorgesehen sein, dass die die Ausführungszeit der Programmfunktion auf dem Zielsystem charakterisierenden Informationen/oder die hiervon abgeleiteten Informationen auf das Zielsystem übertragen werden. Dadurch können die betreffenden Informationen effizient dem Zielsystem bereitgestellt werden, welches die Informationen beispielsweise zur Laufzeit verwenden kann. Insbesondere können die auf diese Weise vorgesehenen Informationen zur Bildung von Sollwerten für den vorstehend genannten Vergleich mit tatsächlichen Ausführungszeiten der Programmfunktionen genutzt werden.
  • Ein weiterer Aspekt der vorliegenden Erfindung ist angegeben durch eine Vorrichtung zum Bereitstellen von Programmfunktionen für ein Zielsystem gemäß Patentanspruch 9.
  • 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 Patentansprü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 Blockdiagramm einer Ausführungsform der erfindungsgemäßen Recheneinheit,
    • 2 schematisch ein vereinfachtes Flussdiagramm einer Ausführungsform des erfindungsgemäßen Betriebsverfahrens für eine Recheneinheit,
    • 3 schematisch ein vereinfachtes Flussdiagramm einer Ausführungsform eines erfindungsgemäßen Verfahrens zum Bereitstellen von Programmfunktionen,
    • 4 schematisch ein Betriebsszenario gemäß einer Ausführungsform,
    • 5 schematisch ein Betriebsszenario gemäß einer weiteren Ausführungsform, und
    • 6 schematisch ein Blockdiagramm einer erfindungsgemäßen Vorrichtung zum Bereitstellen von Programmfunktionen.
  • 1 zeigt schematisch ein Blockdiagramm einer Ausführungsform einer erfindungsgemäßen Recheneinheit 100, der eine Speichereinrichtung 110 zur zumindest zeitweisen Speicherung eines auf der Recheneinheit 100 ausführbaren Computerprogramms CP zugeordnet ist. Das Computerprogramm CP kann ein oder mehrere Programmfunktionen PF aufweisen, von denen vorliegend der Übersichtlichkeit halber nur eine bezeichnet ist. Die Speichereinrichtung kann beispielsweise einen flüchtigen Speicher, beispielsweise einen Arbeitsspeicher (RAM) oder einen nichtflüchtigen Speicher sowie Kombinationen hieraus aufweisen.
  • Bei der Programmfunktion PF kann es sich um eine Programmfunktion PF handeln, die in ein Anwendungsprogramm, beispielsweise das Computerprogramm CP, integriert ist. Beispielsweise kann die Programmfunktion PF zusammen mit dem Anwendungsprogramm bzw. Computerprogramm CP der Recheneinheit 100 z.B. in maschinenlesbarer Form, beispielsweise in Form einer Binärdatei, zur Verfügung gestellt werden.
  • Alternativ oder ergänzend kann es sich bei der Programmfunktion PF auch um eine Programmfunktion einer Standardbibliothek oder einen sogenannten Systemaufruf (system call) einer für den Betrieb der Recheneinheit 100 vorgesehenen Laufzeitumgebung handeln. In diesen Fällen kann die betreffende Programmfunktion beispielsweise auch schon auf der Recheneinheit 100 vorinstalliert sein, beispielsweise als Teil eines Betriebssystems bzw. der Laufzeitumgebung.
  • Erfindungsgemäß ist vorgesehen, dass die Recheneinheit 100 die Ausführungszeit der Programmfunktion PF ermittelt, vergleiche Schritt 200 des Flussdiagramms aus 2, und dass die Recheneinheit 100 (1) die in Schritt 200 ermittelte Ausführungszeit mit wenigstens einem Sollwert für die Ausführungszeit vergleicht, vergleiche Schritt 210 gemäß 2. Dies ermöglicht der Recheneinheit 100 festzustellen, ob die tatsächlich ermittelte Ausführungszeit beispielsweise vergleichsweise lang ist verglichen mit dem Sollwert, woraus auf einen Fehlerfall bzw. einen versuchten Angriff auf die Programmfunktion bzw. die Recheneinheit 100 geschlossen werden kann.
  • Insbesondere kann bei einer weiteren Ausführungsform eine Fehlerreaktion ausgeführt werden, vergleiche den optionalen Schritt 220 gemäß 2, wenn die ermittelte Ausführungszeit den Sollwert um einen vorgegebenen Differenzwert übersteigt. Die Fehlerreaktion 220 kann beispielsweise das Verarbeiten bzw. Schreiben vorgebbarer Dummy-Daten oder Pseudozufallsdaten oder Zufallsdaten zum Gegenstand haben sowie alternativ oder ergänzend ein Benachrichtigen einer anderen Einheit (nicht gezeigt) über die irreguläre Ausführungszeit der Programmfunktion PF. Eine Deaktivierung der Recheneinheit 100 bzw. des Computerprogramms CP kann bei weiteren Ausführungsformen ebenfalls vorgesehen sein, um bei einem erkannten Angriffsversuch das neuerliche Ausführen der ggf. kompromittierten Programmfunktion PF zu verhindern.
  • Bei einer weiteren vorteilhaften Ausführungsform kann die Recheneinheit 100 dazu ausgebildet sein, die Programmfunktion PF (1) mehrmals auszuführen und eine minimale Ausführungszeit und/oder eine maximale Ausführungszeit und/oder eine durchschnittliche Ausführungszeit zu ermitteln, wobei wenigstens einer dieser Werte mit einem entsprechenden Sollwert verglichen werden kann.
  • 4 zeigt schematisch ein Betriebsszenario gemäß einer Ausführungsform. Bezugszeichen 400 bezeichnet eine Laufzeitumgebung, die beispielsweise charakterisiert ist durch einen vorgebbaren Typ der Recheneinheit 100 als Zielsystem für ein Computerprogramm CP, das die Programmfunktion PF (1) bereitstellen bzw. aufrufen können soll, durch ein Betriebssystem und/oder durch Programmbibliotheken, die aufrufbare Programmfunktionen bereitstellen. Basierend auf der Laufzeitumgebung 400 werden ein oder mehrere Messungen der Ausführungszeit der interessierenden Programmfunktion PF ausgeführt, was in 4 durch Block 402 angedeutet ist.
  • Die hierbei erhaltenen Werte für die Ausführungszeit werden bevorzugt in einer Datenbank Db zumindest zeitweise gespeichert. Optional können die hierbei erhaltenen Werte sodann auch an das Zielsystem 100 übertragen werden, vergleiche Pfeil 330 in 4. Bei einer alternativen Ausführungsform können die erhaltenen Werte für die Ausführungszeit auch direkt nach der Messung 402 dem Zielsystem 100 zur Verfügung gestellt werden, vergleiche Pfeil 330'.
  • Die vorstehend genannte Messung 402 kann beispielsweise vorteilhaft während einer Fertigungsphase bzw. Entwurfsphase ausgeführt werden, bei der die Recheneinheit 100 bzw. ihr Computerprogramm CP entworfen bzw. programmiert bzw. hergestellt wird. Sodann können die vorstehend beschriebenen Messwerte in der Datenbank Db gespeichert werden und bei Bedarf an die Zielsysteme 100 übertragen werden, vergleiche Pfeile 330, 330'. Das Übertragen kann beispielsweise bei der Fertigstellung der Recheneinheit 100 erfolgen, also bevor diese im Feld ihrerseits in einem Zielsystem eingesetzt wird.
  • Beispielsweise kann es sich bei der Recheneinheit 100 um eine Recheneinheit für ein Steuergerät eines Kraftfahrzeugs handeln. In diesem Fall kann die Recheneinheit 100 mit den vorstehend beschriebenen Messwerten betreffend die Ausführungszeit wenigstens einer Programmfunktion PF versehen werden, bevor sie in das Steuergerät bzw. in das Kraftfahrzeug integriert wird. Später, beispielsweise im Feld, kann die erfindungsgemäße Recheneinheit 100 dann vorteilhaft die wie vorstehend beschrieben an sie übertragenen Daten betreffend die gemessene Ausführungszeit der Programmfunktion PF für den vorstehend ebenfalls beschriebenen Vergleich 210 (2) nutzen, um Angriffe auf die Recheneinheit 100 bzw. ihre Laufzeitumgebung ermitteln zu können.
  • 5 zeigt schematisch ein Betriebsszenario gemäß einer weiteren Ausführungsform. Bezugszeichen 400 gibt wiederum eine Laufzeitumgebung an, und das Bezugszeichen 404 bezeichnet vorliegend ein Anwendungsprogramm, zum Beispiel eine sogenannte „user-level application“. Eine „user-level application“ ist ein Anwendungsprogramm, das auf Benutzerebene abläuft, im Gegensatz beispielsweise zu „kernel-level threads“, also Prozessen bzw. Threads, die auf Kernelebene ablaufen.
  • Der Pfeil PF1 bezeichnet einen Aufruf der Programmfunktion PF (1) durch das Anwendungsprogramm 404, und der Pfeil PF1' bezeichnet eine Rückkehr aus der Programmfunktion PF zu dem Anwendungsprogramm 404 nach der Ausführung der Programmfunktion PF. Die Ausführungszeit ist mit dem Bezugszeichen t' bezeichnet und wird vorliegend auf der Grundlage des erfindungsgemäßen Prinzips durch das Anwendungsprogramm 404 ermittelt, vergleiche Bezugszeichen 406. Sodann wird wie durch Bezugszeichen 408 angedeutet die ermittelte tatsächliche Ausführungszeit t' mit einem vorgebbaren Sollwert t(g)+Δ verglichen, um einen möglichen Angriff bzw. eine mögliche Manipulation der Programmfunktion PF1 bzw. der Laufzeitumgebung 400 erkennen zu können.
  • 6 zeigt schematisch ein Blockdiagramm einer erfindungsgemäßen Vorrichtung 500 zum Bereitstellen von Programmfunktionen. Die Vorrichtung 500 weist einen Rechenkern 510 sowie einen zugeordneten Speicher 520 auf. Die Vorrichtung 500 ist zur Ausführung des durch das Flussdiagramm gemäß 3 abgebildeten Verfahrens ausgebildet. In einem ersten Schritt 300 wird eine Programmfunktion eines auf dem Zielsystem 100 ausführbaren Computerprogramms bereitgestellt. Hierbei kann es sich beispielsweise um eine Programmfunktion handeln, bei der zukünftig in dem Zielsystem, also beispielsweise in der Recheneinheit 100 gemäß 1, die Ausführungszeit ermittelt und gegebenenfalls mit einem Sollwert verglichen werden soll. In Schritt 310 des Verfahrens gemäß 3 ermittelt die Vorrichtung 500 ( 6) Informationen, die eine Ausführungszeit der Programmfunktion PF auf dem Zielsystem 100 charakterisieren. Dies kann beispielsweise durch ein Ausführen 312 der Programmfunktion PF auf einem Referenz-Zielsystem erfolgen, das hinsichtlich Hardware und/oder Software vergleichsweise ähnlich oder identisch zu dem Zielsystem 100 ausgebildet ist. In Schritt 320 erfolgt ein zumindest zeitweises Speichern dieser Informationen, die eine Ausführungszeit der Programmfunktion PF auf dem Zielsystem 100 charakterisieren, und/oder hiervon abgeleiteter Informationen, beispielsweise in der Datenbank Db, vergleiche 5.
  • In einem optionalen Schritt 330 können die die Ausführungszeit der Programmfunktion PF charakterisierenden Informationen auch an das Zielsystem 100 übertragen werden. Hierzu kann die Vorrichtung 500 über eine geeignete Schnittstelle 530 verfügen. Die Vorrichtung 500 kann beispielsweise während eines Fertigungsprozesses der Recheneinheit 100 bzw. während einer Entwicklung von Computerprogrammen CP für die Recheneinheit 100 genutzt werden.
  • Nachfolgend ist beispielhaft als „Listing 1“ ein Quellcode eines in der Programmiersprache C abgefassten Computerprogramms zur Veranschaulichung von Aspekten der Ausführungsformen wiedergegeben. Den einzelnen Codezeilen sind Zeilennummern, vorliegend von 1-65, vorangestellt, um eine nachfolgende Erläuterung und Referenzierung auf den Quellcode zu vereinfachen:
    • 1 #include <stdio.h>
    • 2 #include <stdint.h>
    • 3 #include <string.h>
    • 4 #include <algorithm>
    • 5 #include <numeric>
    • 6 #include <vector>
    • 7 using namespace std;
    • 8
    • 9 // timer function is taken from:
    • 10 // http://stackoverflow.com/questions/459691/best-timing-method-in-c
    • 11 inline uint64_t rdtsc(){
    • 12 uint32_t lo, hi;
    • 13 _asm__volatile_(
    • 14 „xorl %%eax, %%eax\n“
    • 15 „cpuid\n“
    • 16 „rdtsc\n“
    • 17 : „=a“ (lo), „=d“ (hi)
    • 18 :
    • 19 : „%ebx“, „%ecx“);
    • 20 return (uint64_t)hi << 32 |lo;
    • 21 }
    • 22
    • 23 #define START() \
    • 24 uint32_t tStart = rdtsc();
    • 25
    • 26 #define STOP() \
    • 27 uint32_t tEnd = rdtsc(); \
    • 28 printf(„%d,“, tEnd - tStart);
    • 29
    • 30 int main(){
    • 31 int i=0;
    • 32 vector<uint32_t> vecReal; // holds all the times for the real function
    • 33 vector<uint32_t>::iterator tlter;
    • 34 uint32_t uiRealFoo = 0;
    • 35
    • 36 // measure the real libc function
    • 37 printf(„>> The fopen calls:\n“);
    • 38 for (i=0;i<20;i++)
    • 39 {
    • 40 START();
    • 41 fopen(„doesnotexist“, „rb“);
    • 42 STOP();
    • 43 vecReal.push_back(tEnd - tStart);
    • 44 }
    • 45
    • 46 // now remove the 5 highest and the 5 lowest values
    • 47 printf(„\nremove the 5 max/5 min:\n“);
    • 48 for (i=0;i<5;i++){
    • 49 tlter = max_element(vecReal.begin(),vecReal.end());
    • 50 printf(„+%d,“,*tlter);
    • 51 vecReal.erase(tlter);
    • 52 tlter = min_element(vecReal.begin(),vecReal.end());
    • 53 printf(„-%d,“,*tlter);
    • 54 vecReal.erase(tlter);
    • 55 }
    • 56 uiRealFoo = accumulate(vecReal.begin(),vecReal.end(),0);
    • 57 printf(„\n\n>> Summary:\n“);
    • 58 printf(„real sum = %d\n“, uiRealFoo);
    • 59 // on my specific machine 170000 seems to be a good value
    • 60 if (uiRealFoo > 170000){
    • 61 printf(„>>> It seems that i am hacked :-(\n“);
    • 62 }else{
    • 63 printf(„>>> Everything seems to be OK\n“);
    • 64 }
    • 65 }
  • In den Zeilen 38-44 ist eine Schleife definiert, welche 20 Wiederholungen der Ausführung einer Programmfunktion „fopen()“ (Öffnen einer Datei) der Standardbibliothek stdio.h einschließlich Messung der Ausführungszeit für diese Programmfunktion „fopen()“ vorsieht. Die Zeitmessung wird mittels des Ausdrucks START() in Zeile 40 von Listing 1 ausgeführt, vergleiche hierzu auch die Definition aus Zeile 24, sowie mittels des Ausdrucks STOP() in Zeile 42, vergleiche hierzu auch die Definition aus Zeile 27 von Listing 1.
  • Sodann werden mittels der Zeilen 47-55 von Listing 1 noch die fünf höchsten und die fünf niedrigsten der insgesamt 20 Messwerte für die Ausführungszeit der Programmfunktion „fopen()“ gelöscht. Anschließend erfolgt mittels der Zeilen 56-60 eine Auswertung dahingehend, ob die ermittelte Ausführungszeit größer ist als ein vorgebbarer Schwellwert (vorliegend beispielhaft der Wert 170000).
  • Listing 1 ermöglicht demnach vorteilhaft die Anwendung des erfindungsgemäßen Prinzips. Ein entsprechender Quellcode kann beispielsweise in ein oder mehrere Anwendungsprogramme bzw. Computerprogramme CP integriert werden, die zur Ausführung auf der Recheneinheit 100 vorgesehen sind. Es versteht sich, dass die vorstehend genannte Bezugnahme bzw. Zeitmessung bezüglich der Programmfunktion „fopen()“ nur beispielhaft gewählt worden ist und auf ein oder mehrere andere Programmfunktionen, insbesondere auch Systemaufrufe, übertragbar ist.
  • Nachfolgend ist beispielhaft als „Listing 2“ ein Quellcode eines ebenfalls in der Programmiersprache C abgefassten Computerprogramms zur Veranschaulichung von weiteren Aspekten der Ausführungsformen wiedergegeben. Den einzelnen Codezeilen sind Zeilennummern, vorliegend von 1-101, vorangestellt, um eine nachfolgende Erläuterung und Referenzierung auf den Quellcode zu vereinfachen:
    • 1 #include <stdio.h>
    • 2 #include <stdint.h>
    • 3 #include <string.h>
    • 4 #include <algorithm>
    • 5 #include <numeric>
    • 6 #include <vector>
    • 7 using namespace std;
    • 8
    • 9 inline uint64_t rdtsc(){
    • 10 uint32_tlo, hi;
    • 11 _asm__volatile_(
    • 12 „xorl %%eax, %%eax\n“
    • 13 „cpuid\n“
    • 14 „rdtsc\n“
    • 15 : „=a“ (lo), „=d“ (hi)
    • 16 :
    • 17 : „%ebx“, „%ecx“);
    • 18 return (uint64_t)hi << 32 |lo;
    • 19}
    • 20
    • 21 int internal_strcmp(const char *egg1, const char *egg2){
    • 22 while (*egg1 == *egg2){
    • 23 egg1++;
    • 24 egg2++;
    • 25 if (! (*egg1)) return 0;
    • 26 }
    • 27 // return value not relevant for the timing
    • 28 return 0;
    • 29}
    • 30 31 #define START() \ 32 uint32_t tStart = rdtsc();
    • 33
    • 34 #define STOP() \
    • 35 uint32_t tEnd = rdtsc(); \
    • 36 printf(„%d,“, tEnd - tStart);
    • 37
    • 38 int main(){
    • 39 int i=0;
    • 40 vector<uint32_t> vecReal; // holds all the times for the real function
    • 41 vector<uint32_t> vecFake; // holds all the times fot the fake function
    • 42 vector<uint32_t>::iterator tlter;
    • 43
    • 44 uint32_t uiRealFoo = 0;
    • 45 uint32_t uiFakeFoo = 0;
    • 46
    • 47 // measure the real libc function
    • 48 printf(„>> The real strcmp:\n“);
    • 49 for (i=0;i<20;i++){
    • 50 START();
    • 51 strcmp(„1234567890“, „1234567890“);
    • 52 STOP();
    • 53 vecReal.push_back(tEnd - tStart);
    • 54 }
    • 55
    • 56 // now remove the 5 highest and the 5 lowest values
    • 57 printf(„\nremove the 5 max/5 min:\n“);
    • 58 for (i=0;i<5;i++){
    • 59 tlter = max_element(vecReal.begin(),vecReal.end());
    • 60 printf(„+%d,“,*tlter);
    • 61 vecReal.erase(tlter);
    • 62 tlter = min_element(vecReal.begin(),vecReal.end());
    • 63 printf(„-%d,“,*tlter);
    • 64 vecReal.erase(tlter);
    • 65 }
    • 66 uiRealFoo = accumulate(vecReal.begin(),vecReal,end(),0);
    • 67
    • 68 // measure the internal compare function
    • 69 printf(„\n\n>> The internal compare strcmp:\n“);
    • 70 for (i=0;i<20;i++)
    • 71 {
    • 72 START();
    • 73 internal_strcmp(„1234567890“,„1234567890“);
    • 74 STOP();
    • 75 vecFake.push_back(tEnd - tStart);
    • 76 }
    • 77 // now remove the 5 highest and the 5 lowest values
    • 78 printf(„\nremove the 5 max/5 min:\n“);
    • 79 for (i=0;i<5;i++){
    • 80 tlter = max_element(vecFake.begin(),vecFake.end());
    • 81 printf(„+%d,“,*tlter);
    • 82 vecFake.erase(tlter);
    • 83 tlter = min_element(vecFake.begin(),vecFake.end());
    • 84 printf(„-%d,“,*tlter);
    • 85 vecFake.erase(tlter);
    • 86 }
    • 87 uiFakeFoo = accumulate(vecFake.begin(),vecFake.end(),0);
    • 88
    • 89 printf(„\n\n>> Summary:\n“);
    • 90 printf(„real sum = %d\n“, uiRealFoo);
    • 91 printf(„fake sum = %d\n“, uiFakeFoo);
    • 92 uint32_t delta = max(uiFakeFoo,uiRealFoo) - min(uiFakeFoo,uiRealFoo);
    • 93 printf(„delta = %d\n“, delta);
    • 94 float percentage = ((float)delta) / ((float)uiFakeFoo) * 10.0;
    • 95 printf(„percent = %f\n\n“,percentage);
    • 96 if (percentage>1.5){
    • 97 printf(„>>> I AM HOOKED ! :-()\n“);
    • 98 }else{
    • 99 printf(„>>> everything's OK :-)\n“);
    • 100 }
    • 101 }
  • Das Listing 2 führt beispielhaft einen Vergleich der Ausführungszeiten der Programmfunktion „strcmp()“ (Vergleich von Zeichenketten) der Standardbibliothek „libc“ bzw. „stdio.h“ mit den Ausführungszeiten einer beispielhaft vorgesehenen eigenen Implementierung einer Funktion für den Vergleich von Zeichenketten, „internal_strcmp()“, vergleiche Zeile 21-26, aus. Die Ausführungszeit der Programmfunktion der Standardbibliothek wird in der Schleife in den Zeilen 49-54 ermittelt, die Ausführungszeit der eigenen Implementierung in den Zeilen 70-76, jeweils wiederum mit 20 Wiederholungen. Wie schon vorstehend unter Bezugnahme auf Listing 1 beschrieben werden jeweils 10 Extremwerte der 20 Wiederholungen verworfen, vergleiche die Zeilen 56-66 bzw. 77-87. Eine Auswertung der verbleibenden Ausführungszeiten erfolgt vorliegend in den Zeilen 92-99.
  • Das erfindungsgemäße Prinzip ermöglicht vorteilhaft den Schutz von Anwendungsprogrammen CP bzw. zugehörigen Laufzeitumgebungen vor Manipulationen an Programmfunktionen, wie sie beispielsweise in Standardbibliotheken (z.B. libc bzw. „stdio.h“ usw.) enthalten sind. Insbesondere kann auf diese Weise auch vergleichsweise neuer Schadsoftware des „root-kit“-Typs begegnet werden, die versucht, die etablierten Standardbibliotheken von Laufzeitumgebungen zu „kapern“ und die darin enthaltenen Programmfunktionen PF, welche von beispielsweise der Anwendersoftware CP aufgerufen werden, durch manipulierte Versionen solcher Programmfunktionen zu ersetzen. Da derartige manipulierte Versionen üblicherweise eine signifikant abweichende Laufzeit bzw. Ausführungszeit im Vergleich zu den Originalversionen aufweisen, kann eine derartige Manipulation unter Anwendung des erfindungsgemäßen Prinzips effizient erkannt werden.
  • Generell ermöglicht die Anwendung des erfindungsgemäßen Prinzips, Angriffe auf Programmfunktionen bzw. entsprechende Laufzeitumgebungen festzustellen, bei denen Manipulationen von Eingabedaten und/oder Ausgabedaten während des Aufrufs der Programmfunktion bzw. der Rückgabe der Ausgabedaten, beispielsweise nach Art einer man-in-the-middle-attack, erfolgen. Insbesondere können Anwendungsprogramme bzw. Computerprogramme geschützt werden, welche möglicherweise auf manipulierte Programmfunktionen bzw. Bibliotheken zugreifen könnten. Das erfindungsgemäße Prinzip nutzt vorteilhaft die Tatsache aus, dass das physikalische Verhalten, insbesondere die Ausführungszeit, einer manipulierten Programmfunktion bzw. Laufzeitumgebung in vielen Fällen nicht sinnvoll verschleiert werden kann.
  • Bei der Recheneinheit 100 kann es sich bei bevorzugten Ausführungsformen beispielsweise um eine Recheneinheit eines eingebetteten Systems (Englisch: embedded system) handeln, oder auch um eine Recheneinheit (z.B. CPU, Prozessor, Mikrocontroller, digitaler Signalprozessor, usw.) eines andersartigen Systems, beispielsweise auch eines Personalcomputers.
  • Während konventionelle Sicherheitsmaßnahmen betreffend Software-Sicherheit sich derzeit üblicherweise ausschließlich auf einen Quellcode oder andere Varianten wie beispielsweise Binärcode von Anwendungsprogrammen beziehen, berücksichtigt das erfindungsgemäße Prinzip mögliche Manipulationen von Standardbibliotheken und Laufzeitumgebungen und deren Erkennung.
  • Das erfindungsgemäße Prinzip kann sehr flexibel und bedarfsgerecht eingesetzt werden. Beispielsweise kann ein Softwareentwickler, der das Computerprogramm CP entwickelt, festlegen, welche Aufrufe bzw. Programmfunktionen PF unter Anwendung des erfindungsgemäßen Prinzips abzusichern sind. Es ist bei manchen Ausführungsformen beispielsweise denkbar, dass weniger wichtige Programmfunktionen nicht durch das erfindungsgemäße Prinzip abgesichert werden, wohingegen wichtigere Programmfunktionen abgesichert werden. Eine dynamische Festlegung, wann das erfindungsgemäße Prinzip Anwendung findet, ist anderen Ausführungsformen zufolge ebenfalls denkbar, beispielsweise während der Laufzeit des Computerprogramms CP, beispielsweise in Abhängigkeit von ein oder mehreren Betriebsparametern des Computerprogramms CP oder der Recheneinheit 100. Beispielsweise kann vorgesehen sein, dass die erfindungsgemäße Absicherung bei manchen Ausführungsformen immer dann für gewisse Funktionsaufrufe vorgesehen ist, wenn die Recheneinheit in einem bestimmten Zielsystem integriert ist, was beispielsweise aufgrund von Kommunikationsmustern oder sonstigen Betriebsparametern der Recheneinheit 100 erkannt werden kann.
  • Besonders vorteilhaft bedingt die Anwendung des erfindungsgemäßen Prinzips vergleichsweise wenig Zusatzaufwand, insbesondere bezüglich der Ausführungszeit des Computerprogramms CP, weil effiziente Befehle und Mechanismen zur präzisen Zeitmessung wie beispielsweise Präzisionstimer häufig bereits in aktuellen Recheneinheiten 100 integriert sind. Der Programmieraufwand ist ebenfalls vergleichsweise gering, vergleiche die vorstehend beispielhaft beschriebenen Listings 1, 2.
  • Des Weiteren ist das erfindungsgemäße Prinzip auch dann effizient nutzbar, wenn sich die Laufzeitumgebung bzw. die Programmbibliothek(en) ändern. In diesem Fall sind lediglich entsprechend aktualisierte Messwerte bzw. Sollwerte für die Ausführungszeiten bereitzustellen.

Claims (9)

  1. Recheneinheit (100), die dazu ausgebildet ist, wenigstens eine Programmfunktion (PF) eines auf der Recheneinheit (100) ausführbaren Computerprogramms (CP) auszuführen, dadurch gekennzeichnet, dass die Recheneinheit (100) dazu ausgebildet ist, die Ausführungszeit der Programmfunktion (PF) zu ermitteln (200) und mit wenigstens einem Sollwert für die Ausführungszeit der Programmfunktion (PF) zu vergleichen (210).
  2. Recheneinheit (100) nach Anspruch 1, wobei die Recheneinheit (100) dazu ausgebildet ist, eine Fehlerreaktion auszuführen (220), wenn die ermittelte Ausführungszeit von dem Sollwert um einen vorgegebenen Differenzwert abweicht.
  3. Recheneinheit (100) nach Anspruch 2, wobei die Fehlerreaktion (220) wenigstens einen der folgenden Schritte aufweist: Verarbeiten vorgebbarer Dummy-Daten, Benachrichtigen einer anderen Einheit über eine irreguläre Ausführungszeit der Programmfunktion (PF).
  4. Recheneinheit (100) nach einem der vorstehenden Ansprüche, wobei die Recheneinheit (100) dazu ausgebildet ist, die Programmfunktion (PF) mehrmals auszuführen und eine minimale Ausführungszeit und/oder maximale Ausführungszeit und/oder durchschnittliche Ausführungszeit zu ermitteln.
  5. Verfahren zum Betreiben einer Recheneinheit (100), die dazu ausgebildet ist, wenigstens eine Programmfunktion (PF) eines auf der Recheneinheit (100) ausführbaren Computerprogramms (CP) auszuführen, dadurch gekennzeichnet, dass die Recheneinheit (100) die Ausführungszeit der Programmfunktion (PF) ermittelt (200) und mit wenigstens einem Sollwert (t(g)+Δ) für die Ausführungszeit der Programmfunktion (PF) vergleicht (210).
  6. Verfahren zum Bereitstellen von Programmfunktionen (PF) für ein Zielsystem (100), aufweisend die folgenden Schritte: Bereitstellen (300) einer Programmfunktion (PF) eines auf dem Zielsystem (100) ausführbaren Computerprogramms, Ermitteln (310) von eine Ausführungszeit der Programmfunktion (PF) auf dem Zielsystem (100) charakterisierenden Informationen, zumindest zeitweises Speichern (320) der die Ausführungszeit der Programmfunktion (PF) auf dem Zielsystem (100) charakterisierenden Informationen und/oder hiervon abgeleiteter Informationen.
  7. Verfahren nach Anspruch 6, wobei das Verfahren den folgenden Schritt aufweist: Ausführen (312) der bereitgestellten Programmfunktion (PF) auf einem Referenz-Zielsystem.
  8. Verfahren nach einem der Ansprüche 6 bis 7, wobei die die Ausführungszeit der Programmfunktion auf dem Zielsystem (100) charakterisierenden Informationen und/oder die hiervon abgeleiteten Informationen auf das Zielsystem (100) übertragen (330) werden.
  9. Vorrichtung (500) zum Bereitstellen von Programmfunktionen (PF) für ein Zielsystem (100), wobei die Vorrichtung zur Ausführung der folgenden Schritte ausgebildet ist: Bereitstellen (300) einer Programmfunktion (PF) eines auf dem Zielsystem (100) ausführbaren Computerprogramms, Ermitteln (310) von eine Ausführungszeit der Programmfunktion (PF) auf dem Zielsystem (100) charakterisierenden Informationen, zumindest zeitweises Speichern (320) der die Ausführungszeit der Programmfunktion (PF) auf dem Zielsystem (100) charakterisierenden Informationen und/oder hiervon abgeleiteter Informationen.
DE102017208192.9A 2017-05-16 2017-05-16 Recheneinheit und Betriebsverfahren für eine Recheneinheit Pending DE102017208192A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102017208192.9A DE102017208192A1 (de) 2017-05-16 2017-05-16 Recheneinheit und Betriebsverfahren für eine Recheneinheit
US15/971,702 US10949529B2 (en) 2017-05-16 2018-05-04 Processing unit and method for operating a processing unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102017208192.9A DE102017208192A1 (de) 2017-05-16 2017-05-16 Recheneinheit und Betriebsverfahren für eine Recheneinheit

Publications (1)

Publication Number Publication Date
DE102017208192A1 true DE102017208192A1 (de) 2018-11-22

Family

ID=64272399

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017208192.9A Pending DE102017208192A1 (de) 2017-05-16 2017-05-16 Recheneinheit und Betriebsverfahren für eine Recheneinheit

Country Status (2)

Country Link
US (1) US10949529B2 (de)
DE (1) DE102017208192A1 (de)

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5440723A (en) * 1993-01-19 1995-08-08 International Business Machines Corporation Automatic immune system for computers and computer networks
US7269824B2 (en) * 2003-02-13 2007-09-11 Path Reliability, Inc. Software behavior pattern recognition and analysis
US8205241B2 (en) * 2008-01-30 2012-06-19 Microsoft Corporation Detection of hardware-based virtual machine environment
US20100262864A1 (en) * 2008-02-26 2010-10-14 Yoshinori Tsujido Automatic reproduction test device and automatic reproduction test method in embedded system
US8234709B2 (en) * 2008-06-20 2012-07-31 Symantec Operating Corporation Streaming malware definition updates
US8522085B2 (en) * 2010-01-27 2013-08-27 Tt Government Solutions, Inc. Learning program behavior for anomaly detection
US9135440B2 (en) * 2012-08-01 2015-09-15 Ut-Battelle, Llc Statistical fingerprinting for malware detection and classification
US9195821B2 (en) * 2013-11-24 2015-11-24 Truly Protect Oy System and methods for remote software authentication of a computing device
US10152369B2 (en) * 2014-09-24 2018-12-11 Activision Publishing, Inc. Compute resource monitoring system and method associated with benchmark tasks and conditions
US10607011B1 (en) * 2015-07-21 2020-03-31 Fatih Orhan Method to detect zero-day malware applications using dynamic behaviors
US9870307B2 (en) * 2016-02-01 2018-01-16 Linkedin Corporation Regression testing of software services
EP3229437A1 (de) * 2016-04-07 2017-10-11 Walter Steven Rosenbaum Kommunikationsvorrichtung und verfahren zum schutz eines kommunikationssystems gegen einsatz eines unbefugten codes

Also Published As

Publication number Publication date
US20180336341A1 (en) 2018-11-22
US10949529B2 (en) 2021-03-16

Similar Documents

Publication Publication Date Title
EP2188755B1 (de) Verfahren und vorrichtung zur sicherung eines programms gegen eine kontrollflussmanipulation und gegen einen fehlerhaften programmablauf
DE60127310T2 (de) Vorrichtung zum schutz digitaler daten
EP3430558B1 (de) Erkennen einer abweichung eines sicherheitszustandes einer recheneinrichtung von einem sollsicherheitszustand
EP1798653B1 (de) Verfahren, Computerprogrammprodukt und Vorrichtung zum Schützen eines einen Funktionsblock aufweisenden Programms
EP2542995A2 (de) Verfahren zum verifizieren eines speicherblocks eines nicht-flüchtigen speichers
EP3811260B1 (de) Kryptografiemodul und betriebsverfahren hierfür
EP3720039A1 (de) Verfahren für das konfigurieren eines sicherheitsmoduls mit mindestens einem abgeleiteten schlüssel
EP1439446A1 (de) Verfahren zum Erweitern eines Programms um eine Kopierschutzfunktion
EP3134842B1 (de) Rechenvorrichtung und verfahren zum erkennen von angriffen auf ein technisches system anhand von ereignissen einer ereignisfolge
DE102017208192A1 (de) Recheneinheit und Betriebsverfahren für eine Recheneinheit
DE102018113688A1 (de) Verfahren für eine Gefährdungsanalyse und Risikobeurteilung
EP3798873B1 (de) Verfahren zum schützen einer computer-implementierten anwendung vor manipulation
DE102021114574A1 (de) Computer programm trust assurance für internet der dinge (iot) devices
EP2990941B1 (de) Computerimplementiertes verfahren zur erzeugung eines steuergeräteprogrammcodes und diesbezügliche meldungsverwaltungsumgebung
DE602004001293T2 (de) Programmintegritätsprüfung mittels Statistiken
DE102009038248A1 (de) Verfahren zum Entfernen modularer Software
EP3072080B1 (de) Verfahren und vorrichtung zum manipulationsschutz einer recheneinrichtung
DE102009042666A1 (de) Hardware-Abstraktion in eingebetteten Systemen
WO2000011551A1 (de) Verfahren, anordnung sowie ein satz mehrerer anordnungen zum schutz mehrerer programme und/oder mehrerer dateien vor einem unbefugten zugriff durch einen prozess
EP3876123B1 (de) Anordnung und betriebsverfahren für einen sicheren hochfahrablauf einer elektronischen einrichtung
DE102017208199A1 (de) Recheneinheit und Betriebsverfahren für eine Recheneinheit
DE102004058882A1 (de) Erzeugen von Programmcode in einem Ladeformat und Bereitstellen von ausführbarem Programmcode
EP3786818A1 (de) Verfahren zum schützen einer softwareanwendung gegen ein unbefugtes nutzen
DE102015222968A1 (de) Betriebsverfahren für eine elektronische Vorrichtung und elektronische Vorrichtung
DE102021211591A1 (de) Verfahren und Vorrichtung zum Verarbeiten von Daten

Legal Events

Date Code Title Description
R012 Request for examination validly filed