DE10225664A1 - System und Verfahren zum Prüfen von Systemabrufereignissen mit Systemabrufumhüllungen - Google Patents

System und Verfahren zum Prüfen von Systemabrufereignissen mit Systemabrufumhüllungen

Info

Publication number
DE10225664A1
DE10225664A1 DE10225664A DE10225664A DE10225664A1 DE 10225664 A1 DE10225664 A1 DE 10225664A1 DE 10225664 A DE10225664 A DE 10225664A DE 10225664 A DE10225664 A DE 10225664A DE 10225664 A1 DE10225664 A1 DE 10225664A1
Authority
DE
Germany
Prior art keywords
test data
wrapping
buffer
processing control
routine
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.)
Withdrawn
Application number
DE10225664A
Other languages
English (en)
Inventor
Scott Alan Leerssen
Joubert Berger
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE10225664A1 publication Critical patent/DE10225664A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Bei einem Ausführungsbeispiel ist die vorliegende Erfindung auf ein System und ein Verfahren gerichtet, bei dem eine Umhüllungsfunktion in einen Speicher plaziert ist. Überdies werden Adreßinformationen in einen Eintrag einer Systemabruftabelle geschrieben, wobei die Adreßinformationen der Umhüllungsfunktion zugeordnet sind. Ferner wird eine Verarbeitungssteuerung an die Umhüllungsfunktion transferiert. Die Umhüllungsfunktion transferiert die Verarbeitungssteuerung an eine Systemabrufroutine, erlangt Parameter, die der Systemabrufroutine zugeordnet sind, wieder, verwendet die Parameter, um Prüfdaten zu erzeugen, und schreibt die Prüfdaten in einen Puffer.

Description

  • Die vorliegende Erfindung ist allgemein auf Betriebssysteme gerichtet und im einzelnen auf ein System und Verfahren zum Erzeugen von Prüfdaten, die Systemabrufoperationen (bzw. Systemaufrufoperationen) zugeordnet sind.
  • Verwandte Anmeldung
  • Diese Anmeldung ist mit der gleichzeitig eingereichten und der gleichen Anmelderin zugewiesenen US-Patentanmeldung Seriennr., . . ., mit dem Titel "SYSTEM AND METHOD FOR TRANSFORMING OPERATING SYSTEM AUDIT DATA TO A DESIRED FORMAT" verwandt, die hiermit durch Bezugnahme in dieses Dokument aufgenommen ist.
  • Ein Betriebssystem (OS - operating system) ist wohl das wichtigste Programm, das bei einem Computersystem läuft, da das OS beim Ausführen aller anderen Programme (die üblicherweise als "Anwendungen" bezeichnet werden) verwendet wird. Allgemein liefert das OS eine Funktionalität, die die Anwendungen dann nützen können. Beispielsweise kann eine Anwendung eine OS-Routine (z. B. über einen Systemabruf) aufrufen, um eine bestimmte Datei zu sichern, und das OS kann mit dem Eingabe-/Ausgabe-Grundsystem (BIOS - basic input/output system), Dynamische-Verknüpfung-Bibliotheken, Treibern und/oder anderen Komponenten des Computersystems interagieren, um die bestimmte Datei ordnungsgemäß zu sichern. Viele verschiedene OSs wurden im Stand der Technik bereits entwickelt, einschließlich beispielsweise HP-UX®, Linux™, MS-DOS®, OS/2®, Windows®, Unix™, System 8 und MPE/iX.
  • Fig. 1 zeigt ein beispielhaftes System 100, das ein OS 101 umfaßt. Wie gezeigt ist, kann das OS 101 Aufgaben wie beispielsweise ein Erkennen einer Eingabe von einer Tastatur 106 und einer Maus 104, ein Senden einer Ausgabe an einen Anzeigebildschirm 107 und ein Steuern von Peripheriegeräten, wie beispielsweise eines Plattenlaufwerks 103 und eines Druckers 105, erfüllen. Manche OSs beinhalten relativ komplexe Funktionen, die einst lediglich durch separate Programme ausgeführt wurden, wie beispielsweise Faxen, Textverarbeitung, Diskettenkomprimierung und Internet- Browser. Allgemein stellen OSs eine Softwareplattform bereit, auf der andere Programme, beispielsweise eine Anwendung 102, ablaufen können. Anwendungsprogramme sind allgemein so geschrieben, daß sie auf einem bestimmten OS ablaufen, und deshalb kann das an einem Computersystem implementierte bestimmte OS in hohem Maße die Anwendungstypen, die an einem solchen Computersystem ausgeführt werden können, diktieren.
  • Die Anwendung 102, die an dem Computersystem 100 abläuft, kann sich darauf stützen, daß Betriebssystemroutinen solche grundlegenden Aufgaben wie beispielsweise ein Erkennen einer Eingabe von der Tastatur 106 und der Maus 104 sowie ein Senden einer Ausgabe an den Anzeigebildschirm 107 durchführen. Das OS 101 weist Sätze von Routinen zum Durchführen diverser Aufgaben auf (z. B. Tiefpegel-Operationen). Beispielsweise umfassen Betriebssysteme üblicherweise Routinen zum Erfüllen von Aufgaben wie beispielsweise Erstellen eines Verzeichnisses, Öffnen einer Datei, Schließen einer Datei und Sichern einer Datei. Die Anwendung 102 kann bestimmte Betriebssystemroutinen aufrufen, um gewünschte Aufgaben zu erfüllen, indem sie einen Systemabruf durchführt. Das heißt, daß Anwendungen Betriebssystemroutinen allgemein über Systemabrufe aufrufen. Ferner kann ein Benutzer durch einen Satz von Befehlen mit dem OS 101 interagieren. Beispielsweise enthält das DOS-Betriebssystem Befehle, wie zum Beispiel KOPIEREN und NEUBENENNEN zum Kopieren von Dateien bzw. Ändern von Dateinamen. Die Befehle werden durch einen Teil des OS, der als der Befehlsprozessor oder als die Befehlszeileninterpretiereinrichtung bezeichnet wird, entgegengenommen und ausgeführt. Zusätzlich kann eine graphische Benutzerschnittstelle vorgesehen sein, um es einem Benutzer zu ermöglichen, Befehle einzugeben, indem er beispielsweise auf Objekte, die auf dem Anzeigebildschirm erscheinen, zeigt und dieselben anklickt.
  • Das zentrale Modul eines Betriebssystems ist der Kern. Üblicherweise ist der Kern für Speicherverwaltung, Prozeß- und Aufgabenverwaltung und Plattenverwaltung verantwortlich. Anwendungen greifen durch Systemabrufoperationen oder "Syscalls" auf den Kern zu. Ein Systemabruf wird in der Regel als eine Anforderung an das Betriebssystem (Kern) angesehen, eine hardware-/systemspezifische oder privilegierte Operation durchzuführen. Beispiele für Systemabrufe umfassen Fork (Vergabeln), Pipe (Röhre), Read (Lesen), Waitpid, Write (Schreiben) und Execve. Bei dem Betriebssystem Linux sind die Systemabrufe beispielsweise in der Datei "unistd.h" enthalten. Die Systemabrufe sind ferner als Programmrohlinge (Stubs) in "libc" enthalten, wo eine Systemabrufidentifiziereinrichtung über den "#define"-Befehl so definiert ist, daß sie gleich einer bestimmten Zahl oder einem bestimmten Vektor ist, um einen Zugriff auf die bestimmten gewünschten Routinen des Kerns zu ermöglichen.
  • Um einen Zugriff auf die Systemabrufe zu ermöglichen, wird in der Regel eine Unterbrechungsanweisung benutzt. Im einzelnen schiebt eine Anwendung diverse Argumente auf ihren Stapel und führt daraufhin die geeignete Unterbrechungsanweisung aus. Als Reaktion auf die Unterbrechungsanweisung transferiert die Zentralverarbeitungseinheit (CPU - central processing unit) die Steuerung an die Kerneintrittsstelle, die bei dem Betriebssystem Linux system call( ) ist. Die Kerneintrittsstelle erfüllt diverse Aufgaben, wie beispielsweise Sichern aller Register und Verifizieren, daß ein gültiger Systemabruf aufgerufen wurde. Am wichtigsten ist, daß die Kerneintrittsstelle den Vektor verwendet, um eine Speicherversatzadresse von der Syscall-Tabelle zu erhalten, um die Position der bestimmten Kernsystemabrufroutine zu bestimmen. Die Kerneintrittsstelle transferiert daraufhin die Steuerung an die Routine, die sich an der bestimmten Speicherposition befindet.
  • Ferner prüfen Kernsystemabrufroutinen üblicherweise Systemabrufe von Anwendungen. Man nehme beispielsweise an, daß eine Anwendung einen Systemabruf durchführt, um eine bestimmue Datei zu öffnen, so Kann ein Prüfcode in der ent- sprechenden Kernsystemabrufroutine solche Prüfdaten für den Systemabruf wie beispielsweise das Datum und die Uhrzeit, zu dem bzw. zu der der Systemabruf durchgeführt wurde, den Namen der zu öffnenden Datei und das Ergebnis des Systemabrufs (z. B. Systemdatei erfolgreich geöffnet oder Öffnung der Systemdatei fehlgeschlagen) sammeln. Vertrauenswürdige OSs, einschließlich, ohne Einschränkung, Hewlett-Packard CMW (Abteilungsmodus-Arbeitsstation), Hewlett-Packard VirtualVault, Sun Trusted Solaris und SCO CMW führen üblicherweise ein Prüfen zumindest sicherheitsrelevanter Ereignisse durch.
  • Fig. 2 zeigt eine beispielhafte Interaktion zwischen einer Anwendung und dem Kern gemäß dem Stand der Technik. Bei einem System 200 arbeitet ein Programm 201 in einem Benutzerraum, d. h. einem Systemmodus, der bestimmte Hardwarebeschränkungen umfaßt, die verhindern, daß das Programm 201 andere Prozesse beeinträchtigt. Das Programm 201 umfaßt diverse Codes, einschließlich der Dateiöffnungsoperation: "fd = open("FOO", RD ONLY). Diese Dateioperation umfaßt einen Systemabruf, zu "öffnen". Der Systemabruf schiebt Informationen auf den Stapel und führt die geeignete Unterbrechungsanweisung aus. Die CPU des Systems 200 bewirkt, daß die Steuerung an die Kerneintrittsstelle transferiert wird. Die Kerneintrittsstelle untersucht die Syscall-Tabelle 202, um die der "Öffnen"-Routine zugeordnete Speicherposition zu bestimmen. Daraufhin transferiert die Kerneintrittsstelle die Steuerung an eine Kernsystemabrufroutine 203, die die "Öffnen"-Operationen durchführt.
  • Ferner wird der Kern in der Regel dafür verwendet, sicherheitsbezogene Aufgaben zu erfüllen. Beispielsweise umfassen Kernsystemabrufroutinen Prüfcodes, um es Prüfadministratoren zu ermöglichen, die Aktivitäten von Benutzern und Anwendungen zu verfolgen. Beispielsweise kann die Kern- "Öffnen"-Systemabrufroutine einen Code umfassen, der die Benutzer Kennung (User 112), Anwendungs Kennung (Application ID), die Uhrzeit, das Datum und den Dateinamen für jede Öffnen-Operation, die in eine Prüfdatei zu schreiben ist, schreibt. Ein Systemadministrator kann die Prüfdatei untersuchen, um zu bestimmen, ob ein bestimmter Benutzer oder eine bestimmte Anwendung gerade versucht, Zugriff auf erlaubnisbeschränkte Dateien zu erlangen. Beispielsweise kann es sein, daß ein Hacker versucht, eine Paßwortdatei zu lesen. Die Prüfinformationen können den Systemadministrator warnen, daß ein Hacker gerade versucht, die Sicherheit des Systems zu durchbrechen.
  • Jedoch ist dieser Lösungsansatz aus vielen Gründen problematisch. Insbesondere erhöht der Ansatz eines Plazierens eines Prüfcodes in die bestimmten Systemabrufroutinen des Kerns die Schwierigkeit eines Änderns der Prüffunktionalität, so daß sie für ein bestimmtes System geeignet ist, beträchtlich. Im einzelnen erfordern jegliche Änderungen des Prüfcodes, daß das Betriebssystem neu kompiliert und neu installiert wird. Ferner ist für jede freigegebene Version des Betriebssystems eine Übertragung nötig. Überdies ist ein Prüfcode im allgemeinen insofern wahllos, als er beträchtliche Anzahlen von Prüfaufzeichnungen unabhängig von der Relevanz für ein bestimmtes System berichtet. Es können Gigabytes von Prüfinformationen erzeugt werden, von denen nur sehr wenige Informationen irgendeine Bedeutung bezüglich Sicherheitsfragen haben.
  • Es ist die Aufgabe der vorliegenden Erfindung, ein computerlesbares Medium, ein Verfahren und ein Computersystem zu schaffen, die ein verbessertes Überprüfen von Systemabrufen ermöglichen.
  • Diese Aufgabe wird durch ein computerlesbares Medium gemäß Anspruch 1, ein Verfahren gemäß Anspruch 6 sowie ein Computersystem gemäß Anspruch 14 gelöst.
  • Gemäß mindestens einem Ausführungsbeispiel der vorliegenden Erfindung wird ein computerlesbares Medium offenbart, das durch ein prozessorbasiertes System ausführbare Anweisungen umfaßt, wobei das computerlesbare Medium einen Code zum Ersetzen von Adreßinformationen in einer Systemabruftabelle durch Adreßinformationen, die einer Mehrzahl von Umhüllungsfunktionen (Wrapper-Funktionen) zugeordnet sind, aufweist. Ferner weist das computerlesbare Medium einen Code zum Definieren der Mehrzahl von Umhüllungsfunktionen auf, wobei eine solche Mehrzahl von Umhüllungsfunktionen eine Verarbeitungssteuerung an Systemabrufroutinen transferiert, wobei eine solche Mehrzahl von Umhüllungsfunktionen Parameter wiedererlangt, die den Systemabrufroutinen zugeordnet sind, wobei eine solche Mehrzahl von Umhüllungsfunktionen die Parameter verwendet, um Prüfdaten zu erzeugen, und wobei eine solche Mehrzahl von Umhüllungsfunktionen die Prüfdaten in einen Puffer schreibt.
  • Gemäß mindestens einem Ausführungsbeispiel der vorliegenden Erfindung wird ein Verfahren zum Erzeugen von Prüfdaten offenbart, das den Schritt des Plazierens einer Umhüllungsfunktion in einen Speicher und den Schritt des Schreibens von Adreßinformationen in einen Eintrag einer Systemabruftabelle aufweist, wobei solche Adreßinformationen der Umhüllungsfunktion zugeordnet sind. Das Verfahren weist ferner den Schritt des Transferierens der Verarbeitungssteuerung an die Umhüllungsfunktion auf, wobei diese Umhüllungsfunktion eine Verarbeitungssteuerung an eine Systemabrufroutine transferiert, Parameter, die der Systemabrufroutine zugeordnet sind, wiedererlangt, die Parameter verwendet, um Prüfdaten zu erzeugen, und die Prüfdaten in einen Puffer schreibt.
  • Gemäß mindestens einem Ausführungsbeispiel der vorliegenden Erfindung wird ein Computersystem zum Erzeugen von Prüfdaten, die Systemabrufen zugeordnet sind, offenbart. Ein solches Computersystem weist eine Einrichtung zum Empfangen einer Verarbeitungssteuerung auf, wobei eine solche Einrichtung zum Empfangen betreibbar ist, um eine Verarbeitungssteuerung an eine Systemabrufroutine zu transferieren, und betreibbar ist, um der Systemabrufroutine zugeordnete Prüfdaten zu erzeugen. Ferner weist das Computersystem eine Einrichtung zum Transferieren einer Steuerung an die Einrichtung zum Empfangen auf, wobei eine solche Einrichtung zum Transferieren einer Steuerung eine Systemabruftabelle mit Adreßinformationen umfaßt, die einer solchen Einrichtung zum Empfangen einer Verarbeitungssteuerung zugeordnet sind.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • Fig. 1 ein beispielhaftes Computersystem, das ein Betriebssystem gemäß dem Stand der Technik umfaßt;
  • Fig. 2 ein Flußdiagramm, das eine Interaktion zwischen einer Benutzeranwendung und dem Kern gemäß dem Stand der Technik darstellt;
  • Fig. 3 eine exemplarische Konfiguration von bekannten Systemen zum Erzeugen von Betriebssystemprüfdaten;
  • Fig. 4 ein Flußdiagramm, das eine Interaktion zwischen einer Benutzeranwendung, einer Umhüllungsfunktion und dem Kern gemäß Ausführungsbeispielen der vorliegenden Erfindung darstellt; und
  • Fig. 5 ein Blockdiagramm eines beispielhaften Computersystems, das gemäß Ausführungsbeispielen der vorliegenden Erfindung ausgelegt ist.
  • Die vorliegende Erfindung ist auf ein System und Verfahren zum Ermöglichen einer Hinzufügung, einer Entfernung oder einer Modifikation eines Prüfcodes gerichtet, ohne bat eine Neuerstellung der Systemabrufroutinen des Betriebssystemkerns erforderlich wäre. Bei Ausführungsbeispielen der vorliegenden Erfindung wird eine Kopie der ursprünglichen Syscall-Tabelle nach den normalen Hochfahroperationen des Systems an anderer Stelle in einem Speicher plaziert. Adreßinformationen, die Umhüllungsfunktionen zugeordnet sind, werden in die Syscall-Tabelle eingefügt. Die Umhüllungsfunktionen sind ein Vermittlungscode zwischen einem abrufenden Prozeß und einem Code, der die durch den abrufenden Prozeß gewünschte Aufgabe tatsächlich ausführt. Wenn eine Anwendung einen Systemabruf durchführt, wird zunächst die entsprechende Umhüllungsfunktion abgerufen, da ihre Adresse in der Syscall-Tabelle enthalten ist. Man wird erkennen, daß es vorteilhaft ist, zu bewirken, daß der Systemabruf zunächst zu der entsprechenden Umhüllungsfunktion geleitet wird. Im einzelnen kann der Prüfcode in die Umhüllungsfunktion plaziert werden, statt in die diversen Kernsystemabrufroutinen plaziert zu werden. Durch Trennen des Prüfcodes von den Kernsystemabrufroutinen wirkt sich eine Modifizierung des Prüfcodes nicht auf die Kernsystemabrufroutinen aus. Dies ermöglicht es Systemadministratoren, den Prüfcode ohne nennenswerte Schwierigkeiten zu modifizieren. Dementsprechend wird der Prüfcode durch die Entwickler des Betriebssystems nicht willkürlich eingeschränkt. Statt dessen kann der Prüfcode durch Systemadministratoren von Fall zu Fall so entwickelt werden, daß er für ihre jeweiligen Systeme ausgelegt ist.
  • Nachdem die Umhüllungsfunktion abgerufen ist, lokalisiert die Umhüllungsfunktion daraufhin die Adresse für die entsprechende Kernsystemabrufroutine in der Kopie der ursprünglichen Syscall-Tabelle. Daraufhin transferiert die Umhüllungsfunktion die Steuerung an die entsprechende Kernsystemabrufroutine, die die gewünschte Aufgabe ausführt. Wenn die Kernsystemabrufroutine die Ergebnisparameter zurückgibt, untersucht die Umhüllungsfunktion die Parameter. Anschließend führt die Umhüllungsfunktion alle etwaigen gewünschten Prüfoperationen durch, wie beispielsweise Schreiben in eine Prüfdatei oder einen Prüfpuffer. Die Umhüllungsfunktion schließt den Systemabruf ab, indem sie die Parameter an die Anwendung, die den Systemabruf durchführte, zurückgibt.
  • Eine typische Konfiguration von bekannten Systemen zum Erzeugen von OS-Prüfdaten ist in Fig. 3 gezeigt. Wie gezeigt ist, läuft ein Prüfungsprogramm 301 an einem System, das betreibbar ist, die Ausführung von Routinen (die als "Ereignisse" bezeichnet werden können) zu prüfen. Beispielsweise kann das Prüfungsprogramm 301 in dem Kern eines OS laufen, um Prüfdaten bezüglich einer Verwendung einer Betriebssystemroutine zu sammeln, die über einen durch eine Anwendung durchgeführten Systemabruf (oder "Syscall") aufgerufen wird. Wie zuvor erwähnt wurde, sei beispielsweise angenommen, daß eine Anwendung einen Systemabruf durchführt, um eine bestimmte Datei zu öffnen; das Prüfprogramm 301 in dem OS kann Prüfdaten für den Systemabruf, wie beispielsweise das Datum und die Uhrzeit, zu dem der Systemabruf durchgeführt wurde, den Namen der zu öffnenden Datei und das Ergebnis des Systemabrufs (z. B. Systemdatei erfolgreich geöffnet oder Öffnung der Systemdatei fehlgeschlagen), sammeln.
  • Bei bestimmten Implementierungen prüft das Prüfungsprogramm 301 eventuell lediglich Sicherheitsereignisse, bei anderen Implementierungen kann es jedoch eine weitere Prüfung bereitstellen (z. B. kann es eine Anwendungs- und Systemebenenregistrierung umfassen). Gemäß mindestens einer Implementierung kann das Prüfungsprogramm 301 einen Prüfvorrichtungstreiber aufweisen, der Prüfdaten sammelt. Ferner kann ein Prüfungsprogramm 301 eine Schnittstelle (z. B. API - application programming interface, Anwendungsschnittstelle) von dem Kern zu Benutzerraumanwendungen aufweisen, die ermöglichen kann, daß Ereignisdaten an solche Benutzerraumanwendungen (z. B. eine Prüfsammlungshintergrundroutine (einen Prüfsammlungsdämon) weitergeleitet werden, und/oder die ermöglichen kann, daß Ereignisdaten von Benutzerraumanwendungen und/oder Benutzern (z. B. Systemadministratoren) an dem Kern empfangen werden.
  • Das Prüfungsprogramm 301 speichert die Prüfdaten (die als "Ereignisdaten" bezeichnet werden können) in dem Datenspeicher 302. Der Datenspeicher 302 weist allgemein ein Plattenlaufwerk auf. Gemäß mindestens einer Implementierung können gesammelte Prüfdaten in dem Kern des OS gepuffert sein, und während sich ein solcher Puffer zu füllen beginnt, benachrichtigt der Kern eine Prüfsammlungshintergrundroutine, die ein Prozeß ist (der in dem Benutzerraum des OS laufen kann), der die Prüfdaten von dem Kern sammelt und sie in den Datenspeicher 302 schreibt. In der Regel werden gesammelte Prüfdaten in einem binären Format in dem Datenspeicher 302 gespeichert. Für ein bestimmtes Ereignis (z. B. einen bestimmten Aufruf einer OS-Routine) gesammelte Prüfdaten werden allgemein als eine Aufzeichnung (ein Protokoll) bezeichnet. Somit kann der Datenspeicher 302 viele Aufzeichnungen umfassen, wobei jede Aufzeichnung Prüfdaten für ein bestimmtes Ereignis umfaßt.
  • In der Regel wird durch den Anbieter des OS, das das Prüfungsprogramm 301 umfaßt, eine Anzeigeanwendung 303 bereitgestellt. Die Anzeigeanwendung 303 ist in der Regel eine Benutzerraumanwendung, die ausführbar ist, um gesammelte Prüfdaten von dem Datenspeicher 302 wiederzuerlangen und die Daten einem Benutzer auf einer Anzeige 304 (z. B. Computerbildschirm) zu präsentieren. Ein Benutzer, beispielsweise ein Systemadministrator, kann die gesammelten Prüfdaten betrachten, um beispielsweise ein Problem zu suchen, das bei dem Computersystem vorliegt, oder um die Sicherheit des Systems zu bewerten.
  • Beispielhafte Implementierungen zum Sammeln und Anzeigen von Prüfdaten auf eine flexiblere Weise sind in der gleichzeitig eingereichten und der gleichen Anmelderin zugewiesenen US-Patentanmeldung Seriennr., . . ., mit dem Titel "SYSTEM AND METHOD FOR TRANSFORMING OPERATING SYSTEM AUDIT DATA TO A DESIRED FORMAT", das durch Bezugnahme hierin aufgenommen ist, offenbart.
  • Fig. 4 zeigt eine beispielhafte Interaktion zwischen einer Anwendung 201, einer Umhüllungsfunktion 402-2 und dem Kern gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Gemäß diesem Ausführungsbeispiel der vorliegenden Erfindung werden gewöhnliche Hochfahrprozeduren befolgt. Die Hochfahrvorgänge schreiben die Versatzadressen von Kernsystemabrufroutinen in die Syscall-Tabelle. Gemäß den Lehren der vorliegenden Erfindung wird die ursprüngliche Syscall- Tabelle jedoch zu einer neuen Speicherposition kopiert, die vorzugsweise als Kopie 403 der ursprünglichen Syscall- Tabelle benannt ist. An der zuvor durch die ursprüngliche Syscall-Tabelle eingenommenen Speicherposition wird eine neue Syscall-Tabelle 401 erzeugt. Die neue Syscall-Tabelle 401 enthält Speicherversätze zu Umhüllungsfunktionen 402-1 bis 402-N.
  • In einem System 400 arbeitet das Programm 201 in einem Benutzerraum. Das Programm 201 umfaßt diverse Codes, einschließlich der Dateiöffnungsoperation "fd = open("FOO", RD ONLY). Diese Dateioperation umfaßt einen Systemabruf, zu "öffnen". Der Systemabruf schiebt Informationen auf den Stapel und führt die geeignete Unterbrechungsanweisung aus. Die CPU des Systems 400 bewirkt, daß die Steuerung an die Kerneintrittsstelle transferiert wird. Die Kerneintrittsstelle untersucht die neue Syscall-Tabelle 401, um die der "Öffnen"-Routine zugeordnete Speicherposition zu bestimmen. Da die neue Syscall-Tabelle 401 die Versatzadresse zu der Umhüllungsfunktion 402-2 enthält, transferiert die Kerneintrittsstelle die Steuerung an die Umhüllungsfunktion 402-2.
  • Die Umhüllungsfunktion 402-2 enthält den Prüfcode, der durchgeführt wird, wenn der Systemabruf "Öffnen" abgerufen wird. Die Umhüllungsfunktion 402-2 verwendet die Kopie 403 der ursprünglichen Syscall-Tabelle, um die Speicherposition der den "Öffnen"-Operationen zugeordneten entsprechenden Kernsystemabrufroutine, die die Kernsystemabrufroutine 202 ist, zu bestimmen. Beispielsweise kann die Umhüllungsfunktion 402-2 den dem Systemabruf zugeordneten Vektor verwenden, um die Speicherposition der Kernsystemabrufroutine 202 zu bestimmen. Bei diesem Beispiel ist der Öffnen- Systemabruf dem Vektorwert 7 zugeordnet. Die Umhüllungsfunktion 402-2 verwendet den Vektorwert, um die Speicherposition der Kernsystemabrufroutine 202 zu bestimmen. Die Umhüllungsfunktion 402-2 leitet die Steuerung an die Kernsystemabrufroutine 202 unter Verwendung der Speicherposition weiter. Die Kernsystemabrufroutine 202 führt die "Öffnen"- Operationen durch.
  • Daraufhin wird die Steuerung an die Umhüllungsfunktion 402-2 zurückgegeben. Die Umhüllungsfunktion 402-2 untersucht Argumente, die der Kernsystemabrufroutine 202 zugeordnet sind. Die Umhüllungsfunktion 402-2 kann diverse Argumente verwenden, um zu bestimmen, ob etwaige Prüfungsschritte angemessen sind. Es kann wünschenswert sein, keine Prüfungsschritte zum Öffnen einer Datei durchzuführen, die geringe Sicherheitsbelange aufweist. Falls Prüfungsschritte gewünscht sind, schreibt die Umhüllungsfunktion 402-2 die entsprechenden Prüfdaten in den Prüfpuffer 404. Beispielsweise kann die Umhüllungsfunktion 402-2 einen Code umfassen, der für jede Öffnen-Operation, die in den Prüfpuffer 404 zu schreiben ist, die Benutzer Kennung, Anwendungs Kennung, die Uhrzeit, das Datum sowie den Dateinamen schreibt. Es ist vorteilhaft, Prüfdaten in den Prüfpuffer 404 zu schreiben, um die Auswirkung des Prüfens auf die Leistungsfähigkeit des Systems zu verringern. Eine Pufferhintergrundroutine kann den Prüfpuffer 404 überwachen. Wenn die Menge an gepufferten Prüfdaten eine vorbestimmte Menge übersteigt, können die gepufferten Prüfdaten in eine Prüfdatei 405 geschrieben werden. Dadurch kann die Anzahl von Dateioperationen minimiert werden, um die Leistungsverschlechterung von Benutzeranwendungen zu verringern. Nachdem Prüfdaten in den Prüfpuffer 404 geschrieben wurden, signalisiert daraufhin die Umhüllungsfunktion 402-2 der CPU, daß die Unterbrechung durch ein Ausführen der geeigneten Anweisung abgeschlossen wurde. Die CPU des Systems 400 gibt daraufhin die Steuerung an das Programm 201 zurück.
  • Auf ähnliche Weise kann das Programm 201 Systemabrufe an andere Umhüllungsfunktionen durchführen. Das Programm 201 kann einen Systemabruf an die Umhüllungsfunktion 402-1 durchführen, um eine Datei zu schließen, oder kann einen Systemabruf an eine Umhüllungsfunktion 402-3 durchführen, um aus einer Datei zu lesen. Die Umhüllungsfunktionen 402-1 und 402-3 empfangen einen Verarbeitungssteuerungstransfer über CPU-Unterbrechungsoperationen, wie oben erläutert wurde. Die Umhüllungsfunktionen 402-1 und 402-3 transferieren die Steuerung an die entsprechenden Kernsystemabrufroutinen, indem sie die Kopie 403 der ursprünglichen Syscall- Tabelle verwenden. Daraufhin führen die Umhüllungsfunktionen 402-1 und 402-3 Prüfungsoperationen durch, wie sie durch ihren Prüfcode definiert sind. Die Umhüllungsfunktionen 402-1 und 402-3 können Parameter untersuchen, die den Systemabrufen zugeordnet sind (z. B. Benutzer Kennung, Anwendungs Kennung, Uhrzeit, Datum und Dateiname). Die Umhüllungsfunktionen 401-1 und 402-3 können ausgehend von den Parametern Prüfdaten erzeugen. Die Umhüllungsfunktionen 401-1 und 402-3 schreiben die Prüfdaten in den Prüfpuffer 404. Man sollte erkennen, daß ein Prüfen nicht auf Dateioperationen begrenzt ist. Prüfungsdaten können für jeden beliebigen Systemabruftyp erzeugt werden. Prüfungsdaten können für Systemabrufe erzeugt werden, die sich beispielsweise auf Thread-Handhabung, Zwischenprozeßkommunikation oder eine Handhabung von Benutzer Kennungen (UID - user-id) beziehen.
  • Bei einer Implementierung über ausführbare Anweisungen weisen diverse Elemente der Ausführungsbeispiele der vorliegenden Erfindung den Code auf, der die Operationen solcher diversen Elemente definiert. Die ausführbaren Anweisungen oder der ausführbare Code können von einem lesbaren Medium (z. B. einem Festplattenlaufwerksmedium, einem optischen Medium, EPROM, EEPROM, Bandmedium, Kassettenmedium, Flash- Speicher, ROM und/oder dergleichen) erhalten werden oder über ein Datensignal von einem Kommunikationsmedium (z. B. dem Internet) kommuniziert werden. So wie der Begriff "lesbare Medien" hierin verwendet wird, soll er ein jegliches Medium umfassen, das Informationen speichern oder transferieren kann.
  • Fig. 5 zeigt ein beispielhaftes Computersystem 500, in dem Ausführungsbeispiele der vorliegenden Erfindung implementiert sein können. Eine Zentralverarbeitungseinheit (CPU) 501 ist mit einem Systembus 502 gekoppelt. Die CPU 501 kann eine beliebige Mehrzweck-CPU sein. Geeignete Prozessoren umfassen, ohne Einschränkung, einen beliebigen Prozessor aus der ItaniumTM-Prozessorenfamilie, wie beispielsweise den McKinley-Prozessor, der von der Firma Hewlett-Packard erhältlich ist, oder einen PA-8500-Prozessor, der ebenfalls von Hewlett-Packard erhältlich ist. Die CPU 501 unterstützt vorteilhafterweise Softwareunterbrechungen, um einen Kernzugriff gemäß Ausführungsbeispielen der vorliegenden Erfindung zu ermöglichen. Jedoch ist die vorliegende Erfindung nicht auf die Architektur der CPU 501 beschränkt, solange die CPU 501 die erfindungsgemäßen Operationen, wie sie hierin beschrieben sind, unterstützt. Ferner sollte erkannt werden, daß die vorliegende Erfindung nicht auf Einzelprozessorplattformen beschränkt ist. Beispielsweise können die Prüfungsmerkmale von Ausführungsbeispielen der vorliegenden Erfindung vorteilhafterweise für Multiprozessorsysteme ausgelegt sein. Das Computersystem 500 umfaßt einen Direktzugriffsspeicher (RAM) 503, der beispielsweise SRAM, DRAM oder SDRAM sein kann. Das Computersystem 500 umfaßt einen ROM 504, der beispielsweise PROM, EPROM oder EEPROM sein kann. Der RAM 503 und der ROM 504 können Benutzer- und Systemdaten und -programme umfassen, wie in der Technik hinreichend bekannt ist.
  • Das Computersystem 500 umfaßt ferner einen Eingangs- /Ausgangs-Adapter (I/O-Adapter) 565, einen Kommunikations- adapter 511, eine Benutzerschnittstelle 508 und einen Anzeigeadapter 509. Der I/O-Adapter 505 stellt eine Verbindung mit Speichervorrichtungen 506, wie beispielsweise einem oder mehreren eines Festplattenlaufwerks, eines CD- Laufwerks, eines Floppy-Disk-Laufwerks, eines Bandlaufwerks, mit dem Computersystem 500 her. Gemäß Ausführungsbeispielen der vorliegenden Erfindung können Prüfdaten in eine Datei oder in Dateien in einer beliebigen von Speichervorrichtungen 506 geschrieben werden. Der Kommunikationsadapter 511 ist ausgelegt, um das Computersystem 500 mit einem Netz 512 zu koppeln, das eines oder mehrere der folgenden sein kann: Telefonnetz, lokales Netz (LAN) und/oder Weitverkehrsnetz (WAN), Ethernet-Netz und/oder Internet- Netz. Die Benutzerschnittstelle 508 koppelt Benutzereingabevorrichtungen, beispielsweise eine Tastatur 513 und eine Zeigevorrichtung 507, mit dem Computersystem 500. Der Anzeigeadapter 509 wird durch die CPU 501 getrieben, um die Anzeige auf einer Anzeigevorrichtung 510 zu steuern.
  • Das Computersystem 500 verwendet vorteilhafterweise eine Reihe von Hochfahroperationen, um das System zu initialisieren. Das Computersystem 500 greift eventuell auf Konfigurationsdateien in einer der Speichervorrichtungen 506 zu, um Teile des Betriebssystems zu laden. Beim Initialisieren des Betriebssystems lädt das Computersystem 500 den Kern in den RAM 503. Ferner erstellt das Computersystem 500 die Syscall-Tabelle, um den Routinen des Kerns die Versatzadressen bereitzustellen. Nachdem normale Hochfahrprozeduren abgeschlossen sind, führt das Computersystem 500 ein Konfigurationsprogramm gemäß Ausführungsbeispielen der vorliegenden Erfindung aus. Das Konfigurationsprogramm kopiert die ursprüngliche Syscall-Tabelle zu einer neuen Speicherposition im RAM 503. Das Konfigurationsprogramm lädt die Umhüllungsfunktionen, die die gewünschten Prüfaufgaben erfüllen, in den RAM 503. Daraufhin schreibt das Konfigurationsprogramm die Syscall-Tabelle erneut, so daß Systemabrufe, die durch Benutzerraumanwendungen verursacht sind, zunächst zu den Umhüllungsfunktionen geleitet werden.
  • Ausführungsbeispiele der vorliegenden Erfindung stellen mehrere Vorteile gegenüber Prüfungssystemen des Standes der Technik bereit. Insbesondere kann der Prüfcode dynamisch hinzugefügt, entfernt oder aktualisiert werden, ohne die Kernsystemabrufroutinen neu zu erstellen. Im einzelnen trennen die Umhüllungsfunktionen den Prüfcode von dem Kernsystemabrufcode. Wenn es gewünscht ist, den Prüfcode zu ändern, werden die Änderungen auf eine im Stand der Technik hinreichend bekannte Weise in einem Quellcode durchgeführt. Der Quellcode mit den gewünschten Änderungen wird zu einer durch einen Prozessor ausführbaren Form kompiliert. Der durch einen Prozessor ausführbare Code wird daraufhin in dem bestimmten System installiert, um die gewünschten Änderungen auszuführen. Da der Prüfcode und der Kernsystemabrufcode separat sind, erfordern Änderungen des Prüfcodes nicht, daß die Kernsystemabrufroutinen neu erstellt werden. Aus ähnlichen Gründen erfordert ein Ändern des Kernsystemabrufcodes keine Modifizierung des Prüfcodes. Im einzelnen erfordern neue Versionen eines Betriebssystems keine Übertragung des Prüfcodes.
  • Überdies sind Ausführungsbeispiele der vorliegenden Erfindung in der Lage, fremde Prüfdaten, die für ein bestimmtes System unnötig sind, zu eliminieren. Wenn beispielsweise bestimmt wird, daß bestimmte Prüfdaten unnötig sind, können Prüfdaten eliminiert werden, indem ein spezialisierter Code in ausgewählten Umhüllungsfunktionen verwendet wird, um Prüfdaten nach Bedarf zu filtern. Der spezialisierte Code kann logische Vergleiche diverser Argumente mit vordefinierten Kriterien durchführen, um zu bestimmen, ob ein Prüfen angemessen ist. Beispielsweise kann der Prüfcode den Dateinamen und Pfadnamen, der einer bestimmten Dateiöffnungsoperation zugeordnet ist, untersuchen. Wenn sich der Dateiname und der Pfadname auf Systemressourcen beziehen, die geringe Sicherheitsbelange aufweisen, kann der Prüfcode auf ein Erzeugen von Prüfdaten verzichten. Alternativ dazu können bestimmte Umhüllungsfunktionen vollständig deaktiviert werden, ohne sich auf die Operationen des Kerns auszuwirken. Im einzelnen können bestimmte Umhüllungsfunktionen selektiv deaktiviert werden, indem die Speicheradressen der jeweiligen Kernsystemabrufroutinen erneut in die Syscall-Tabelle geschrieben werden.

Claims (17)

1. Computerlesbares Medium, das Anweisungen umfaßt, die durch ein prozessorbasiertes System ausführbar sind, wobei das computerlesbare Medium folgende Merkmale aufweist:
einen Code zum Ersetzen von Adreßinformationen in einer Systemabruftabelle (401) durch Adreßinformationen, die einer Mehrzahl von Umhüllungsfunktionen (402) zugeordnet sind; und
einen Code zum Definieren der Mehrzahl von Umhüllungsfunktionen, wobei die Mehrzahl von Umhüllungsfunktionen eine Verarbeitungssteuerung an Systemabrufroutinen (202) transferiert, wobei die Mehrzahl von Umhüllungsfunktionen Parameter wiedererlangt, die den Systemabrufroutinen zugeordnet sind, wobei die Mehrzahl von Umhüllungsfunktionen die Parameter verwendet, um Prüfdaten zu erzeugen, und wobei die Mehrzahl von Umhüllungsfunktionen die Prüfdaten in einen Puffer schreibt.
2. Computerlesbares Medium gemäß Anspruch 1, das ferner folgendes Merkmal aufweist:
einen Code zum Kopieren der Systemabruftabelle (401) zu einer neuen Speicherposition als eine Kopie (403) der ursprünglichen Systemabruftabelle (401), bevor die Systemabruftabelle durch Adreßinformationen ersetzt wird, die der Mehrzahl von Umhüllungsfunktionen (402) zugeordnet sind.
3. Computerlesbares Medium gemäß Anspruch 2, bei dem mindestens eine der Mehrzahl von Umhüllungsfunktionen (402) betreibbar ist, um Speicherinformationen der Kopie (403) der ursprünglichen Systemabruftabelle (401) zu untersuchen, und betreibbar ist, um die Steuerung an eine Systemabrufroutine (202) zu transferieren, die den Speicherinformationen zugeordnet ist.
4. Computerlesbares Medium gemäß einem der Ansprüche 1 bis 3, das ferner folgende Merkmale aufweist:
einen Code zum Untersuchen einer Menge von Prüfdaten in dem Puffer (404); und
einen Code zum Schreiben der Prüfdaten in eine Prüfdatei, wenn die Menge an Prüfdaten in dem Puffer eine vorbestimmte Menge übersteigt.
5. Computerlesbares Medium gemäß einem der Ansprüche 1 bis 4, bei dem mindestens eine der Mehrzahl von Umhüllungsfunktionen (402) einen Code zum Durchführen eines logischen Vergleichs der Parameter mit vordefinierten Kriterien aufweist, um zu bestimmen, ob Prüfdaten in den Puffer (404) zu schreiben sind.
6. Verfahren zum Erzeugen von Prüfdaten, das folgende Schritte aufweist:
Plazieren einer Umhüllungsfunktion (402) in einen Speicher;
Schreiben von Adreßinformationen in einen Eintrag einer Systemabruftabelle (401), wobei die Adreßinformationen der Umhüllungsfunktion (402) zugeordnet sind; und
Transferieren einer Verarbeitungssteuerung an die Umhüllungsfunktion (402), wobei die Umhüllungsfunktion (402) die Verarbeitungssteuerung an eine Systemabrufroutine (202) transferiert, Parameter, die der Systemabrufroutine (202) zugeordnet sind, wiedererlangt, die Parameter verwendet, um Prüfdaten zu erzeugen, und die Prüfdaten in einen Puffer (404) schreibt.
7. Verfahren gemäß Anspruch 6, bei dem der Eintrag einem Vektor zugeordnet ist, wobei das Verfahren ferner folgenden Schritt aufweist:
Erzeugen eines Systemabrufs unter Verwendung des Vektors.
8. Verfahren gemäß Anspruch 6 oder 7, das ferner folgen- den Schritt aufweist:
Kopieren eines ursprünglichen Eintrags in der dem Vektor zugeordneten Systemabruftabelle (401) zu einer neuen Position.
9. Verfahren gemäß Anspruch 8, das ferner folgende Schritte aufweist:
Zugreifen auf die Kopie (403) eines ursprünglichen Eintrags, um Speicherinformationen zu erhalten, die sich auf die Systemabrufroutine (202) beziehen; und
Transferieren der Verarbeitungssteuerung an die Systemabrufroutine (202).
10. Verfahren gemäß einem der Ansprüche 6 bis 9, bei dem der Schritt des Transferierens der Verarbeitungssteuerung den Schritt des Erzeugens einer Softwareunterbrechung umfaßt.
11. Verfahren gemäß einem der Ansprüche 6 bis 10, das ferner folgenden Schritt aufweist:
Deaktivieren der Umhüllungsfunktion (402) durch Wiederherstellen von ursprünglichen Adreßinformationen in den Eintrag der Systemabruftabelle (401).
12. Verfahren gemäß einem der Ansprüche 6 bis 11, bei dem die Umhüllungsfunktion (402) einen logischen Vergleich zwischen den Parametern und vordefinierten Kriterien durchführt, um zu bestimmen, ob Prüfdaten in den Puffer (404) zu schreiben sind.
13. Verfahren gemäß einem der Ansprüche 6 bis 12, das ferner folgende Schritte aufweist:
Untersuchen der Menge an Prüfdaten in dem Puffer (404); und
Schreiben der Prüfdaten in eine Prüfdatei, wenn die Menge an Prüfdaten eine vorbestimmte Menge übersteigt.
14. Computersystem zum Erzeugen von Prüfdaten, die Systemabrufen zugeordnet sind, wobei das Computersystem folgende Merkmale aufweist:
eine Einrichtung zum Empfangen einer Verarbeitungssteuerung, wobei die Einrichtung zum Empfangen betreibbar ist, um die Verarbeitungssteuerung an eine Systemabrufroutine (202) zu transferieren, und betreibbar ist, um Prüfdaten zu erzeugen, die der Systemabrufroutine (202) zugeordnet sind; und
eine Einrichtung zum Transferieren der Steuerung an die Einrichtung zum Empfangen, wobei die Einrichtung zum Transferieren der Steuerung eine Systemabruftabelle (401) mit Adreßinformationen umfaßt, die der Einrichtung zum Empfangen der Verarbeitungssteuerung zugeordnet sind.
15. Computersystem gemäß Anspruch 14, das ferner folgendes Merkmal aufweist:
eine Einrichtung zum Erstellen einer Kopie (403) einer ursprünglichen Systemabruftabelle (401), wobei die Einrichtung zum Empfangen einer Verarbeitungssteuerung betreibbar ist, um die Speicherposition der Kernsystemabrufroutine zu bestimmen, indem sie auf die Kopie (403) der ursprünglichen Systemabruftabelle (401) zugreift.
16. Computersystem gemäß Anspruch 14 oder 15, bei dem die Einrichtung zum Empfangen einer Verarbeitungssteuerung eine Einrichtung zum Schreiben von Prüfdaten in einen Prüfpuffer umfaßt.
17. Computersystem gemäß Anspruch 16, das ferner folgende Merkmale aufweist:
eine Einrichtung zum Überwachen einer Menge von Prüfdaten in dem Prüfpuffer; und
eine Einrichtung zum Schreiben von gepufferten Prüfdaten in eine Prüfdatei, wenn die Menge an Prüfdaten eine vorbestimmte Menge übersteigt.
DE10225664A 2001-06-29 2002-06-10 System und Verfahren zum Prüfen von Systemabrufereignissen mit Systemabrufumhüllungen Withdrawn DE10225664A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/896,242 US20030005168A1 (en) 2001-06-29 2001-06-29 System and method for auditing system call events with system call wrappers

Publications (1)

Publication Number Publication Date
DE10225664A1 true DE10225664A1 (de) 2003-01-23

Family

ID=25405869

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10225664A Withdrawn DE10225664A1 (de) 2001-06-29 2002-06-10 System und Verfahren zum Prüfen von Systemabrufereignissen mit Systemabrufumhüllungen

Country Status (3)

Country Link
US (1) US20030005168A1 (de)
DE (1) DE10225664A1 (de)
GB (1) GB2380022A (de)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3901484B2 (ja) * 2001-10-05 2007-04-04 株式会社ジェイテクト 電動パワーステアリング装置
US10033700B2 (en) 2001-12-12 2018-07-24 Intellectual Ventures I Llc Dynamic evaluation of access rights
US7921284B1 (en) 2001-12-12 2011-04-05 Gary Mark Kinghorn Method and system for protecting electronic data in enterprise environment
US7930756B1 (en) 2001-12-12 2011-04-19 Crocker Steven Toye Multi-level cryptographic transformations for securing digital assets
US7565683B1 (en) * 2001-12-12 2009-07-21 Weiqing Huang Method and system for implementing changes to security policies in a distributed security system
US7921288B1 (en) 2001-12-12 2011-04-05 Hildebrand Hal S System and method for providing different levels of key security for controlling access to secured items
US8065713B1 (en) 2001-12-12 2011-11-22 Klimenty Vainstein System and method for providing multi-location access management to secured items
US8006280B1 (en) 2001-12-12 2011-08-23 Hildebrand Hal S Security system for generating keys from access rules in a decentralized manner and methods therefor
US7380120B1 (en) * 2001-12-12 2008-05-27 Guardian Data Storage, Llc Secured data format for access control
US7921450B1 (en) 2001-12-12 2011-04-05 Klimenty Vainstein Security system using indirect key generation from access rules and methods therefor
US7178033B1 (en) 2001-12-12 2007-02-13 Pss Systems, Inc. Method and apparatus for securing digital assets
US10360545B2 (en) 2001-12-12 2019-07-23 Guardian Data Storage, Llc Method and apparatus for accessing secured electronic data off-line
US7260555B2 (en) 2001-12-12 2007-08-21 Guardian Data Storage, Llc Method and architecture for providing pervasive security to digital assets
US7950066B1 (en) 2001-12-21 2011-05-24 Guardian Data Storage, Llc Method and system for restricting use of a clipboard application
US8176334B2 (en) 2002-09-30 2012-05-08 Guardian Data Storage, Llc Document security system that permits external users to gain access to secured files
US7318228B2 (en) * 2002-10-01 2008-01-08 Broadcom Corporation System and method for task arbitration in multi-threaded simulations
US8707034B1 (en) 2003-05-30 2014-04-22 Intellectual Ventures I Llc Method and system for using remote headers to secure electronic files
US8127366B2 (en) * 2003-09-30 2012-02-28 Guardian Data Storage, Llc Method and apparatus for transitioning between states of security policies used to secure electronic documents
US7703140B2 (en) * 2003-09-30 2010-04-20 Guardian Data Storage, Llc Method and system for securing digital assets using process-driven security policies
US20050086531A1 (en) * 2003-10-20 2005-04-21 Pss Systems, Inc. Method and system for proxy approval of security changes for a file security system
US20050138371A1 (en) * 2003-12-19 2005-06-23 Pss Systems, Inc. Method and system for distribution of notifications in file security systems
US7702909B2 (en) * 2003-12-22 2010-04-20 Klimenty Vainstein Method and system for validating timestamps
US7937557B2 (en) * 2004-03-16 2011-05-03 Vns Portfolio Llc System and method for intercommunication between computers in an array
US7552434B2 (en) * 2004-04-30 2009-06-23 Hewlett-Packard Development Company, L.P. Method of performing kernel task upon initial execution of process at user level
US7971255B1 (en) * 2004-07-15 2011-06-28 The Trustees Of Columbia University In The City Of New York Detecting and preventing malcode execution
US7904695B2 (en) * 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous power saving computer
US7904615B2 (en) 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous computer communication
US7966481B2 (en) 2006-02-16 2011-06-21 Vns Portfolio Llc Computer system and method for executing port communications without interrupting the receiving computer
JP2007272895A (ja) * 2006-03-31 2007-10-18 Technology Properties Ltd コンピュータプロセッサアレイの操作方法および装置
US20080282062A1 (en) * 2007-05-07 2008-11-13 Montvelishsky Michael B Method and apparatus for loading data and instructions into a computer
IN2013CH05777A (de) * 2013-12-13 2015-06-19 Indian Inst Technology Madras
CN107203715B (zh) 2016-03-18 2021-03-19 斑马智行网络(香港)有限公司 执行系统调用的方法及装置
US11442714B2 (en) * 2020-10-05 2022-09-13 Unisys Corporation Parallel code fragments in executable code

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0568717A1 (de) * 1992-05-07 1993-11-10 International Business Machines Corporation Computerprogrammgesteuertes Verfahren (Tracing) zur schrittweisen Protokollierung der Ausführung eines Zielprogrammes bezüglich der Aufrufe des Zielprogrammes durch andere Programme
US5491808A (en) * 1992-09-30 1996-02-13 Conner Peripherals, Inc. Method for tracking memory allocation in network file server
DE69415593T2 (de) * 1993-06-30 1999-05-20 Microsoft Corp Verfahren zur Überprüfung eines nachrichtengesteuerten Betriebssystems
US5551037A (en) * 1993-11-19 1996-08-27 Lucent Technologies Inc. Apparatus and methods for visualizing operation of a system of processes
EP0801348A1 (de) * 1996-04-10 1997-10-15 Hewlett-Packard Company Verfahren zur Überwachung des Betriebes eines Rechners
US5956507A (en) * 1996-05-14 1999-09-21 Shearer, Jr.; Bennie L. Dynamic alteration of operating system kernel resource tables
US6081664A (en) * 1996-09-30 2000-06-27 Intel Corporation Method for monitoring a BIOS
US5925126A (en) * 1997-03-18 1999-07-20 Memco Software, Ltd. Method for security shield implementation in computer system's software
US6282703B1 (en) * 1998-10-29 2001-08-28 International Business Machines Corporation Statically linking an application process with a wrapper library
US6658571B1 (en) * 1999-02-09 2003-12-02 Secure Computing Corporation Security framework for dynamically wrapping software applications executing in a computing system
US6560613B1 (en) * 2000-02-08 2003-05-06 Ensim Corporation Disambiguating file descriptors
US6711572B2 (en) * 2000-06-14 2004-03-23 Xosoft Inc. File system for distributing content in a data network and related methods
US6728840B1 (en) * 2000-10-20 2004-04-27 Emc Corporation Methods and apparatus for providing host controlled caching of data in a storage system

Also Published As

Publication number Publication date
GB2380022A (en) 2003-03-26
GB0214265D0 (en) 2002-07-31
US20030005168A1 (en) 2003-01-02

Similar Documents

Publication Publication Date Title
DE10225664A1 (de) System und Verfahren zum Prüfen von Systemabrufereignissen mit Systemabrufumhüllungen
DE60025488T2 (de) Vorrichtung und verfahren zur allgemeinen koordination und verwaltung von mehrfachen schnappschussanbietern
DE69938218T2 (de) Vorrichtung und Verfahren zum Laden eines Java Anwendungsprogramms
DE69531112T2 (de) Mechanismus zum verknüpfen von dateien auf einem emulierten system mit dem zentralsystem für den zugriff durch emulierte systembenutzer
DE69812545T2 (de) Automatische Mustererzeugung von Makroviren
US7162599B2 (en) System and method for backing up and restoring data
DE4435751B4 (de) Dateiname- und Verzeichnis- Erfassungsverfahren zur Verwendung mit einem Betriebssystem
DE60025043T2 (de) Vorrichtung und verfahren mit verwendung von anwendungabhängigkeitsinformation für eine sicherungskopieherstellung in einem computersystem
DE10085374B4 (de) Systemmanagementspeicher für die Systemmanagement-Interrupt-Behandler wird in die Speichersteuereinrichtung integriert, unabhängig vom BIOS und Betriebssystem
DE60108851T2 (de) Mehrkanal, mehrdienstfehlerbeseitigung in pipeline-cpu-architektur
EP0502857B1 (de) Verfahren zur dynamischen bindung von definierbaren programmelementen eines interaktiven datenverarbeitungssystems
DE69936162T2 (de) Verfahren und Gerät für ein objektorientiertes Unterbrechungssystem
DE60010011T2 (de) Verfahren und Vorrichtung zur Prüfung eines Rechnersystems durch Software-Fehlerinjektion
DE19983768B4 (de) Verfahren zum Ausführen von für verschiedene Befehlssatzarchitekturen geschriebener Firmware
DE69922015T2 (de) Verfahren und vorrichtung zum übersetzen und ausführen von arteigenem code in einer umgebung mit virtuellen maschinen
DE69724862T2 (de) Verfahren und Anordnung für die Zugangs- und Informationsverfälschungskontrolle in Rechnersystemen
DE69913553T2 (de) Konfigurierung von systemeinheiten
DE69816686T2 (de) Hochfrequenzabtastung von Leistungszählern
DE112011104356B4 (de) Aktualisieren von Software-Images auf der Grundlage von Streaming-Technik
DE69918334T2 (de) Erzeugung von kompilierten programmen für interpretative laufzeitumgebungen
DE10128883A1 (de) Verfahren und System für die Verteilung von Anwendungsdaten auf verteilte Datenbanken mit verschiedenen Formaten
DE112006003260T5 (de) Verfahren zum dynamischen Freilegen von Sicherungs- und Wiederherstellungslaufwerken
DE19847676A1 (de) Modifizierbarer Partitionsstarteintrag für ein Computerspeichergerät
DE10393968T5 (de) Dauerzwischenspeichervorrichtung und -verfahren
DE112012004247T5 (de) Passives Überwachen virtueller Systeme unter Verwendung einer erweiterbaren Indexierung

Legal Events

Date Code Title Description
8130 Withdrawal