-
Die Erfindung betrifft ein Rechnersystem, welches beispielsweise in einem Kraftfahrzeug eingesetzt werden kann sowie ein Verfahren zum Betreiben eines Rechnersystems.
-
In herkömmlichen Rechnersystemen wird eine Verwaltung von installierter Software einschließlich von Betriebssystemdateien auf der Basis von Informationen vorgenommen, welche beispielsweise in einer Datenbank gespeichert sind. Eine solche Softwareverwaltung kann dabei kontrollieren, welche Programme auf dem Rechnersystem installiert werden können, oder auch, welche Programmversionen für die installierten Programme zulässig sind. Insbesondere ist eine solche Softwareverwaltung in der Lage, die Installation von nichtautorisierter Software auf dem Rechnersystem zu verhindern.
-
Dieses Prinzip basiert darauf, dass die Softwareverwaltung vertrauenswürdig ist und mögliche Programme zur Installation oder Aktualisierung aus vertrauenswürdigen Quellen stammen, was wiederum von der Softwareverwaltung überprüft werden kann.
-
Wenn jedoch durch ein Schadprogramm auf dem Rechnersystem, beispielsweise einem Virus, einem Programm, das eine Sicherheitslücke des Rechnersystems ausnützt, oder dergleichen, ein unerwünschter Zugriff auf die Softwareverwaltung und/oder die Datenbank der Softwareverwaltung erfolgt, kann die vertrauenswürdige Stellung der Softwareverwaltung kompromittiert werden. Dadurch ist es im Folgenden beispielsweise möglich, auch für das Rechnersystem eigentlich nicht zugelassene Software zu installieren und damit beispielsweise weitere Sicherheitslücken im Rechnersystem zu erzeugen.
-
Bei herkömmlichen Rechnersystemen wird dementsprechend beispielsweise versucht, Schadprogramme, die die Softwareverwaltung angreifen könnten, im Vorfeld ihrer Ausführung zu entdecken und zu beseitigen.
-
Eine zu lösende Aufgabe besteht darin, ein verbessertes Sicherheitskonzept für die Softwareverwaltung eines Rechnersystems anzugeben.
-
Diese Aufgabe wird gelöst mit dem Gegenstand der unabhängigen Patentansprüche. Ausgestaltungsformen und Weiterbildungen der Erfindung sind Gegenstand der abhängigen Ansprüche.
-
Die Erfindung basiert auf der Idee, die Softwareverwaltung eines Systems von dem zu verwaltenden System zu trennen und in einem unabhängigen, sicheren System auszuführen. Beispielsweise werden dazu auf dem Rechnersystem zwei unabhängige Betriebssystem-Kerne beziehungsweise darauf basierende Betriebssysteme ausgeführt, wobei ein erster Betriebssystem-Kern die Softwareverwaltung für den zweiten Betriebssystem-Kern ausführt. Um die Sicherheit des ersten Betriebssystem-Kerns und einer Datenbank für die Softwareverwaltung zu schützen, sind zudem unabhängige Massenspeicher vorgesehen, wobei auf einem ersten Massenspeicher unter anderem die Datenbank für die Softwareverwaltung gespeichert ist und auf dem zweiten Massenspeicher Systemdateien und Programmdateien für den zweiten Betriebssystem-Kern gespeichert sind. Dadurch kann, selbst wenn der zweite Betriebssystem-Kern kompromittiert wird, eine Vertrauenswürdigkeit der Softwareverwaltung beziehungsweise der Datenbank für die Softwareverwaltung aufrechterhalten werden, sodass die Installation von unerwünschter Software auf dem zweiten Betriebssystem-Kern verhindert wird.
-
Gemäß einer Ausführungsform weist ein Rechnersystem einen Prozessor, einen ersten Massenspeicher und einen zweiten Massenspeicher auf. Das Rechnersystem ist eingerichtet, auf dem Prozessor ein Master-Betriebssystem-Kern sowie einen ersten und einen zweiten Betriebssystem-Kern unter Kontrolle des Master-Betriebssystem-Kerns auszuführen. Der erste Massenspeicher ist eingerichtet, eine Datenbank für eine Softwareverwaltung zu speichern. Der zweite Massenspeicher ist eingerichtet, Systemdateien und Programmdateien für den zweiten Betriebssystem-Kern zu speichern. Der erste Betriebssystem-Kern ist eingerichtet, unter Nutzung der Datenbank für die Softwareverwaltung Softwareaktualisierungen für den zweiten Betriebssystem-Kern durchzuführen. In verschiedenen Ausführungsformen führt der erste Betriebssystem-Kern auch Softwareaktualisierungen für den ersten Betriebssystem-Kern durch. Systemdateien und Programmdateien für den ersten Betriebssystem-Kern sind vorzugsweise auf dem ersten Massenspeicher abgelegt.
-
Auf dem Rechnersystem beziehungsweise dem Prozessor wird dementsprechend zunächst der Master-Betriebssystem-Kern ausgeführt, welcher beispielsweise als Mikrokernel oder Separationskernel ausgeführt ist. Der Master-Betriebssystem-Kern ermöglicht es dementsprechend, den ersten und den zweiten Betriebssystem-Kern unabhängig voneinander auszuführen beziehungsweise zu kontrollieren, so dass die beiden kontrollierten Betriebssystem-Kerne keinen Zugriff auf Prozesse, Speicher oder ähnliches des jeweils anderen Betriebssystem-Kerns haben.
-
Vorzugsweise ist der erste Betriebssystem-Kern für ein sicheres Betriebssystem eingerichtet, auf dem insbesondere lediglich eine geringe Anzahl von Programmen abläuft, welche im Wesentlichen außer zu Verwaltungszwecken keine Interaktion mit einem Benutzer erfordern. Der zweite Betriebssystem-Kern ist zur Ausführung von prinzipiell beliebigen Programmen eingerichtet, beispielsweise Multimediaanwendungen wie Webbrowser, Software zum Abspielen von Musik, Bildbetrachtungssoftware, Dokumentenbetrachter oder dergleichen. Insbesondere können somit auch potentiell sicherheits-gefährdende Programme unter dem zweiten Betriebssystem-Kern ausgeführt werden.
-
Vorzugsweise ist der Zugriff auf den ersten und den zweiten Massenspeicher durch den ersten und den zweiten Betriebssystem-Kern reglementiert. Insbesondere werden beispielsweise Lesezugriffe und Schreibzugriffe auf dem ersten und dem zweiten Massenspeicher durch den Master-Betriebssystem-Kern gesteuert.
-
In einer Ausführungsform hat der erste Betriebssystem-Kern auf dem ersten und dem zweiten Massenspeicher jeweils Lesezugriff und Schreibzugriff, während der zweite Betriebssystem-Kern auf dem ersten Massenspeicher keinen Lesezugriff und keinen Schreibzugriff sowie auf dem zweiten Massenspeicher Lesezugriff und keinen Schreibzugriff hat. Dementsprechend ist lediglich der erste Betriebssystem-Kern in der Lage, auf den ersten und insbesondere den zweiten Massenspeicher schreibend zuzugreifen, um Systemdateien und Programmdateien für die Betriebssystem-Kerne zu speichern oder zu verändern. Auch bei einer Kompromittierung des zweiten Betriebssystem-Kerns kann durch den fehlenden Schreibzugriff auf den zweiten Massenspeicher keine Veränderung der installierten Systemund Programmdateien vorgenommen werden. Ferner wird durch den fehlenden Lesezugriff und Schreibzugriff auf den ersten Massenspeicher verhindert, dass der zweite Betriebssystem-Kern die Datenbank für die Softwareverwaltung auslesen kann und dadurch beispielsweise Informationen über installierte Software oder die Berechtigung zum Installieren von Software erhält.
-
In verschiedenen Ausführungsformen sind Systemdateien und Programmdateien für den zweiten Betriebssystem-Kern ausschließlich auf dem zweiten Massenspeicher gespeichert. Dadurch wird erreicht, dass die Kontrolle für Programme und Systemdateien für den zweiten Betriebssystem-Kern ausschließlich durch den ersten Betriebssystem-Kern erfolgt.
-
Vorzugsweise ist der erste Betriebssystem-Kern zum Betrieb mit Sicherheitsrichtlinien und/oder zum Ausführen eines Virenscanners eingerichtet.
-
In weiteren Ausführungsformen ist der erste Massenspeicher auch zum Speichern von Sicherheitszertifikaten eingerichtet, wobei der erste Betriebssystem-Kern eingerichtet ist, beim Durchführen der Softwareaktualisierungen zu installierende Dateien anhand wenigstens eines der gespeicherten Sicherheitszertifikate zu authentifizieren. Die Sicherheitszertifikate basieren beispielsweise auf einer kryptografischen Verschlüsselung beziehungsweise Signierung von zu installierenden Dateien. Dadurch kann erreicht werden, dass lediglich Dateien installiert werden können, welche mit dem an sich geheimen Schlüssel beziehungsweise Zertifikat authentifiziert sind. Wenn der zweite Betriebssystem-Kern keinen Lesezugriff auf den ersten Massenspeicher hat, kann auch ein Auslesen der Sicherheitszertifikate durch ein Schadprogramm auf dem zweiten Betriebssystem-Kern verhindert werden, so dass eine unerwünschte Kompromittierung der Sicherheitszertifikate verhindert werden kann.
-
In weiteren Ausführungsformen weist das Rechnersystem ferner einen dritten Massenspeicher, insbesondere zum Speichern von Benutzerdaten auf, wobei der zweite Betriebssystem-Kern auf dem dritten Massenspeicher Lesezugriff und Schreibzugriff hat. Dadurch können Daten, die beispielsweise über eine Netzverbindung oder in anderer Weise auf dem zweiten Betriebssystem-Kern eintreffen, abgespeichert werden. Vorzugsweise ist der Master-Betriebssystem-Kern dabei eingerichtet, ein Ausführen von Programmen, die auf dem dritten Massenspeicher gespeichert sind, zu verhindern oder zumindest zu reglementieren. Unter Programmen werden dabei jegliche Formen von ausführbaren Dateien einschließlich von Skriptdateien sowie Programmbibliotheken angesehen. Beispielsweise können bestimmte Skriptdateien wie Java-Script, welches für HTML5 notwendig ist, zur Ausführung zugelassen werden. Wegen der begrenzten Schreibrechte ist eine dauerhafte Beschädigung des Gesamtsystems auch bei bösartigen Skriptdateien verhindert.
-
In einer Ausführungsform des Rechnersystems sind der erste und der zweite Massenspeicher auf einem gemeinsamen Massenspeichermedium, insbesondere einem nichtflüchtigen Massenspeichermedium, angeordnet. Das Massenspeichermedium ist beispielsweise ein sogenannter Flashspeicher wie eine Multimediacard, MMC, oder eine Secure Digital Memory Card, SD-Card, oder dergleichen. Beispielsweise ist das nichtflüchtige Massenspeichermedium ein NAND-Speicher, ein NOR-Speicher oder ein gemanagter NAND-Speicher, welche jeweils fest auf der Platine des Rechnersystems verlötet sein können. In anderen Ausführungsformen kann das Massenspeichermedium auch eine Festplatte oder ein Festkörperlaufwerk, englisch Solid State Drive, SSD, sein.
-
Das Rechnersystem ist insbesondere für einen Betrieb in einem Kraftfahrzeug eingerichtet. Beispielsweise ist das Rechnersystem als eingebettetes System ausgeführt. Jedoch kann das Rechnersystem auch in anderen Umgebungen eingesetzt werden.
-
In einer Ausführungsform eines Verfahrens zum Betreiben eines Rechnersystems wird eine Datenbank für eine Softwareverwaltung auf einem ersten Massenspeicher gespeichert. Systemdateien und Programmdateien für einen ersten Betriebssystem-Kern werden auf dem ersten Massenspeicher und/oder einem zweiten Massenspeicher gespeichert. Ferner werden Systemdateien und Programmdateien für einen zweiten Betriebssystem-Kern auf dem zweiten Massenspeicher gespeichert. In dem Rechnersystem wird ein Master-Betriebssystem-Kern ausgeführt sowie der erste und der zweite Betriebssystem-Kern, jeweils unter Kontrolle des Master-Betriebssystem-Kerns. Softwareaktualisierungen für den zweiten Betriebssystem-Kern werden durch den ersten Betriebssystem-Kern unter Nutzung der Datenbank für die Softwareverwaltung durchgeführt.
-
Weitere Ausführungsformen und Ausgestaltungen des Verfahrens ergeben sich unmittelbar aus den zuvor beschriebenen Ausführungsformen des Rechnersystems.
-
Bei den zuvor beschriebenen Ausführungsformen wird eine Softwareaktualisierung innerhalb eines Betriebssystems, basierend auf dem zweiten Betriebssystem-Kern, von außerhalb dieses Betriebssystems durchgeführt. Beispielsweise kann dies bei einem Linux basierten System erreicht werden, indem der Paketmanager, wie zum Beispiel RPM, DPKG oder APK, aus dem zu verwaltenden Betriebssystem herausgelöst ist und unterhalb des ersten Betriebssystem-Kerns ausgeführt wird. Zusätzlich kann das Betriebssystem mit dem zweiten Betriebssystem-Kern nicht auf sein eigenes Dateisystem schreiben, um Bibliotheken, ausführbare Dateien und Konfigurationsdateien zu verändern, weil dies durch die Nutzung des Master-Betriebssystem-Kerns, der beispielsweise als Mikro- oder Separationskernel ausgeführt ist, verhindert wird. Im Unterschied zu einer vollständigen hardwaremäßigen Trennung zwischen den zwei Betriebssystem-Kernen wird bei dem vorgeschlagenen Rechnersystem eine Kontrolle der nichtflüchtigen Massenspeicher durch eine einzige Instanz durchgeführt, wobei zugleich die Möglichkeit geschaffen wird, gesicherte Betriebssysteme mit dem ersten Betriebssystem-Kern auszuführen, welches dennoch den Inhalt der nichtflüchtigen Massenspeicher aktualisieren kann.
-
Die Erfindung wird nachfolgend an einem Ausführungsbeispiel anhand der einzigen 1 näher erläutert.
-
1 zeigt ein Ausführungsbeispiel eines Rechnersystems. Ein beispielhaft dargestelltes Rechnersystem 100 umfasst einen Prozessor CPU sowie ein Massenspeichermedium FLSH, welches beispielsweise als Flashspeicher oder als Festplatte oder als Festkörperlaufwerk ausgeführt ist. Auf dem Massenspeichermedium FLSH sind beispielhaft drei Massenspeicher MS1, MS2, MS3 eingerichtet, welche beispielsweise als Partitionen auf dem Massenspeichermedium FLSH angelegt sind. Auf dem Prozessor CPU des Rechnersystems 100 läuft wenigstens ein Master-Betriebssystem-Kern MBS, welcher zwei separat betreibbare Betriebssystem-Kerne BS1, BS2 umfasst beziehungsweise kontrolliert.
-
Der Master-Betriebssystem-Kern ist beispielsweise als Mikrokernel implementiert, welcher im Gegensatz zu einem herkömmlichen monolithischen Kernel nur über grundlegende Funktionen wie Speicher- und Prozessverwaltung und Grundfunktionen zur Synchronisation und Kommunikation umfasst.
-
Vorzugsweise ist der Master-Betriebssystem-Kern jedoch als Separationskernel ausgeführt, der als Sicherheitskernel arbeitet, um eine verteilte Umgebung zu simulieren. Insbesondere ist der Separationskernel eingerichtet, den ersten Betriebssystem-Kern BS1 sowie den zweiten Betriebssystem-Kern BS2 getrennt voneinander zu kontrollieren. In Abwandlung der dargestellten Ausführungsform können von dem Master-Betriebssystem-Kern MBS auch weitere Betriebssystem-Kerne kontrolliert werden, welche parallel zu dem ersten und dem zweiten Betriebssystem-Kern BS1, BS2 ablaufen, aber aus Übersichtsgründen hier nicht dargestellt sind.
-
Der linke Betriebssystem-Kern BS2 dient zum Ausführen eines herkömmlichen Betriebssystems, welches die Verwendung von Internetanwendungen wie einem Webbrowser, herunterladbaren Anwendungen und Multimediafunktionalität ermöglicht. Der Betriebssystem-Kern BS2 ist vorzugsweise gesichert, wobei es nicht notwendig ist, dass eine erhöhte Zuverlässigkeit bereitgestellt wird. Betriebssystemdateien, Anwendungen, Bibliotheksdateien und Konfigurationsdateien sind für den zweiten Betriebssystem-Kern BS2 auf dem zweiten Massenspeicher MS2 abgelegt. Dazu weist der zweite Massenspeicher MS2 beispielsweise Speicherplatz für Systemdateien BIN, ausführbare Dateien EXE und Konfigurationsdateien CNF auf. Durch den Master-Betriebssystem-Kern MBS wird sichergestellt, dass der zweite Betriebssystem-Kern BS2 auf den zweiten Massenspeicher MS2 lediglich einen Lesezugriff, aber keinen Schreibzugriff auf den zweiten Massenspeicher MS2 besitzt, gekennzeichnet durch ein ro (Read Only). Benutzerdaten wie Musikdateien MP3, Bilddateien JPG oder andere Internetformate HTML sind auf dem dritten Massenspeicher MS3 abgelegt, auf dem der zweite Betriebssystem-Kern BS2 sowohl Lese- als auch Schreibzugriff besitzt. Dies ist durch die Bezeichnung rw (Read-Write) gekennzeichnet.
-
Der rechte Betriebssystem-Kern BS1 dient zur Ausführung eines sicheren Betriebssystems, unter dem ein Softwareverwaltungsprogramm läuft. Ferner können unter dem ersten Betriebssystem-Kern BS1 auch ein Virenscanner und/oder bestimmte Sicherheitsrichtlinien implementiert sein. Ein Zugriff auf den ersten Betriebssystem-Kern ist vorzugsweise lediglich zu Wartungszwecken vorgesehen, so dass insbesondere keine unsicheren Multimediaanwendungen oder dergleichen ausgeführt werden können. Der erste Betriebssystem-Kern BS1 hat Schreibzugriff und Lesezugriff auf den ersten und den zweiten Massenspeicher MS1, MS2. Auf dem ersten Massenspeicher MS1 sind eine Datenbank für eine Softwareverwaltung SW-DB, Sicherheitszertifikate CERT und ein Virenscanner VS gespeichert. Betriebssystemdateien, Anwendungen, Bibliotheksdateien und Konfigurationsdateien sind für den ersten Betriebssystem-Kern BS1 entweder ebenfalls auf dem zweiten Massenspeicher MS2 oder vorzugsweise auf dem ersten Massenspeicher MS1 abgelegt. Der zweite Betriebssystem-Kern BS2 hat keinerlei Zugriff auf den ersten Massenspeicher MS1 und hat vorzugsweise auch keine Kenntnis von der Existenz dieses Massenspeichers MS1. Der Zugriff auf das Massenspeichermedium FLSH beziehungsweise die Massenspeicher MS1, MS2, MS3 ist durch den Master-Betriebssystem-Kern MBS kontrolliert, so dass auch Schadsoftware, welche unter dem zweiten Betriebssystem-Kern BS2 ausgeführt wird, keinen Zugriff auf die Datenbank für die Softwareverwaltung und die Sicherheitszertifikate besitzt. Zudem kann ein Schadprogramm auch keine Systemdateien oder Anwendungen auf dem zweiten Massenspeicher MS2 verändern. Vorzugsweise können auch weitere Massenspeicher auf dem Massenspeichermedium FLSH vorgesehen werden, welche beispielsweise Systemdateien für den Master-Betriebssystem-Kern MBS speichern.
-
Für eine Softwareaktualisierung des zweiten Betriebssystem-Kerns BS2 dient dementsprechend der erste Betriebssystem-Kern BS1, welcher auf Basis der Datenbank für die Softwareverwaltung eine Aktualisierung der Systemdateien und Anwendungen auf dem zweiten Massenspeicher MS2 durchführt. Dazu werden zu installierende Softwarepakete vorzugsweise gegen die gespeicherten Sicherheitszertifikate authentifiziert, so dass nur Softwarepakete aus vertrauenswürdigen Quellen, welche das Sicherheitszertifikat kennen, installiert werden können. Beispielsweise basiert die Softwareverwaltung auf einem Paketmanager. Bei der Nutzung von beispielsweise einem Linux basierten System kann ein solcher Paketmanager durch den RPM, früher Red-Hat,-Package-Manager, RPM, den Debian Paketmanager, DPKG, oder den Android Paketmanager, APK, gebildet sein.
-
Die dargestellte Ausführungsform des Rechnersystems ermöglicht es, dass selbst bei einer Kompromittierung des zweiten Betriebssystem-Kerns BS2 durch ein Schadprogramm die Veränderung von Systemdateien und damit die gezielte Öffnung von weiteren Sicherheitslücken ausgehend vom zweiten Betriebssystem-Kern BS2 verhindert werden kann. Durch die Internetfähigkeit und Multimediafähigkeit des zweiten Betriebssystem-Kerns besteht nämlich grundsätzlich die Gefahr, dass durch unerkannte oder neu auftretende Sicherheitslücken im System Schadprogramme in dem Bereich des zweiten Betriebssystem-Kerns BS2 eingebracht werden können, welche jedoch aufgrund der mangelnden Schreibberechtigung nicht zu einer dauerhaften Veränderung des Betriebssystems unter dem zweiten Betriebssystem-Kern BS2 führen können. Dies bewirkt, dass Schadprogramme nicht in dem Rechnersystem verbleiben können, wenn das System aus- und wieder eingeschalten wird.
-
Weiterhin wird verhindert, dass solche Schadprogramme unter dem zweiten Betriebssystem-Kern BS2 die Sicherheitszertifikate auslesen, welche auf dem ersten Massenspeicher MS1 gespeichert sind, um durch Kenntnis des ausgelesenen Schlüssels kompromittierende Installationspakete zu erzeugen.
-
Vorzugsweise wird durch den Master-Betriebssystem-Kern MBS auch gesteuert, dass ein Ausführen von Programmen, die auf dem dritten Massenspeicher MS3 gespeichert sind, verhindert oder zumindest reglementiert wird. Unter Programmen sind dabei jegliche ausführbaren Dateien einschließlich Programmskripte sowie Programmbibliotheken zu verstehen. Solche Programme können beispielsweise über ein externes Speichermedium oder über eine Internetverbindung im Betriebssystem des zweiten Betriebssystem-Kerns BS2 geladen werden und auf dem dritten Massenspeicher MS3 abgelegt werden. Beispielsweise können bestimmte Skriptdateien wie Java-Script, welches für HTML5 notwendig ist, zur Ausführung zugelassen werden. Wegen der begrenzten Schreibrechte ist eine dauerhafte Beschädigung des Gesamtsystems auch bei bösartigen Skriptdateien verhindert.
-
Durch die Trennung der Softwareaktualisierung aus dem eigentlich zu aktualisierenden Betriebssystem heraus auf einen anderen Betriebssystem-Kern wird somit wirkungsvoll eine Aktualisierung mit schadhaften Programmen durch das zu aktualisierende Betriebssystem selbst verhindert. Folglich ist es möglich, das Betriebssystem unter dem zweiten Betriebssystem-Kern BS2 offener für Internetanwendungen mit potentiellem Schadcode zu machen, ohne die Sicherheit des gesamten Rechnersystems zu gefährden.
-
Im Unterschied zu einer Implementierung der Betriebssystem-Kerne BS1, BS2 auf unterschiedlichen Hardwareplattformen wird durch die Verwendung des Master-Betriebssystem-Kerns MBS, welcher die beiden Betriebssystem-Kerne BS1, BS2 gemeinsam kontrolliert, eine einheitliche Sicherheitsverwaltung ermöglicht. Zudem steht bei der beschriebenen Ausführungsform des Rechnersystems auch der Zugriff auf das Massenspeichermedium FLSH beziehungsweise die Massenspeicher MS1, MS2, MS3 unter der alleinigen Kontrolle des Master-Betriebssystem-Kerns MBS.
-
Das Rechnersystem 100 ist insbesondere für einen Betrieb in einem Kraftfahrzeug eingerichtet. Beispielsweise ist das Rechnersystem 100 als eingebettetes System ausgeführt. Jedoch kann das Rechnersystem 100 auch in anderen Umgebungen eingesetzt werden.
-
Beispielsweise ist das nichtflüchtige Massenspeichermedium FLSH ein NAND-Speicher, ein NOR-Speicher oder ein gemanagter NAND-Speicher, welche jeweils fest auf der Platine des Rechnersystems 100 verlötet sein können.