-
Die vorliegende Erfindung betrifft ein Verfahren gemäß Oberbegriff von Anspruch 1 sowie einen Schaltkreis gemäß Oberbegriff von Anspruch 8.
-
Die
WO 2009/150475 beschreibt ein Verfahren zum Schutz vor fremdverursachten Änderungen einer Konfiguration einer Speicherverwaltungseinheit, wobei ein Programmcode zur Laufzeit in der Weise verändert wird, dass dieser lediglich dann korrekt ausgeführt wird, wenn die Softwarecode- und Datenspeicherzugriffe auf identische physikalischen Speicheradressen verweisen.
-
In der
WO 2011/016793 wird ein Verfahren zum Schutz vor fremdinitiiertem Austausch von authentisiertem, sicherem Softwarecode durch nicht-authentisierten, nicht sicheren Softwarecode beschrieben, mittels welchem eine schnellere Authentifizierung von Softwarecode durch bedarfsorientierte Authentifizierung von Speicherseiten, die als nächstes ausgeführt werden sollen, vorgenommen wird.
-
Um die gemäß ISO 26262 geforderte Rückwirkungsfreiheit eines Systems in einem Kraftfahrzeug sicherzustellen, wird in an sich bekannter Weise ein von mehreren Programmen mit unterschiedlichen Sicherheitsanforderungsstufen (z.B. SIL/ASIL) genutzter Datenspeicher (z.B. RAM) in verschiedene Speicherpartitionen mit jeweiliger Sicherheitsanforderungsstufe aufgeteilt. Die Kontrolle des Zugriffs eines Programmes einer bestimmten Sicherheitsanforderungsstufe auf einen jeweiligen Datenspeicher erfolgt mittels einer Speicherverwaltungs-(MMU) bzw. Speicherschutzeinheit (MPU), welche durch ein Betriebssystem (OS) eines zugrundeliegenden Schaltkreises kontrolliert wird. Ein Umschalten der MMU/MPU Konfiguration, in Übereinstimmung mit der Sicherheitsanforderungsstufe des jeweiligen Programms zu einem bestimmten Zeitpunkt, ist die Aufgabe einer Programmsteuerung („Scheduler“) des OS. Eine fehlerhafte Konfiguration der MMU bzw. MPU kann die Funktionsfähigkeit des Partitionierungsschemas jedoch beeinträchtigen, was ein Sicherheitsrisiko der Software darstellt, weshalb ein vertrauenswürdiges OS („Trusted-OS“) zur Anwendung mit der Speicherpartitionierung benötigt wird. Im Sinne der Betriebssicherheitsstandards ist ein Betriebssystem dann nicht vertrauenswürdig, wenn dieses die geforderte Sicherheitsanforderungsstufe nicht erfüllt, beispielsweise weil es entsprechend ASIL lediglich eine Einstufung in das Level QM (Qualitätsmanagement) aufweist.
-
Programme können entsprechend jeweils erforderlicher Sicherheitsstufen entwickelt werden, wobei Programme, insbesondere Softwaremodule Dritter, ausgeführt werden können, indem das OS zur Änderung der Konfiguration der MMU/MPU mittels dafür vorgesehener Funktionen bzw. Methoden, z.B. Einschubmethoden („Hooks“), zwischen diesen umschaltet. Weist das OS beispielsweise lediglich eine Einstufung gemäß QM auf, ist nicht sichergestellt, dass während einer Umschaltphase auch tatsächlich ein Aufruf einer solchen Methode erfolgt. Wird diese in fehlerhafter Weise nicht aufgerufen, kann ein sicherheitskritischer Fall insbesondere dann eintreten, wenn von einem Programm bzw. Programmspeicher höherer Sicherheitsstufe zu einem Programm bzw. Programmspeicher niedrigerer Sicherheitsstufe umgeschaltet wird, da das niedriger eingestufte Programm dann über die ursprünglichen Zugriffsrechte auf den höher eingestuften Datenspeicher verfügt.
-
Durch ein OS mit niedriger Sicherheitseinstufung kann eine MPU/MMU somit fehlerhaft in der Weise konfiguriert werden, dass diese einem niedriger eingestuften Programm Zugriff zu einem höher eingestuften Datenspeicher gewährt. Ein ausschließlich mittels solcher Methoden realisierter Mechanismus zur Realisierung der Zugriffsrechte ist demnach nicht ausreichend, wodurch sicherheitsrelevante Systeme negativ beeinflusst und die Sicherheit von Verkehrsteilnehmern gefährdet werden kann.
-
Daher ist es Aufgabe der vorliegenden Erfindung ein Verfahren und einen Schaltkreis zur Vermeidung von Speicherschutzverletzungen für Kraftfahrzeugsysteme bereitzustellen.
-
Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1 sowie einen Schaltkreis gemäß Anspruch 8 gelöst.
-
Die Erfindung betrifft ein Verfahren zur Vermeidung von Speicherschutzverletzungen in einem integrierten Schaltkreises eines Kraftfahrzeugsystems, bei welchem eine Verwaltung von Zugriffen eines in einem Programmspeicher vorliegenden Programms auf einen für die Zugriffe freigegebenen Datenspeicher in Abhängigkeit einer Sicherheitsanforderungsstufe des Datenspeichers und einer Sicherheitsanforderungsstufe des Programms und/oder des Programmspeichers vorgenommen wird und das sich weiterhin dadurch auszeichnet, dass eine Verwaltung der Ausführbarkeit des Programms in Abhängigkeit von der Sicherheitsanforderungsstufe des Programms und/oder dessen Programmspeichers und der Sicherheitsanforderungsstufe des Datenspeichers erfolgt.
-
Mittels des erfindungsgemäßen Verfahrens werden in vorteilhafter Weise potentiell sicherheitskritische und sicherheitsstufenübergreifende Speicherschutzverletzungen vermieden. Dies ist insbesondere im Falle einer Umschaltung von einem Programm einer ersten Sicherheitsstufe auf ein zweites Programm einer zweiten Sicherheitsstufe von Bedeutung, wenn ein Datenspeicher der ersten Sicherheitsstufe nach der Programmumschaltung fehlerhaft weiterhin freigegeben ist und das zweite Programm im Ausführungsfall darauf zugreifen könnte. Die Umschaltung der Programme erfolgt dabei bevorzugt durch Aufruf einer entsprechenden Funktion bzw. Methode, z.B. einer entsprechenden Einschubmethode, beispielsweise durch ein Betriebssystem.
-
Gemäß einer Ausführungsform der Erfindung weist ein Betriebssystem des integrierten Schaltkreises eine niedrigere Sicherheitsanforderungsstufe als eine höchste vorgesehene Sicherheitsanforderungsstufe des Programms und/oder des Programmspeichers und/oder des Datenspeichers auf. Dadurch kann in vorteilhafter Weise auch bei der Verwendung eines nicht vertrauenswürdigen Betriebssystems eine sicherheitsstufenkonforme Speicherverwaltung erreicht werden. Beispielsweise wird eine ASIL D konforme Speicherpartitionierung erhalten, selbst wenn ein Betriebssystem des integrierten Schaltkreises bzw. dessen Programmsteuerung lediglich gemäß QM eingestuft sind. Dadurch kann zudem eine gemäß ISO 26262 definierte Rückwirkungsfreiheit mit einem Betriebssystem erzielt werden, welches nicht in Übereinstimmung mit der ISO 26262 entwickelt wurde, jedoch die Ausführung von entsprechenden Methoden zur Programmumschaltung unterstützt.
-
Unter einem Programm wird im Rahmen der Erfindung beispielsweise auch eine Applikation, ein Prozess sowie ein Softwaremodul verstanden, welches auf zumindest einem Programmspeicher hinterlegt ist und auf wenigstens einen Datenspeicher zugreift. Speicher sind insbesondere permanente, flüchtige und/oder semi-permanente Informationsspeicher, welche des Weiteren als gemeinsame und/oder separate physikalische bzw. virtuelle Speicher(-bereiche) vorliegen können.
-
Gemäß einer bevorzugten Ausführungsform der Erfindung ist ein Vergleich der Sicherheitsanforderungsstufen des Datenspeichers und des Programms und/oder des Programmspeichers vorgesehen, wobei von dem Ergebnis des Vergleichs abhängig ist, ob das Programm ausgeführt wird. Das Programm wird besonders bevorzugt lediglich dann ausgeführt, wenn das Programm und/oder dessen Programmspeicher eine gleiche und/oder eine höhere Sicherheitsanforderungsstufe wie der Datenspeicher erfüllt. Vorteilhaft kann somit sichergestellt werden, dass ein Programm, welches eine niedrigere Sicherheitsstufe aufweist als ein zum jeweiligen Zeitpunkt freigegebener Datenspeicher nicht ausgeführt wird. Änderungen sicherheitsrelevanter Daten können damit vermieden werden.
-
Das Programm ist lediglich dann autorisiert auf den Datenspeicher zuzugreifen, wenn das Programm und/oder dessen Programmspeicher eine gleiche und/oder eine höhere Sicherheitsanforderungsstufe wie der Datenspeicher erfüllt. Ein Vorteil davon ist, dass somit ein weiteres Sicherheitskriterium vorgesehen ist und Speicherverletzungen vermieden werden können.
-
Bevorzugt wird das Programm nicht ausgeführt, wenn das Programm und/oder dessen Programmspeicher eine niedrigere Sicherheitsstufe als der Datenspeicher erfüllt. Der Zugriff eines Programms einer ersten Sicherheitsstufe auf ein zum jeweiligen Zeitpunkt freigegebenen Datenspeicher einer höheren Sicherheitsstufe als der ersten kann vorteilhafterweise somit nicht erfolgen, da das Programm nicht ausgeführt wird.
-
Entsprechend einer vorteilhaften Weiterbildung der Erfindung wird der Programmspeicher als nicht-ausführbar und/oder nicht lesbar markiert, wenn das Programm nicht ausgeführt werden soll.
-
Die Verwaltung der Ausführbarkeit des Programms erfolgt bevorzugt mittels einer Speicherschutzeinheit und/oder mittels des Betriebssystems. Unter einer Speicherschutzeinheit ist im Sinne der Erfindung jegliche Einrichtung zur Realisierung einer solchen Funktionalität zu verstehen, z.B. auch eine Speicherverwaltungseinheit.
-
Eine Autorisierung zur Ausführung des Programms wird bevorzugt aktiv erteilt. Alternativ wird die Autorisierung zur Ausführung des Programms bevorzugt aktiv verboten. Durch diese erfindungsgemäßen Weiterbildungen kann eine vorteilhafte Anpassung an Sicherheitsrichtlinien erfolgen.
-
Die Erfindung beschreibt weiterhin einen Schaltkreis zur Vermeidung von Speicherschutzverletzungen in einem Kraftfahrzeugsystem, umfassend zumindest einen Programmspeicher, in welchem wenigstens ein Programm hinterlegt ist, und zumindest einen Datenspeicher, wobei der Schaltkreis derart ausgestaltet ist, dass eine Verwaltung von Zugriffen des Programms auf den für die Zugriffe freigegebenen Datenspeicher in Abhängigkeit einer Sicherheitsanforderungsstufe des Datenspeichers und einer Sicherheitsanforderungsstufe des Programms und/oder des Programmspeichers vorgenommen wird und eine Verwaltung der Ausführbarkeit des Programms in Abhängigkeit von der Sicherheitsanforderungsstufe des Programms und/oder dessen Programmspeichers und der Sicherheitsanforderungsstufe des Datenspeichers erfolgt.
-
Besonders bevorzugt führt der erfindungsgemäße Schaltkreis das erfindungsgemäße Verfahren aus.
-
Die Verwendung des erfindungsgemäßen Verfahrens und/oder des erfindungsgemäßen Schaltkreises erfolgt bevorzugt in einem Kraftfahrzeugbremssystem.
-
Weitere bevorzugte Ausführungsformen ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen an Hand von Figuren.
-
In schematischer Darstellung zeigen:
-
1 eine Umschaltung von einem Programm höherer Sicherheitsanforderungsstufe zu einem Programm mit niedrigerer Sicherheitsanforderungsstufe und
-
2 MPU Konfigurationen für Programme bzw. Programmspeicher und Datenspeicher unterschiedlicher Sicherheitsanforderungsstufen.
-
Entsprechend der Ausführungsbeispiele sind die Programmspeicher, von denen aus ein Programm ausgeführt wird, als nichtflüchtiger Speicher (z.B. Flash oder ROM) ausgelegt, wobei die jeweiligen Programme während der Ausführung auf Direktzugriffsspeicher (RAM) als Datenspeicher, z.B. Arbeitsspeicher, zugreifen. Davon abweichende Konfigurationen sind im Rahmen der Erfindung ebenfalls möglich. In der oberen Zeile ist die dabei jeweils vorliegende Konfiguration einer Speicherschutzeinheit (MPU) abgebildet, wobei ein weißes Feld oberhalb eines der Programmspeicher anzeigt, dass das in diesem hinterlegte Programm ausgeführt und ein schraffiertes Feld, dass Programm nicht ausgeführt werden darf. Ein weißes Feld oberhalb eines Datenspeichers bedeutet, dass ein Zugriff auf den Datenspeicher zum jeweiligen Zeitpunkt gemäß MPU Konfiguration gestattet und ein schraffiertes Feld, dass der Zugriff auf diesen untersagt ist. Im Falle einer Sperrung des Zugriffs auf einen Datenspeicher kann auf diesen Datenspeicher weder geschrieben noch von diesem gelesen werden. Alternativ dazu kann mit einer Sperrung des Zugriffs lediglich auch das Untersagen des Schreibens auf den Speicher zu verstehen sein. Das Lesen von diesem Datenspeicher wäre entsprechend dieser alternativen Ausführungsform weiterhin möglich. Es werden erfindungsgemäß somit nicht nur die Datenspeicher bzw. Speicherpartitionen kontrolliert, auf welche ein Programm zugreifen darf, sondern auch die Programmspeicher, von denen aus das jeweilige Programm heraus ausgeführt wird, z.B. in welchen der Quellcode des Programmes hinterlegt ist.
-
Mit anderen Worten werden somit nicht nur die Zugriffsrechte auf die jeweiligen Datenspeicher umgeschaltet sondern auch die Ausführbarkeit von Programmen und/oder Programmspeichern in Abhängigkeit ihrer Einstufung in eine jeweilige Sicherheitsanforderungsstufe vorgegeben. Dies erfolgt insbesondere in der Weise, dass lediglich Programme ausgeführt werden dürfen, welche einer gleichen oder höheren Sicherheitsstufe zugeordnet sind, wie die Sicherheitsstufe des Datenspeichers, auf den während des entsprechenden Zeitabschnitts zugegriffen werden darf. Das Kontrollieren der Ausführbarkeit eines Programms und/oder des zugrundeliegenden Programmspeichers erfolgt im Falle der Unterstützung durch die MPU beispielsgemäß durch Markieren des Programmspeichers als nicht ausführbar oder alternativ als nicht lesbar.
-
Die 1a) und b) zeigen in schematischer Darstellung einen beispielhaften Fall einer Umschaltung eines Betriebssystems (OS) von einem Programm bzw. Programmspeicher 1.2 höherer Sicherheitsanforderungsstufe zu einem Programm bzw. Programmspeicher 1.1 niedrigerer Sicherheitsanforderungsstufe. In Zeitabschnitten, in welchen der Zugriff auf den Datenspeicher 1-3 mit ASIL D Einstufung durch das OS freigegeben ist, wird die Ausführung des Programms mit QM Einstufung nicht gestattet, indem der Programmspeicher 1.1 als nicht-ausführbar und/oder nicht lesbar markiert wird. Wenn nun das OS von der Ausführung eines Programms des Programmspeichers 1.2, wie in der 1a) gezeigt, auf die Ausführung eines Programms des Programmspeichers 1.1, wie in der 1b) dargestellt, wechselt, erfolgt durch das OS zusätzlich zum Aufrufen der entsprechenden Methode zum Sperren des Zugriffs auf den Datenspeicher 1-3 das Verbieten der Ausführung des Programms des Programmspeichers 1.1. Sollte also das OS fälschlicherweise die Methode zum Umschalten der Programme nicht ausführen, würde das Programm des Programmspeichers 1.1 nicht ausgeführt werden können, da der Zugriff auf den Datenspeicher 1-3 entsprechend der MPU Konfiguration prinzipiell weiterhin erlaubt ist. Die Verwendung der ASIL Sicherheitsstufen ist dabei lediglich als beispielhaft anzusehen. Die Erfindung ist in ebensolcher Weise auf unterschiedliche Ausprägungen von Sicherheitsanforderungsstufen anwendbar.
-
Die 2a) bis c) zeigen weitere Ausführungsbeispiele der Umschaltung zwischen Programmen, bei Vorliegen einer größeren Anzahl an Programm- und Datenspeichern und Sicherheitsanforderungsstufen derselben. Gemäß 2a) erfolgt die Ausführung eines Programms des Programmspeichers 2.3 mit ASIL D Einstufung, wobei der Zugriff auf die Datenspeicher 2-4, 2-5, 2-6 sämtlicher Sicherheitsstufen gestattet ist. Zugleich ist die Ausführbarkeit der Programme 2.1 und 2.2 mit geringerer Sicherheitsstufe unterbunden. Im Falle des aktiven ASIL B Programms 2.2, wie in der 2b) gezeigt, ist keine Ausführung des QM eingestuften Programms 2.1 erlaubt und der Zugriff auf den Datenspeicher 2-6 verboten. Eine Konstellation mit aktivem QM Programm 2.1 ist in der 2c) gezeigt. Die Zugriffsfreigabe besteht dabei ausschließlich für den Datenspeicher 2-4 gleicher Sicherheitsstufe, wobei auf die Datenspeicher 2-5 und 2-6 höherer Sicherheitsstufen durch das Programm 2.1 nicht zugegriffen werden darf. Die Programme 2.2 und 2.3 aller weiteren Sicherheitsstufen können ebenfalls ausgeführt werden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- WO 2009/150475 [0002]
- WO 2011/016793 [0003]
-
Zitierte Nicht-Patentliteratur
-
- ISO 26262 [0004]
- ISO 26262 [0011]