DE602006000878T2 - Verfahren zur Steuerung eines Ressourcenzugriffs eines Prozesses durch einen Elternprozess - Google Patents

Verfahren zur Steuerung eines Ressourcenzugriffs eines Prozesses durch einen Elternprozess Download PDF

Info

Publication number
DE602006000878T2
DE602006000878T2 DE602006000878T DE602006000878T DE602006000878T2 DE 602006000878 T2 DE602006000878 T2 DE 602006000878T2 DE 602006000878 T DE602006000878 T DE 602006000878T DE 602006000878 T DE602006000878 T DE 602006000878T DE 602006000878 T2 DE602006000878 T2 DE 602006000878T2
Authority
DE
Germany
Prior art keywords
access
parent
operating system
request
resource
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.)
Active
Application number
DE602006000878T
Other languages
English (en)
Other versions
DE602006000878D1 (de
Inventor
Andrew Woodlawn Robison
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.)
Alcatel Lucent SAS
Original Assignee
Alcatel Lucent SAS
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 Alcatel Lucent SAS filed Critical Alcatel Lucent SAS
Publication of DE602006000878D1 publication Critical patent/DE602006000878D1/de
Application granted granted Critical
Publication of DE602006000878T2 publication Critical patent/DE602006000878T2/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Control By Computers (AREA)

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft ein System und Verfahren zur Ausführung eines Prozesses auf einer Mikroprozessor-Einrichtung.
  • HINTERGRUND DER ERFINDUNG
  • In einer Mikroprozessor-Einrichtung, wie z. B. einem Computer, einer Kommunikations-Vermittlung, einem ABS-Steuerungsmodul in einem Auto, oder in einem Toaster können oft mehrere getrennte Prozesse gleichzeitig aktiv sein, die um Betriebs-Zyklen des Mikroprozessors und mit dem Mikroprozessor verbundene Ressourcen konkurrieren. Ein Betriebssystem ist zur Steuerung des Betriebs eines Prozesses und seiner Anforderungen nach Ressourcen entscheidend. Ein Beispiel für ein Betriebssystem ist Microsoft XP (Warenzeichen der Microsoft Corporation), das häufig als Betriebssystem auf Computern installiert ist, die einen Intel-Mikroprozessor, wie z. B. einen Pentium-(Warenzeichen der Intel Corporation)-Mikroprozessor, als Zentraleinheit haben.
  • Es ist nützlich, den Betrieb von Prozessen, die auf der Einrichtung ausgeführt werden, zu steuern, um sicherzustellen, dass der Betrieb oder der Ausfall eines gegebenen Prozesses andere Prozesse, die auf der Einrichtung laufen, weder beeinflusst noch einen eingeschränkten Einfluss auf sie hat. Wenn zum Beispiel ein Prozess einen schweren Fehler aufweist, darf seine Beendigung die anderen Prozesse nicht beeinflussen; er muss sanft von den anderen Prozessen heruntergefahren werden. Auch darf bei der Ausführung eines Prozesses kein Zugriff auf Dateien, Daten, Speicher oder Ressourcen stattfinden, für die er keine Zugriffsberechtigung hat.
  • Es ist auch nützlich, den Betrieb solcher Prozesse zu steuern, da ihre Herkunft fraglich sein kann. Da das Laden von Programmen über das Internet weit verbreitet ist, ist es möglich, dass das geladene Programm bösartigen Code oder Routinen enthält, die entweder den Computer, seine Daten oder andere Programme, die auf dem Computer laufen, nachteilig beeinflussen können.
  • Es sind mehrere Verfahren und Systeme nach dem Stand der Technik verfügbar, mit denen versucht wird, den Betrieb eines Prozesses von anderen Elementen in solchen Einrichtungen zu trennen.
  • Zum Beispiel ist eine Software "Sandbox" ein Code, der ein Trennungs-Verfahren bereitstellt, um einen begrenzten Satz von Ressourcen für einen Ziel-Prozess in einem "Sandkasten (Sandbox)" zu definieren. Alle von dem Prozess durchgeführten Ressourcen-Anforderungen werden von einem Sicherheits-Überwacher vermittelt, der den Code überprüft und untersucht, bevor er zulässt, dass er ausgeführt wird. Die Überprüfung kann die Verwendung digitaler Signaturen des Codes, um seine Herkunft zu überprüfen, und die Byte-für-Byte-Untersuchung auf Einhaltung der Sicherheitsvorschriften, usw. umfassen. Typischerweise muss der Code in der Prozess-Sandbox auf relevante Design-, Implementations- und Konfigurations-Fehler überprüft werden.
  • Die Code-Überprüfung ist ein anderes Verfahren. Die Code-Überprüfung überprüft einen Prozess auf Design- und Implementations-Fehler. Speziell wird jede Zeile des Codes eines Prozesses mit einer Schablone überprüft, die Konfigurations-Fehler erkennt. Man kann erkennen, dass es bei der Code-Überprüfung erforderlich sein kann, hunderte oder tausende von Code-Zeilen zu überprüfen, bevor Anwender-Konfigurations-Fehler berücksichtigt werden.
  • Ein Hardware-Ring bietet ein weiteres Schutzverfahren. Der Ring, den man häufig in Betriebssystem-Architekturen sieht, bietet zwei Betriebsarten für einen Mikroprozessor. Eine erste Betriebsart bietet einem Prozess uneingeschränkten Zugriff auf alle Ressourcen, die von dem Mikroprozessor kontrolliert werden. Ein zweiter eingeschränkter Modus bietet einem Prozess nur einen bestimmten Zugriff auf bestimmte Ressourcen. Ein Hardware-Ring benutzt typischerweise Attribute des Benutzer-Prozesses, wie z. B. den Benutzernamen und den Namen des Prozesses, um den Grad des Zugriffs zu bestimmen, der dem Prozess bereitgestellt wird. Betriebssysteme arbeiten in Verbindung mit den Betriebsarten, um den Zugriff zu den Ressourcen zu kontrollieren. Bei vielen Betriebssystemen ist eine Sicherheits-Strategie in das Betriebssystem codiert und beruht auf Laufzeit-Attributen des Benutzerprozesses und der System-Ressource, auf die zugegriffen wird, um Zugriffsrechte zu bestimmen.
  • Hardware-Ringe sind nicht so flexibel wie Software-Sandboxes, bieten aber typischerweise eine sicherere Implementation. Der Hardware-Ring garantiert, dass der Code und die Daten des Betriebssystems nicht für einen Benutzer-Prozess zugänglich sind.
  • KURCHUK, A: "Recursive sandboxes: Extending Systrace to empower applications" INTERNET ARTICLE, [Online] 25. Juli 2004 (2004-07-25), Seite 1-16, legt den Systrace-System-Einfügungs-Mechanismus als Verfahren offen, um nicht vertrauenswürdigen Code durch programmspezifische Strategien einzugrenzen, die durch Hintergrundprozesse auf Benutzerebene und Erweiterungen von Systrace durchgeführt werden, die es erlauben, dass Sandbox-Prozesse ferner ihre Kind-Prozesse begrenzen, indem sie dynamisch konstruierte Strategien ausgeben. Erweiterungen des Systrace-Daemon und des OpenBSD-Kernel, sowie eine API zur Konstruktion von Strategien werden erläutert.
  • Es besteht ein Bedarf für ein System und ein Verfahren zur Verarbeitung von Datenbank-Operationen, welche die Nachteile des Standes der Technik beseitigen.
  • ZUSMMENFASSUNG DER ERFINDUNG
  • In einem ersten Aspekt wird ein Verfahren zur Steuerung einer Anforderung nach einer Ressource von einem Prozess, der auf einem mit einem Mikroprozessor versehenen Gerät läuft, bereitgestellt. Das Verfahren umfasst die Regelung des Zugriffs des Prozesses auf die Ressource, die dem Gerät zugeordnet ist, über einen Eltern-Prozess, wenn der Prozess eine Anfrage an ein dem Gerät zugeordnetes Betriebssystem auslöst, wobei der Eltern-Prozess außerhalb des Betriebssystems arbeitet.
  • In dem Verfahren kann der Eltern-Prozess den Prozess erzeugen.
  • In dem Verfahren kann die Anforderung zuerst von einem Zugriffs-Prozess im Betriebssystem empfangen werden. Dann kann der Zugriffs-Prozess eine zweite Anforderung an den Eltern-Prozess auslösen, um zu überprüfen, ob der Prozess die Genehmigung hat, auf die Ressource zuzugreifen. Dann kann der Eltern-Prozess ein Signal an den Zugriffs-Prozess liefern, das anzeigt, ob der Prozess die Genehmigung hat.
  • In dem Verfahren kann, wenn der Eltern-Prozess anzeigt, dass der Prozess keine Genehmigung hat, der Zugriffs-Prozess dem Prozess den Zugriff zu der Ressource verweigert.
  • In dem Verfahren kann, wenn der Eltern-Prozess anzeigt, dass der Prozess die Genehmigung hat, der Zugriffs-Prozess eine andere Zugriffs-Überprüfung im Betriebssystem durchführen, um festzustellen, ob der Prozess Zugriff zu der Ressource haben kann.
  • In einem zweiten Aspekt wird ein Modul eines Betriebssystems zur Steuerung einer Anforderung einer Ressource von einem Prozess, der auf einem mit einem Mikroprozessor ausgestatteten Gerät läuft, bereitgestellt. Das Modul umfasst einen Prozess zur Regelung des Zugriffs des Prozesses auf die Ressource des Gerätes über einen Eltern- Prozess, wenn der Prozess die Anforderung an ein Betriebssystem auf dem Gerät auslöst, wobei der Eltern-Prozess außerhalb des Betriebssystems arbeitet.
  • In dem Modul des Betriebssystems kann der Eltern-Prozess den Prozess erzeugen.
  • In dem Modul des Betriebssystems kann die Anforderung zuerst von einem Zugriffs-Prozess im Betriebssystem empfangen werden. Anschließend kann der Zugriffs-Prozess eine zweite Anforderung an den Eltern-Prozess auslösen, um zu überprüfen, ob der Prozess die Genehmigung hat, auf die Ressource zuzugreifen. Dann kann der Eltern-Prozess ein Signal an den Zugriffs-Prozess liefern, das anzeigt, ob der Prozess die Genehmigung hat.
  • In dem Modul des Betriebssystems kann, wenn der Eltern-Prozess anzeigt, dass der Prozess keine Genehmigung hat, der Zugriffs-Prozess den Prozess-Zugriff zu der Ressource verweigern.
  • In dem Modul des Betriebssystems kann, wenn der Eltern-Prozess anzeigt, dass der Prozess die Genehmigung hat, der Zugriffs-Prozess eine andere Zugriffs-Überprüfung im Betriebssystem durchführen, um festzustellen, ob der Prozess Zugriff zu der Ressource haben kann.
  • In anderen Aspekten können verschiedene Kombinationen der oben angegebenen Aspekte in weiteren Mengen und Untermengen bereitgestellt werden.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die oben angegebenen und weitere Aspekte der Erfindung werden aus der folgenden Beschreibung spezieller Ausführungen und den begleitenden Zeichnungen deutlicher, die nur als Beispiel die Prinzipien der Erfindung erläutern. In den Zeichnungen, in denen gleiche Elemente gleiche Referenznummern haben (und in denen individuelle Elemente eindeutige alphabetische Suffixe haben) ist:
  • 1 ein Blockdiagramm eines Computersystems, das Zugriff auf ein Netzwerk hat;
  • 2 ein Blockdiagramm eines Systems nach dem Stand der Technik, das ein Sicherheitssystem für das System aus 1 bereitstellt;
  • 3 ein Blockdiagramm eines Betriebssystem-Kernels, der dem Computersystem aus 1 zugeordnet ist; und
  • 4 ein Blockdiagramm einer Ausführung der Erfindung, die mit dem Betriebssystem aus 3 arbeitet.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Die folgende Beschreibung und die darin beschriebenen Ausführungen werden durch Erklärung eines Beispiels oder mehrerer Beispiele von speziellen Ausführungen der vorliegenden Erfindung bereitgestellt. Diese Beispiele werden zum Zweck der Erklärung und nicht als Einschränkung der Prinzipien der Erfindung angegeben. In der folgenden Beschreibung werden gleiche Teile in der Spezifikation und in den Zeichnungen jeweils mit denselben Referenznummern gekennzeichnet.
  • Mit Bezug auf 1 ist der Computer 100 ein mit einem Mikroprozessor ausgestattetes System, das eine Umgebung für die Ausführung von Software und Prozessen darauf bereitstellt. Der Computer 100 enthält einen Mikroprozessor 102, RAM 104, ein Festplattenlaufwerk 106, einen Eingabe-/Ausgabe-(I/O)-Anschluss 108. Wie auch bei anderen Computersystemen üblich, befinden sich auf dem Computersystem 100 Prozesse 110, die im RAM 104 geladen sind. Die Prozesse 110 liefern einen Satz von ausführbarem Software-Code, der Instruktionen für den Mikroprozessor 102 in seiner eigenen Code-Sprache liefert. Wenn einer der Prozesse 110 Zugang auf unterer Ebene zu Ressourcen des Computers 100 benötigt (wie z. B. auf Dateien, die auf der Festplatte 106 gespeichert sind, oder zu anderen, im RAM 104 gespeicherten Dateien), liefert das Betriebssystem (OS) 112 für den Mikroprozessor 102 für Prozesse 110 eine Schnittstelle für Systemaufrufe. Typischerweise interagiert das OS 112 auch mit Mikrocode 114 auf dem Mikroprozessor 102.
  • Der Prozess 110 kann in der Datei 118 enthalten sein, die auf anderen Computern oder Daten-Servern im Netzwerk 116 gespeichert sein kann. Im Allgemeinen kann der Computer 100 die Datei 118 vom Netzwerk 116 über I/O-Anschluss 108 mit einem von zwei Verfahren empfangen. Zuerst kann Software, die auf Computer 100 läuft, die Datei 118 vom Netzwerk 116 aktiv erkennen und anfordern. Alternativ dazu kann die Datei 118 über einen externen Prozess, der von einem Element im Netzwerk 116 arbeitet, zum Computer 100 "geschoben" werden, wodurch die Datei 118 ohne anfängliche Anforderung von Computer 100 in den Computer 100 geladen wird. Man kann erkennen, dass wenn die Datei 118 einmal vom Computer 100 empfangen wurde, sie als ein Prozess 110 im RAM 104 installiert wird.
  • Mit Bezug auf 2 ist die Sandbox 200 gezeigt, die in Verbindung mit dem Prozess 110 arbeitet. Vorzugsweise bieten die Module in der Sandbox 200 die Überprüfung und Untersuchung von Code, der dem Prozess 110 zugeordnet ist, bevor die Ausführung des Codes erlaubt wird. Im Allgemeinen wird die Code-Überprüfung durchgeführt, indem eine digitale Signatur im Code überprüft wird und eine Byte-für-Byte-Überprüfung des Codes auf Übereinstimmung mit Sicherheits-Strategien durchgeführt wird.
  • Darin bietet die Sandbox 200 ein Sicherheits-Überwachungs-Modul 202 und ein Sandbox-Bibliotheks-Modul 204. Im Betrieb läuft die Sandbox 200 extern zum Prozess 110. Die Sandbox 200 führt folgende Schritte aus. In Schritt (1) löst eine Codezeile im Prozess 110 eine Anforderung für einen Zugriff auf eine System-Ressource von Computer 100 aus (wie z. B. eine Datei), und die Anforderung wird an den Sicherheits-Überwacher 202 gesendet. In den Schritten (2) und (3) überprüft der Sicherheits-Überwacher 202 die Privilegien von Prozess 110 mit Prozess 110 gegenüber einem Satz von Zugriffs-Privilegien und empfängt eine Ja/Nein-Antwort. Zugriffs-Privilegien können auf der Grundlage mehrerer Tatsachen festgelegt werden, einschließlich: Inhaber der Datei, Ort der Datei, Benutzerkennung des Prozesses, Privilegien des Prozesses und weitere. Man kann erkennen, dass andere Privilegien definiert werden können. In der vorliegenden Ausführung kann es zum Beispiel, wenn die Datei die System-Passwort-Datei ist, erforderlich sein, dass der aufrufende Prozess Systemverwaltungs-Privilegien haben muss, um die Datei zu öffnen. In Schritt (4) wird, wenn der Zugriff erlaubt ist, die Anforderung durch die Sandbox-Bibliothek 204 weitergegeben. Anschließend wandelt in Schritt (5) die Sandbox-Bibliothek 204 die Anforderung in einen geeigneten Betriebssystem-Aufruf einer unteren Ebene für das Betriebssystem 112 um. Der Betriebssystem-Aufruf wird dann an den Betriebssystem-Kernel 112A bereitgestellt, und in Schritt (6) werden die Ergebnisse des Aufrufs an die Bibliothek 204 zurückgegeben, wodurch der Zugriff vollzogen ist. Das Ergebnis eines Systemaufrufs ist bei den meisten Betriebssystemen ein Fehler-Status-Code (zum Beispiel "0" für erfolgreich und "–1" für Fehler). Seiteneffekte eines Systemaufrufs umfassen: Änderung des Speicherinhaltes in übergebenen Speicher-Puffern, Aktualisierungen der Prozesse oder des Inhaltes einer Datei oder eines Status. Anschließend ändert in Schritt (7) die Sandbox-Bibliothek den Ergebnis-Code und ändert alle zurückgegebenen Speicher-Puffer, usw., so dass der gefangene Prozess von der Rückgabe des ursprünglichen Systemaufrufs isoliert wird. Stattdessen sieht der gefangene Prozess einen geänderten Aufruf-Rückgabewert. In anderen Ausführungen wird auf Schritt 7 verzichtet.
  • Mit Bezug auf 3 ist bezüglich einer Ausführung das System 300 gezeigt, das innerhalb des OS-Kernels 112A vorhanden ist. Darin werden mehrere Prozesse bereitgestellt, um den Zugriff auf Ressourcen zu steuern, einschließlich Hardware-Ring-Übergangs-Prozess 302, Referenz-Überwachungs- und Sicherheits-Durchsetzungs-(Reference Monitor and Security Enforcement, RMSE)-Prozess 304, Sicherheits-Strategie-Datenbank 306, Dateisystem 308 und Netzwerk-Schnittstellen-Prozess 310.
  • Der Hardware-Ring-Übergang 302 steuert den Zugriff auf das OS 112 und alle geschützten Ressourcen. Die Prozesse 110 befinden sich in dem begrenzten Ring, und das OS 112 befindet sich in dem unbegrenzten Ring. Damit ein Prozess auf das OS zugreifen kann, muss er einen Ring-Übergangs-Aufruf an einen speziellen kontrollierten Eintrittspunkt im OS durchführen (Systemaufruf oder Gate). Das OS überprüft dann die Anforderung, bevor es darauf anspricht.
  • Das RMSE-Modul 304 bietet die Sicherheits-Durchsetzung für den Kernel 112. Es steuert den Zugriff auf Dateisysteme 308, die dem Computer 100 zugeordnet sind. Typischerweise wird eine Dateizugriffs-Anforderung von Prozess 110 (nicht gezeigt) vom RMSE-Modul 304 gesteuert. Die ausgeführten Schritte, an denen das RMSE-Modul 304 zur Sicherheits-Durchsetzung beteiligt ist, sind folgende Schritte. In Schritt (1) fordert der Prozess 110 den Zugriff auf eine Ressource an, der von dem Kernel 112 an das RMSE-Modul 304 umgeleitet wird. Alle Systemaufrufe werden durchgeführt, indem ein "Gate"-Aufruf-Mechanismus eines Prozessors aufgerufen wird, der je nach Prozessorfamilie unterschiedlich ist, und der dann den Ring ändert und an einem vom Kernel kontrollierten Eintrittspunkt in der Kernel-Code eintritt. Die Erkennung, welcher Systemaufruf durchgeführt wird, erfolgt normalerweise durch einen Wert, der sich zu dem Zeitpunkt des Aufrufs in einem Register befindet. In Schritt (2) löst das RMSE-Modul 304 einen Aufruf an die Sicherheits-Strategie-Datenbank 306 aus, um das RMSE-Modul 304 in die Lage zu versetzen, festzustellen, ob der Aufruf zulässig ist. In Schritt (3) wird die Sicherheits-Strategie-Datenbank 306 überprüft, um festzustellen, ob der Prozess den angeforderten Systemaufruf mit den spezifizierten Parametern durchführen kann, z. B. "Datei öffnen auf /tmp/foo.txt". Typischerweise werden Systemaufrufe hier nicht ausgeführt. Die Sicherheits-Strategie-Datenbank 306 kann jedoch Dateien oder andere externe Quellen als Quellen für die Dateneingabe für die Sicherheits-Überprüfung benutzen. Wenn der Prozess durchgeführt werden kann, hat der Prozess die Erlaubnis, ausgeführt zu werden. Es wird eine Antwort auf den Aufruf erzeugt und an das RMSE-Modul 304 geliefert. Dies führt zu einem Ring-Übergang, der vorzugsweise sicherstellt, dass die Prozesse die Schritte nicht umgehen können, indem sie miteinander oder mit etwas wie einer Datei, die durch das OS geschützt ist, kommunizieren oder direkt interagieren. In Schritt (4) wird, wenn die Antwort den Zugriff durch den Aufruf erlaubt, der Aufruf an das Dateisystem 308 weitergegeben. In Schritt (5) führt das Dateisystem 308 den Aufruf aus und liefert ihn an das RMSE-Modul 304. In Schritt (6) wird die Datei an den Prozess 110 geliefert. Es muss darauf hingewiesen werden, dass alle Dateizugriffe durch den Prozess 110 über den Hardware-Ring-Übergang 302 gehen. Die oben angegebenen Schritte würden für einen Beispiel-Systemaufruf wie folgt ausgeführt:
    Schritt (1) Prozess 110 führt einen Systemaufruf "Datei öffnen" aus (Ring-Übergang).
    Schritt (2) Das RMSE-Modul ruft Code (SPDB 306) auf, um die Sicherheits-Strategie des Systems zu überprüfen; kein Systemaufruf, da wir bereits im Kernel sind.
    Schritt (3) Die SPDB überprüft, ob der Prozess den angeforderten Systemaufruf mit den spezifizierten Parametern ausführen kann (z. B. Datei öffnen auf "/tmp/foo.txt"). Es werden normalerweise keine Systemaufrufe hier sein, obwohl die SPDB "Dateien" oder andere externe Ressourcen als Quellen für die Dateneingabe für die Sicherheitsüberprüfung verwenden kann.
    Schritt (4) bis (6) Keine Änderungen; keine Systemaufrufe, da dies normalerweise intern im Kernel abläuft. Ring-Übergang zurück zum "Anwender"-Ring vom "Kernel"-Ring in Schritt (6).
  • Mit Bezug auf 4 wird eine Ausführung in System 400 in Kernel 112 bereitgestellt, die ähnliche Eigenschaften hat wie das System 300 (3). Zum Beispiel hat das System 400 mehrere Prozesse zur Steuerung des Zugriffs auf Ressourcen, einschließlich Hardware-Ring-Übergangs-Prozess 402, RMSE-Prozess 404, Sicherheits-Strategie-Datenbank 406, Dateisystem 408 und Netzwerk-Schnittstellen-Prozess 410. Das System 400 hat auch den Benutzer-Eltern-Prozess 412, der den gefangenen Benutzerprozess 110 erzeugt. Wie beim System 300 fordert im System 400 in Schritt (1) der Prozess 110 den Zugriff auf eine Ressource an, was vom Kernel 112 an das RMSE-Modul 304 umgeleitet wird, ähnlich wie in dem oben beschriebenen Schritt (1). Als nächstes wird Schritt (1A) ausgeführt, in dem vom RMSE-Modul 404 eine Überprüfung durchgeführt wird, um auf den Überprüfungs-Prozess 414 im Benutzer-Eltern-Prozess 412 zuzugreifen. Bei der Überprüfung fragt RMSE den Eltern-Prozess um Erlaubnis. In Schritt (1B) prüft der Zugriffs-Überprüfungs-Prozess 414 und erzeugt eine Antwort. Der Zugriffs-Überprüfungs-Prozess 414 kann auf eine Reihe erster Zugriffe prüfen. Wenn nur eine Prüfung fehlschlägt, sendet der Benutzer-Eltern-Prozess 412 eine Nachricht an den gefangenen Benutzer-Prozess 110, die ihn informiert, dass die Anforderung abgewiesen/fehlgeschlagen ist. Wenn alle Zugriffs-Anforderungen zulässig sind, sendet der Zugriffs-Überprüfungs-Prozess 414 eine Anforderung an das RMSE-Modul des Kernels 112. Der Eltern-Prozess kann auf Verletzungen der Sicherheits-Strategie prüfen, die dem Betriebssystem unbekannt sind, wie z. B. dass wenn der Kind-Prozess eine Email-Nachricht analysiert, er nicht versuchen sollte eine Datei, wie z. B. eine Betriebssystem-Datei, zu ändern. Die Mehrzahl der Viren, Würmer und Pishing-Attacken, die heute auftreten, sind keine Verletzungen der Betriebssystem-Strategie (Benutzer-/Datei-Rechte). Stattdessen sind es häufig Verletzungen des gesunden Menschenverstandes (Email-Programm ändert Betriebssystem, liest Passwort-Datei, usw.). Diese Überprüfung in 4 unterscheidet sich von der in 3 durchgeführten Überprüfung, da sie höchstwahrscheinlich durch den gesunden Menschenverstand oder durch Design-Kriterien im Sinne des Kind-Prozesses beschränkt ist.
  • Anschließend kann die Anforderung nach Ressourcen in den Schritten 2 bis 6 behandelt werden, wie für das System 300 angegeben. Zum Beispiel können typische Einschränkungen der Systemaufrufe wie üblich in den Schritten (2) bis (6) verarbeitet werden. Als Beispiel wird, wenn die Ressource anfordert, dass in eine Datei geschrieben werden soll, wenn die Datei als "nur Lesen" markiert ist, in den Schritten (2) bis (6) dieser unangebrachte Aufruf erkannt und der Zugriff blockiert. Dies sind Ähnlichkeiten zum Prozess in 3 mit der Ausnahme, dass ein Überprüfungs-Schritt (5A) und Schritt (5B) vorhanden sein können, die auf Schritt (5) folgen und vor Schritt (6) stattfinden. Insbesondere können in Schritt (5A) die Ergebnisse des System-Aufrufs überprüft und optional vom Eltern-Prozess geändert werden, und dieses geänderte Ergebnis kann in (5B) zurück an das OS und dann weiter in (6) zum Kind-Prozess gegeben werden.
  • Bei einer nachfolgenden Anforderung nach einer nachfolgenden Ressource durch den gefangenen Benutzer-Prozess 110 werden die Schritte 1, 1A, 1B und 26 wiederholt. Vorzugsweise verringert oder beseitigt das System 400 die Erfordernis, eine Sicherheits-Überprüfung des Codes durchzuführen, bevor er ausgeführt wird. Man kann erkennen, dass der Benutzer-Eltern-Prozess 412 andere gefangene Prozesse 110 erzeugen kann. Die Wiederholung ist, dass der Eltern-Prozess einen gefangenen Prozess pro zu analysierender Email oder anzuzeigender Web-Seite erzeugen kann. Diese Wiederholung sorgt dafür, dass jeder Prozess die anderen nicht stört, zum Beispiel durch Stehlen von Passworten von Ihrer Bank-Anmeldungs-Seite. Man kann erkennen, dass im System 400 die Beziehung zwischen einem Eltern-Prozess 412 und einem Kind-Prozess 110 ein Baum ist, wobei ein Eltern-Prozess viele Kind-Prozesse haben kann, und ein Kind-Prozess selbst Eltern-Prozess eines oder mehrerer seiner eigenen Kind-Prozesse sein kann. In diesem Zusammenhang muss der Benutzer-Prozess 110 überhaupt nicht wissen, dass er einen Eltern-Prozess 412 hat, der ihm zugeordnet ist. Dies erleichtert die Lokalisierung des Betriebs für jeden Prozess.
  • Man kann erkennen, dass die Ausführung in verschiedenen System-Aufruf-Routinen, Betriebssystem-Anwendungen, Software-Programmen und sogar als fest verdrahteter Schaltkreis unter Verwendung von in der Technik bekannten Verfahren implementiert werden kann.
  • Obwohl die Erfindung mit Bezug auf bestimmte spezielle Ausführungen beschrieben wurde, werden einem Fachmann verschiedenen Änderungen offensichtlich sein, ohne vom Umfang der Erfindung abzuweichen, wie in den beigefügten Ansprüchen dargestellt.

