DE69709788T2 - Isolierter ausführungsort - Google Patents

Isolierter ausführungsort

Info

Publication number
DE69709788T2
DE69709788T2 DE69709788T DE69709788T DE69709788T2 DE 69709788 T2 DE69709788 T2 DE 69709788T2 DE 69709788 T DE69709788 T DE 69709788T DE 69709788 T DE69709788 T DE 69709788T DE 69709788 T2 DE69709788 T2 DE 69709788T2
Authority
DE
Germany
Prior art keywords
end user
program
user system
isolated
data
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.)
Expired - Lifetime
Application number
DE69709788T
Other languages
English (en)
Other versions
DE69709788D1 (de
Inventor
John Albert Bull
Andre Kramer
David John Otway
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.)
Citrix Systems Research and Development Ltd
Original Assignee
Citrix Systems Research and Development Ltd
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
Priority claimed from GBGB9616783.8A external-priority patent/GB9616783D0/en
Priority claimed from GBGB9703773.3A external-priority patent/GB9703773D0/en
Application filed by Citrix Systems Research and Development Ltd filed Critical Citrix Systems Research and Development Ltd
Application granted granted Critical
Publication of DE69709788D1 publication Critical patent/DE69709788D1/de
Publication of DE69709788T2 publication Critical patent/DE69709788T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44589Program code verification, e.g. Java bytecode verification, proof-carrying code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/009Trust

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Glass Compositions (AREA)
  • Stored Programmes (AREA)
  • Preparation Of Compounds By Using Micro-Organisms (AREA)
  • Selective Calling Equipment (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Saccharide Compounds (AREA)
  • Seal Device For Vehicle (AREA)
  • Sink And Installation For Waste Water (AREA)
  • Diaphragms For Electromechanical Transducers (AREA)
  • Debugging And Monitoring (AREA)

Description

  • Die vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung, insbesondere ein Verfahren zum selektiven Lenken von Teilen eines eintreffenden Datenstroms von einer externen Quelle zu einem gewählten Ort, an dem Programmkomponenten in diesem eintreffenden Strom interpretiert und ausgeführt werden können. Dies vermindert das Risiko einer Verfälschung oder Beschädigung von Daten und Programmen, die in einem Endbenutzernetzwerk von Computersystemen gehalten werden, durch mobile Programmkomponenten, die von einer externen Quelle in dieses System importiert werden. Außerdem ermöglicht die Erfindung das Interpretieren und Ausführen großer Programmkomponenten in dem eintreffenden Datenstrom auf einem spezifischen Server und vermindert dadurch die Last auf den Prozessoren in dem nachfolgenden Endbenutzercomputersystem. Dies reduziert die Notwendigkeit von einzelnen Terminals mit großer Verarbeitungskapazität in diesem nachfolgenden System. Die Erfindung betrifft außerdem ein Computersystem, das derart programmiert oder modifiziert ist, um unter Verwendung des Verfahrens der Erfindung zu operieren.
  • ALLGEMEINER STAND DER TECHNIK:
  • Der Benutzer eines selbständigen oder vernetzten Computersystems, wobei beides im folgenden zusammen als ein Endbenutzersystem bezeichnet wird, muss häufig Daten oder ganze Programme oder Teile von Programmen, die im folgenden zusammen und einzeln als Programmkomponenten bezeichnet werden, von einer externen Quelle importieren, damit das Endbenutzersystem auf eine gewünschte Weise operieren kann. Der Begriff Programmkomponente bedeutet hier Material, das von einem Computersystem interpretiert wird, um das System auf eine spezifische Weise zu betreiben, wohingegen Daten das Informationsmaterial sind, an dem das Computersystem unter der Anleitung der Programmkomponenten wirkt.
  • Benutzer, insbesondere Banken und andere Finanzinstitute, müssen in der Lage sein, eintreffende Programmkomponenten und Daten zu inspizieren, um sicherzustellen, dass diese Komponenten die in ihren Endbenutzersystemen gehaltenen Daten und Betriebsprogramme nicht verfälschen oder anderweitig beeinträchtigen. Dies ist besonders wichtig, wenn in einem Netzwerk mehrere Computersysteme operieren und wenn das Netzwerk oder Computersysteme in diesem Netzwerk eine Anzahl von Punkten aufweisen, an denen der Zugang zu externen Daten und Programmquellen erfolgen kann.
  • Wenn das System ein geschlossenes Netzwerk ist und die Daten oder Programmkomponenten von anderen Einheiten in demselben Netzwerk bereitgestellt werden, kann sich der Benutzer versichern, dass die Daten und die Programmkomponenten kein Material enthalten, das auf beeinträchtigende Weise mit den Daten und Programmen, die auf seiner bestimmten Einheit des Netzwerks gehalten werden, zusammenwirken könnte. Für diese Sicherheit müssen in der Regel die Computerauflistungen, auf denen das Programm basiert, inspiziert werden, um sicherzustellen, dass das Programm keine Fehler oder nachteilige Komponenten enthält. Wenn das importierte Programm bzw. die importierte Programmkomponente jedoch groß und kompliziert sind, wird diese Inspektion und Verifizierung äußerst zeitaufwendig und kostspielig und deshalb unpraktikabel.
  • Wenn das Endbenutzernetzwerk oder selbständige System Daten oder Programmkomponenten von einer diesem Netzwerk externen Quelle empfangen soll, wie zum Beispiel aus dem Internet oder einer externen Datenbank, vergrößert sich das Risiko einer bewussten oder unbeabsichtigten Einführung von Programmkomponenten, die nachteilig mit den bereits in diesem Endbenutzersystem gehaltenen Daten oder Programmen zusammenwirken können. Da die externe Datenquelle unter einem oder mehreren großen und komplizierten Programmen operieren kann, die selbst ständig aktualisiert und revidiert werden, ist es effektiv unmöglich, jedes Programm und jede Modifikation des Programms zu inspizieren, um sicherzustellen, dass das Endbenutzersystem kein nachteilig wirkendes Material importiert.
  • Es gibt mehrere Formen von Programmkomponenten, die eine Verfälschung oder Beschädigung von in einem Endbenutzersystem gehaltenen Daten oder Programmen und/oder andere schädliche Effekte verursachen können, wenn sie in das Endbenutzersystem importiert werden. Solche Programmkomponenten sind zum Beispiel solche, die bewußt dafür entworfen sind, die Daten oder Betriebsprogramme des Endbenutzersystems zu verfälschen; Komponenten, die vertrauliche Daten von dem Endbenutzersystem sammeln und diese Daten zu einem externen Ort senden, ohne dass sich der Endbenutzer über das Stattfinden dieser unbefugten Übertragung bzw. dieses Diebstahls von Daten bewusst ist; und Programme, die dem Benutzer eine volle und ordnungsgemäße Benutzung des Endbenutzersystems verweigern, wie zum Beispiel durch Einführung sich wiederholender geschlossener Schleifenoperationen, die die Rechenkapazität des Endbenutzersystems aufbrauchen oder den Zugang zu Bereichen des Endbenutzersystems verweigern. Solche Programmkomponenten sind als Viren, Zapper, feindselige Applets, trojanische Pferde und Dienstverweigerer bekannt und werden im folgenden generisch als Viren bezeichnet. Eine vielfach ausgesprochene Sorge ist die bewusste Verteilung solcher Virenprogramme oder -programmkomponenten in ein Endbenutzersystem, in dem sie ausgeführt werden und nachteilig mit dem ordnungsgemäßen Betrieb des Systems zusammenwirken oder dieses stören. Solche Viren sind möglicherweise nicht absichtlich beschädigend, können aber unabsichtlich Schaden und/oder wirtschaftliche Verluste verursachen. Während ein Endbenutzer Daten und Programme in einem geschlossenen Netzwerk wiederholt inspizieren kann, um solche Viren zu erkennen, ist es dem Endbenutzer nicht möglich, die externen Daten oder den Programm-Quellcode für solche Viren zu inspizieren, und er muß das Risiko akzeptieren, dass ein etwaiger Import von Daten oder Programmkomponenten aus einer externen Quelle Viren in sein System importieren kann.
  • Um das Risiko des Importierens von Material aus einer externen Quelle, das nachteilig mit einem Endbenutzersystem zusammenwirken könnte, zu reduzieren, ist es üblich, alle eintreffenden Daten und Programme oder Programmkomponenten zu filtern, um die Quelle dieses Materials zu identifizieren. Nur Material aus angegebenen Quellen wird der Zugang in das Endbenutzersystem gestattet. Der Endbenutzer kann sich davon überzeugen, dass solche Quellen Daten und/oder Programme liefern, die entweder vom Endbenutzer oder von der Quelle inspiziert wurden. Als Alternative kann der Benutzer sein Vertrauen in die Quelle des Materials auf ihren Ruf für Genauigkeit beim Kompilieren von Programmen und für das Reduzieren des Vorliegens möglicher nachteilig wirkender Programmkomponenten in allen Programmkomponenten, die sie Endbenutzern zur Verfügung stellt, stützen. Solche Filter sind auf dem Gebiet der Computer als Firewalls bekannt und wirken unidirektional auf Kommunikations-Hardwareniveau, um eintreffendes Material durchzulassen, wenn es von einer angegebenen Kommunikationsadresse kommt, oder eintreffendes Material zu zerstören, wenn es nicht von einer angegebenen Quelle kommt.
  • Eine Firewall verhindert jedoch, dass der Bediener eines Endbenutzersystems auf Daten und Programme zugreifen kann, die von nicht angegebenen Quellen stammen. Dadurch wird die Freiheit des Benutzers zum Zugriff auf alternative Quellen eingeschränkt, bis sie inspiziert und autorisiert wurden. Wenn die externe Quelle unter einem großen oder komplizierten Programm operiert, ist eine solche Inspektion außerdem nicht praktikabel, und jede Autorisierung des Zugangs zu dieser externen Quelle kann die Integrität des Endbenutzersystems zerstören.
  • Diese Probleme werden verschlimmert, wenn es viele Punkte in dem Endbenutzersystem gibt, von denen aus auf externe Quellen von Daten und Programmen zugegriffen werden kann. Es wurde vorgeschlagen, die Anzahl solcher Zugangspunkte in einem Endbenutzersystem zu begrenzen und sicherzustellen, dass alles eintreffende Material an den zugelassenen Zugangspunkten vollständig gefiltert wird. Dies kann durch Umlenken des eintreffenden Materials zu einem Ort geschehen, zum Beispiel einem als Web-Proxy bekannten Ort, an dem der Systemmanager es inspizieren kann, bevor es zu dem Endbenutzersystem weitergeleitet wird. Dies kann jedoch zu übermäßigen Engpässen im Betrieb des Systems führen und verzögert den Zugriff auf die externe Quelle von einem gegebenen Endbenutzer-Computersystem in einem Netzwerk. Außerdem identifiziert die Inspektion des eintreffenden Materials möglicherweise keine Programmelemente, die zwar dafür gedacht sind, gutartig zu operieren, aber fehlerhaft operieren könnten. Diese werden oft direkt unter Umgehung des Web-Proxy zu dem Endbenutzersystem weitergeleitet und dort mit potentiell schädlichen Effekten implementiert. Wenn die Annahme von eintreffenden Daten auf der Identifikation der Quelle solcher Daten als eine akzeptierte Quelle basiert, legt dies zusätzlich zu viel Vertrauen in die Integrität dieser Quelle und ihrer Möglichkeit, Material ohne Fehler oder Probleme zu erzeugen.
  • Außerdem ist es üblich, in einem Endbenutzersystem eines oder mehrere Virendetektionsprogramme bereitzustellen. Diese operieren durch Erkennung charakteristischer Muster in dem Virenprogramm und Zerstörung des Virenprogramms, bevor es in dem Endbenutzersystem ausgeführt wird. Das Detektionsprogramm kann außerdem spezifische Stellen in einem Betriebsprogramm erkennen, an die sich ein Virus anhängen kann und inaktiv bleiben kann, bis es ausgeführt wird, und somit durch eine Änderung einer solchen Stelle erkennen, wann ein Virus vorliegt. Dies erfordert jedoch, dass das Detektionsprogramm spezifische Merkmale oder Muster erkennt und dass der Virus in das Endbenutzersystem importiert wird, bevor er identifiziert und neutralisiert werden kann. Wenn der Virus ein nicht von dem Virusdetektionsprogramm erkannter Virus ist, da er zum Beispiel ein neuer Virus oder eine Mutation eines bestehenden ist, wird außerdem der Virus möglicherweise nicht erkannt und kann in dem Endbenutzersystem ausgeführt werden.
  • In vielen Anwendungen ist es wünschenswert, Programmkomponenten aus der Datenquelle bereitzustellen, um die Ausführung von in dem Endbenutzersystem gehaltenen Programmen zu verbessern. Zum Beispiel verwenden viele Datenquellen, die in den Sprachen JAVA oder JAVASCRIPT geschrieben sind, mobile Programmkomponenten oder Applets. Die Programmkomponenten können in den Datenstrom von einer externen Quelle eingefügt werden, damit das Endbenutzersystem die Daten effektiv behandeln kann. Zum Beispiel kann das Applet dem Endbenutzer ermöglichen, in Echtzeit mit der externen Datenquelle zusammenzuwirken, um eine Script-Sequenz von Aktionen durchzuführen, um zum Beispiel eine Animation von Grafikbildern auf dem Videobildschirm des Endbenutzersystems aus bereits in dem Endbenutzersystem gehaltenen Daten zu erzielen. Dadurch ist es nicht mehr notwendig, die Daten für jedes Bild aus der externen Quelle zu übertragen, und der Betrieb des Endbenutzersystems wird beschleunigt. Als Alternative werden solche Programmkomponenten an einer spezifischen Adresse in der externen Quelle gehalten, und der eintreffende Informationsstrom enthält ein charakteristisches Flag oder eine andere Kennung, wodurch das Endbenutzersystem darauf hingewiesen wird, dass es eine Programmkomponente von der externen Quelle herunterladen muß, sowie die Adresse, von der diese Programmkomponente heruntergeladen werden sollte. Solche Programmkomponenten werden im folgenden als dem eintreffenden Datenstrom von der externen Quelle zugeordnet bezeichnet. Der Bediener des Endbenutzersystems lädt die erforderliche Programmkomponente in das Endbenutzersystem herunter, in dem sie implementiert wird.
  • Solche Programmkomponenten werden als mobil bezeichnet, da sie in das Endbenutzersystem importiert und in diesem System ausgeführt werden sollen, um auf vorteilhafte Weise mit den Daten und Programmkomponenten, die in dem Endbenutzersystem gehalten werden, zusammenzuwirken. Es ist deshalb notwendig, dass sie von dem Endbenutzersystem akzeptiert werden. Sie durchlaufen deshalb eine etwaige Firewall und werden nicht von einem Virusdetektionsprogramm zurückgewiesen oder zerstört. Es wurde vorgeschlagen, solche Programmkomponenten kryptographisch zu signieren oder zu verschließen, um so die Programmkomponente als von einer autorisierten Quelle stammend zu identifizieren, wie zum Beispiel einer Quelle, an der die Komponenten einzeln inspiziert wurden. Dafür ist es jedoch notwendig, dass der Endbenutzer der Integrität und Kompetenz der Organisation, die die Programmkomponenten, die sie exportieren, kryptographisch signieren und verschließen, völlig vertraut.
  • Wenn das aus der externen Quelle importierte Programm bzw. die Programmkomponente groß und kompliziert ist und/oder fortwährend aktualisiert wird, sowie es bei Netzwerk-Browser-Programmen der Fall ist, ist es nicht möglich, einen hohen Grad des Vertrauens in solche Programme oder Programmkomponenten bereitzustellen. Bei Abwägung gegen die Vorteile, die man durch die Benutzung solcher Programmkomponenten erhält, kann dies für den Betreiber des Endbenutzersystems ein annehmbares Risiko darstellen.
  • Außerdem ist es möglich, dass solche mobilen Programmkomponenten zwar die Kriterien der Authentifizierung oder der identifizierten Quelle erfüllen, aber in dem Endbenutzersystem falsch interpretiert werden und/oder absichtlich oder unbeabsichtigt nachteilig mit den bereits durch das Endbenutzersystem gehaltenen Daten und/oder Programmkomponenten zusammenwirken können. Dadurch entsteht ein Problem für den Endbenutzersystembetreiber. Einerseits ist das Importieren der mobilen Programmkomponenten für den ordnungsgemäßen Betrieb des Endbenutzersystems wünschenswert; aber sie können eine Verfälschung von Daten und eine Beschädigung des Betriebs- und anderer Programme, die von dem Endbenutzersystem gehalten werden, verursachen. Die herkömmlichen Firewall- oder Virusdetektionsprogramme können das Endbenutzersystem nicht schützen, ohne einen ordnungsgemäßen Betrieb des Systems zu verhindern. Das Umlenken des importierten Datenstroms zu einem Halteort, wie zum Beispiel dem Terminal, das von einem Endbenutzersystemmanager betrieben wird, wo etwaige Programmkomponenten in dem Datenstrom inspiziert werden, um festzustellen, dass sie für das Endbenutzersystem annehmbar sind, bevor sie zu dem Endbenutzersystem zur Implementierung weitergeleitet werden, kann jedoch, wie bereits erwähnt, nicht zwischen völlig gutartigen Programmkomponenten und solchen, die möglicherweise fehlerhaft operieren, unterscheiden.
  • Das Problem der absichtlichen oder unbeabsichtigten fehlerhaften Zusammenwirkung wünschenswerter mobiler Programmkomponenten von einer externen Quelle wurde von der Computerindustrie als ein großes Problem erkannt, es wurde jedoch noch keine effektive Lösung vorgeschlagen.
  • In VITEK et al., "Security and communication in mobile object systems", MOBILE OBJECT SYSTEMS. TOWARD THE PROGRAMMABLE INTERNET, Seiten 177 bis 199, wurde vorgeschlagen, ein Endbenutzer-Computersystem bereitzustellen, in dem Programmausführungsorte aus verschlossenen Objekten aufgebaut werden. Diesen wird ein Etikett oder ein anderes Mittel gegeben, durch das sie identifiziert und als eine frische tiefe Kopie weitergeleitet werden können, wenn eine Kommunikation erforderlich ist. Ein solches System erfordert die Benutzung einer neuen spezifischen Form von Sprache und kann nicht auf Datenströme angewandt werden, die in bestehenden Sprachen kompiliert sind. Da die verschlossenen Objekte, die eine mobile Programmkomponente enthalten, in dem Endbenutzer- Computersystem von einem Ort zum anderen weitergeleitet werden, kann in dem Endbenutzersystem eine fehlerhafte Ausführung des Programms in dem verschlossenen Objekt stattfinden. Dieser Vorschlag betrifft den Schutz der Identität und/oder des Inhalts der verschlossenen Einheit vor dem Endbenutzer und nicht den Schutz des Endbenutzer-Computersystems vor dem fehlerhaften Betrieb etwaiger mobiler Programmkomponenten in den verschlossenen Einheiten.
  • In DEAN D. et al., "Java security: from HotJava to Netscape and beyond", PROCEEDINGS 1996 IEEE SYMPOSIUM ON SECURITY AND PRIVACY, Seiten 190-200, wurde vorgeschlagen, dem Manager eines Endbenutzer-Computersystems ein Mittel zum Definieren einer Schnittstelle für ein solches System zur Verfügung zu stellen, die den Zugang von Java-Applets zu dem Endbenutzersystem steuert, indem Komponenten in einem Datenstrom, der in einer Komponente in dem Endbenutzer-Computersystem gehalten wird, identifiziert werden, um zu bestimmen, ob dieser Datenstrom vorbestimmte Zugangsanforderungen erfüllt. Dies wird in dem Endbenutzersystem ausgeführt, so dass jedes Applet in diesem Datenstrom fehlerhaft in dem Endbenutzersystem ausgeführt werden kann.
  • Die Verfasser haben nun ein Verfahren und eine Vorrichtung konzipiert, wodurch ein Endbenutzersystem vor den fehlerhaften Effekten solcher ansonsten wünschenswerter mobiler Programmkomponenten, die von einer externen Quelle importiert werden, geschützt werden kann. Das Verfahren der Erfindung kann auch zum selektiven Lenken von Programmkomponenten von einem eintreffenden Datenstrom zu einem Server verwendet werden, der spezifisch dafür ausgewiesen ist, diese Programmkomponente oder Art von Komponente auszuführen. Auf diese Weise können große Programmkomponenten in diesem Server isoliert von dem Rest des Endbenutzersystems ausgeführt und die Ergebnisse dieser Ausführung zu dem Endbenutzersystem übertragen werden. Dadurch kann man große und komplizierte Programmkomponenten in einem eigenen Server für diesen Zweck ausführen und die Notwendigkeit, dass der Endbenutzer große und komplizierte Terminals in seinem Endbenutzersystem bereitstellt, die diese Programmkomponenten ausführen können, vermeiden. Außerdem können mehrere gewählte Programmkomponenten von demselben eintreffenden Datenstrom isoliert voneinander zu verschiedenen isolierten Programmausführungsorten gelenkt werden, so dass die Geschwindigkeit und Sicherheit des Behandelns verschiedener Arten von Programmkomponenten verbessert wird. Durch Wählen des Servers, auf dem eine spezifische Art von Programmkomponente ausgeführt wird, ist es möglich, die Operation dieses Servers auf die Programmkomponente, die er ausführen soll, zurechtzuschneiden, und somit bei den Sicherheitsmaßnahmen oder -vorkehrungen die von diesem isolierten Programmausführungsort dem Endbenutzersystem bereitgestellt werden, spezifischer zu sein.
  • KURZE DARSTELLUNG DER ERFINDUNG:
  • Dementsprechend stellt die vorliegende Erfindung ein Computersystem bereit mit:
  • A. einem Endbenutzersystem mit einem oder mehreren Computern, die so programmiert sind, dass sie auf Empfang hin eines importierten Datenstromes von einer externen Quelle operieren, welcher Datenstrom eine oder mehrere mobile in dem Datenstrom enthaltene oder damit verbundene Programmkomponenten aufweist, und
  • B. mindestens einem Programmausführungsort zum Ausführen mindestens einer der mobilen Programmkomponenten und zum Zuführen der Resultate dieser Ausführung zu einem oder mehreren der Endbenutzersystemcomputer, dadurch gekennzeichnet, dass:
  • i. der Programmausführungsort wahlweise von dem (den) Endbenutzersystemcomputer(n) isoliert ist; und
  • ii. einige oder alle der mobilen Programmkomponenten vor Ausführung in dem isolierten Programmausführungsort einem oder mehreren der isolierten Programmausführungsorte zugeführt oder darin zurückbehalten werden, um in einer gewünschten Weise zu operieren; und
  • iii. der isolierte Programmausführungsort einer ist, in welchem eine oder mehrere der Programmkomponenten zurückbehalten werden und welcher eine oder mehrere Schnittstellen zu der externen Quelle des Datenstromes und eine oder mehrere Schnittstellen zu dem (den) Endbenutzersystemcomputer(n) aufweist, wodurch eine oder mehrere der Programmkomponenten innerhalb des isolierten Programmausführungsortes darin in Isolation von dem (den) Endbenutzersystemcomputer(n) ausgeführt werden können, um mit der externen Datenquelle und/oder durch den (die) Endbenutzersystemcomputer gespeicherten Daten und/oder Programm zusammenzuwirken; und
  • iv. der Betrieb der Schnittstelle(n) zwischen dem isolierten Programmausführungsort und die Endbenutzersystemcomputer so programmiert sind, dass lediglich Daten, auf die durch die Programmkomponente(n) innerhalb des isolierten Programmausführungsortes in einer bestimmten und kontrollierten Weise eingewirkt wurde, und/oder Programmkomponenten, die in einer bestimmten Weise arbeiten, mit dem (den) Endbenutzersystemcomputer(n) ausgetauscht werden können.
  • Vorzugsweise ist das Computersystem programmiert, den eintreffenden Datenstrom zu filtern, um mobile Programmkomponenten zu erkennen, die in diesem Datenstrom vorliegen oder diesem zugeordnet sind, und einen gewählten Teil oder alle erkannten mobilen Programmkomponenten zu einem oder mehreren der isolierten Programmausführungsorte weiterzuleiten.
  • Bei einer besonders bevorzugten Ausführungsform der Erfindung ist ein Ersatz für die Programmkomponente in dem eintreffenden Datenstrom mit der zweckmäßigen Bezeichnung Proxy-Applet in dem Endbenutzersystem verankert und empfängt die Daten aus dem isolierten Programmausführungsort und wirkt an diesen. Das Proxy- Applet ahmt auf dem Endbenutzersystem die Aktionen der isolierten gewählten Programmkomponente nach und kann in Form eines Zusatzprogramms für das Browser-Programm vorliegen und in derselben Sprache wie die von ihm nachgeahmte Programmkomponente vorliegen, so dass es von dem Browser-Programm so angesehen werden kann, als ob es die Programmkomponente wäre, die es nachahmt, ohne dass eine umfassende Modifikation des Browsers notwendig ist.
  • Der isolierte Programmausführungsort legt der isolierten Programmkomponente dieselben Schnittstellen vor, wie das Endbenutzersystem dem Proxy-Applet vorlegt, so dass die Betriebsumgebungen für beide im wesentlichen identisch sind. An die Schnittstellen in dem isolierten Programm durch die isolierte Programmkomponente gestellte Betriebsanforderungen werden über ein Kommunikationsprotokoll zu dem in dem Endbenutzersystem verankerten Proxy-Applet übertragen, das diese Betriebsanforderungen wieder an die identischen Schnittstellen auf dem Endbenutzersystem ausgibt. Auf diese Weise wird nur eine Teilmenge der Endbenutzerschnittstellen, die vollständig inspiziert und verifiziert wurden, dem isolierten Programmausführungsort auf kontrollierte Weise bereitgestellt. Die diese Betriebsanforderungen vermittelnden Datenströme können ebenfalls gefiltert werden, um Abweichungen von einer strikten gut spezifizierten und verifizierten Spezifikation zu erkennen.
  • Bei der vorliegenden Erfindung kann sich der isolierte Programmausführungsort auf demselben physikalischen Standort wie Teil oder das gesamte Endbenutzersystem befinden und zum Beispiel einem Zugangs-Gateway zu dem Endbenutzersystem zugeordnet sein. Als Alternative kann er sich entfernt von dem nachfolgenden Rest des Endbenutzersystems befinden. Außerdem muß sich der isolierte Programmausführungsort nicht unbedingt in dem Endbenutzersystem selbst befinden, sondern kann sich als ein schützender Isolationsschirm zwischen der externen Quelle der Daten und Programmkomponenten und dem nachfolgenden Endbenutzersystem befinden. Der Ausdruck "in dem Endbenutzersystem" bedeutet hier zweckmäßig den Fall, wenn der isolierte Programmausführungsort in einer oder mehreren der Computereinheiten des Endbenutzersystems bereitgestellt wird; und der Ausdruck "außerhalb des Endbenutzersystems" soll eine Computereinheit oder ein anderes Mittel bedeuten, das sich zwar an demselben geographischen Standort wie das Endbenutzersystem befinden kann, aber von dem Endbenutzersystem isoliert ist.
  • Durch Bereitstellen des isolierten Programmausführungsorts isoliert vom Rest des Endbenutzersystems werden eintreffende mobile Programmkomponenten selektiv isoliert von oder in dem Endbenutzersystem einbehalten. Obwohl die Programmkomponenten innerhalb des isolierten Programmausführungsorts fehlerhaft operieren können, wird ihnen nur gestattet, auf eine spezifizierte und kontrollierte Weise mit dem Endbenutzersystem zusammenzuwirken, zum Beispiel über eine allgemeine Hilfsprogrammschnittstelle, die wirkt, um nur gewählte Daten durchzulassen. Da das Programm, das an dem isolierten Programmausführungsort operiert, vergleichsweise klein sein kann, kann der Endbenutzer die Programmauflistung für dieses Programm inspizieren, um sicherzustellen, dass es die gewünschten Kriterien erfüllt. Somit kann der Betreiber sehr sicher sein, dass nur Daten, die auf eine spezifizierte gewünschte Weise verarbeitet wurden, oder eine Programmkomponente, die auf eine gewünschte Weise wirkt, von dem isolierten Programmausführungsort zu dem Endbenutzersystem übertragen werden kann. Das Betriebsprogramm für den isolierten Programmausführungsort kann außerdem verhindern, dass Programmkomponenten von dem isolierten Programmausführungsort zu dem Endbenutzersystem weitergeleitet werden, so dass das Risiko, dass Viren oder unerwünschte Programmkomponenten in das Endbenutzersystem eintreten, minimiert wird. Zusätzlich kann der isolierte Programmausführungsort wirken, um den Zugang einer Programmkomponente von dem isolierten Programmausführungsort zu spezifizierten Betriebsmitteln in dem Endbenutzersystem zu begrenzen, um zum Beispiel die Zugriffszeit auf den Zentralprozessor zu begrenzen, um die Auswirkung eines Dienstverweigerungsvirus zu minimieren, um die Bandbreite des Kommunikationszugriffs zu begrenzen oder den Zugang zu bestimmten Plattenblöcken im Festplattenspeicher zu begrenzen.
  • Das Programm, das den isolierten Programmausführungsort betreibt, kann selektiv so geschrieben werden, dass ein Senden oder Empfangen von Daten nur zu oder von spezifischen Quellen in dem Endbenutzersystem und/oder einer spezifischen externen Quelle gestattet wird, so dass importierte Programmkomponenten, die in dem isolierten Programmausführungsort ausgeführt werden, nicht auf bestimmte Bereiche der Datenbank in dem Endbenutzersystem zugreifen können. Zum Beispiel könnte ein isolierter Programmausführungsort so programmiert werden, dass er nur an Handelsbuchführungsdaten operiert, und ein anderer könnte programmiert werden, um nur an Personaldaten zu operieren. Es kann deshalb notwendig sein, eine Reihe isolierter Programmausführungsorte bereitzustellen, die jeweils dafür ausgelegt sind, auf eine individuelle Weise an spezifizierten Datenquellen und -zielen zu operieren. Dadurch kann das Betriebsprogramm für jeden isolierten Programmausführungsort kleiner und spezifischer sein und dadurch leichter inspiziert und verifiziert werden. Weiterhin liegt es in dem Schutzumfang der vorliegenden Erfindung, eine Anzahl von Rangstufen isolierter Programmausführungsorte bereitzustellen, die in Reihe mit einander operieren, so dass der eintreffende Datenstrom zu einem anfänglichen isolierten Programmausführungsort gelenkt wird, an dem die Identitäten der Programmkomponenten, ihre Quellen und/oder Funktionen identifiziert werden können. Dieser erste isolierte Programmausführungsort kann dann den isolierten Programmausführungsort bzw. die isolierten Programmausführungsorte in der nächsten Rangstufe wählen, an die spezifizierte Programmkomponenten gelenkt werden usw. Auf diese Weise kann man schrittweise immer strengere Sicherheitsanforderungen oder Auswahlen des entsprechenden Teils des Endbenutzersystems zur Benutzung der Programmkomponenten aus dem eintreffenden Datenstrom als eine Reihe einfacher Schritte anwenden und/oder große Programmkomponenten können isoliert und zu isolierten Programmausführungsorten gelenkt werden, die spezifisch dafür konfiguriert sind, diese Programmkomponenten auszuführen.
  • Der Zweckmäßigkeit halber wird die Erfindung im folgenden im Hinblick auf einen isolierten Programmausführungsort beschrieben, der so programmiert ist, dass er mit einer einzigen externen Quelle oder einem einzigen externen Ziel von Daten außerhalb des Endbenutzersystems operiert und Daten zu einem einzigen Ziel in dem Endbenutzersystem sendet oder aus diesem empfängt. Es versteht sich jedoch, dass die Erfindung auch auf isolierte Programmausführungsorte angewandt werden kann, die mit mehreren externen und/oder Endbenutzer-Quellen und -Zielen in beliebiger Kombination operieren.
  • Der isolierte Programmausführungsort wird selektiv von oder in dem Endbenutzersystem isoliert, d. h. der isolierte Programmausführungsort kann Daten und/oder Programmkomponenten nur auf selektive und kontrollierte Weise über die Schnittstellen mit der externen Quelle und dem Endbenutzersystem empfangen und senden. Der isolierte Programmausführungsort erfordert somit in der Regel einen Grad von Intelligenz und Datenspeicherung, so dass er die eintreffenden mobilen Programmkomponenten aus der externen Quelle annehmen und speichern und dann diese Programmkomponenten unter der Steuerung eines Betriebsprogramms, das bereits in dem isolierten Programmausführungsort gehalten wird, ausführen kann, um mit Daten aus der externen Quelle und/oder aus dem Endbenutzersystem zusammenzuwirken. Falls gewünscht, kann das für den isolierten Programmausführungsort benötigte Betriebsprogramm in dem Endbenutzersystem gehalten werden, um eine Verfälschung aus externen Quellen möglichst gering zu halten, und wird als Teil der Startup-Prozedur des Endbenutzersystems zu dem isolierten Programmausführungsort gesendet. Wie später erläutert wird, können abhängig von der Art von Daten, die behandelt werden sollen, und der Art der an diesen Daten auszuführenden Operation mehrere Betriebsprogramme für den isolierten Programmausführungsort verfügbar sein. Dem Endbenutzer oder Systemadministrator können Mittel gegeben werden, zum Beispiel spezifische Tastaturoperationen, die das entsprechende Betriebsprogramm an den isolierten Programmausführungsort laden, wo zwischen verschiedenen Alternativen ausgewählt werden muß.
  • Die erforderlichen Verarbeitungs- und Datenspeicherfunktionen für den isolierten Programmausführungsort können durch eine der Computereinheiten in dem Endbenutzersystemnetzwerk oder als ein isolierter Teil einer der Computereinheiten bereitgestellt werden, so dass der isolierte Programmausführungsort sich in dem Endbenutzersystem befindet. Bei der gegenwärtigen Computerarchitektur ist es eventuell jedoch nicht möglich, eine ausreichend isolierte Umgebung bereitzustellen, in der die Programmkomponenten ausgeführt werden. Es wird deshalb bevorzugt, den isolierten Programmausführungsort als eine getrennte physikalische Einheit bereitzustellen, die selektiv von dem Endbenutzersystem isoliert ist, mit dem er zusammenwirken soll, und begrenzte Zugangswege oder -schnittstellen zwischen der Ausführungseinheit und dem Endbenutzersystem bereitzustellen, die unter der Steuerung des Programms betrieben werden, das die Einheit des isolierten Programmausführungsorts betreibt. Dadurch können herkömmliche Firewall- und Kommunikationsprotokolle verwendet werden, um den isolierten Programmausführungsort von dem Endbenutzersystem zu trennen. Die Ausführungseinheit ist in der Regel ein herkömmlicher Computer mit seinem eigenen Prozessor und Speicherfähigkeit.
  • Außerdem liefert die Erfindung einen isolierten Programmausführungsort zur Verwendung in einem Computersystem der Erfindung, dadurch gekennzeichnet, dass es einen Computermechanismus aufweist, der angepaßt ist, um als eine isolierende Schnittstelle zwischen einer externen Datenquelle und Programmkomponenten und dem Endbenutzersystem, welches Daten von dem bzw. an den Computermechanismus empfangen bzw. übertragen soll, zu wirken, welcher Computermechanismus programmiert ist, um mindestens einige ausgewählte der Programmkomponenten von der externen Quelle zurückzubehalten und/oder zu dem Computermechanismus umzuleiten, und um jene ausgewählten Programmkomponenten innerhalb des Computermechanismus auszuführen, und um ein Übertragen von solchen Daten und/oder Programmkomponenten zu dem Endbenutzersystem zu erlauben, welche in einer ausgewählten und bestimmten Weise arbeiten oder gearbeitet haben.
  • Der Zweckmäßigkeit halber wird die Erfindung im folgenden im Hinblick auf einen getrennten Computer beschrieben, der als ein isolierter Programmausführungsort wirkt, der physikalisch von dem Endbenutzersystem getrennt ist, aber so konfiguriert ist, als ob er ein Datenimportzugangspunkt für das Endbenutzersystemnetzwerk wäre.
  • Obwohl der isolierte Programmausführungsort vorzugsweise nur Daten zu und von dem Rest des Endbenutzersystems sendet, kann er derart programmiert werden, um eine Übertragung von Programmkomponenten zu dem Endbenutzersystem zu gestatten. Da solche Programmeinheiten einer Inspektion in dem isolierten Programmausführungsort durch ein Programm, das der Endbenutzer inspiziert hat oder zu dem er viel Vertrauen hat, unterzogen wurden, wird das Risiko, dass solche übertragenen Programmkomponenten fehlerhaft in dem Endbenutzersystem operieren, minimiert. Der isolierte Programmausführungsort kann somit zur Inspektion und Verifikation eintreffender Programmkomponenten verwendet werden, von denen gewünscht wird, dass er sie in das Endbenutzersystem herunterlädt, und kann dazu dienen, Virusprogramme abzufangen, bevor sie das Endbenutzersystem erreichen. Während der Endbenutzer zuversichtlich sein kann, dass spezifizierte Programmkomponenten annehmbar sind, und in diesem Fall den Eindruck haben kann, dass sie nicht in dem isolierten Programmausführungsort inspiziert werden müssen und direkt zu dem Endbenutzersystem weitergeleitet werden können, wird das Endbenutzersystem dadurch einem möglichen fehlerhaften Betrieb dieser Programmkomponenten ausgesetzt. Es wird deshalb bevorzugt, zu wählen, alle Programmkomponenten, die in einem eintreffenden Datenstrom enthalten sind oder diesem zugeordnet sind, zu dem isolierten Programmausführungsort weiterzuleiten.
  • Der Zweckmäßigkeit halber wird die Erfindung im folgenden im Hinblick auf die ausschließliche Übertragung von Daten zu dem Endbenutzersystem beschrieben.
  • Wie bereits erwähnt, übermittelt der isolierte Programmausführungsort Daten zwischen dem isolierten Programmausführungsort und dem Endbenutzersystem nur dann, wenn sie vorbestimmten Kriterien entsprechen, so dass der isolierte Programmausführungsort den Austausch von Daten zu und von dem Endbenutzersystem und dem isolierten Programmausführungsort reguliert. Das Betriebsprogramm, das für diese Aufgabe und für die Identifikation des Vorliegens von Programmkomponenten, die in dem Datenstrom aus der externen Quelle enthalten sind oder diesem zugeordnet sind, erforderlich ist, kann mit herkömmlichen Programmtechniken geschrieben werden, wobei die Quelle und das Ziel in dem Endbenutzersystem berücksichtigt werden, die für die anfänglichen Daten und die resultierenden verarbeiteten Daten erforderlich sind. Obwohl das den isolierten Programmausführungsort betreibende Programm vollständig in dem isolierten Programmausführungsort zurückbehalten und implementiert werden kann, liegt es im Schutzumfang der vorliegenden Erfindung, einen Teil dieses Betriebsprogramms an einem bestimmten anderen Ort anzuordnen. Der Teil des Programms, der eine Programmkomponente in dem eintreffenden Material identifiziert und dieses zu dem isolierten Programmausführungsort (der Falle) umlenkt, kann sich somit in jeder Betriebseinheit des Endbenutzersystems befinden, zum Beispiel als Teil des Browser-Programms, oder kann in das Betriebsprogramm für die Firewall(s) integriert werden. Eine Anordnung des Fallenprogramms in dem Browser-Programm erfordert jedoch, dass jede Betriebseinheit in dem Endbenutzersystem mit dem notwendigen Fallenprogramm ausgestattet wird; und dass jede Erweiterung des Endbenutzersystems bzw. jede Variante des Browser-Programms eine Umprogrammierung des gesamten Endbenutzersystems erfordern kann, um sicherzustellen, dass das Fallenprogramm in allen Endbenutzer-Betriebseinheiten vorliegt. Es wird deshalb bevorzugt, die Fallenkomponente für jeden Datenstrom, der aus einer externen Datenquelle empfangen werden soll, in das Betriebsprogramm zu integrieren, das in dem isolierten Programmausführungsort betrieben werden soll.
  • Wie bereits erwähnt kann man einen einzigen isolierten Programmausführungsort dazu verwenden, eine spezifizierte Operation an spezifizierten Daten zu erzielen. Es liegt jedoch im Schutzumfang der vorliegenden Erfindung, einen isolierten Programmausführungsort bereitzustellen, der an mehreren Kategorien von Informationen und/oder mit Daten aus mehreren Quellen und/oder Zielen von Informationen operieren kann. Dies kann getrennte Betriebsprogramme erfordern, damit der isolierte Programmausführungsort gleichzeitig oder fortlaufend abläuft. Als Alternative können getrennte isolierte Programmausführungsorte bereitgestellt werden, die jeweils eine spezifische Operation an spezifischen Daten erzielen. Außerdem versteht sich, dass ein oder mehr isolierte Programmausführungsorte an jedem Punkt, an dem das Endbenutzersystem auf eine externe Datenquelle zugreift, bereitgestellt werden können, und dass jeder solcher Zugangspunkt einen isolierten Programmausführungsort aufweisen kann, der auf eine spezifische Weise an spezifischen Daten unter Verwendung gewählter Programmkomponenten aus der externen Datenquelle operieren soll. Der Bediener des Endbenutzersystems kann somit die Funktion und potentielle Quellen, auf die an jedem Zugangspunkt zugegriffen werden soll, durch Auswahl des Betriebsprogramms, unter dem der isolierte Programmausführungsort an diesem Zugangspunkt operiert, identifizieren. Dadurch wird der Import von Material von externen Quellen in das Endbenutzersystem weiter reguliert.
  • Außerdem liegt es im Schutzumfang der vorliegenden Erfindung, Zonen in einem System zu erzeugen, in die der Zugang aus anderen Zonen desselben Systems oder Netzwerks durch Bereitstellen isolierter Programmausführungsorte an den Zugangspunkten zwischen den Zonen des Systems reguliert wird, wobei einer davon als die externe Quelle von Informationen und der andere als das Endbenutzersystem der Erfindung betrachtet wird.
  • Obwohl der isolierte Programmausführungsort der Erfindung die alleinige Regulierung des Imports von Material in ein Endbenutzersystem von einer externen Quelle bereitstellen kann, wird bevorzugt, den isolierten Programmausführungsort zwischen zwei Firewalls anzuordnen, die die Übertragung von unerwünschten Programmkomponenten und/oder Daten von der externen Quelle und/oder dem Endbenutzersystem sperren. Solche Firewalls können eine herkömmliche Form aufweisen und dazu dienen, die Last auf dem isolierten Programmausführungsort zu vermindern, indem eine primäre Steuerung des Flusses von Material zu und von dem Endbenutzersystem bereitgestellt wird. Wie bereits erwähnt, kann die Fallenkomponente des Betriebsprogramms für den isolierten Programmausführungsort in das Betriebsprogramm entweder für eine oder beide Firewalls integriert werden. Um das Fallenprogramm jedoch vor einer externen Verfälschung oder Attacke zu schützen, wird bevorzugt, dass sich das Fallenprogramm nicht auf der Seite der externen Quelle der Firewall zwischen der externen Quelle und dem isolierten Programmausführungsort befindet.
  • Die Erfindung findet besonders bei Datenquellen Anwendung, die unter der JAVA- oder JAVASCRIPT-Technologie operieren und mobile Programmkomponenten oder Applets verwenden. Diese werden vom Endbenutzersystem ausgeführt, um das Anwendungsprogramm, unter dem Daten bearbeitet werden sollen, an das Endbenutzersystem anzupassen und das Endbenutzersystem für den Empfang von Daten von der externen Quelle einzurichten. Die Erfindung ist jedoch auch auf das Abfangen und Speichern von Programmkomponenten aus anderen Computersprachen und Betriebssystemen, wie zum Beispiel ActiveX, perl, tcl/tk, c, c++ und sh und ihre Varianten, in dem isolierten Programmausführungsort anwendbar.
  • Wenn eine Programmkomponente in einem isolierten Programmausführungsort auf eine unerwünschte Weise operiert hat, werden die Ergebnisse dieser fehlerhaften Operation in dem isolierten Programmausführungsort zurückbehalten, und es wird nicht gestattet, dass sie zu dem Endbenutzersystem oder der externen Quelle gesendet werden. Die Erkennung einer fehlerhaften Operation in dem isolierten Programmausführungsort kann bewirken, dass der isolierte Programmausführungsort herunterfährt und sich neu initialisiert, um so alle Daten und Programmkomponenten in dem isolierten Programmausführungsort zu löschen und neu einzurichten. Falls erwünscht, kann die Programmkomponente, die die fehlerhafte Operation verursacht, für Audit-Zwecke identifiziert werden, um die Quelle der Programmkomponente zu identifizieren. Somit kann der Endbenutzer die Integrität der Quelle untersuchen und entsprechende Maßnahmen bezüglich des Imports weiterer Daten von dieser Quelle treffen.
  • Das Löschen von Material aus dem isolierten Programmausführungsort und das Neuinitialisieren und andere nachfolgende Operationen können unter Verwendung herkömmlicher Programmiertechniken ausgeführt werden.
  • Der isolierte Programmausführungsort bzw. die isolierten Programmausführungsorte können somit als aufopferbar angesehen werden und können neu initialisiert werden ohne den Rest des Endbenutzersystems zu beeinträchtigen, wodurch eine umfassende Umprogrammierung und Datenneueinrichtung vermieden wird, die andernfalls erforderlich gewesen wäre, wenn man die Programmkomponente in dem Endbenutzersystem gehalten hätte.
  • Die Erfindung wurde oben im Hinblick auf ein Endbenutzersystem beschrieben, das Daten aus einem externen System empfängt, auf das durch eine Anzahl anderer Benutzer zugegriffen wird, das heißt, es handelt sich um ein System mit öffentlichem Zugang oder Dienstanbieter. Die Erfindung kann jedoch auch auf den Dienstanbieter des öffentlichen Zugangs angewandt werden, um so die Datenbank des öffentlichen Zugangs vor Korruption durch Import unerwünschter Programmkomponenten, wie zum Beispiel Viren, zu schützen. In diesem Fall wird der isolierte Programmausführungsort an mindestens einem Teil oder allen der Zugangspunkte zu dem Dienstanbieter ähnlich wie oben für das Endbenutzersystem beschrieben bereitgestellt.
  • Außerdem ist es möglich, die Erkennung und Trennung mobiler Programmkomponenten von einem Datenstrom, mit dem die mobilen Programmkomponenten zusammenwirken sollen, an der Quelle auszuführen. Diese Programmkomponenten können dann getrennt zu dem isolierten Programmausführungsort eines Endbenutzers übertragen und dort implementiert werden, um Funktionen an dem Rest des Datenstroms, dem sie zugeordnet sind, auszuführen. Solche Programmkomponenten können normalerweise in dem isolierten Programmausführungsort verankert sein und müssen nicht jedes Mal, wenn auf die externe Datenquelle zugegriffen wird, von der externen Datenquelle heruntergeladen werden.
  • Die Erfindung liefert außerdem ein Verfahren zum Betrieb eines Endbenutzer-Computersystems, wobei das Verfahren folgendes umfaßt: Import eines eine oder mehrere auf dem Endbenutzersystem auszuführende mobile Programmkomponenten enthaltenden oder damit verbundenen Datenstromes von einer externen Quelle in das Endbenutzersystem, gekennzeichnet durch:
  • a. wahlweise von den Computern des Endbenutzersystems isoliertes Ausführen der mobilen Programmkomponente(n) innerhalb der einen oder mehreren Programmausführungsorte, um mit Daten von dem Endbenutzersystem und/oder von der externen Quelle zusammenzuwirken; und
  • b. Zuführen von Programmkomponenten, die in einer bestimmten Weise arbeiten, und/oder der durch ein solches Zusammenwirken resultierenden Daten zu einem Endbenutzersystem über eine Schnittstelle, welche die Übertragung von Daten und/oder Programmkomponenten, die spezifischen Kriterien entsprechen, zu oder von einem bestimmten Ort im Endbenutzersystem und/oder in der externen Quelle gestattet.
  • Vorzugsweise werden die Programmkomponenten wirksam dem zu dem Endbenutzersystem übertragenen Datenstrom zugeordnet, und das Verfahren umfasst die folgenden Schritte: Prüfen des eintreffenden Datenstroms, um in dem Datenstrom enthaltene und damit verbundene mobile Programmkomponenten zu detektieren; und einige ausgewählte oder alle der mobilen Programmkomponenten werden vor deren Ausführung einem oder mehreren der isolierten Programmausführungsorte zugeführt, um auf die gewünschte Weise zu arbeiten. Vorzugsweise werden die Programmkomponenten, die zu dem isolierten Programmausführungsort geleitet werden, als diejenigen gewählt, die für die Ausführung des gewünschten Teils des eintreffenden Datenstroms erforderlich sind, so dass die Erfindung vor anderen Systemen ausgezeichnet ist, bei denen der gesamte eintreffende Datenstrom heruntergeladen wird und eine Auswahl der relevanten Teile in dem Endbenutzersystem erfolgt.
  • Die Erfindung wurde oben im Hinblick auf eintreffende Daten von einer Website beschrieben. Sie kann jedoch auch auf eintreffende Daten einer beliebigen anderen Form von externer Datenquelle angewandt werden, wie zum Beispiel e-mail- oder andere nachrichtengestützte Informationstransfersysteme. Somit kann die Erfindung auf die Kommunikation zwischen zwei privaten Netzwerksystemen oder zwischen Elementen eines einzigen Netzwerksystems entweder direkt oder über einen externen Bereich oder anderen Server angewandt werden.
  • Die Erfindung wurde oben im Hinblick auf die durch eine einzige Schicht isolierter Programmausführungsorte bereitgestellte Sicherheit beschrieben. Es liegt jedoch im Schutzumfang der vorliegenden Erfindung, zwei oder mehr Schichten der isolierten Programmausführungsorte zu verwenden, wodurch nur Daten und/oder Programmkomponenten, die durch einen vorherigen isolierten Programmausführungsort gefiltert wurden, zur weiteren Filterung zu einem nachfolgenden isolierten Programmausführungsort weitergeleitet werden, bevor zugelassen wird, dass die Programmkomponente mit dem Endbenutzersystem zusammenwirkt. Außerdem kann die Beschaffenheit der Betriebsprogramme in aufeinanderfolgenden Schichten radikal verschieden sein, so dass in aufeinanderfolgenden Schichten verschiedene Funktionen erzielt werden können und Programmkomponenten unterschiedlichen Arten von Sicherheitsuntersuchungen unterzogen werden können. Weiterhin gibt die Möglichkeit, mehr als eine mobile Programmkomponente in einem einzigen isolierten Programmausführungsort zu implementieren, dem Bediener Flexibilität bei der Behandlung eintreffender Programmkomponenten entweder für sich, wenn sie in getrennten isolierten Programmausführungsorten verankert sind, oder in Zusammenwirkung miteinander, wenn sie in einem isolierten Programmausführungsort zusammen verankert sind. Da die isolierten Programmausführungsorte isoliert von dem Endbenutzersystem betrieben werden, kann, falls eine Programmkomponente in einem isolierten Programmausführungsort fehlerhaft operiert oder als potentiell schädlich bekannt wird, der isolierte Programmausführungsort als aufopferbar angesehen werden, und der Bediener kann einen isolierten Programmausführungsort isoliert von anderen isolierten Programmausführungsorten oder dem Endbenutzersystem neu initialisieren, ohne das gesamte Endbenutzersystem umprogrammieren zu müssen.
  • Wie bereits erwähnt, kann die Erfindung auch zur Steuerung des Flusses des eintreffenden Datenstroms und zum selektiven Lenken des gesamten Stroms oder eines Teils davon und seine zugeordneten Programmkomponenten zu spezifischen isolierten Programmausführungsorten verwendet werden. Auf diese Weise kann man große Programmkomponenten identifizieren und selektiv zu isolierten Programmausführungsorten lenken, die spezifisch für die Ausführung solcher großen Programmkomponenten ausgelegt sind. Die Ergebnisse der Ausführung dieser Programmkomponente können dann zu dem Endbenutzersystem übertragen werden, wobei die Terminals dieses Systems keine eigene Rechenleistung besitzen müssen, um die große Programmkomponente auszuführen. Als Alternative kann man mit der Erfindung selektiv Teile des Datenstroms und ihre zugeordneten oder enthaltenen Programmkomponenten zu spezifischen isolierten Programmausführungsorten lenken, die für die Ausführung dieser Art von Programmkomponente ausgelegt sind. Diese Möglichkeit, gewählte Teile des eintreffenden Datenstromes zu identifizieren und zu routen, bevor die Programmkomponenten in dem isolierten Programmausführungsort ausgeführt werden, reduziert weiter die Notwendigkeit, dass der Administrator des Endbenutzersystems alle eintreffenden Programmkomponenten am Eintrittspunkt des Endbenutzersystems inspiziert, und gestattet außerdem, dass diese Inspektion an einem reduzierten Volumen von eintreffendem Material auf einer niedrigeren Ebene in dem Endbenutzersystem ausgeführt werden kann.
  • BESCHREIBUNG DER ZEICHNUNGEN:
  • Die Erfindung wird zur Darstellung nur in bezug auf die bevorzugte Ausführungsform der Erfindung beschrieben, wie in den beigefügten Zeichnungen gezeigt, wobei Fig. 1 und 2 in Blockschaltbildform ein typisches derzeitiges Verfahren zum Betreiben eines Endbenutzersystems zum Empfangen eines Datenstroms von einer externen Quelle zeigen; Fig. 3 und 4 ein System zeigen, das gemäß dem Verfahren der Erfindung betrieben wird; und Fig. 5 bis 9 ein Blockschaltbild eines Systems zeigen, das unter Verwendung der JAVA-Sprache operiert.
  • BESCHREIBUNG DES VORLIEGENDEN SYSTEMS:
  • Fig. 1 zeigt ein derzeitiges System zum Importieren von Daten und/oder Programmkomponenten von einer externen Quelle, wie zum Beispiel Daten von einem Web-Server, und umfaßt eine einzige Computereinheit oder mehrere Computereinheiten in einem Endbenutzer-Computersystem, das durch ein privates Netzwerk verbunden wird, und den Web-Server, der mit dem öffentlichen Netz verbunden ist. Der Endbenutzer verwendet einen Browser oder ein anderes Programm, das in dem Endbenutzersystem gehalten wird, um die Daten und/oder Programmkomponenten zu identifizieren, die von dem Web-Server importiert werden sollen. Das Browser-Programm kann auf einer beliebigen oder allen Computereinheiten in dem Endbenutzernetzwerk gehalten werden. Um das Risiko, unerwünschtes Material zu importieren, zu reduzieren, wird der Zugangspunkt zu dem Endbenutzersystem mit einer Firewall ausgestattet, die nur den Durchfluss von Daten und Programmkomponenten aus dem öffentlichen Netz, die von angegebenen Adressen in dem öffentlichen Netz kommen oder zu solchen gehen, gestattet. Der Browser und/oder die Firewall können sich auch weigern, Programmkomponenten oder Daten, die nicht kryptographisch durch eine bekannte und/oder vertrauenswürdige Quelle signiert und verschlossen wurden, zu importieren. Außerdem ist es üblich, auf dem Endbenutzersystem ein Virusdetektionsprogramm zu halten, das die charakteristischen Muster bekannter Viren oder Änderungen, die solche Viren in durch das Endbenutzersystem geführten Programmen vornehmen, detektiert.
  • Wenn der Datenstrom aus dem öffentlichen Netz jedoch mobile Programmkomponenten enthält, von denen gewünscht wird, dass sie auf dem Endbenutzersystem ausgeführt werden, entstehen Probleme bei der Sicherstellung, dass das importierte Material kein Material enthält, das fehlerhaft oder schädigend auf dem Endbenutzersystem operieren könnte. Die Firewall gestattet solchen Programmkomponenten, durchzufließen, da sie aus einer akzeptierten Adresse stammen. Obwohl eine Firewall ein gewisses Maß von Intelligenz aufweisen kann, operiert sie durch Identifizierung der Kommunikationsadresse, von oder zu der die Daten und Programmkomponenten übertragen werden. Das Virusdetektionsprogramm kann nicht garantieren, die Programmkomponenten zu detektieren und zu deaktivieren, wenn sie fehlerhaft operieren, da sie möglicherweise nicht als schädliche Viren erkannt werden. Als Folge ist das Endbenutzersystem empfindlich gegenüber dem Import fehlerhafter Programmkomponenten.
  • Dieses Problem besteht spezifisch bei Systemen, die mit der JAVA-Technologie operieren, wie durch das System in Fig. 2 exemplifiziert wird. Der Endbenutzer, der als die Host-Plattform identifiziert wird, führt ein Browser-Programm, mit dem Daten von einem Dienstanbieter angefordert werden. Dies wird über den Netzwerkserver bereitgestellt, der einen Strom von Daten mit JAVA-Applets sendet, die der Endbenutzer auf dem Endbenutzersystem laufen lassen möchte. Die JAVA- Applets werden auf dem Endbenutzersystem über eine virtuelle JAVA-Maschine ausgeführt, die die Schnittstellen zu dem Endbenutzersystem über das Browser-Programm und zu dem Web-Server verwaltet. Der Browser kann jedoch möglicherweise die Applets falsch interpretieren, oder die Applets können unbeabsichtigt oder beabsichtigt schädliche Befehle enthalten. Zur Zeit gibt es nur unzureichenden Schutz für das Endbenutzersystem vor einer solchen fehlerhaften Interpretation oder schädlichen Befehlen.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM:
  • Bei dem Verfahren der Erfindung nach der Darstellung von Fig. 3 werden Daten aus dem öffentlichen Netz nicht direkt dem Endbenutzer zugeführt, sondern untersucht, und alle Programmkomponenten in dem Datenstrom werden zu einem als Käfig bezeichneten isolierten Programmausführungsort umgelenkt. Das Untersuchen des eintreffenden Datenstroms, um Programmkomponenten darin zu identifizieren und diese in den Käfig umzulenken und dort auszuführen, kann durch eine beliebige vertrauenswürdige Komponente erfolgen, die sich in dem Weg des Datenstroms befindet, wie zum Beispiel ein lokales Web-Proxy, das Browser-Programm, ein Netzrouter oder ein eigenes Programm. Der Ausführungskäfig ist in der Regel ein herkömmlicher, kommerzieller Computer, der zwischen das Endbenutzersystem und das öffentliche Netz geschaltet ist.
  • Der Ausführungskäfig wirkt somit als ein Schutzschirm zwischen dem öffentlichen Netz und dem privaten Netz des Endbenutzers und gestattet durch das Programm, unter dem er wirkt, ein selektives und gesteuertes Übertragen von Daten und/oder Programmkomponenten, die spezifizierte Kriterien erfüllen und zum Beispiel von spezifizierten Orten in dem Endbenutzersystem oder der externen Quelle kommen oder dahin adressiert sind.
  • Um das Vertrauen eines Benutzers in die Operation des Käfigs zu verstärken, wird bevorzugt, an der Schnittstelle zwischen dem Käfig und dem Endbenutzersystem und zwischen dem Käfig und dem öffentlichen Netz Firewalls bereitzustellen. Eine oder beide dieser Firewalls können gegebenenfalls in den Käfig integriert werden. Der Teil des Gesamtsystems, der in Fig. 3 signalabwärts und einschließlich der äußeren Firewall gezeigt ist, befindet sich am Endbenutzerstandort. Der Teil signalabwärts und einschließlich der inneren Firewall ist das Endbenutzersystem, das von dem Ausführungskäfig geschützt wird.
  • Mit Bezug auf das in Fig. 4 als Diagramm gezeigte System werden die Applets und anderen Programmkomponenten in dem Käfig ausgeführt. Die Programmkomponenten in dem Käfig wirken mit Daten aus dem Endbenutzersystem und/oder aus dem öffentlichen Netz zusammen, und die resultierenden modifizierten Daten werden über eine geeignete Schnittstelle zu dem Endbenutzersystem übertragen. Die Schnittstelle ist so programmiert, dass sie Daten, die spezifische Zugangskriterien erfüllen, durchlässt, aber Programmkomponenten oder Daten, die die Zugangsanforderungen nicht erfüllen, nicht sendet oder empfängt. Deshalb behält der Käfig die Programmkomponenten selektiv isoliert von oder in dem Endbenutzersystem zurück und reguliert strikt die Daten, die von ihm gesendet oder empfangen werden. Als Ergebnis importiert und exportiert das Endbenutzersystem nur Daten, die annehmbar sind. Da das Programm bzw. die Programme, in diesem Fall die Programme, die die virtuelle JAVA- Maschine betreiben, die die Operation des Käfigs steuern, klein sein können, kann man sie ohne weiteres inspizieren. Der Endbenutzer kann also die Integrität des Programms bzw. der Programme zu seiner Zufriedenstellung verifizieren und kann bestimmen, dass das Programm klar und logisch konstruiert und gut dokumentiert ist, indem er die Programmauflistung inspiziert. Die Komponenten der Schnittstelle zwischen der virtuellen JAVA-Maschine und dem öffentlichen Netz, die den Import der JAVA-Applets in den Käfig regulieren, werden ebenfalls inspiziert, um die Integrität der Operation des Käfigs sicherzustellen.
  • Sobald sich das Applet in dem Käfig befindet, wird es unter der Steuerung der virtuellen JAVA-Maschine ausgeführt, um so mit Daten aus dem öffentlichen Netz und/oder dem Endbenutzersystem auf kontrollierte Weise zusammenzuwirken. Um einen fehlerhaften Betrieb des Applets einzugrenzen und zu verhindern, dass es Zugang zu dem Endbenutzersystem erhält, wird entweder in dem Endbenutzersystem oder in dem Käfig eine bestimmte Form von Zugangssteuerung bereitgestellt. Diese Zugangssteuerung kann in Form einer internen Firewall vorliegen. Die Zugangssteuerung kann verhindern, dass das Applet auf eine Quelle oder ein Ziel zugreift, die nicht auf der von einem Systemadministrator erstellten Liste stehen. Als Alternative kann die Zugangssteuerung einen positiven Konsensus von dem Browser-Benutzer erfordern, bevor jeder Zugangsanforderung stattgegeben wird. Die Programmkomponenten in dem Käfig können in zwei Klassen eingeteilt werden: Komponenten, die inspiziert und verifiziert werden müssen, um die Integrität des Käfigs sicherzustellen, und Komponenten, die sicher unter der Steuerung dieses importiert und ausgeführt werden können. Die Trennlinie zwischen diesen beiden Mengen von Programmkomponenten ist als eine Sicherheitsmembran bekannt.
  • Die notwendige Hardware für den Käfig kann von herkömmlicher Beschaffenheit sein, und das Betriebsprogramm bzw. die Betriebsprogramme können mit herkömmlichen Programmiertechniken und -algorithmen erstellt werden.
  • Ein besonders bevorzugtes Verfahren zum Betrieb der Erfindung mit einer Quelle von Informationen in der JAVA-Sprache ist in Fig. 5 bis 9 gezeigt. Wie in Fig. 5 und 6 gezeigt, greift ein Endbenutzer über eine Firewall unter Benutzung eines Browser-Programms auf einen mit JAVA angetriebenen Web-Server zu. Informationen aus diesem Web-Server werden zu einem Web-Proxy heruntergeladen, und die Daten werden dort gehalten, bevor sie zu dem Endbenutzersystem übertragen werden. Der eintreffende Informationsstrom enthält eines oder mehrere Flags oder andere Identifizierungsmerkmale, die von dem Web-Proxy entweder als das Vorliegen eines JAVA-Applets in dem eintreffenden Datenstrom oder als die Site-Adresse in dem Web-Server eines JAVA-Applets, das auf dem Endbenutzersystem ablaufen soll, um die Daten aus dem Web-Server anzuzeigen, identifizierend erkannt werden. Bei einem herkömmlichen System würde der Endbenutzer das JAVA- Applet von der gekennzeichneten Site auf dem Web-Server direkt in die virtuelle JAVA-Maschine in dem Browser- Programm in dem Endbenutzer-PC-Terminal oder in einer anderen Operationseinheit in dem Endbenutzersystem herunterladen. Das JAVA-Applet würde dann in dem Endbenutzersystem so implementiert, dass es an den in dem Web-Proxy oder in dem Datenspeicher des Endbenutzersystems gehaltenen Daten operiert, um das gewünschte Bild auf dem Anzeigeschirm bereitzustellen. Wenn das Applet jedoch nicht korrekt operiert, wird das Endbenutzersystem nicht davor geschützt, da das Applet in dem Endbenutzersystem operiert.
  • In dem in Fig. 7 bis 9 gezeigten System befindet sich der isolierte Programmausführungsort bzw. Käfig-Server auf der Seite des öffentlichen Netzes, das als das Internet gezeigt ist, der inneren Firewall, und in der Regel befindet sich eine weitere (nicht gezeigte) äußere Firewall zwischen dem Käfig-Server und dem öffentlichen Netz. Der Käfig-Server ist in der Regel ein Computer mit Verarbeitungs- und Speicherkapazität, der Programmkomponenten, die er aus dem öffentlichen Netz empfängt, empfängt und interpretiert. Zwischen der inneren Firewall und der Betriebseinheit des Endbenutzers befindet sich ein Web-Proxy, wobei es sich in der Regel um einen weiteren Computer oder einen Teil desselben Computers wie der Cage-Server handelt. Das Web-Proxy empfängt und speichert die Daten aus dem öffentlichen Netz, die als die HTML-Seite gekennzeichnet sind. Das Web-Proxy enthält vorzugsweise die Programmkomponente, die das Vorliegen eines Flags oder einer anderen Anzeige in den eintreffenden Informationen identifiziert, wodurch das Vorliegen und die Adresse eines Applets identifiziert wird, das mit den Daten in dem eintreffenden Datenstrom aus dem öffentlichen Netz und/oder aus dem Endbenutzer-Datenspeicher zusammenwirken muß, um die erforderliche Anzeige auf der Endbenutzer-Betriebseinheit zu liefern.
  • Diese Fallenprogrammkomponente identifiziert die Adresse des Applet in dem Web-Server und lenkt jedes eintreffende Applet zu dem Käfig-Server um, in dem das eintreffende oder reale Applet isoliert von dem Endbenutzersystem implementiert wird. Das Fallenprogramm erzeugt außerdem eine neue oder übersetzte Adresse, um dieses reale Applet dem Endbenutzersystem zu identifizieren, wobei die neue Adresse der Adresse eines Proxy-Applets entspricht, das in dem Browser-Programm in der Endbenutzer-Betriebseinheit bzw. in dem PC gehalten wird. Das Proxy-Applet ist ein Applet, das der Endbenutzer geschrieben oder erhalten hat und vollständig verifiziert wurde, so dass es in dem Endbenutzersystem sicher operieren kann.
  • Wenn der Endbenutzer von dem Browser-Programm benachrichtigt wird, dass ein Applet aus dem Web-Server heruntergeladen werden muss, erhält das Fallenprogramm die neue Adresse als die Adresse für dieses Applet. Als Ergebnis wird nicht das reale Applet, sondern das Proxy-Applet adressiert und in dem Endbenutzersystem implementiert. Das Proxy-Applet benutzt jedoch eine Schnittstelle zu dem Käfig-Server, um das reale Applet aus dem Web-Server in den Käfig-Server herunterzuladen. Das reale Applet kann nun in dem Käfig-Server isoliert von dem Endbenutzersystem ausgeführt werden und benutzt auf kontrollierte Weise über eine allgemeine Hilfsprogrammschnittstelle (GUI) Schnittstellen, um auf die Umgebung des Proxy-Applet in dem Endbenutzer- Browser einzuwirken. Das reale Applet lädt nicht in das Endbenutzersystem herunter, wie bei einem herkömmlichen Browser-Betrieb.
  • Somit liefert die Erfindung außerdem ein Endbenutzersystem, in dem die externe Datenquelle unter der Sprache JAVA oder JAVASCRIPT operiert und die Programmkomponenten, die importiert und in dem isolierten Programmausführungsort ausgeführt werden sollen, sind Applets. Vorzugsweise identifiziert das Programm zum Betreiben des isolierten Programmausführungsorts und/oder des Endbenutzersystems die Adresse des in dem isolierten Programmausführungsort auszuführenden Applets und übersetzt diese in eine neue Adresse, die einem Proxy-Applet entspricht, das in dem Endbenutzersystem gehalten wird und so ausgelegt ist, dass es in dem Endbenutzersystem so implementiert wird, dass es eine Schnittstelle mit dem Applet in dem isolierten Programmausführungsort benutzt, um das letztere Applet in dem isolierten Programmausführungsort zu implementieren.
  • Von einem anderen Gesichtspunkt aus gesehen liefert die vorliegende Erfindung ein Verfahren der Erfindung, bei dem der eintreffende Datenstrom in der Sprache JAVA oder JAVASCRIPT geschrieben ist und eines oder mehrere in den isolierten Programmausführungsort zu importierende Applets enthält oder diesen zugeordnet ist, und das Betriebsprogramm des isolierten Programmausführungsorts und/oder das Betriebsprogramm des Endbenutzersystems die Adresse dieses Applets identifiziert und eine neue oder übersetzte Adresse für das importierte Applet erzeugt, die der Adresse eines Proxy-Applets in dem Endbenutzersystem entspricht, wodurch, wenn das Endbenutzersystem betätigt wird, um das importierte Applet herunterzuladen, es das Proxy- Applet adressiert und implementiert, um an Daten in dem eintreffenden Datenstrom und/oder in dem Endbenutzersystem gehaltenen Daten zu operieren, und eine Schnittstelle mit dem importierten Applet in dem isolierten Programmausführungsort benutzt.

Claims (16)

1. Computersystem mit:
A. einem Endbenutzersystem mit einem oder mehreren Computern, die so programmiert sind, dass sie auf Empfang hin eines importierten Datenstromes von einer externen Quelle operieren, welcher Datenstrom eine oder mehrere mobile in dem Datenstrom enthaltene oder damit verbundene Programmkomponenten aufweist, und
B. mindestens einem Programmausführungsort zum Ausführen mindestens einer der mobilen Programmkomponenten und zum Zuführen der Resultate dieser Ausführung zu einem oder mehreren der Endbenutzersystemcomputer, dadurch gekennzeichnet, dass:
i. der Programmausführungsort wahlweise von dem (den) Endbenutzersystemcomputer(n) isoliert ist; und
ii. einige oder alle der mobilen Programmkomponenten vor Ausführung in dem isolierten Programmausführungsort einem oder mehreren der isolierten Programmausführungsorte zugeführt oder darin zurückbehalten werden, um in einer gewünschten Weise zu operieren; und
iii. der isolierte Programmausführungsort einer ist, in welchem eine oder mehrere der Programmkomponenten zurückbehalten werden und welcher eine oder mehrere Schnittstellen zu der externen Quelle des Datenstromes und eine oder mehrere Schnittstellen zu dem (den) Endbenutzersystemcomputer(n) aufweist, wodurch eine oder mehrere der Programmkomponenten innerhalb des isolierten Programmausführungsortes darin in Isolation von dem (den) Endbenutzersystemcomputer(n) ausgeführt werden können, um mit der externen Datenquelle und/oder durch den (die) Endbenutzersystemcomputer gespeicherten Daten und/oder Programm zusammenzuwirken; und
iv. der Betrieb der Schnittstelle(n) zwischen dem isolierten Programmausführungsort und die Endbenutzersystemcomputer so programmiert sind, dass lediglich Daten, auf die durch die Programmkomponente(n) innerhalb des isolierten Programmausführungsortes in einer bestimmten und kontrollierten Weise eingewirkt wurde, und/oder Programmkomponenten, die in einer bestimmten Weise arbeiten, mit dem (den) Endbenutzersystemcomputer(n) ausgetauscht werden können.
2. Computersystem nach Anspruch 1, dadurch gekennzeichnet, dass es derart programmiert ist, um den eintreffenden Datenstrom zu überprüfen, um mobile Programmkomponenten zu detektieren, die in dem Datenstrom enthalten oder damit verbunden sind, und dass einige ausgewählte oder alle mobile Programmkomponenten den einen oder mehreren isolierten Programmausführungsorten zugeführt werden.
3. Computersystem nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die isolierten Programmausführungsorte durch einen zwischen der externen Quelle des Datenstromes und dem darunterliegenden Endbenutzersystem angeordneten Computer geliefert werden, welcher Computer von dem darunterliegenden Endbenutzersystem isoliert ist, und der mit dem Endbenutzersystem über eine oder mehrere Schnittstellen kommuniziert, deren Betrieb so kontrolliert ist, dass der Durchfluß von Daten und/oder Programmkomponenten in einer selektiven und gesteuerten Weise gestattet ist.
4. Computersystem nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass der isolierte Programmausführungsort derart programmiert ist, um mit einer einzigen außerhalb des Endbenutzersystems gelegenen Datenquelle und/oder Datenbestimmung zu arbeiten und um Daten nach einer einzigen Bestimmung innerhalb des Endbenutzersystems zu übertragen, oder Daten von der einzigen Bestimmung innerhalb des Endbenutzersystems zu empfangen.
5. Computersystem nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass ein isolierter Programmausführungsort eine Vielzahl von den mobilen Programmkomponenten empfängt und deren Funktion und/oder Charakter identifiziert, und ausgewählte dieser Programmkomponenten an andere isolierte Programmausführungsorte in Abhängigkeit von deren Funktion und deren Charakter richtet.
6. Computersystem nach Anspruch 5, dadurch gekennzeichnet, dass die anderen isolierten Programmausführungsorte derart programmiert sind, um unter einem oder mehreren von dem ersten isolierten Programmausführungsort unterschiedlichen Regimes zu arbeiten, um verschiedene Ausführungen der Programmkomponenten bereitzustellen.
7. Computersystem nach Anspruch 1, dadurch gekennzeichnet, dass es eine Vielzahl von isolierten Programmausführungsorten aufweist, von welchen jeder derart programmiert ist, um mit einer unterschiedlichen externen Datenquelle und einer unterschiedlichen Bestimmung innerhalb des Endbenutzersystems zu arbeiten.
8. Computersystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der isolierte Programmausführungsort eine oder mehrere Firewalls zwischen sich und der externen Datenquelle und/oder dem Endbenutzersystem unterhalb des isolierten Programmausführungsortes aufweist.
9. Computersystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der isolierte Programmausführungsort Programmmittel aufweist, die zur Ausführung von Programmkomponenten angepaßt sind, die von einer externen Quelle in einer bestimmten Weise empfangen werden, und um die Übertragung lediglich solcher Daten und/oder Programmkomponenten zum unter dem isolierten Programmausführungsort liegenden Endbenutzersystem zu erlauben, die spezifische, vorbestimmte Kriterien befriedigen.
10. Computersystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die externe Datenquelle unter JAVA- oder JAVASCRIPT Technologie arbeitet, und die Programmkomponenten, die innerhalb des isolierten Programmausführungsortes ausgeführt werden, Applets sind.
11. Computersystem nach Anspruch 10, dadurch gekennzeichnet, dass das Programm zum Betrieb des isolierten Programmausführungsortes und/oder des Endbenutzersystems die Adresse des in dem isolierten Programmausführungsort auszuführenden Applets identifiziert und in eine neue Adresse übersetzt, die einem Proxy-Applet entspricht, das innerhalb des Endbenutzersystems gespeichert und so angepaßt ist, dass es innerhalb des Endbenutzersystems implementiert ist und mit dem Applet in dem isolierten Programmausführungsort eine Schnittstelle bildet, um letzteren Applet innerhalb des isolierten Programmausführungsortes auszuführen.
12. Computersystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Endbenutzersystem ein öffentlich zugängiger Serviceprovider ist.
13. verfahren zum Betrieb eines Endbenutzercomputersystems, mit einem Import eines eine oder mehrere auf dem Endbenutzersystem auszuführende mobile Programmkomponenten enthaltenden oder damit verbundenen Datenstromes von einer externen Quelle in das Endbenutzersystem, gekennzeichnet durch:
a. wahlweise von den Computern des Endbenutzersystems isoliertes Ausführen der mobilen Programmkomponente(n) innerhalb der einen oder mehreren Programmausführungsorte, um mit Daten von dem Endbenutzersystem und/oder von der externen Quelle zusammenzuwirken; und
b. Zuführen von Programmkomponenten, die in einer bestimmten Weise arbeiten, und/oder der durch ein solches Zusammenwirken resultierenden Daten zu einem Endbenutzersystem über eine Schnittstelle, welche die Übertragung von Daten und/oder Programmkomponenten, die spezifischen Kriterien entsprechen, zu oder von einem bestimmten Ort im Endbenutzersystem und/oder in der externen Quelle gestattet.
14. Verfahren nach Anspruch 13 zum Betrieb eines Computersystems nach Anspruch 1, dadurch gekennzeichnet, dass:
a. der eintreffende Datenstrom geprüft wird, um in dem Datenstrom enthaltene und damit verbundene mobile Programmkomponenten zu detektieren; und
b. einige ausgewählte oder alle der mobilen Programmkomponenten vor deren Ausführung einem oder mehreren der isolierten Programmausführungsorte zugeführt werden, um in einer gewünschten Weise zu arbeiten.
15. Verfahren nach Anspruch 13 oder 14, dadurch gekennzeichnet, dass der eintreffende Datenstrom in der Sprache JAVA oder JAVASCRIPT geschrieben ist und eines oder mehrere in den isolierten Programmausführungsort zu importierende Applet beinhaltet oder mit diesen verbunden ist, und dass das Betriebsprogramm des isolierten Programmausführungsortes und/oder das Endbenutzersystembetriebsprogramm die Adresse dieses Applets identifiziert und eine neue oder übersetzte Adresse für das importierte Applet schafft, die der Adresse eines Proxy-Applet innerhalb des Endbenutzersystems entspricht, wodurch, wenn das Endbenutzersystem zum Laden des importierten Applets betätigt wird, es den Proxy-Applet adressieren und implementieren wird, um auf Daten in dem eintreffenden Datenstrom und/oder in dem Endbenutzersystem gespeicherte Daten einzuwirken, und es mit dem importierten Applet in dem isolierten Programmausführungsort eine Schnittstelle bilden wird.
16. Ein isolierter Programmausführungsort für eine Verwendung in dem Computersystem nach Anspruch 1, dadurch gekennzeichnet, dass es einen Computermechanismus aufweist, der angepaßt ist, um als eine isolierende Schnittstelle zwischen einer externen Datenquelle und Programmkomponenten und dem Endbenutzersystem, welches Daten von dem bzw. an den Computermechanismus empfangen bzw. übertragen soll, zu wirken, welcher Computermechanismus programmiert ist, um mindestens einige ausgewählte der Programmkomponenten von der externen Quelle zurückzubehalten und/oder zu dem Computermechanismus umzuleiten, und um jene ausgewählten Programmkomponenten innerhalb des Computermechanismus auszuführen, und um ein Übertragen von solchen Daten und/oder Programmkomponenten zu dem Endbenutzersystem zu erlauben, welche in einer ausgewählten und bestimmten Weise arbeiten oder gearbeitet haben.
DE69709788T 1996-08-09 1997-08-07 Isolierter ausführungsort Expired - Lifetime DE69709788T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GBGB9616783.8A GB9616783D0 (en) 1996-08-09 1996-08-09 Method and apparatus
GBGB9703773.3A GB9703773D0 (en) 1997-02-24 1997-02-24 Method and apparatus
PCT/IB1997/000973 WO1998008163A1 (en) 1996-08-09 1997-08-07 Isolated execution location

Publications (2)

Publication Number Publication Date
DE69709788D1 DE69709788D1 (de) 2002-02-21
DE69709788T2 true DE69709788T2 (de) 2002-09-19

Family

ID=26309846

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69709788T Expired - Lifetime DE69709788T2 (de) 1996-08-09 1997-08-07 Isolierter ausführungsort

Country Status (11)

Country Link
EP (1) EP0978036B1 (de)
JP (1) JP2000516740A (de)
KR (1) KR100473022B1 (de)
AT (1) ATE209375T1 (de)
AU (1) AU724259B2 (de)
CA (1) CA2262905C (de)
DE (1) DE69709788T2 (de)
GB (1) GB2316206B (de)
HK (1) HK1004831A1 (de)
IL (1) IL128405A0 (de)
WO (1) WO1998008163A1 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275938B1 (en) * 1997-08-28 2001-08-14 Microsoft Corporation Security enhancement for untrusted executable code
JP2001195247A (ja) * 2000-01-07 2001-07-19 Nec Corp ソフトウェアの安全性を検証し保証するシステム及び方法
GB2359908B (en) * 2000-03-04 2004-09-15 Motorola Inc Communication system architecture and method of controlling data download to subscriber equipment
GB2365158A (en) * 2000-07-28 2002-02-13 Content Technologies Ltd File analysis using byte distributions
GB2366692B (en) 2000-08-31 2002-08-14 F Secure Oyj Virus protection in an internet environment
EP1410559A4 (de) * 2001-03-01 2004-11-24 Invicta Networks Inc Systeme und verfahren, die von einem geschützten netzwerk aus externen netzwerkzugriff bereitstellen
US7127618B2 (en) * 2001-06-28 2006-10-24 Koninklijke Philips Electronics N.V. Data protection via reversible data damage
GB2381090B (en) 2001-10-17 2005-02-02 Bitarts Ltd Software loading
US20030093689A1 (en) * 2001-11-15 2003-05-15 Aladdin Knowledge Systems Ltd. Security router
US20030115479A1 (en) * 2001-12-14 2003-06-19 Jonathan Edwards Method and system for detecting computer malwares by scan of process memory after process initialization
TWI619038B (zh) 2011-11-07 2018-03-21 Admedec Co Ltd Safety box

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4545016A (en) * 1983-01-07 1985-10-01 Tandy Corporation Memory management system
US5398196A (en) * 1993-07-29 1995-03-14 Chambers; David A. Method and apparatus for detection of computer viruses
US5481715A (en) * 1993-12-15 1996-01-02 Sun Microsystems, Inc. Method and apparatus for delegated communications in a computer system using trusted deputies
US5623600A (en) * 1995-09-26 1997-04-22 Trend Micro, Incorporated Virus detection and removal apparatus for computer networks

Also Published As

Publication number Publication date
AU724259B2 (en) 2000-09-14
ATE209375T1 (de) 2001-12-15
GB2316206A8 (en) 1998-05-18
GB9716708D0 (en) 1997-10-15
GB2316206A (en) 1998-02-18
KR20000068092A (ko) 2000-11-25
AU3631897A (en) 1998-03-06
KR100473022B1 (ko) 2005-03-07
DE69709788D1 (de) 2002-02-21
WO1998008163A1 (en) 1998-02-26
GB2316206B (en) 1998-10-21
HK1004831A1 (en) 1998-12-11
IL128405A0 (en) 2000-01-31
CA2262905A1 (en) 1998-02-26
EP0978036B1 (de) 2001-11-21
CA2262905C (en) 2004-10-26
JP2000516740A (ja) 2000-12-12
EP0978036A1 (de) 2000-02-09

Similar Documents

Publication Publication Date Title
DE60016613T2 (de) Abschreckungssystem gegen aufschaltung und missbrauch
DE60312235T2 (de) Verfahren und system zur eindringverhinderung und ablenkung
DE60132833T2 (de) Computersystemschutz
DE69818232T2 (de) Verfahren und system zur verhinderung des herunterladens und ausführens von ausführbaren objekten
DE112014001229B4 (de) Verfahren, Datenverarbeitungssystem und Computerprogrammprodukt zum Verarbeiten einer Datenbank-Client-Anforderung
DE69229755T2 (de) Anordnung und Verfahren zur Freigabe von geschützten Prozessen in einem verteilten Mehrprozessdatensystem
DE60213391T2 (de) Persönlicher Firewall mit Positionsdetektion
DE60102555T2 (de) Verhinderung der map-aktivierten modulmaskeradeangriffe
DE69922857T2 (de) Rechnersicherheit durch Virusuntersuchung
DE69709788T2 (de) Isolierter ausführungsort
DE19741239C2 (de) Verallgemeinertes Sicherheitspolitik-Management-System und Verfahren
DE102012109212B4 (de) Methoden, Vorrichtung und Herstellungsprodukte zur Bereitstellung von Firewalls für Prozesssteuerungssysteme
DE10249887A1 (de) Verfahren, computerlesbares Medium und Knoten für ein dreischichtiges Einbruchspräventionssystem zur Erfassung von Netzausbeutungen
DE102015001054A1 (de) Verfahren und systeme zum erkennen von extrusion und intrusion in einer cloud-computer-umgebung
DE102015001024A1 (de) Verfahren und Systeme zum Erkennen von Extrusion und Intrusion in einer Cloud-Computer-Umgebung, welche Netzwerkkommunikationsgeräte verwendet
DE102015003236A1 (de) Verfahren und System zum Bereitstellen von temporären, sicheren Zugang ermöglichenden virtuellen Betriebsmitteln
DE60121133T2 (de) Verfahren und Vorrichtung zur Behandlung von unerlaubten Zugriffsdaten
EP3251012A1 (de) Prüfsystem zur prüfung eines computers eines computersystems in einem prüfnetzwerk
DE69919560T2 (de) Verfahren und system zur vorbeugung von unerwüschten betätigungen von ausführbaren objekten
WO2003025758A2 (de) Vorrichtung und verfahren zur etablierung einer sicherheitspolitik in einem verteilten system
DE10241974B4 (de) Überwachung von Datenübertragungen
DE112004002440T5 (de) IT-Netzwerk-Sicherheitssystem
DE60017438T2 (de) System zur betriebsmittelzugriffsteuerung
EP3286683A1 (de) System und verfahren zur überwachung der integrität einer von einem serversystem an ein clientsystem ausgelieferten komponente
DE102012208290B4 (de) Netzübergangskomponente mit anfrage/antwort-zuordnung und überwachung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition