-
Hintergrund zu der Erfindung:
-
Die Erfindung betrifft ein Verfahren
und eine Vorrichtung zum Kontrollieren des Zugriffs und der Verfälschung
von Informationen in einem Computersystem.
-
Die auf die Anmelderin zurückgehende PCT/GB91/00261
(WO91/13403) offenbart ein Verfahren und eine Vorrichtung, die sie
insbesondere mit der Erkennung und Isolierung von feindlichen Programmen
wie "Virusprogrammen" innerhalb eines Computersystems
befassen. In diesem Dokument ist ein Verfahren (und die hierzu gehörige Vorrichtung) beschrieben,
um den Zugang und die Veränderung von
Informationen zu kontrollieren, die in einem Speichermedium gespeichert
sind, das Teil eines Computersystems ist, wobei das Verfahren umfasst:
Aufteilen
der im Speichermedium gespeicherten Informationen in eine Vielzahl
von nicht überlappenden Partitions,
zu der eine Boot-Partition und eine Vielzahl von allgemeinen Partitions
gehören,
wobei jede der Partitions weiter in eine Vielzahl von Sektoren aufgeteilt
ist, und jeder bezeichnete Subset der allgemeinen Partitions zu
einer beliebigen gegebenen Zeit aktiv ist, wenn der Computer in
Verwendung ist, dadurch gekennzeichnet, dass
Supervisormittel
(ein Supervisor) vorgesehen sind, der getrennt von der zentralen
Verarbeitungseinheit (CPU) vorgesehen ist, der von der zentralen
Verarbeitungseinheit (CPU) des Computersystems unabhängig ist
sowie für
den Benutzer unzugänglich
ist und der die Funktionen Lesen, Schreiben und Formatierung an
den in dem Speichermedium gespeicherten Informationen kontrolliert,
um, abhängig
von der Art der Informationen, die in einem Sektor gespeichert sind,
sowie den Typ und dem Zustand der Partitions innerhalb der sich
der Sektor befindet, solche Operationen gestattet oder verhindert,
dass
die Supervisormittel einen Reset bewirken, der für das Computersystem erforderlich
ist, sollte ein Versuch gemacht werden, eine verbotene Lese-, Schreib- oder Formatierungsoperation
auszuführen, wobei
Reset bewirkt, dass der Speicher normiert und das Betriebssystem
geladen wird.
-
Bei der Erfindung, die in der PCT/GB91/00261
geoffenbart ist, erhält
die Boot-Partition das Attribut "Read
Only", wenn sich das
System im überwachten
Modus befindet. Dies verhindert Angriffe durch Viren, während Ausführungen
von DOS-Programmen und anderen Programmen möglich ist, vorausgesetzt, dass
diese nicht selbst modifizierend sind. Seit der Konzeption der Virusisolierung
entsprechend der PCT/GB91/00261 wurden Änderungen und Verbesserungen
an den PC-Betriebssystemen gemacht. Diese führen zu bestimmten Beschränkungen
hinsichtlich des Umfangs der erfindungesgemäßen Virusisolation. Zum Beispiel:
- (1) Obwohl das Microsoft Windows System im strengen
Sinne nicht selbstmodifizierend ist, benötigt es die Möglichkeit,
dass bestimmte Dateien, die innerhalb des Windows-Directory liegen,
beschrieben werden können.
- (2) Ein Systemadministrator kann ein ausführbares Programm in der Boot-Partition
installieren, ohne dass er weiß,
dass es selbstmodifizierend ist. Wenn ein solches ausführbares
Programm in der Boot-Partition installiert ist und versucht wird, dass
sich das Programm selber modifiziert, wenn sich das System im supervised
Mode befindet, wird der Supervisor den Schreibversuch blockieren
und das System einfrieren.
- (3) Der virtuelle Speichermanager von Microsoft Windows kann
einen Schreibzugriff in das Windows-Dateiverzeichnis und das Root-Seitenverzeichnis
der Boot-Partition
oder in beide benötigen.
- (4) Die Netzwerksoftware kann den Zugang zu der Boot-Partition benötigen.
- (5) Im Allgemeinen ist bei komplexen Betriebssystemen das Setzen
des Attributes "Read
Only" für die Boot-Partition restriktiv
und kann zu Inkompatibilitäten
und großem
Verwaltungsoverhead führen.
-
In der WO91/13403 ist eine Virusschutzanordnung
beschrieben, die eine Supervisorfunktion verwendet, die von der
CPU getrennt ist und die den Zugang zu verschiedenen Teilen zurückweist
oder gestattet, abhängig
von der Art des Zugriffs und der Art der Information, die in der
Partition, auf die zugegriffen werden soll, gespeichert ist.
-
Es ist Aufgabe der vorliegenden Erfindung, wie
sie im Einzelnen in den beigefügten
unabhängigen
Ansprüchen
definiert ist, die oben erwähnten Probleme
zu beseitigen oder abzuschwächen.
-
Zusammenfassung der Erfindung:
-
Gemäß einem ersten Aspekt der Erfindung wird
ein Verfahren zum Kontrollieren des Zugriffs und des Veränderns von
Informationen geschaffen, die in einem Speichermedium gespeichert
ist, das Teil eines Computersystems ist, wobei zu dem Verfahren gehören:
Aufteilen
der im Speichermedium gespeicherten Informationen in eine Vielzahl
von einander nicht überlappenden
Partitions, zu deren eine Boot-Partition und wenigstens eine allgemeine
Partition gehören, gekennzeichnet
dadurch, dass wenigstens eine der Partition als "Write Many Recoverable Partitions"(WMR) festgelegt
wird, wobei, falls im Betrieb ein Schreibbefehl ausgegeben wird,
um irgendwelche residente Information, die in einer der WMR-Partitions
gespeichert ist, durch aktualisierte Information zu überschreiben,
die aktualisierte Information in dem Speichermedium an eine andere
Stelle als derjenigen geschrieben wird, wo die oder irgendwelche residente
Information gespeichert ist und ein (virtueller) Zeiger auf die
aktualisierte Information gesetzt oder gehalten wird, so dass die
aktualisierte Information, falls erforderlich, während des Restes der Sitzung
zugänglich
ist.
-
Ein System-Reset bewirkt, dass die
aktualisierte Information zusammen mit der Liste von Zeigern auf
diese Information zurückgesetzt
wird. Dies bringt die WMR-Partition in ihren Ursprungszustand, wie
er in dem unsupervised Modus konfiguriert wurde.
-
Vorausgesetzt eine solche WMR-Partition
ist zu Beginn virusfrei, dann ist sie auch bei dem Start jeder neuen
Sitzung virusfrei.
-
Vorzugsweise ist eine Boot-Partition
in dem Speichermedium WMR-geschützt.
Eine allgemeine Partition kann auch WMR-geschützt sein, falls der Benutzer
dies möchte.
-
Die Grundlage für das Verfahren gemäß dem ersten
Aspekt der Erfindung, besteht, um dies zu erreichen, darin, ein
Schema aufzustellen, gemäß dem die
Originalinformation, die in der WMR-Partition gespeichert ist, unverändert gehalten
wird, während Daten,
die sie normalerweise überschreiben
würden, sicher
an anderer Stelle in dem Speichermedium gespeichert werden, damit
sie während
des Restes der Sitzung erforderlichenfalls zugreifbar sind. Das
Schema definiert, wie dies effizient im Hinblick auf minimalen zusätzlichen
Speicherbedarf und minimale Verminderung der Durchsatzzeit bei gleichzeitig
maximaler Sicherheit bewerkstelligt werden kann. Vorzugsweise ist,
entsprechend dem Verfahren gemäß dem ersten
Aspekt der vorliegenden Erfindung, ein Supervisormittel (ein Supervisor)
getrennt von der zentralen Verarbeitungseinheit (CPU) des Computersystems
vorgesehen und für
den Benutzer unzugänglich
gemacht,
wobei die Supervisormittel Leseoperationen auf dem Speichermedium,
abhängig
davon gestatten, beschränken
oder verhindern, ob die Information, die aus einem Sektor gelesen
oder in einen Sektor geschrieben wird, Betriebssystemsinformation
oder Benutzerinformation ist, ob der Sektor sich in der Boot-Partition
oder in der allgemeinen Partition befindet, oder ob die Partition
aktiv oder nicht aktiv ist,
wobei die Supervisormittel auch
nur dann eine Formatierungsoperation auf einer allgemeinen Partition gestatten,
die aktiv ist, während
sie eine Formatierungsoperation auf der Boot-Partition oder einer
nicht aktiven allgemeinen Partition verhindern und veranlassen,
dass eine Warnung an den Benutzer ausgegeben wird, sollte ein Versuch
gemacht werden eine verbotene Lese-, Schreib- oder Formatierungsoperation
auszuführen.
-
Vorzugsweise wird in dem Speichermedium Platz
reserviert, der nur durch den Supervisor zugänglich ist und der als reservierter
Bereich 2 bezeichnet ist. Der reservierte Bereich kann
eine besondere Partition, einen Bereich von Sektoren innerhalb der
WMR-Partition, oder unalocated Sektoren in einer schlafenden Partition
sein.
-
Jede WMR-Partition besitzt eine Sektor
Relocation Table (SRT), die in einem Supervisor RAM gehalten wird,
wobei jeder Eintrag in eine SRT die Adresse eines Bereiches von
Sektoren in der WMR-Partition bezeichnet, die aktualisiert wurde,
sowie die Adresse, wo die aktualisierte Information lokalisiert
ist, wobei sich dieser Ort innerhalb des reservierten Bereiches
befindet.
-
Gemäß einem zweiten Aspekt der
vorliegenden Erfindung ist eine Vorrichtung zum Steuern des Zugriffs
und der Veränderung
von Informationen geschaffen, die in einem Speichermedium eines
Computersystems gespeichert ist, wobei das Speichermedium in eine
Vielzahl von nicht überlappenden Partitions
einschließlich
einer Boot-Partition und wenigstens einer allgemeinen Partition
aufgeteilt ist, dadurch gekennzeichnet,
dass wenigstens eine
der Partitions eine Write Many Recoverable (WMR) Partition ist,
und
bewirkt wird, dass wenn im Betrieb ein Schreibbefehl ausgegeben
wird, um beliebige Informationen, die in der WMR-Partition gespeichert
ist, zu überschreiben
(d. h. zu aktualisieren), die aktualisierte Information An anderer
Stelle in dem Speichermedium abgespeichert wird und ein Zeiger auf
diese Information gehalten wird, damit die Information, falls erforderlich,
während
des Restes der Sitzung zugänglich ist,
wobei ein System-Reset bewirkt, dass die aktualisierte Information
zusammen mit der Liste von Zeigern auf diese Informationen zurückgesetzt
wird, damit die WMR-Partition in ihrem Ursprungszustand, wie er
im unsupervised Modus konfiguriert wurde, zurückkehrt.
-
Vorzugsweise umfasst die Vorrichtung
außerdem
Supervisormittel (einen Supervisor), der von der zentralen Verarbeitungseinheit
(CPU) des Computersystems getrennt und für den Benutzer unzugänglich gemacht
ist,
wobei die Supervisormittel Lese-, Schreiboperationen auf
dem Speichermedium zu gestatten, beschränken oder verhindern abhängig davon,
ob die aus einem Sektor zu lesenden Information oder in den Sektor
zu schreibende Information Betriebssysteminformation oder Benutzerinformation
ist, ob der Sektor sich in der Boot-Partition befindet oder in einer allgemeinen
Partition, und ob die Partition eine allgemeine Partition ist, die
aktiv oder inaktiv ist,
die Supervisormittel ferner eine Formatierungsoperati on
nur dann in einer allgemeinen Partition gestatten, wenn diese aktiv
ist, und eine Formatierungsoperation an der Boot-Partition oder
einer inaktiven allgemeinen Partition verhindern und
die Supervisormittel
bewirken, dass eine Warnung an den Benutzer ausgegeben wird, sollte
versucht werden, eine verbotene Lese-, Schreib- oder Formatierungsoperation
durchzuführen
und eine solche Operation durch den Supervisor verhindert wird.
-
Gemäß einem dritten Aspekt der
Erfindung wird ein Verfahren zum Kontrollieren des Zugangs zu und
dem Modifizieren von Informationen geschaffen, die in einem Speichermedium
abgelegt sind, das Teil eines Computersystems ist, wobei es zu dem
Verfahren gehört:
dass
die Informationen, die in dem Speichermedium gespeichert sind, in
eine Vielzahl von nicht überlappenden
Partitions aufgeteilt wird, zu denen eine Boot-Partition und wenigstens eine allgemeine
Partition gehören,
dadurch gekennzeichnet,
dass wenigstens eine der Partitions
als Write Many Recoverable (WMR) Partition bezeichnet wird, wobei,
falls im Betrieb ein Schreibbefehl ausgegeben wird, um Information
in einem oder dem WMR-Bereich zu überschreiben, vor dem Ausführen dieses Schreibbefehls
die Information an eine andere Stelle in dem Speichermedium kopiert
und dort gespeichert wird, damit sie in die WMR-Partition zurückkopiert werden
kann, falls dies erforderlich ist, beispielsweise bei einem System-Reset.
-
Es ist ersichtlich, dass gemäß den dritten
Aspekt der Erfindung eine zuvor mit dem Attribut "Read Only" versehene Partition,
wie die Boot-Partition, während
einer Sitzung ohne Beschränkung
beschrieben werden kann. Am Beginn einer neuen Sitzung werden jedoch
die Änderungen
rückgängig gemacht und
die Partition wird in ihren Ausgangszustand zurückgebracht. Diese Partition
kann deswegen als Write Many Recoverable Partition (WMR) bezeichnet werden.
Vorausgesetzt eine solche Partition ist zu Beginn virenfrei, dann
ist sie auch zu Beginn jeder neuen Sitzung virenfrei.
-
Die Basis für das Verfahren gemäß dem dritten
Aspekt der Erfindung besteht darin, ein Schema aufzustellen, in
dem eine Kopie von jedem "Cluster" in der WMR-Partition,
das überschrieben
werden soll, sicher an anderer Stelle in dem Speichermedium gespeichert
wird und, falls erforderlich, zurückgeschrieben werden kann.
Das Schema definiert wie dies effizient hinsichtlich des minimalen
zusätzlichen Speicherbedarfes
und der minimalen Beeinträchtigung
der Durchsatzzeit erreicht werden kann, bei gleichzeitigem Aufrechterhalten
einer maximalen Sicherheit.
-
Gemäß dem Verfahren entsprechend
dem dritten Aspekt der Erfindung wird außerdem vorzugsweise ein Supervisormittel
(Supervisor) geschaffen, das von der zentralen Verarbeitungseinheit
(CPU) eines Computersystems unabhängig ist um das Ausführen von
Lese-, Schreib- und Formatierungsoperationen an Informationen zu
kontrollieren, die in dem Speichermedium gespeichert sind, um so
derartige Operationen, abhängig
von der Art der Information, die in einem Sektor gespeichert ist,
und der Art und dem Status der Partition, in der sich der Sektor
befindet, zu gestatten zu beschränken
oder zu verhindern,
wobei die Supervisormittel einen Reset
veranlassen, der für
das Computersystem erforderlich ist, sollte ein Versuch gemacht
werden, einen verbotenen Lese-, Schreib- oder Formatierungsvorgang auszuführen und,
wobei der Reset bewirkt, dass der Speicher zurückgesetzt und das Betriebssystem
geladen wird.
-
Vorzugsweise umfasst das Speichermedium eine
besondere Partition (virenisolierten Raum), wobei zu jeder WMR-Partition
eine File Allocation Table (FAT) gehört, die in diese speziellen
Partition gehalten wird, und jeder Eintrag in einer FAT die Adresse eines
Clusters definiert, der innerhalb der WMR-Partition geändert wurde,
sowie die Adresse der Kopie der Information, die ursprünglich in
dem Cluster gehalten wurde.
-
Die Informationen, die ursprünglich in
dem Cluster enthalten waren, können
in die spezielle Partition kopiert werden.
-
Alternativ kann die ursprünglich in
diesem Cluster enthaltene Information in eine inaktive Partition
kopiert werden.
-
Gemäß einem vierten Aspekt der
vorliegenden Erfindung wird eine Vorrichtung zum Kontrollieren des
Zugangs zu und der Modifikation von Informationen geschaffen, die
in einem Speichermedium eines Computers gespeichert sind, wobei
das Speichermedium in eine Vielzahl von nicht überlappenden Partitions aufgeteilt
ist, zu denen eine Boot-Partition und wenigstens eine allgemeine
Partition gehören,
dadurch ge kennzeichnet, dass
wenigstens eine der Partitions
eine Write Many Recoverable Partition (WMR) enthält, wobei, falls im Betrieb
ein Schreibbefehl ausgegeben wird, um eine Information, die in einer/der
WNR-Partition gespeichert ist, vor dem Ausführen des Schreibbefehls diese
Information kopiert und an anderer Stelle in dem Speichermedium
gespeichert wird, damit sie, falls erforderlich, beispielsweise
bei einem System-Reset in die WMR-Partition zurückgespeichert werden kann.
-
Bevorzugt umfasst die Vorrichtung
ferner Supervisormittel (einen Supervisor), das von einer zentralen
Verarbeitungseinheit (CPU) des Computersystems getrennt ist, um
das Ausführen
einer Lese-, Schreib- oder Formatierungsoperation an Informationen
zu kontrollieren, die in dem Speichermedium gespeichert sind, und
so solche Operationen zu gestatten, zu beschränken oder zu verhindern, und
zwar abhängig
von der Art der in einem Sektor gespeicherten Information und dem
Typ und dem Status der Partition, innerhalb derer sich der Sektor
befindet, wobei im Betrieb die Supervisormittel bewirken, dass ein
Reset durchgeführt
wird, der erforderlich ist, um das System zurückzusetzen, sollte ein Versuch
gemacht werden eine verbotene Lese-, Schreib- oder Formatierungsoperation
auszuführen.
-
Gemäß den vorgehenden Verfahrensaspekten
der vorliegenden Erfindung können
Leseoperationen für
jede Information in der Boot-Partition gestattet sein, jedoch bewirkt
ein Versuch in die Boot-Partition zu schreiben, oder diese zu formatieren
ein System-Reset.
-
Ferner werden Boot-Sektoren des Speichermediums
als Teil der Boot-Partition angesehen, unabhängig von der Position des Startsektors
der Boot-Partition, wie dies durch das Betriebssystem für das Speichermedium
definiert ist.
-
Ferner kann das Lesen in den Sektoren
mit Betriebssysteminformationen oder den Sektoren mit benutzergenerierter
Information in aktiven allgemeinen Partitions gestattet sein, ebenso
wie das Schreiben in solche Sektoren mit benutzergenerierter Information,
während
das Schreiben in Sektoren mit Betriebssysteminformationen beschränkt ist,
so dass ein Versuch die Größe oder
die Grenzen der Partition zu modifizieren ein System-Reset auslöst.
-
Nur das Lesen von Informationen aus
den Betriebssystemsektoren von inaktiven allgemeinen Partitions
kann gestattet sein, während
der Versuch andere Lese-, Schreib- oder Formatierungsoperationen in solchen
Partitions entweder verhindert wird, oder einen System-Reset auslöst.
-
Die Beschränkung oder die Verhinderung von
Lese-, Schreib- oder Formatierungsoperationen kann aufgehoben und
später
wieder eingeführt
werden, um ein Setup oder eine Wartung des Speichermediums zu ermöglichen.
-
Bei dem Speichermedium kann es sich
um eine Harddisk, eine Floppydisk, einen optischen Speicher oder
ein Band handeln.
-
Alternativ kann das Speichermedium
ein Fileserver und das Computersystem ein Local Area Network sein,
wobei festgestellt wird, welcher Benutzercomputer welche Partition
auf den Fileserver benutzt, damit ein Versuch, durch einen Benutzer
eine verbotene Operation auszuführen,
einen Reset auslöst,
der für
den Benutzercomputer erforderlich ist.
-
Gemäß den vorstehenden Vorrichtungsaspekten
der vorliegenden Erfindung kann die Vorrichtung Hardwaremittel bereithalten,
die dazu geeignet sind, in dem Computersystem inkorporiert zu werden.
-
Alternativ kann die Vorrichtung Firmwaremittel
umfassen, die dazu eingerichtet sind, in dem Computersystem inkorporiert
zu werden.
-
Alternativ kann die Vorrichtung eine
Kombination aus Hard- und Firmwaremitteln umfassen, die beide dazu
eingerichtet sind, im Computersystem inkorporiert zu werden.
-
Es kann ein Prozessor vorhanden sein,
der für
einen Benutzer und Viren unzugänglich
ist und der den gesamten Datentransfer zwischen und innerhalb der
Subdivisions des Speichermediums oder der Speichermedien überwacht,
die unter seine Kontrolle gestellt sind.
-
Kurze Beschreibung
der Figuren:
-
Anhand der beigefügten Figuren sind exemplarisch
Ausführungsbeispiele
der vorliegenden Erfindung nachstehend erläutert, wobei zeigen:
-
1 ein
schematisches Diagramm unter Veranschaulichung der Aufteilung des
Speichermediums zur Verwendung bei einem ersten erfindungsgemäßen Ausführungsbeispiel;
-
2 ein
Flussdiagramm mit einer Darstellung der Abfolge von Ereignissen,
wenn das Computerssystem in eine Write Many Recoverable Partition (WMR)
schreiben will, wie sie in dem Ausführungsbeispiel nach 1 verwendet wird;
-
3 ein
Flussdiagramm mit der Veranschaulichung der Abfolge der Ereignisse,
wenn ein Computersystem aus einer Write Many Recoverable Partition
(WMR) lesen will;
-
4 eine
schematische Darstellung der Veranschaulichung der Aufteilung eines
Speichermediums bei Verwendung der vorliegenden Erfindung;
-
5 ein
Flussdiagramm mit einer Veranschaulichung der Abfolge der Ereignisse,
wenn ein Computersystem in eine Write Many Recoverable Partition
(WMR) schreiben will, wie sie im Ausführungsbeispiel nach 4 verwendet wird;
-
6 ein
schematisches Blockdiagramm der Anordnung für ein erstes Ausführungsbeispiel
eines Supervisors zur Verwendung in der vorliegenden Erfindung;
-
7 ein
schematisches Blockdiagramm einer Hardwareanordnung für ein zweites
Ausführungsbeispiel
eines Supervisors, zur Verwendung bei der vorliegenden Erfindung;
und
-
8 ein
schematisches Schaltbild für
ein aktuelles Ausführungsbeispiel
des Supervisors nach 7.
-
Detaillierte
Beschreibung der Ausführungsbeispielen
-
Das Setup und die Arbeitsweise der
vorliegenden Erfindung wird am einfachsten verstanden, indem die
unterschiedlichen beteiligten Stufen des Betriebs erläutert werden.
Das Ausführungsbeispiel der
nachstehend beschriebenen Erfindung umfasst vorteilhafterweise einen
Supervisor, wie er in der zuvor erwähnten PCT/GB91/00261 beschrieben
ist.
-
Erläuterung des ersten Ausführungsbeispiels
nach den 1 und 2:
-
1.1 Initialer Anschluss
-
Wenn ein Speichermedium 1 (wie
eine Harddisk) das erste Mal mit einem Computersystem (nicht dargestellt)
verbunden wird, wird auf dem Speichermedium 1 Speicherplatz,
der durch den Benutzer nicht zugänglich
ist, d. h. ein reservierter Bereich, reserviert.
-
Ein Passwort wird eingegeben und
entweder in dem reservierten Bereich 2 oder in einen Supervisor
Flash ROM (4, 13) gespeichert. Dieses Passwort wird später dazu
verwendet zu ermöglichen,
dass das System in den nicht überwachten
Modus gebracht werden kann.
-
1.2 Nicht überwachter
Modus
-
Der Wechsel in diesen Modus erfordert
die Verwendung des Passworts für
den nicht überwachten
Modus (siehe PCT/GB91/00261). Wenn das System sich in diesem Modus
befindet, wird ein Default-Schema für die Partitionierung angeboten,
das durch den Benutzer rekonfigurierbar ist.
-
- (a) Das Default-Schema kann sich typischerweise auf
den folgenden Partitionarten zusammensetzen: Read Only (RO), Write
Many Recoverable (WMR) 3 und einer "allgemeinen" Partition 4. Eine allgemeine
Partition ist einfach eine Partition, die sich von der RO- oder
der WMR-Partition unterscheidet und auf die geschrieben werden kann. Zu
jeder WMR-Partition gehört
ein Sektor Relocation Table (WMR-SRT), die in den Supervisor-RAM
(4, 14)
bereit gehalten wird. Jeder Eintrag in der WMR-SRT definiert bei
der Verwendung die Adresse des Bereiches von Sektoren, die Updates
von Sektoren innerhalb einer WMR-Partition darstellen, und sie enthält Zeiger auf
diesen Bereich von aktualisierten Sektoren. Jeder Partition kann
eine Default-Partition zugeordnet werden, und zwar basierend auf
allgemeinen Richtlinien. Beispielsweise Partition C = WMR; Partition
D = RO, andere Partitions = Allgemein; Partition-Diskreptoren ergeben sich aus dem Partitionlabel.
- (b) Der Benutzer kann für
jede Partition den Beschreibungsstring definieren, der deren Inhalt festlegt.
- (c) Die Erfindung gestattet es dem Benutzer im Bedarfsfalle
(a) oder (b) zu revidieren und Partitions hinzuzufügen, Partitiongrenzen
zu ändern und
Art der Partition für
jede Partition zu definieren.
-
1.3 Überwachter Modus
-
- (a) Es ist wichtig, festzuhalten, dass, wenn
ein Benutzer am Ende der Sitzung im überwachten Modus das System
herunterfährt,
die WRM-SRT verworfen wird, wobei alle Pointer auf aktualisierte Sektoren
entfernt wer den. Eine leere WMR-SRT bringt die WMR-Partition in
ihren Ausgangszustand, der den Zustand der WMR-Partition nach der
letzten Änderung
wiedergibt, als sich das System im nicht überwachten Modus befunden hat.
- (b) Die WMR-SRT wird initialisiert und ist bereit zum Gebrauch.
- (c) Die Partitiongrenzen und Anzahl der Partitions werden mit
einer Tabelle verglichen, die entweder in dem reservierten Bereich 2 oder
in dem Supervisor Flash ROM (3, 13) abgelegt ist. Wenn während des
nicht überwachten
Modus der Benutzer die Konfiguration von Partitions geändert hat,
ohne diese Tabelle zu rekonfigurieren, wird der überwachte Modus abgelehnt bis
diese berichtigt ist. Alternativ kann die Tabelle jedesmal erzeugt
werden, wenn der Benutzer in den überwachten Modus wechselt,
wobei ein Schema verwendet wird, das nicht den Eingriff des Benutzers erfordert.
- (d) Der Benutzer erhält
eine Kurzanfrage, um eine Partition für das normale Lesen und Schreiben aus
der Liste der allgemeinen Partitions auszuwählen. Dies wird vor Operationen
des Betriebssystems und des Speichermediums 1 ausgeführt. Die
ausgewählte
Partition wird als "aktive
Partition" festgelegt
und die übrigen
allgemeinen Partitions als "schlafende" Partitions. Die
aktive Partition wird bis die Sitzung beendet ist, ständig aktiv bleiben.
Eine neue Sitzung kann gestartet werden, wenn der Benutzer den überwachten
Modus wieder aufnimmt, indem das System zurückgesetzt wird, wodurch der
System RAM normiert wird.
- (e) Beim Beginn einer Sitzung kann als Verbesserung des obigen
Algorithmus der Benutzer eine Kurzanfrage erhalten einen Benutzernamen
oder ein Passwort anzugeben, die mit Daten in dem reservierten Bereich
zwei verglichen werden. Der Benutzer wird dann auf einen Subset
von allgemeinen Partitions beschränkt, aus denen er eine aktive
Partition auswählen
kann.
- (f) Der Benutzer erhält
vollen Zugang zu allen WMR- und RO-Partitions (und natürlich zu
der ausgewählten
aktiven Partition).
-
4. Zugriff
auf eine WMR-Partition
-
Wie angegeben, wurde für jede WMR-Partition 3 eine
WMR-FAT festgelegt und in dem reservierten Bereich 2 gespeichert.
-
- (a) Während
des Betriebs mit der Erfindung kann es geschehen, dass ein Bereich
von Sektoren in der WNR-Partition 3 aktualisiert werden
muss. Wenn dieser Fall eintritt, erzeugt der Supervisor (nicht dargestellt)
einen Eintrag in der WMR-FAT, die den Bereich von Sektoren definiert,
der aktualisiert wird, und sie erhält einen Zeiger auf die Stelle
(in dem reservierten Bereich), wo die aktualisierten Sektoren hingeschrieben
sind. Die unmodifizierten Originalsektoren bleiben an ihrer ursprünglichen
Stelle.
- (b) Die aktualisierten Sektoren können irgendwo in dem Speichermedium
gespeichert werden, und zwar innerhalb des reservierten Bereiches.
Dieser reservierte Bereich kann eine spezielle Partition sein. Alternativ
kann der reservierte Bereich in einer schlafenden Partition liegen.
Da auf die schlafenden Partitions durch einen Benutzer während der
Sitzung nicht zugegriffen werden kann, ist es sicher, wenn nicht
zugewiesene Sektoren hierzu verwendet werden, die freigegeben werden,
bevor eine neue Sitzung begonnen wird. Dies ist in 1 veranschaulicht.
- (c) Der Supervisor folgt dem Flussdiagramm, wie es in 2 dargestellt ist, immer
dann, wenn die Anfrage gestellt wird in eine WMR-Partition 3 zu schreiben.
- (d) Der Supervisor folgt dem Flussdiagramm wie es in 3 gezeigt ist, immer dann,
wenn die Anfrage kommt, aus einer WMR-Partition 3 zu lesen.
- (e) Ein alternatives Schema zum Implementieren einer WMR-Partition
ist möglich,
wobei Schreibvorgänge
in diese Partition bewirken, dass die Ursprungssektoren in einen
sicheren Bereich kopiert werden, bevor die Freigabe der Schreiboperation abgeschlossen
ist. Bei Beginn jeder Sitzung werden die Ursprungssektoren an ihre
Ursprungsstellen innerhalb der WMR-Partition zurückkopiert, womit diese Partition
in ihren Ausgangszustand zurückgelangen.
-
Es wird nunmehr auf das zweite Ausführungsbeispiel
nach den 2 und 5 Bezug genommen:
-
2.1 Initiale Verbindung
-
Wenn ein Speichermedium 101 (beispielsweise
eine Harddisk) das erste Mal mit einem Computersystem (nicht dargestellt)
verbunden wird, wird auf dem Speichermedium 101 Speicherplatz
reserviert, der für
den Benutzer unzugänglich
ist. Bei diesem Speicherbereich handelt es sich um eine spezielle
Partition die auch als gegen vierenisolierter Bereich 102 bezeichnet
werden kann.
-
Ein Passwort wird eingegeben und
in der vierenisolierter Bereich 2 gespeichert. Dieses Passwort wird
später
ver wendet, damit das System in den nicht überwachten Modus gebracht werden
kann.
-
2.2 Nicht überwachter
Modus
-
Dieser Modus erfordert die Verwendung
des Passworts für
den nicht überwachten
Modus (siehe PCT/GB91/00261). Wenn sich das System in diesem Modus
befindet, kann der Benutzer sowohl das System als auch den vierenisolierter
Bereich 102 konfigurieren.
-
- (a) Der Benutzer kann für jede Partition definieren,
ob die Partition eine Read Only Partition (RO) (nicht dargestellt),
eine Write Many Recoverable Partition 103 (WMR) oder eine "allgemeine" Partition 104 ist.
Bei einer allgemeinen Partition handelt es sich schlicht um eine
Partition, die sich von einer RO- oder
einer WMR-Partition unterscheidet und in die geschrieben werden
kann. Zu jeder WMR-Partition gehört
eine File Allocation Table (WMR-FAT), die in dem vierenisolierten
Bereich 102 gehalten wird. Im Betrieb definiert jeder Eintrag
in der WMR-FAT die Adresse eines Clusters, der innerhalb einer WMR-Partition
geändert
wurde und sie enthält
einen Zeiger auf eine Kopie des unveränderten ursprünglichen
Clusters.
- (b) Der Benutzer kann für
jede Partition einen Beschreibungsstring festlegen, der den Inhalt
definiert.
- (c) Wenn Partitions hinzugefügt
oder Grenzen geändert
werden, kann der Benutzer (a) und (b) revidieren. Wenn der Benutzer
durch das System nicht gezwungen wird dies zu tun, wird ein Default-Wert übernommen
wie "allgemeiner" Status und "Partition 104".
-
Die genaue Aufteilung, die notwendig
ist, braucht nicht definiert zu werden, da das Schema ohne Eingriffe
des Benutzers wirksam sind, vorausgesetzt, dass bestimmte allgemeine
Richtlinien enthalten sind. Beispielsweise Partition C = WMR; alle übrigen Partitions
= Allgemein; Partitiondeskriptoren werden durch ihren Anfangsbuchstaben
festgelegt.
-
2.3 Überwachter Modus
-
- (a) Alle WMR-Partitions 103 werden
anhand ihrer WMR-FAT in dem vierenisoliertem Raum 102 in ihren
Ausgangszustand zurückgebracht.
Aus Konsistenzgründen
geschieht das auch, wenn der nicht überwachte Modus gestartet wird.
Jeder
WNR-FAT-Eintrag umfasst einen Zeiger (d. h. eine Adresse von) einem
geänderten
Cluster innerhalb der WMR-Partition 102 und einen Zeiger
auf eine Kopie des Ursprungclusters. Demnach ist beim Start einer
Sitzung als nachfolgende Prozedur nur nötig, um die WMR-Partition 102 zu restaurieren:
Für jeden
WNR-FAT-Eintrag
erfolgt folgendes:
- – Der
Ursprungscluster wird an seine Stelle an der WMR-Partition 102 kopiert.
(Kopiere Cluster "X" nach Cluster "A", wie in 1 gezeigt);
- – Lösche den
WMR-FAT-Eintrag.
(Anmerkung: Ein Stromausfall oder ein Systemcrash
der während
diese Befehlsfolge auftritt, hat keine Auswirkung auf die Fähigkeit,
die Ursprungs-WMR-Partition zu restaurieren, wenngleich die Prozedur
wiederholt werden muss.)
- (b) Die WMR-FAT(s) werden initialisiert und sind fertig zur
Verwendung.
- (c) Die Partitiongrenzen und Anzahl der Partition werden mit
einer Tabelle verglichen, die in dem vierenisoliertem Raum 102 gespeichert
ist. Wenn der Benutzer im nichtüberwachten
Modus die Konfiguration der Partitions geändert hat, ohne den virusisolierten
Raum 102 neu zu konfigurieren, wird der überwachte
Modus abgelehnt bis diese Anpassung durchgeführt wurde.
- (d) Der Benutzer erhält
eine Kurzanfrage um aus der Liste von allgemeinen Partitions eine
Partition für
das normale Lesen und Schreiben auszuwählen. Dies geschieht vor allen übrigen Operationen des
Betriebssystems und des Speichermediums 101. Die ausgewählte Partition
wird als "aktive Partition" festgelegt und die übrigen allgemeinen Partitions
werden als "schlafende" Partitions definiert.
Die aktive Partition bleibt bis zum Ende der Sitzung aktiv. Eine
neue Sitzung kann gestartet werden, wenn der Benutzer erneut in
den überwachten
Modus geht, indem der System-RAM normiert und das System zurückgesetzt
wird.
- (e) Zu Beginn einer Sitzung kann als Verbesserung der obigen
Prozedur der Benutzer eine Kurzanfrage erhalten, um einen Benutzernamen
oder ein Passwort einzugeben, das mit den Daten in dem virusisolierten
Raum 2 verglichen wird. Der Benutzer wird dann auf ein
Subset der allgemeinen Partitions beschränkt, aus denen er eine aktive
Partition auswählen
kann.
- (f) Der Benutzer erhält
vollen Zugang zu allen WMR- und RO-Partitions (und natürlich dazu
der ausgewählten
aktiven Partition).
-
4. Zugriff
auf eine WMR-Partition
-
Wie bereits angemerkt wurde für jede WMR-Partition 103 eine
WMR-FAT definiert und in dem virusisolierten Raum 102 gespeichert.
-
- (a) Zu der erfindungsgemäßen Operation kann es gehören, dass
ein Cluster in der WMR-Partition 103 geändert werden muss. Wenn dies
geschieht, erzeugt der Supervisor (nicht dargestellt) einen Eintrag
in der WMR-FAT, der den Cluster bezeichnet, der modifiziert werden
soll und hält
einen Zeiger auf eine Kopie des Originals.
- (b) Die Kopie des Originalclusters kann irgendwo auf dem Speichermedium
gespeichert sein. Beispielsweise kann sie in einem reservierten
Bereich gespeichert sein, der für
diesen Zweck als Spezialpartition reserviert ist, oder in einem
Bereich in dem virusisolierten Raum 102. Alternativ kann
der Originalcluster in einem temporären Bereich gefunden werden,
der sich innerhalb einer schlafenden Partition befindet. Da die
schlafenden Partitions durch einen Benutzer nicht erreichbar sind
(und demzufolge auch nicht durch einen Virus), ist der Originalcluster
während
der Sitzung sicher und kann freigegeben werden, bevor eine neue
Sitzung begonnen wird. Dies ist in 1 illustriert.
- (c) Wenn eine Schreibanfrage an eine WMR-Partition 103 ergeht,
wickelt der Supervisor das Flussdiagramm nach 2 ab.
-
In 6 ist
ein Blockdiagramm einer Hardwareanordnung gezeigt, die dazu geeignet
ist, ein erstes Ausführungsbeispiel
des Supervisors zur Verwendung bei einem Ausführungsbeispiel der vorliegenden
Erfindung zu implementieren. Der Supervisor hat ein typisches Businterface 7 für ein Motherboard eines
Personal Computers (PC) oder dergleichen, ein Read Only Memory (ROM) 2,
das einen geeigneten BIOS-Treiber (Basic Input/Output System) enthält, um den
Moduseingang beim Beginn einer Sitzung zu kontrollieren.
-
Der Supervisor sitzt bestimmungsgemäß zwischen
dem Platteninterface des PC und dem Disk-Drive. Der PC ist mit dem
Supervisor über
ein Bandkabel 201 an den Integrated Device Elektronics Bus
(IDE) angeschlossen. Der Supervisor ist ferner mit einem Diskdrive über ein
zweites Bandkabel 202 verbunden, das auch als IDE-Bus wirkt.
Die gesamte Kommunikation zwischen dem PC und der Harddisk wird über den
Supervisor kontrolliert.
-
Die Supervisorhardware umfasst einen
Mikroprozessor 216, ein Read Only Memory (ROM) 213,
das das Supervisor Betriebssystem und ein Steuerprogramm enthält, und
ein Random Acess Memory (RAM) 214, das als Scratch-Memory
verwendet wird, um Parameter und die WMR-SRT(s) zu halten.
-
Ein Dual-Port-RAM 210 bildet
einen Speicher, der sowohl vom PC als auch von dem Supervisorprozessor
erreichbar ist. Der Supervisor kann dieses Memory verwenden, um
IDE-Task-Register
zu spiegeln.
-
Tansceiver wie bei 206, 209 und
Muliplexer 205 gestatten es sowohl dem PC als auch dem
Supervisorprozessor auf das Diskdrive zuzugreifen. Der Supervisor
kontrolliert, wer jeweils Zugriff hat. Flip-Flops 207, 208 gestatten
dem Supervisor, der einen 8-Bit-Bus enthält, 16 Bit Werte von dem Diskdrive
zu lesen oder darauf zu schreiben.
-
Ein Logikblock 212 enthält ein Flip-Flop,
das durch den Supervisorprozessor beschrieben werden kann. Der Wert
dieses Flip-Flops wird mit der oberen Adresse des IEC-Interface-Bus verglichen
und das BIOS 211 ist nur dann enabled, wenn die Werte passen.
Dies gestattet es, dass das durch den Supervisor zu konfigurierende
BIOS irgendwo in der niedrigsten Megabite Adresse des ROM des PC's aufscheint.
-
Ein Logikblock 215 bildet
den ROM 213, den RAM 214 und den Dual-Port-RAM 210 in
den Adressraum des Supervisorprozessors ab. Er kontrolliert auch
den Zugriff auf die Flip-Flops 207 und 208 und den
Logikblock 212.
-
Ein Logikblock 204 stellt
sicher, dass Steuersignale, die zwischen dem PC und dem Diskdrive übertragen
werden, korrekt gepuffert werden und dass sie blockiert sind, wenn
der Supervisorprozessor mit dem Diskdrive verbunden ist.
-
Ein Logikblock 203 gewährleistet,
dass die Kommunikation zwischen dem PC und dem Diskdrive unter der
Kontrolle des Supervisors steht. Er überwacht und kontrolliert Lese- und Schreibbefehle
an das Task-File-Register auf dem Diskdrive. Der Supervisorprozessor
erhält
Kenntnisse von kritischen Operationen, die versucht werden, und überprüft, ob diese
Operationen fortgesetzt werden, verhindert sie oder fordert eine
Modifikation. Implementiert ist dies, indem die PC-Adressleitungen
zusammen mit Lese- und Schreibsteuersignalen decodiert werden. Bestimmte
Lese- und Schreib versuche bewirken, dass ein Interrupt für den Supervisorprozessor
erzeugt wird. Der Supervisor arbeitet dann basierend auf der Änderung.
Diskdriveinterrupts werden auch zunächst zu dem Supervisorprozessor
geleitet, von wo aus sie erforderlichenfalls an den PC weitergegeben
werden.
-
Ein Blick auf 4 zeigt deutlich, dass ein Virus niemals
mit dem Supervisormirkoprozessor 216 interferieren kann,
da sich der Virus nur ausführbaren
Code aus seinem eigenen ROM 213 beschaffen kann.
-
Eine detailliertere Beschreibung
für das
Ausführungsbeispiel
des in 6 gezeigten Supervisors wird
hier nicht gegeben, da dies im normalen Tätigkeitsbereich eines Fachmanns
liegt.
-
7 zeigt
ein Blockdiagramm einer Hardwareanordnung, die sich zum Implementieren
eines zweiten Ausführungsbeispiels
eines Supervisors eignet, der in einem erfindungsgemäßen Ausführungsbeispiel
verwendet wird. Der Supervisor bildet eine typische Interface-Karte 310 mit
einem Harddisk-Adapter für
ein Motherboard eines Personal Computers (PC) oder dergleichen und
mit einem Read Only Memory (ROM) 312, das einen geeignetes
BIOS-Treiber (Basic Imput/Output System) zum Betrieb der Harddisk
enthält.
-
Die Supervisorhardware umfasst einen
Mikroprozessor 314 sowie einen Transceiver 316,
der dem PC einen begrenzten Zugriff auf einen SCSI 318 ermöglicht,
so dass der PC nicht unmittelbar für den Diskdriver wählen oder
entscheiden kann oder Befehle über
das SCSI-Interface 318 ausgeben kann. Diese Operationen
können
nur durch den Supervisormikroprozessor 314 ausgeführt werden,
der Bidirektional mit dem PC kommuniziert, wobei die Input/Output
Status Ports 320 und 322 verwendet werden.
-
Die Kommunikation zwischen dem Mikroprozessor 314 und
dem SCSI-Interface 318 erfolgt über bidirektionale Boards eines
zweiten Transceivers 324. Zu dem Supervisor gehört ein eigenes
Read Only Memory (ROM) 326, in dem ein Supervisorbetriebssystem
und ein Steuerprogramm abgelegt sind, sowie ein Random Acess Memory
(RAM) 326, das als Scratch Memory dient um Parameter zu
halten. Ferner ist eine Reset-Logik 330 vorhanden,
die dazu verwendet wird, den PC-Speicher zurückzusetzen, falls und sobald
ein Versuch gemacht wurde, eine durch den Supervisor verbotene Operation
auszuführen.
-
8 zeigt
ein schematisches Diagramm eines aktuellen Ausführungsbeispiels für den Supervisor,
wobei die Bezugszeichnen mit denen nach 7 identisch sind.
-
Das Ausführungsbeispiel nach 8 enthält die folgenden Komponenten:
Gate-Array-Logikbausteine (GAL) G1 bis G5, Puffer (B1, B2) und Flip-Flops
74,1(1), 74,1(2) und 74, 2(2).
-
Die Funktion dieser Komponenten sieht
wie folgt aus:
- G1 bildet das ROM-BIOS in den
IBM-Speicher ab und bildet außerdem
eine Tristate-Verbindung des Ausgangs-Flip-Flops 74,2(2) zu dem
IBM-Datenbus.
- G2 schafft einen Zugriff mittels des IBM auf einen Subset von
internen Registern des SCSI Controllers, indem sie auf den IBM I/O-Raum
abgebildet werden. G2 stellt eine Pseudo-GMA-Decodierlogik für den Datentransport
zu und von dem SCSI-Controller dar und bildet ein Flag, d. h. das Flip-Flop 74,2(2) und
das Flip-Flop T1, in den IBM I/O-Raum ab.
- G3 multiplext zwischen dem Supervisor- und dem IBM-Adressbus zu dem
Adressbus des SCSI-Controllers.
- G4 multiplext zwischen dem Supervisor und dem IBM Steuerleitungen
zu dem SCSI-Controller. G4 gibt entweder dem Transceiver T1 oder
den Transceiver T2 (jedoch niemals beide gleichzeitig) frei, und
enthält
eine Logik für
einen möglichen
Wartezustand während
des Datentransports zwischen dem IBM und dem SCSI-Controller.
- G5 bildet alle Ports in den Supervisor, die/O-Raum ab; die Flip-Flops
P1, P2, SCSI setzen die Leitung und die Flip-Flops 74,1(2) und 74,2(2)
zurück.
G5 bildet außerdem
den ROM in die Supervisorspeicherabbildung ab und liefert eine Tristate-Verbindung
für den
Ausgang des Flip-Flops 74,2(2) zu dem Supervisordatenbus.
-
Die Puffer B1, B2 stellen sicher,
dass nur ein Gate Strom aus der IBM-back-plane für jede der Adressleitungen,
IOR-Leitungen und IOW-Leitungen ziehen kann.
-
Das Flip-Flop 74,1(1) teilt die Taktfrequenz durch
zwei und erzeugt rechteckige Impulse. Abhängig von dem Ausgangssignal
des Flip-Flops 74,1(2) hat entweder der IBM (begrenzten) Zugang
zu dem SCSI-Controller oder der Supervisor.
-
Flip-Flop 74,2(1) stellt einen Teil
des Zeitgeberkreises für
den Wartezustand während
des SCSI-Datentransfers dar, während
das Flip-Flop 74,2(2) ein Flag ist um anzuzei gen, dass ein Datenbyte
durch den IBM abgesandt wurde, das durch den Supervisor zu beachten
ist.
-
Die Bauteile des Ausführungsbeispiels
nach 4 sind wie folgt:
Bei den GALs G1 bis G5 handelt es sich um die Typen SCS Thompson
GAL 16V8-15 ns, bei den Flip-Flops 74,1 (1), 74,1(2), 74,2(1) und 74,2(2),
um die Typen 74ALS74, den Puffern B1, B2, um die Schaltkreise 74ALS244,
den Flip-Flops P1, P2,
die Schaltkreise 74ALS373, die Transceiver T1, T2 74F245, dem Prozessor
14 um einen Zilog Z84C50 (10 MHz), dem ROM 12 um einen 2764A (8kx8)
und dem SCSI-Kontroller 18 um einen NCR 5380.
-
Die Betrachtung von 8 lässt
erkennen, dass niemals ein Virus mit den Supervisor-Mikroprozessor 314 interferieren
kann, da dieser nur in der Lage ist, ausführbaren Code aus seinem eigenen ROM 326 zu
bekommen.
-
Eine detailliertere Beschreibung
des Ausführungsbeispiels
des Supervisors, wie er in 8 gezeigt
ist, ist an dieser Stelle nicht gegeben, da dieser im normalen Tätigkeitsbereich
eines Fachmanns liegt.
-
Die Ausführungsbeispiele der vorliegenden Erfindung
sind lediglich exemplarisch und sie sollen in keiner Weise den Schutzumfang
beschränken.
-
Es ist auch ersichtlich, dass die
vorliegende Erfindung danach strebt, die oben erwähnten Probleme,
wie sie mit dem Stand der Technik auftreten, zu beseitigen, und
zwar hinsichtlich des Speicheroverheads und des Leistungsoverheads
mit geringer Einschränkung.
Diese Erfindung gestattet einen "überwachten" vollständigen Lese-
und Schreibzugriff durch den Benutzer auf die Boot-Partition, während bei
Beginn jeder Sitzung mit dem Computersystem sichergestellt ist,
dass die Boot-Partition sauber, virusfrei und unmodifiziert ist.
Dies betrifft die oben erwähnten
Probleme, während
die Maintenance des vollständigen
Virusschutzes gestattet wird, die in der PCT/GB91/00261 beschrieben
ist.
-
Es kann vorgesehen sein, dass ein
Benutzer die Änderungen über Sitzungen
beibehalten möchte. In
diesem Falle kann der Benutzer ein Batch-File erzeugen, das die
geänderten
Dateien in der aktiven Partition vor dem Abschalten enthält. Zu Beginn
der nächsten
Sitzung können
diese Dateien die Originale in den WMR-Partitions ersetzen.