Claims (6)

  1. Verfahren zur Steuerung einer Ressourcen-Anforderung von einem Prozess (110), der auf einem mit einem Mikroprozessor ausgestatteten Gerät (100) läuft, wobei das Verfahren folgendes umfasst: Regelung des Zugriffs des Prozesses (110) auf die Ressource des Gerätes (100) über einen Eltern-Prozess (412), wenn der Prozess (110) die Anfrage an ein Betriebssystem (112) auf dem Gerät (100) auslöst, wobei der Eltern-Prozess (412) außerhalb des Kernels des Betriebssystems (112) arbeitet. wobei der Eltern-Prozess (412) den Prozess (110) erzeugt, dadurch gekennzeichnet, dass die Anforderung zuerst von einem Zugriffs-Prozess (414) im Betriebssystem (112) empfangen wird; dann der Zugriffs-Prozess (414) eine zweite Anforderung an den Eltern-Prozess (412) auslöst, um zu überprüfen, ob der Prozess (110) die Genehmigung hat, auf die Ressource zuzugreifen; und dann der Eltern-Prozess (414) ein Signal an den Zugriffs-Prozess (414) liefert, das anzeigt, ob der Prozess (110) die Genehmigung hat.
  2. Verfahren, wie in Anspruch 1 beansprucht, wobei, wenn der Eltern-Prozess (412) anzeigt, dass der Prozess (110) keine Genehmigung hat, der Zugriffs-Prozess (414) dem Prozess (110) den Zugriff zu der Ressource verweigert.
  3. Verfahren, wie in Anspruch 1 beansprucht, wobei, wenn der Eltern-Prozess (412) anzeigt, dass der Prozess (110) die Genehmigung hat, der Zugriffs-Prozess (414) eine andere Zugriffs-Überprüfung im Betriebssystem (112) durchführt, um festzustellen, ob der Prozess (110) Zugriff zu der Ressource haben kann.
  4. Ein Modul eines Betriebssystems zur Steuerung einer Ressourcen-Anforderung von einem Prozess (110), der auf einem mit einem Mikroprozessor ausgestatteten Gerät (100) läuft, wobei das Modul folgendes umfasst: einen Prozess (404) zur Regelung des Zugriffs des Prozesses (110) auf die Ressource des Gerätes (100) über einen Eltern-Prozess (412), wenn der Prozess (110) die Anforderung an ein Betriebssystem (112) auf dem Gerät (100) auslöst, wobei der Eltern-Prozess (412) außerhalb des Kernels des Betriebssystems (112) arbeitet, wobei der Eltern-Prozess (412) den Prozess (110) erzeugt, dadurch gekennzeichnet, dass die Anforderung zuerst von einem Zugriffs-Prozess (414) im Betriebssystem (112) empfangen wird; dann der Zugriffs-Prozess (414) eine zweite Anforderung an den Eltern-Prozess (412) auslöst, um zu überprüfen, ob der Prozess (110) die Genehmigung hat, auf die Ressource zuzugreifen; und dann der Eltern-Prozess (412) ein Signal an den Zugriffs-Prozess (414) liefert, das anzeigt, ob der Prozess (110) die Genehmigung hat.
  5. Modul, wie in Anspruch 4 beansprucht, wobei, wenn der Eltern-Prozess (412) anzeigt, dass der Prozess (110) die Genehmigung nicht hat, der Zugriffs-Prozess (414) dem Prozess (110) den Zugriff zu der Ressource verweigert.
  6. Modul, wie in Anspruch 4 beansprucht, wobei, wenn der Eltern-Prozess (412) anzeigt, dass der Prozess (110) die Genehmigung hat, der Zugriffs-Prozess (414) eine andere Zugriffs-Überprüfung im Betriebssystem (112) durchführt, um festzustellen, ob der Prozess (110) Zugriff zu der Ressource haben kann.
