-
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 2–6 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.