DE602006000878T 2005-01-19 2006-01-17 Verfahren zur Steuerung eines Ressourcenzugriffs eines Prozesses durch einen Elternprozess Active DE602006000878T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US37121 2001-10-22
US11/037,121 US20060174078A1 (en) 2005-01-19 2005-01-19 System and method for executing a process on a microprocessor-enabled device

Publications (2)

Publication Number Publication Date
DE602006000878D1 DE602006000878D1 (de) 2008-05-21
DE602006000878T2 true DE602006000878T2 (de) 2009-06-04

Family

ID=36129938

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602006000878T Active DE602006000878T2 (de) 2005-01-19 2006-01-17 Verfahren zur Steuerung eines Ressourcenzugriffs eines Prozesses durch einen Elternprozess

Country Status (5)

Country Link
US (1) US20060174078A1 (de)
EP (1) EP1693752B1 (de)
CN (1) CN100492300C (de)
AT (1) ATE391954T1 (de)
DE (1) DE602006000878T2 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101872400B (zh) * 2009-04-24 2012-10-17 北京中天安泰信息科技有限公司 建立根据计算系统操作请求关联关系判断计算机操作请求安全性的计算机信息安全防护方法
US9262628B2 (en) * 2009-09-11 2016-02-16 Empire Technology Development Llc Operating system sandbox
US20110191562A1 (en) * 2010-02-02 2011-08-04 Broadcom Corporation Apparatus and method for partitioning, sandboxing and protecting external memories
US9524531B2 (en) * 2011-05-09 2016-12-20 Microsoft Technology Licensing, Llc Extensibility features for electronic communications
US8973136B2 (en) * 2011-08-02 2015-03-03 Quick Heal Technologies Private Limited System and method for protecting computer systems from malware attacks
CN103065098B (zh) * 2011-10-24 2018-01-19 联想(北京)有限公司 访问方法和电子设备
US8893222B2 (en) * 2012-11-13 2014-11-18 Auckland Uniservices Ltd. Security system and method for the android operating system
US9727848B2 (en) * 2013-04-29 2017-08-08 Alex Bligh Field programmable hierarchical cloud billing system
US9560053B2 (en) * 2014-09-12 2017-01-31 Verizon Patent And Licensing Inc. Parental control management and enforcement based on hardware identifiers
WO2016118145A1 (en) * 2015-01-22 2016-07-28 Mcafee, Inc. Detection of malicious invocation of application program interface calls
CN104715175A (zh) * 2015-03-23 2015-06-17 浪潮集团有限公司 一种计算机系统的安全防护方法及装置
US9600682B2 (en) * 2015-06-08 2017-03-21 Accenture Global Services Limited Mapping process changes
US10776520B2 (en) * 2015-09-14 2020-09-15 Northwestern University System and method for proxy-based data access mechanism in enterprise mobility management

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5560008A (en) * 1989-05-15 1996-09-24 International Business Machines Corporation Remote authentication and authorization in a distributed data processing system
US6167520A (en) * 1996-11-08 2000-12-26 Finjan Software, Inc. System and method for protecting a client during runtime from hostile downloadables

Also Published As

Publication number Publication date
EP1693752A1 (de) 2006-08-23
EP1693752B1 (de) 2008-04-09
CN100492300C (zh) 2009-05-27
ATE391954T1 (de) 2008-04-15
CN1818876A (zh) 2006-08-16
US20060174078A1 (en) 2006-08-03
DE602006000878D1 (de) 2008-05-21

Similar Documents

Publication Publication Date Title
DE602006000878T2 (de) Verfahren zur Steuerung eines Ressourcenzugriffs eines Prozesses durch einen Elternprozess
DE69838378T2 (de) Verfahren und gerät um sicherheit, für server die anwenderprogramme ausführen, die über's netzwerk empfangen wurden, zu gewährleisten
DE3586912T2 (de) Datenverarbeitungsanlage mit geschuetzten systemdateien.
DE3851049T2 (de) Ein Sicherheitswegmechanismus für ein Betriebssystem.
DE112010003454B4 (de) Bedrohungserkennung in einem Datenverarbeitungssystem
DE69531112T2 (de) Mechanismus zum verknüpfen von dateien auf einem emulierten system mit dem zentralsystem für den zugriff durch emulierte systembenutzer
DE60102555T2 (de) Verhinderung der map-aktivierten modulmaskeradeangriffe
DE112006001933B4 (de) Stillegen eines Prozessorbusagenten
DE102005021064B4 (de) Verfahren und Vorrichtung zum Schutz gegen Buffer Overrun-Attacken
DE112018002954T5 (de) Bereitstellen eines konfigurationsabhängigen arbeitsablaufs
DE60017438T2 (de) System zur betriebsmittelzugriffsteuerung
DE102014204417A1 (de) Vorrichtung und Verfahren zum Detektieren einer Manipulation an einem Programmcode
WO2016169646A1 (de) System und verfahren zur überwachung der integrität einer von einem serversystem an ein clientsystem ausgelieferten komponente
EP3568793B1 (de) Verfahren und computer mit einer sicherung gegen cyberkriminelle bedrohungen
EP4329243A1 (de) Computerimplementiertes verfahren zum automatisierten absichern eines rechnersystems
WO2016096118A1 (de) Verfahren zum betreiben einer computereinheit sowie eine solche computereinheit
EP3745287B1 (de) Schützen einer softwareapplikation
DE602004001293T2 (de) Programmintegritätsprüfung mittels Statistiken
DE102021211676A1 (de) Automatische Analyse einer Ausnutzbarkeit von Schwachstellen eines Software-Images
EP3118768A1 (de) Verfahren zur bildung einer virtuellen umgebung in einem betriebssystem eines computers
DE202013103358U1 (de) Selektive Einschätzung der Schädlichkeit von im Adressraum eines vertrauenswürdigen Prozesses ausgeführtem Software-Code
DE102023102565B4 (de) Verfahren zur Intrusions-Überwachung in einem Computernetzwerk sowie Kraftfahrzeug und Cloud Computing-Infrastruktur
DE102022205838A1 (de) Verfahren zum Beheben von Schwachstellen eines Datenverarbeitungssystems
DE102004058882A1 (de) Erzeugen von Programmcode in einem Ladeformat und Bereitstellen von ausführbarem Programmcode
EP4170490A1 (de) Priorisieren eines zugriffs von einer containerinstanz auf eine datei in einer dateisystemressource

Legal Events

Date Code Title Description
8364 No opposition during term of opposition