-
Diese
Erfindung bezieht sich auf Verfahren, Programmprodukte, Rechnersysteme
und andere informationsverarbeitende Anordnungen, die beschleunigtes
Scannen nach unerwünschtem
oder bösartigem
Code ermöglichen
und im Besonderen auf ein Rechnersystem, das vertrauenswürdig verfolgt,
welche Dateien oder Speicherplätze
sich seit einem letzten Virenscan geändert haben und beschleunigtes
Scannen nach Viren ermöglicht,
in dem nur die Dateien gescannt werden, die sich geändert haben
oder Dateien, die unverändert
sind, die aber nicht nach neuen Viren gescannt worden sind.
-
Während frühe Computer „stand
alone" und nicht
dazu in der Lage waren, mit anderen Computern zu kommunizieren,
sind die meisten Computer heute in der Lage, mit anderen Computern
zu kommunizieren für
eine Vielfalt von Zwecken, beinhaltend Daten gemeinsam zu benutzen,
Emails zu versenden und zu empfangen, Programme herunterzuladen,
die Vorgänge
zu koordinieren usw. Diese Kommunikation wird durch Anmelden in
einem lokalen Netzwerk (LAN) oder einem Wide Area Netzwerk (WAN)
durchgeführt.
Während
dieser erweiterte Horizont offensichtlichen Nutzen aufweist, geht
dies auf Kosten von gesteigertem Ausgesetztsein gegenüber Gefahren,
besonders durch Viren.
-
Ein
Virus besteht aus Programmcode, der analog zu seinem biologischen
Gegenstück
ein normalerweise sonst gesundes Stück Code oder Daten infiziert.
Der Virus verursacht ein unerwünschtes
Ereignis, wie zum Beispiel zu bewirken, dass der infizierte Computer
ineffizient arbeitet, oder auf sonstige Wei se völlig versagt. Ein anderes heimtückisches Merkmal
von vielen Viren ist ihre Fähigkeit,
sich auf andere Computer im Netzwerk fortzupflanzen.
-
Es
können
mindestens vier Hauptklassen von Viren gefunden werden, die Dateiinfizierer,
System (oder Boot-Datensatz) Infizierer, Würmer und Makroviren umfassen.
Ein Dateiinfizierer hängt
sich selbst an eine Programmdatei an. Wenn das Programm geladen
wird, wird der Virus ebenfalls geladen und ermöglicht, dass der Virus sein
Unheil anrichtet. Ein Systeminfizierer infiziert die Registry von einem
Betriebssystem oder von bestimmter Hardware, wie zum Beispiel den
Boot-Datensatz auf einer Festplatte. Eine Infizierung des Boot-Datensatzes macht
die Festplatte bei einem anschließenden erneuten Booten oft
betriebsunfähig
und macht es unmöglich,
den Computer zu booten. Ein Wurmvirus verbraucht Datenspeicher oder
Netzbandbreite, und bewirkt auf diese Weise, dass ein Computer nicht mehr
ansprechbar ist. Ein Makrovirus ist eine der am häufigsten
Viren und infiziert Textverarbeitungsprogrammprogramme.
-
Eine
weitere häufige
Art von Virus ist auf Browser und E-Mail ausgerichtet. Einer dieser
Viren verursacht einen Denial of Service (DoS) Angriff. Ein DoS
Virus bewirkt, dass eine Website außerstande gesetzt wird, Besucher
zu akzeptieren. Normalerweise bewirken solche Angriffe, dass der
Pufferspeicher der Website in Folge von Millionen von infizierten Computern überläuft, die
(unwissentlich) gezwungen werden, auf die Website zuzugreifen.
-
Um
Viren zu begegnen, werden Antivirusprogramme geschrieben und ständig aktualisiert,
um gegen neue Viren wirksam zu sein. Solche Antivirusprogramme werden
entweder auf physischen Datenträgern
(wie zum Beispiel CD-ROMs) geliefert, oder sind aus einem Netzwerk,
wie zum Beispiel dem Internet herunter ladbar. Die Antivirusprogramme
vergleichen Daten auf jeder Speicher vorrichtung des Rechnersystems
mit einer Virendefinitionsdatei, die alle bekannten Virensignaturen
für alle
bekannten Virentypen umfasst. Dieser Prozess wird als „Scanning" bezeichnet. Aktualisierungen
werden typischerweise auch heruntergeladen, um den raschen Einsatz
von solchen Aktualisierungen zur Verfügung zu stellen.
-
Jedoch
wird die Zeit, die notwendig ist, um einen Virenscan vollständig durchzuführen, zunehmend
unannehmbar und problematisch. Zwei Faktoren, die zu unannehmbaren
Scanzeitdauern beitragen, sind die Datenmenge, die gescannt wird,
und die Größe der Virendefinitionsdatei,
die die Bezeichner enthält.
Beide dieser Faktoren wachsen scheinbar ohne Grenzen. Es wird bald üblich sein,
dass Desktopsysteme Plattenkapazitäten aufweisen, die an ein Terabyte
herangehen. Hacker, die Viren erzeugen, scheinen wachsende Motivation
dafür aufzuweisen,
dies zu tun, und tun dies mit ständig
wachsenden Geschwindigkeiten. Währenddessen
nimmt die Zeit, die für
das Scannen der Festplatte benötigt
wird, mit gesteigerter Prozessorgeschwindigkeit nicht wesentlich
zu, da die für
den Scanvorgang erforderliche Zeit mehr mit den Plattenzugriffsgeschwindigkeiten
in Beziehung steht. Von gesteigerten Scanzeiten verursachte Probleme
werden mit der Zeit akuter und sichtbarer. Es ist vorhersehbar,
dass tägliche
Virenscans in der nahen Zukunft nicht so einfach möglich sein
werden, weil, diese Faktoren vorausgesetzt, ein Virenscan irgendwann
einmal länger
als 24 Stunden benötigen
wird, um vollständig
ausgeführt
zu werden. Weiterhin kann ein Arbeitsplatzrechner während der Zeit
unbenutzbar sein, in der der Scanvorgang stattfindet. Die Produktivität wird deshalb
beeinträchtigt und
schließlich
werden Kostenanalysen ergeben, dass zusätzliche Systemkosten gerechtfertigt
sind, um das Problem zu bereinigen.
-
Ein
weiterer Bereich des Hintergrunds führt zu virtuellen Maschinen
und virtuellen Maschinenüberwachungsanordnungen,
die sich aus der Notwendigkeit ergeben, für verschiedene Betriebssysteme geschriebene
Anwendungen gleichzeitig auf einer gemeinsamen Hardwareplattform
auszuführen
oder für
die vollständige
Nutzung von verfügbaren
Hardwarebetriebsmitteln. Virtuelle Maschinenüberwachungsanordnungen waren
Gegenstand der Forschung seit den späten 1960ern und sind als der „Virtual
Machine Momitor" (VMM)
bekannt geworden. Personen mit gewöhnlicher Qualifikation in der
Technik werden dazu aufgefordert, sich zum Beispiel auf R. P. Goldberg, „Survey
of Virtual Machine Research" IEEE
Computer, Vol. 7, Nr. 6, 1974 zu beziehen. Während der 1970er übernahm
die International Business Machines Corporation als ein weiteres
Beispiel eine virtuelle Maschinenüberwachungsanordnung zur Verwendung
in ihrem VM/370 System.
-
Eine
virtuelle Maschinenüberwachungsanordnung,
auf die in der Literatur manchmal als „Hypervisor" verwiesen wird,
ist ein schlankes Stück Software,
die direkt oberhalb der Hardware abläuft und alle Hardwarebetriebsmittel
der Maschine virtualisiert. Da die Schnittstelle der virtuellen
Maschinenüberwachungsanordnung
die Gleiche ist wie die Hardwareschnittstelle der Maschine, kann
ein Betriebssystem das Vorhandensein des VMM nicht feststellen.
Folglich kann, wenn die Hardwareschnittstelle eins zu eins mit der
zugrunde liegenden Hardware kompatibel ist, dasselbe Betriebssystem
entweder oberhalb der virtuellen Maschinenüberwachungsanordnung oder oberhalb
der reinen Hardware laufen. Es ist dann möglich, mehrere Instanzen von
Betriebssystemen oder lediglich Instanzen von Betriebssystemkerneln
auszuführen,
wenn nur eine kleine Untermenge von Systemressourcen erforderlich
ist. Auf jede Instanz wird als eine virtuelle Maschine Bezug genommen.
Das Betriebssystem kann über
virtuelle Maschinen hinweg repliziert werden, oder für jede virtuelle
Maschine können
unverkennbar verschiedene Betriebssysteme verwendet werden. In jedem
Fall sind die virtuellen Maschinen vollständig autonom und sind für den Zugriff
auf die Hardwareressourcen, wie zum Beispiel Hardwareinterrupts,
von der virtuellen Maschinenüberwachungsanordnung
abhängig.
-
Es
gibt einen Bedarf an Vorrichtungen, Programmprodukten und Verfahren,
die beschleunigte Scanzeiten ermöglichen
ohne die Sicherheit aufs Spiel zu setzen. Weiterhin gibt es einen
Bedarf für eine
Vorrichtung, die eine Plattform zur Verfügung stellt, von der solche
reduzierten Scanzeiten erreicht werden können. Außerdem gibt es einen Bedarf, dass
Programmprodukte und Verfahren, die die von der Vorrichtung zur
Verfügung
gestellte geschützte Plattform
nutzen, Scanvorgänge
auf eine effizientere und sicherere Weise ausführen.
-
Wie
gesehen werden wird, versuchen die offenbarten Ausführungsformen,
den vorstehenden Bedarf zu erfüllen
und zusätzliche
Ziele zu erreichen. Die vorliegende Erfindung stellt Verfahren,
Programmprodukte und Anordnungen zur Verfügung, die in der Lage sind
zu verfolgen, welche Dateien oder Speicherbereiche einer Speichervorrichtung seit
einem letzten Virenscan verändert
worden sind. Weiterhin wird ein geschützter Bereich dafür zur Verfügung gestellt,
Variable zu speichern, die vorherige Scanvorgänge betreffen. Die Information
kann dann verwendet werden, um das Scannen nach unerwünschtem
Code oder Daten zu beschleunigen, in dem die Anzahl von gescannten
Dateien reduziert wird und/oder durch Reduzieren der Anzahl von
Bezeichnern für
unerwünschten
Code, die für
das Scannen verwendet werden.
-
Die
oben genannten Herausforderungen werden entsprechend einer Ausführungsform
der vorliegenden Erfindung von einer Anordnung angesprochen, die
einen Prozessor und einen Hauptdatenspeicher für das Speichern von Code umfasst,
der unter einem ersten Betriebssystem vom Prozessor ausgeführt wird,
eine Sicherheitsanordnung, die einen geschützten Datenspeicher aufweist,
der für
den Code unzugänglich
ist, der unter dem ersten Betriebssystem ausgeführt wird und eine Speichervorrichtung,
die in einen ersten Bereich und einen Lese-/Schreibbereich unterteilt
ist. Der erste Bereich ist unter der Steuerung der Sicherheitsanordnung
auf sichere Weise zwischen einem normalen schreibgeschützten Status
und einem beschreibbaren Status konfigurierbar. Die Sicherheitsanordnung
hält mindestens
eine vertrauenswürdige
Variable im geschützten
Datenspeicher aufrecht. Die vertrauenswürdige Variable identifiziert
das Auftreten eines letzen Scanvorgangs nach bösartigem Code auf der Speichervorrichtung
und reagiert auf eine Anfrage des Status, der mit dem letzten Scanvorgang
in Verbindung steht, durch Bezugnahme auf die vertrauenswürdige Variable
und durch Rückmelden
von einem dazu gehörigen
Ergebnis. Außerdem
ruft die Sicherheitsanordnung als Reaktion auf eine zur Verfügung gestellte
Anfrage, den ersten Bereich in den beschreibbaren Zustand zu konfigurieren,
eine Authentifizierungsprozedur aus dem geschützten Datenspeicher auf.
-
Entsprechend
einer Ausführungsform
der vorliegenden Erfindung, die die oben genannten Herausforderungen
anspricht, wird ein Verfahren zur Verfügung gestellt, das beinhaltet,
ein Sicherheitssubsystem abzufragen, um vertrauenswürdig zu
feststellen, ob seit einem letzten Scanvorgang in einen Bereich
einer Speichervorrichtung geschrieben worden ist. Das Sicherheitssubsystem
umfasst einen Datenspeicher, der für den Code unzugänglich ist, der
von einem Betriebssystem ausgeführt
wird. Diese Fest stellung macht sich Vertrauenswürdigkeit zu Nutze durch eine über das
Sicherheitssubsystem erfolgende Bezugnahme auf den unzugänglichen
Datenspeicher. Das Verfahren beinhaltet weiterhin, den Bereich nach
einem Bezeichner von unerwünschtem Code
zu scannen als Reaktion auf eine vertrauenswürdige Feststellung der Abfrage,
dass seit dem letzten Scanvorgang in diesen Bereich geschrieben
worden ist.
-
Entsprechend
einer Ausführungsform
der vorliegenden Erfindung wird ein Verfahren zur Verfügung gestellt,
das beinhaltet, ein Sicherheitssubsystem abzufragen, um vertrauenswürdig festzustellen, ob
seit einem letzten Scanvorgang in einen Bereich einer Speichervorrichtung
geschrieben worden ist. Das Sicherheitssubsystem umfasst einen Datenspeicher,
der unzugänglich
ist für
Code, der von einem Betriebssystem ausgeführt wird. Diese Feststellung macht
sich Vertrauenswürdigkeit
zu Nutze durch eine über
das Sicherheitssubsystem erfolgende Bezugnahme auf den unzugänglichen
Datenspeicher. Das Verfahren beinhaltet weiterhin festzustellen,
ob ein vorheriger Bezeichner von unerwünschtem Code in der letzte
Scanvorgang einbezogen wurde und ein Scannen des Bereichs nach dem
vorherigen Bezeichner von unerwünschtem
Code zu umgehen als Reaktion auf (1) eine Feststellung der Abfrage,
dass seit dem letzten Scanvorgang nicht in den Bereich geschrieben
worden ist und als Reaktion auf (2) eine Feststellung, dass der
vorherige Bezeichner in den letzten Scanvorgang einbezogen wurde.
-
Entsprechend
einer Ausführungsform
der vorliegenden Erfindung wir ein Verfahren zur Verfügung gestellt,
das beinhaltet, ein Sicherheitssubsystem abzufragen, um vertrauenswürdig festzustellen, ob
seit einem letzten Scanvorgang in einen Bereich einer Speichervorrichtung
geschrieben worden ist. Das Sicherheitssubsystem umfasst einen Datenspeicher,
der unzugänglich
ist für
Code, der von einem Betriebssystem ausgeführt wird.
-
Die
Feststellung macht sich Vertrauenswürdigkeit zu Nutze durch eine über das
Sicherheitssubsystem erfolgende Bezugnahme auf den unzugänglichen
Datenspeicher. Das Verfahren umfasst weiterhin das Scannen des ersten
Bereich nach bekannten Bezeichnern von unerwünschtem Code als Reaktion auf
eine vertrauenswürdige
Feststellung von besagter Abfrage, dass seit dem letzten Scanvorgang
in den ersten Bereich geschrieben worden ist, das Feststellen, ob
ein vorheriger Bezeichner von unerwünschtem Code in den letzten
Scanvorgang einbezogen wurde, und ein Scannen des Bereichs nach dem
vorherigen Bezeichner von unerwünschtem Code
zu umgehen als Reaktion auf (1) eine Feststellung der Abfrage, dass
seit dem letzten Scanvorgang nicht in den Bereich geschrieben worden
ist und als Reaktion auf (2) eine Feststellung, dass der vorherige
Bezeichner in den letzten Scanvorgang einbezogen wurde.
-
In
einer Ausführungsform
der vorliegenden Erfindung wird ein Verfahren zur Verfügung gestellt, das
beinhaltet, Dateien in einem Lese-/Schreibbereich einer Speichervorrichtung
auf bösartigen
Code zu scannen. Die Speichervorrichtung ist in einen ersten Bereich
und den Lese-/Schreibbereich unterteilt. Der erste Bereich ist auf
sichere Weise zwischen einem normalen schreibgeschützten Status
und einem beschreibbaren Status konfigurierbar. Die Konfiguration
der Bereiche erfolgt unter der Steuerung einer Sicherheitsanordnung,
die einen geschützten
Datenspeicher aufweist, der für
Code unzugänglich
ist, der unter einem Betriebssystem ausgeführt wird. Das Verfahren umfasst
weiterhin nach erfolgreichem Scannen von mindestens einer Datei,
in der kein bösartiger
Code gefunden worden ist, eine erste Sicherheitsmaßnahme der
Sicherheitsanordnung zu aktivieren und zu authentifizieren, um den
ersten Bereich in den beschreibbaren Status zu konfigurieren, wobei die
Authentifizierung aus dem geschützten
Datenspeicher heraus ausgeführt wird;
erfolgreich gescannte Dateien in den Lese-/Schreibbereich des ersten Bereichs
zu schreiben; und den ersten Bereich nach dem Schreiben von erfolgreich
gescannten Dateien in den schreibgeschützten Status zu konfigurieren.
Verschiedene Ausführungsformen
der vorliegenden Erfindung können
als ein Computerprogrammprodukt zur Verfügung gestellt werden, das ein
maschinenlesbares Medium umfassen kann, auf dem Anweisungen gespeichert
sind, die dazu verwendet werden können, einen Computer (oder
andere elektronische Vorrichtungen) zu programmieren, um einen Vorgang
entsprechend jeder der Ausführungsformen
der vorliegenden Erfindung auszuführen.
-
Die
vorliegende Erfindung wird jetzt nur auf dem Weg von Beispielen
mit Bezug auf die begleitenden Figuren beschrieben, in denen:
-
1 ein
Blockdiagramm eines Rechnersystems entsprechend einer bevorzugten
Ausführungsform
der vorliegenden Erfindung zeigt, das Ressourcen umfasst, die beschleunigtes
Scannen nach bösartigem
Code möglich
machen;
-
2 eine
vereinfachte schematische, schräge
seitliche Ansicht auf ein Plattenlaufwerk zeigt, das geschützte Bereiche,
Schreib-/Lesebereiche und integrierte Laufwerkselektronik aufweist,
die eingerichtet sind, um eine sichere Nachverfolgung von Datenreferenzen
und geschützten
Datenschutz entsprechend einer bevorzugten Ausführungsform der Erfindung zur
Verfügung
zu stellen;
-
3 ein
Blockdiagramm einer erweiterten Ansicht der integrierten Laufwerkselektronik
des in der bevorzugten Ausführungsform
der Erfindung verwendeten Plattenlaufwerks zeigt und weitere Hardware
umfasst, die peripher zur integrierten Laufwerkselektronik ist;
-
4 eine
Draufsicht auf eine einzelne Platte des Plattenlaufwerks entsprechend
einer Ausführungsform
der vorliegenden Erfindung zeigt, die ein alternatives Layout für die geschützten Bereiche
und die Schreib-/Lesebereiche aufweist;
-
5 eine
Draufsicht auf eine einzelne Platte des Plattenlaufwerks entsprechend
einer Ausführungsform
der vorliegenden Erfindung zeigt, die ein alternatives Layout für die geschützten Bereiche
und die Schreib-/Lesebereiche aufweist;
-
6 ein
Ablaufdiagramm der Logik zeigt, die Daten im Schreib-/Lesebereich
zwischenspeichert, während
sie in einem normalen Modus abläuft, in
dem eine Änderung
am geschützten
Bereich nicht stattfindet;
-
7 ein
Ablaufdiagramm zeigt, das die Logik für das Scannen aller Dateien
beschreibt, die seit einem letzten Virenscan entsprechend einer
Ausführungsform
der vorliegenden Erfindung geschrieben worden sind;
-
8 ein
Ablaufdiagramm zeigt, das die Logik für das Scannen von unveränderten
Dateien im geschützten
Bereich entsprechend einer Ausführungsform
der vorliegenden Erfindung beschreibt;
-
9 ein
Ablaufdiagramm zeigt, das die Logik für das Scannen einer Untermenge
der unveränderten
Dateien im geschützten
Bereich entsprechend einer Ausführungsform
der vorliegenden Erfindung beschreibt;
-
10 eine
Tabelle von Zeitstempeleinträgen
zeigt, einen für
jeden der Schreib-/Lesebereiche und geschützten Bereiche entsprechend
der bevorzugten Ausführungsform
der vorliegenden Erfindung, in der Zeitstempel nach jeder erfolgreichen
Ausführung
eines Virenscans in jedem der entsprechenden Bereiche in einen geschützten Datenspeicher
abgelegt werden;
-
11 ein
Blockdiagramm einer Ausführungsform
entsprechend der vorliegenden Erfindung zeigt, in der sich eine
Steuerung und ein geschützter Datenspeicher
in dem Disk Controller befinden;
-
12 ein
Blockdiagramm einer Ausführungsform
entsprechend der vorliegenden Erfindung zeigt, in der sich eine
Steuerung und ein geschützter Datenspeicher
im IDE Kabel befinden;
-
13 die
Darstellung einer Virtualisierungsschicht der Anordnung zeigt, die
die Abstraktionsebenen in einem Rechnersystem zeigt, das Virtualisierungssoftware
entsprechend einer Ausführungsform
der vorliegenden Erfindung ausführt,
in der an Stelle von einer in Hardware implementierten Steuerung
eine virtuelle Maschinenüberwachungsanordnung
verwendet wird, um den geschützten
Datenspeicher und andere Schutzfunktionen zu implementieren; und
-
14 ein
Ablaufdiagramm zeigt, das die Logik für das Scannen aller Dateien
beschreibt, die seit einem letzten Virenscan entsprechend einer
Ausführungsform
der vorliegenden Erfindung geschrieben worden sind, in der die Übertragungen
von Dateien vom Schreib-/Lesebereich zum geschützten Bereich logisch an Stelle
von physisch ausgeführt werden.
-
Während die
vorliegende Erfindung nachstehend mit Bezug auf die begleitenden
Figuren vollständiger
beschrieben wird, in denen eine bevorzugte Ausführungsform der vorliegenden
Erfindung gezeigt wird, ist es am Beginn der folgenden Beschreibung
zu verstehen, dass Personen mit Qualifikation in den entsprechenden
Wissenschaften die hier beschriebene Erfindung modifizieren können, während die
positiven Ergebnisse dieser Erfindung immer noch erreicht werden.
Dementsprechend muss die Beschreibung, die folgt, als eine an Personen
mit Qualifikation in den entsprechenden Wissenschaften gerichtete,
breit gefasste lehrende Offenbarung verstanden werden und nicht
als einschränkend
in Bezug auf die vorliegende Erfindung.
-
Sich
jetzt im Besonderen auf die begleitenden Figuren beziehend, in denen
gleiche Bezugszeichen überall
in den einzelnen Ansichten gleiche Elemente oder Schritte bezeichnen,
wird eine bevorzugte Ausführungsform
der vorliegenden Erfindung beschrieben. Eine Bezugnahme überall in
dieser Beschreibung auf „eine
bestimmte Ausführungsform", „eine Ausführungsform", oder ähnlicher
Sprachgebrauch bedeutet, dass ein bestimmtes Merkmal, eine bestimmte
Anordnung oder eine bestimmte Eigenschaft, die in Verbindung mit
der Ausführungsform beschrieben
wird, in mindestens eine Ausführungsform
der vorliegenden Erfindung einbezogen ist. Auf diese Weise kann
sich das Auftreten der Ausdrücke „in einer
bestimmten Ausführungsform", „in einer Ausführungsform" und ähnlicher
Sprachgebrauch überall
in dieser Beschreibung auf dieselbe Ausführungsform beziehen, muss dies
aber nicht unbedingt tun.
-
1 zeigt
ein Blockdiagramm eines Rechnersystems entsprechend einer bevorzugten
Ausführungsform
der vorliegenden Erfindung, das Ressourcen umfasst, die ein beschleunigtes
Scannen nach unerwünschtem
Code einschließlich
bösartigen
Codes wie zum Beispiel Viren möglich
machen. Die in 1 beschriebene veranschaulichende
Ausführungsform
kann ein Desktopcomputersystem, wie zum Beispiel eines aus der ThinkCentre
oder ThinkPad Reihe von Personal Computern, oder ein Arbeitsplatzcomputer,
wie zum Beispiel die Intellistation sein, die von der International
Business Machines (IBM) Corporation aus Armonk, New York, verkauft werden;
wie jedoch aus der folgenden Beschreibung offensichtlich werden
wird, ist die vorliegende Erfindung darauf anwendbar, die Wirksamkeit
und Sicherheit von Virenscans und Ähnlichem in jeder Datenverarbeitungsanordnung
zu steigern (ThinkCentre, ThinkPad und Intellistation sind Warenzeichen
der International Business Machines Corporation).
-
Wie
in 1 gezeigt, umfasst das Rechnersystem 100 mindestens
einen Systemprozessor 42, der mit einem schreibgeschützten Datenspeicher (ROM) 40 und
einem Systemdatenspeicher 46 über einen Prozessorbus 44 verbunden
ist. Der Systemprozessor 42, der einen von der IBM Corporation
hergestellten Prozessor der PowerPCTM Reihe
umfassen kann, ist ein allgemein verwendbarer Prozessor, der beim
Einschalten innerhalb des ROM 40 gespeicherten Boot-Code 41 ausführt und
danach Daten unter der Steuerung der im Systemdatenspeicher 46 abgelegten
Betriebssystem- und Anwendungssoftware verarbeitet. Der Systemprozessor 42 ist über den
Prozessorbus 44 und die Host-Brücke 48 mit dem lokalen
Peripheral Component Interconnect (PCI) Bus 50 verbunden.
-
Der
lokale PCI-Bus 50 unterstützt den Anschluss einer Anzahl
von Vorrichtungen, einschließlich
Adaptern und Brücken.
Unter diesen Vorrichtungen befindet sich der Netzwerkadapter 66,
der das Rechnersystem 100 mit dem LAN 10 verbindet
und der Graphikadapter 68 der das Rechnersystem 100 mit
der Anzeigeeinheit 69 verbindet. Die Kommunikation auf
dem lokalen PCI-Bus 50 wird von dem lokalen PCI-Controller 52 gesteuert,
der wiederum über den
Datenspeicherbus 54 mit dem nichtflüchtigem Speicher mit wahlfreiem
Zugriff (NVRAM) 56 verbunden ist. Der lokale PCI-Controller 52 kann
mit zusätzlichen
Bussen und Vorrichtungen über
eine zweite Host-Brücke 60 verbunden
werden. Der EIDE Disk Controller 72 steuert die Zugriffe
oder Bezugnahmen, die einschließlich
Prozessor 42 von jeder anderen Komponente der Anordnung
auf und von Plattenlaufwerk 200 gemacht werden.
-
Das
Rechnersystem 100 umfasst weiterhin den Industry Standard
Architecture (ISA) Bus 62, der mit dem lokalen PCI-Bus 50 über die
ISA Brücke 64 verbunden
ist. Verbunden mit dem ISA Bus 62 ist ein Input/Output-
(I/O) Controller 70, der die Kommunika tion zwischen dem
Rechnersystem 100 und angeschlossenen peripheren Vorrichtungen
wie zum Beispiel einer Tastatur und einer Maus steuert. Außerdem unterstützt der
I/O Controller 70 die externe Kommunikation des Rechnersystems 100 über serielle
und parallele Anschlüsse.
-
Jene
mit gewöhnlicher
Qualifikation in der Technik weisen eine Arbeitserfahrung mit Betriebssystemen
und Dateisystemen im Allgemeinen auf. In Bezug auf FAT Dateisysteme
wird Kapitel acht aus Advanced MS-DOS: The Microsoft guide for Assembly
Language and C programmers, von Ray Duncan, ISBN 0-914845-77-2, 1986, das die
Struktur eines FAT Dateisystems beschreibt, hierin als Referenz aufgenommen.
Während
die FAT Dateistruktur bei der bevorzugten Ausführungsform verwendet wird, können andere
Dateistrukturen verwendet werden, ohne vom Geist und Schutzumfang
der vorliegenden Erfindung abzuweichen.
-
Wie
hierin verwendet, ist ein Cluster eine logische Einheit, die vom
Dateisystemtreiber des Betriebssystems verwendet wird, um auf Daten
auf dem Plattenlaufwerk 200 zuzugreifen. Jedes logische Cluster
umfasst eine Anzahl von physischen Sektoren, die normalerweise zusammenhängend sind.
Es wird davon ausgegangen, dass jede FAT Partition ein Verzeichnis
von Dateien, zwei Kopien einer Dateizuordnungstabelle und einen
Datenbereich enthält. Das
Verzeichnis der Dateien umfasst den Namen jeder Datei und ihre Attribute,
einschließlich
eines Startclusters, relevanter Zeiten usw. Die Dateizuordnungstabelle
enthält
eine verbundene Liste von Clustern, aus denen jede Datei besteht.
-
Ein
Betriebssystem, das aus dem Systemdatenspeicher 46 heraus
abläuft,
speichert Computerdateien direkt in einem vorab zugewiesenen Cluster, oder
speichert, wenn eine Datei zu groß ist, um in ein einzelnes
Cluster zu passen, die Computerdateien durch Einteilen der Datei
in Fragmente und Speichern dieser Fragmente in separaten Clustern
auf der Festplatte 200. Das FAT Dateisystem ermöglicht, dass
das Betriebssystem den Ort und die Abfolge jedes Fragments einer
Datei verwaltet, und ermöglicht auch,
dass das Betriebssystem identifiziert, welche Cluster nicht zugeordnet
und für
neue Dateien verfügbar
sind. Wenn der Computer 100 auf eine Datei Bezug nimmt,
dient das FAT Dateisystem als Bezug für das erneute Zusammensetzen
jedes Fragments der Datei in eine einzelne Einheit, die vom Dateisystemstreiber
assembliert wird.
-
Für die meisten
Benutzer ist festgestellt worden, dass die überwiegende Mehrheit der in
einem Rechnersystem gespeicherten Daten über die Zeit unverändert bleibt.
Scannen nach unerwünschtem oder
bösartigem
Code, wie zum Beispiel Virenscans, werden typischerweise auf einer
wöchentlichen
Basis ausgeführt.
Die Scanvorgänge
werden mit Bezug auf eine Virendefinitionsdatei ausgeführt, die
häufig aktualisiert
wird. Mit der Zeit jedoch besteht die Virendefinitionsdatei selbst
hauptsächlich
aus unveränderten
Virenbezeichnern wie Virensignaturen, Codefragmenten, Datenfragmenten,
Hashes usw. Deshalb besteht, wie festgestellt worden ist, die überwiegende Mehrheit
von Scanaktivitäten
aus unveränderten
Bezeichnern, die gegen unveränderte
Daten gescannt werden. Die verschiedenen Aspekte und Ausführungsformen
der vorliegenden Erfindung haben zum Ziel, das Maß an Zeit
zu reduzieren, die notwendig ist, um ein Rechnersystem nach unerwünschtem Code
wie zum Beispiel Viren zu scannen, in dem eine Plattform zur Verfügung gestellt
wird, mit deren Hilfe eine scannende Anwendung sicher feststellen
kann, welche der Daten seit einem letzten erfolgreichen Scanvorgang
unverändert
sind, welches normalerweise die Mehrheit der Daten ist, und durch
Umgehen des Scannens von unveränderten
Bezeichnern, welches die Mehrheit der Bezeichner ist.
-
2 zeigt
eine vereinfachte schematische, schräge seitliche Ansicht auf ein
Plattenlaufwerk 200, das geschützte Bereiche 202,
einen Schreib/Lese-Bereich 204 und eine integrierte Laufwerkselektronik 201 aufweist,
die eingerichtet sind, um eine sichere Nachverfolgung von Bezugnahmen
auf Daten zur Verfügung
zu stellen und sicheren Schutz der Daten entsprechend einer bevorzugten
Ausführungsform
der Erfindung zur Verfügung
zu stellen. In anderen Ausführungsformen
wird gezeigt werden, dass das Plattenlaufwerk 200 ein konventionelles
Plattenlaufwerk ist und die sichere Nachverfolgung und die Merkmale
zum geschützten
Schutz der Daten an anderer Stelle in der Anordnung zur Verfügung gestellt werden.
Da jedoch in der gezeigten, bevorzugten Ausführungsform gemäß 2 die
Mehrheit der in einem Rechnersystem aufgelaufenen Daten in Bezug
auf einen letzten Virenscan unverändert ist, ist eine Mehrheit
von einzelnen Scheiben oder Platten 202 für unveränderte Daten
reserviert, die erfolgreich nach bösartigem Code gescannt worden
sind. Eine einzelne Scheibe des Plattenlaufwerks, Platte 204, ist
reserviert für
Daten, die seit einem letzten erfolgreichen Scanvorgang geschrieben
worden sind. Im inneren des Laufwerks 200 hält die integrierte
Laufwerkselektronik 201 auf der Platte 204 einen
Cachespeicher aus neu geschrieben Dateien aufrecht und hält die geschützten Platten 202 während des
normalen Betriebs in einem schreibgeschützten Zugriffmodus. Extern
zu Laufwerk 200 stellt die integrierte Laufwerkselektronik 201 eine
konventionelle Schnittstelle zum Dateisystemstreiber dar, in dem
das ganze Plattenlaufwerk beschreibbar zu sein scheint. Diese Konfiguration
stellt eine Plattform zur Verfügung,
in der (1) bösartiger
Code, der aus dem Betriebssystem heraus abläuft, außerstande ist, die geschützten Datenbereiche 202 zu ändern und
in der (2) dem Datum der Datei und seinen Attributdaten vertraut
werden kann. Weitere Implementierungsdetails werden im Zuge der
folgenden Beschreibung zur Verfügung
gestellt.
-
Hierin
für das
Plattenlaufwerk 200 nicht beschriebene Implementierungsdetails
werden als üblich
betrachtet. Zum größten Teil
sind Details, die die Konstruktion von Festplattenlaufwerken betreffen, weggelassen
worden, soweit wie solche Details nicht notwendig sind, um ein vollständiges Verständnis der vorliegenden
Erfindung zu erlangen.
-
3 zeigt
eine erweitertes Sicht eines Blockdiagramms der integrierten Laufwerkselektronik 201 von
einem in der bevorzugten Ausführungsform
der Erfindung verwendeten Plattenlaufwerk 200 und umfasst
weitere Hardware, die peripher zur integrierten Laufwerkselektronik
ist. Die integrierte Laufwerkselektronik 201 von Festplatte 200 ist
durch das Kabel 308 über
die Anschlüsse 307 und 306 mit
der Anordnung 100 verbunden. Der Anschluss 306 ist
ein Bestandteil des Festplattenlaufwerks 200, während der
Anschluss 307 einen Teil des Kabels 308 ausformt.
Die Schnittstelle 304 bedient die Verbindungsschnittstelle
auf der untersten Ebene und ist als ein Standardchip implementiert,
der dem ATA Standard entspricht und weithin auf Festplattenlaufwerken
gefunden wird, um die Schnittstelle zu einem EIDE Controller, wie
zum Beispiel dem Laufwerkscontroller 72 zu bilden. Obwohl
IDE Laufwerke in der bevorzugten Ausführungsform benutzt werden,
können
SCSI-Laufwerke und andere Speichervorrichtungen benutzt werden,
ohne vom Schutzumfang der vorliegenden Erfindung abzuweichen. Der
Controller 301 bedient die Sicherheits- und Schutzmerkmale
der vorliegenden Ausführungsform
und funktioniert, wie hierin beschrieben und wie mit Bezug auf die
Ablaufdiagramme beschrieben werden wird. Der Controller 301 kann
als Mikrocontroller wie zum Beispiel ein H8 implementiert werden
und ist mit einem geschützten Datenspeicher 302 verbunden.
Der geschützte
Datenspeicher 302 ist nur durch den Controller 301 adressierbar,
und ein Virus, der unter einem vom Systemprozessor 42 aus
dem Systemdatenspeicher 46 ausgeführten Betriebssystem läuft, ist
auf diese Weise nicht in der Lage, auf den geschützten Datenspeicher 302 zuzugreifen.
Durch Ein/Ausgabe-Befehle speichert der Controller 301 für das Virusscannen
spezifische Variable in nichtflüchtigen
Teilbereichen des geschützten
Datenspeichers 302. Außerdem
führt der
Controller 301 Authentifizierungscode aus dem geschützten Datenspeicher 302 heraus aus,
um Authentifizierungsdienste für
eine Antivirus Scansoftwareanwendung zur Verfügung zu stellen, die die Verwendung
der Sicherheits- und Schutzmerkmale der bevorzugten Ausführungsform
anfordert. Zusätzlich
zu den nichtflüchtigen
Teilbereichen umfasst der geschützte
Datenspeicher 302 Teilbereiche an Speicher mit wahlfreiem
Zugriff, in denen der Authentifizierungscode mit einer höheren Rate
der Geschwindigkeit auszuführen
ist, als in den nichtflüchtigen
Teilbereichen, und für
das Speichern von temporären
Variablen und Ähnlichem.
Zum Beispiel ist, wie in der Beschreibung der Ablaufdiagramme darauf
verwiesen wird, eine Authentifizierung durch den Controller 301 erforderlich,
um die geschützten Bereiche 202 von
schreibgeschützten
auf Schreib/Lese-Modi des Zugriffs zu ändern.
-
In
einer Ausführungsform
wird durch den Controller 301 ein digitales Signaturverfahren
implementiert und geschützter
Datenspeicher 302 für
den Zweck, zuvor festgelegte sichere Vorgänge und Dienste, wie zum Beispiel
jene, die in den Ablaufdiagrammen gezeigt werden, zu authentifizieren.
Die geschützten
Vorgänge
oder Dienste werden von einer Anwendung, wie zum Beispiel einem
Virenscanner angefordert. Es wird angenommen, dass die Anwendung
einen privaten Schlüssel
und einen öffentlichen
Schlüssel
aufweist, und es wird angenommen, dass der Controller 301 in
die öffentliche
Schlüsselinformation
der Anwendung eingeweiht ist. Entsprechend diesem Verfahren fordert
die Anwendung eine sichere Anwendung an, die eine Authentifizierung durch
den Controller 301 erfordert. Als Antwort darauf erzeugt
der Controller 301 eine einmalige (einmalige Verwendung)
Zufallszahl N1, und überträgt N1 an
die Anwendung. Als Antwort darauf signiert die Anwendung N1 digital
durch Anwendung einer Hashed Message Authentication Code (HMAC) Funktion,
um N1 und den privaten Schlüssel
der Anwendung zu kombinieren und um einen entsprechendes einmaliges
Kennwort P1 zu erzeugen. SHA-1 wird als das sichere Hashverfahren
verwendet und von diesem wird derzeit angenommen, dass es immun
ist gegenüber
Verzeichnisangriffen. Die Anwendung überträgt dann P1 auf den Controller 301.
Als Reaktion darauf entschlüsselt
der Controller 301 P1 unter der Voraussetzung der Kenntnis
des zuvor festgelegten und vereinbarten SHA-1 HMAC und des öffentlichen
Schlüssels
der Anwendung, um die Authentizität des Kennworts P1 zu überprüfen. Wenn diese
bestätigt
ist, wird der Anwendung Zugriff auf die angeforderten geschützten Ressourcen
gewährt.
-
Andere
Authentifizierungsverfahren können verwendet
werden. In einer Ausführungsform
werden durch Hardware unterstütze
digitale Signaturverfahren angewendet. Der öffentliche Schlüssel wäre dem Controller 301 auf
dem Plattenlaufwerk 200 bekannt (oder an anderen Orten,
wie in anderen Ausführungsformen
beschrieben) und der private Schlüssel würde an irgendeinem geschützten Ort
aufbewahrt, wie zum Beispiel in einem TCG TPM oder einer Smart Card.
Für Leser,
die an Einzelheiten zu TPM interessiert sind, kann die TCG TPM Spezifikation
Version 1.2 im Internet unter www.trustedcomputinggroup.org gefunden
werden. Die Authentifizierung zum TPM oder der Smart Card könnte dann über einen
geschützten
Weg durchgeführt
werden, oder biometrisch, wie zum Beispiel einen Augennetzhautscan
oder ein Subsystem zur Fingerabdruckerkennung, um auf diese Weise
die erforderliche Berechtigung zu erzeugen.
-
Ebenso
kann für
die Ausführungsform
der virtuellen Maschinenüberwachungsanordnung,
die in 13 gezeigt wird, bei der die
Funktion des Controllers 301 in die virtuelle Maschinenüberwachungsanordnung
eingebettet ist, die Authentifizierung durchgeführt werden, in dem man die
virtuelle Maschinenüberwachungsanordnung
die Steuerung der Tastatur und der Anzeige (in 13 nicht
gezeigt) übernehmen
lässt,
und entweder direkt eine Anwendung ausführt, die eine Authentifizierung
eines Kennworts ermöglicht,
oder eine sichere virtuelle Maschine zur Verfügung stellt, in der solch ein
Anwendung ablaufen würde.
Wiederum würde
dieses Kennwort wahrscheinlich nicht direkt zur Hardwaresteuerung übermittelt
werden, sondern vielmehr zusammen mit einer Zufallszahl verwendet
werden, um zusätzlichen Schutz
vor Verzeichnisangriffen zur Verfügung zu stellen.
-
In
einer Ausführungsform
könnte
ein direkter Weg von einem Authentifizierungsmedium zu der Hardware,
die die Authentifizierungsprüfung
zur Verfügung
stellt, einen geschützten „vertrauenswürdigen Pfad" zur Verfügung stellen,
in dem ein gegen einen Virus immunes Kennwort unmittelbar eingegeben würde. In
dieser Ausführungsform
könnte
etwas so einfaches wie ein Taster statt ein Kennwort verwendet werden,
da ein Virus keinen Weg finden würde, den
Taster physisch zu „drücken".
-
In
einer Ausführungsform,
in der Einfachheit erwünscht
ist, könnte
ein einfaches Kennwort verwendet werden und würde funktionieren. Jedoch könnte ein
Verfahren so einfach wie ein unmittelbares Kennwort von einem speziell
entworfenen Virus oder Trojaner geknackt werden, der auf gerade
solch eine Authentifizierung hin abhorcht. Dennoch stellt ein unmittelbares
Kennwort einen minimalen Grad an Sicherheit zur Verfügung und
kann sofort nach einem Virenscan ausgeführt werden, um das Risiko zu
reduzieren.
-
Die
Plattform macht sich die Vertrauenswürdigkeit von Bezugnahmen auf
den geschützten
Datenspeicher 302 zu Nutze, der durch bösartigen Code unerreichbar
ist, entweder durch Bezugnahme auf den geschützten Datenspeicher in der
Form des Ausführens
des Authentifizierungscodes oder durch Bezugnahme auf gespeicherte
Variablen, wie zum Beispiel Zeitstempel, Datei- oder Clusterattribute und Ähnliches,
die im geschützten
Datenspeicher 302 abgelegt sind.
-
In
einer alternativen Ausführungsform,
in der ein geschützter
Datenspeicher nicht verfügbar
ist, sind vertrauenswürdige
Variable wie zum Beispiel Zeitstempel und Ähnliches in einem (nicht angezeigten)
ungeschützten
Datenspeicher in verschlüsselter Form
abgelegt. Während
es sein kann, dass dieser Ansatz nicht so sicher ist, wie Datenspeicher
zu verwenden, der wirklich unzugänglich
ist, stellt dies einen minimalen Grad an Funktionalität zur Verfügung. Scanprogramme,
die von den vertrauenswürdigen Variablen
abhängen,
können
auf den ungeschützten Datenspeicher
dieser Ausführungsform
zuzugreifen und die vertrauenswürdigen
Variablen erhalten und ihre Authentizität mit Hilfe von Standardentschlüsselungsverfahren
feststellen. In dem Maß in
dem die Verschlüsselung
Sicherheit zur Verfügung
stellt, ist der Inhalt der Variablen für bösartigen Code unerreichbar.
Für den
Fall, dass bösartiger
Code auf die vertrauenswürdigen
Variablen zugreift, die im ungeschützten Datenspeicher dieser
Ausführungsform abgelegt
sind, erlauben Standardentschlüsselungsverfahren
die Entdeckung von solchen Zugriffen. Wenn beim Entschlüsseln der
vertrauenswürdigen Variablen
ein unredliches Vorgehen vom scannenden Programm wahrgenommen wird,
werden die hierin beschriebenen Beschleunigungsverfahren umgangen,
und das Scannen nach bösartigem
Code wird für
alle auf dem Plattenlaufwerk gespeicherten Dateien ausgeführt.
-
Jetzt
zur Beschreibung der in 3 gezeigten Ausführungsform
zurückkehrend,
stellt der Controller 301 die gleiche Schnittstelle für low-level
Schaltungen 305 zur Verfügung, wie es die ATA Schnittstelle 304 in
Abwesenheit des Controllers 301 tun würde. Low-level Laufwerksschaltungen 305 steuern
low-level Plattenlaufwerksfunktionen
einschließlich
des Anfahrens des Spindelmotors und der Drehgeschwindigkeit, Aktuatorbewegungen,
Fehlerkorrektur und den Lese- und Schreibstrom für geschützte Platten 202 und
die Schreib/Lese-Platte 204, einschließlich dem Strom für den Kopf
und dem Protokoll für
die Bitverschlüsselung.
-
In
einer Ausführungsform
können
die nichtflüchtigen
Teilbereiche des geschützten
Datenspeichers 302 oder Unterteilbereiche davon als ein
geschützter
Sektor oder eine geschützte
Spur auf der Festplatte selbst implementiert werden.
-
4 zeigt
eine Draufsicht auf eine einzelne Platte des Plattenlaufwerks entsprechend
einer Ausführungsform
der vorliegenden Erfindung, die ein alternatives Layout für die geschützten Bereiche
und Schreib/Lese-Bereiche aufweist. In der in 4 gezeigten
Ausführungsform
können,
anstatt die geschützten
und Schreib/Lese-Bereiche als separate Platten aufzuteilen, die
Oberflächen
jeder der einzelnen Platten oder aller Platten in geschützte Bereiche 402 und
Schreib/Lese-Bereiche 404 eingeteilt
werden. Dateien, die seit einem letzten erfolgreichen Scanvorgang
geschrieben worden sind, werden auf den äußeren Schreib/Lese-Spuren 404 zwischengespeichert.
Dateien, die in einem letzen Scanvorgangs erfolgreich gescannt wurden,
werden auf den geschützten
inneren Spuren 402 aufrecht erhalten.
-
5 zeigt
eine Draufsicht auf eine einzelne Platte eines Plattenlaufwerks
entsprechend einer Ausführungsform
der vorliegenden Erfindung, die ein alternatives Layout für die geschützten Bereiche
und Schreib/Lese-Bereiche aufweist. In der in 5 gezeigten
Ausführungsform
können,
anstatt die geschützten
und die Schreib/Lese-Bereiche in Form von separaten Platten oder
separaten Spuren aufzuteilen, geschützte Bereiche 502 und
Schreib/Lese-Bereiche 504 logisch durch aufrecht erhalten
einer Tabelle im geschützten
Datenspeicher 302 durch den Controller 301 nachverfolgt
(ausgewiesen) werden. Auf diese Weise muss die Aufteilung zwischen geschützten und
Schreib/Lese-Bereichen nicht physisch zusammenhängend sein, wie in anderen
Ausführungsformen.
Die durch den Controller 301 nachverfolgten Bereiche können Cluster
(logisch) oder Sektoren (physisch) oder Cluster oder Gruppen von Sektoren
oder sogar einzelnen Spuren sein. Cluster zu verfolgen ist jedoch
am besten geeignet, da das Verzeichnis auf der Platte als Cluster
aufrecht erhalten wird und die nichtflüchtigen Teilbereiche der Tabelle
verwendet werden, um die Bereiche, die normalerweise in geschütztem Datenspeicher 302 implementiert
würden,
im Verzeichnis auf der Festplatte selbst zu verfolgen. In zu anderen
Ausführungsformen ähnlicher
Weise, erlangt die Feststellung bezüglich dessen, ob sich Dateien
geändert
haben, Vertrauenswürdigkeit
durch die Bezugnahme auf die in dem geschützten Datenspeicher 302 aufrecht
erhaltene Tabelle, die für
einen Virus unzugänglich
ist, der vom Betriebssystem unter der Steuerung des Hauptprozessors 42 ausgeführt wird.
-
Der
Controller 301 und der geschützte Datenspeicher 302 formen
in der Auswirkung eine Sicherheitssubsystemplattform aus, durch
die eine Antivirus Scananwendung in der Lage ist, vertrauenswürdig Antivirusparameter
festzustellen, um die Effizienz von Antivirusscans zu verbessern.
Da Antivirusprogramme auf der Ebene von Dateien und nicht von Clustern
ablaufen und da der Dateisystemstreiber des Betriebssystems per
se Cluster und nicht Dateien schreibt, korreliert der Controller 301 Cluster
mit Dateinamen für
Cluster, die seit dem letzten erfolgreichen Scannen geschrieben
worden sind. Dies wird für
jedes Cluster durch Bezugnahme auf die Verzeichnis- und Dateizuordnungstabelle
auf der Festplattenpartition durchgeführt und für jedes Cluster, das vom Dateisystemstreiber
geschrieben wird, um den entsprechenden Dateinamen für die Dateien
zu erhalten, die im Bereitstellungsbereich des Schreib/Lese-Bereiches 204 zwischengespeichert sind.
Wie in weiterem Detail beschrieben werden wird, werden diese im
Schreib/Lese-Bereich 204 gespeicherten Dateien schließlich verschoben
zu oder umgesetzt in einen Teilbereich des geschützten Bereichs, sobald sie
erfolgreich nach bösartigem
Code gescannt worden sind.
-
In
einer Ausführungsform
kann als eine Alternative zum Zwischenspeichern die ganze Platte
im Schreib/Lese-Modus verbleiben. In dieser Ausführungsform agieren der Controller 301 und
der geschützte
Datenspeicher 302, um sicher zu verfolgen, welche Bereiche
der Festplatte sich seit dem letzten Virenscan geändert haben,
in dem eine Liste von geschriebenen Clustern im geschützten Datenspeicher 302 Aufrecht
erhalten wird. Die Liste der Dateien, die sich seit dem letzten
Virenscan geändert
haben, kann dann, wie oben beschrieben, aus dem Verzeichnis für die Antivirussoftware
abgeleitet werden. Diese Ausführungsform
stellt verglichen mit zwischengespeicherten Ausführungsformen, die geschützte Bereiche
aufweisen, einen reduzierten Grad an Sicherheit zur Verfügung.
-
6 zeigt
ein Ablaufdiagramm der Logik, die Daten im Schreib/Lese-Bereich
zwischenspeichert, während
sie in einem normalen Modus läuft,
in dem eine Änderung
am geschützten
Bereich nicht stattfindet. Die in 6 gezeigte
Logik ist in dem Controller 301 gemäß 3 implementiert.
Der zwischenspeichernde Prozess beginnt bei 602, wenn vom
Dateisystemstreiber des Betriebssystems eine Bezugnahme auf das
Festplattenlaufwerk empfangen wird. Eine erste Abfrage wird durchgeführt, um
in 604 festzustellen, ob die Bezugnahme eine schreibende
Bezugnahme oder eine lesende Bezugnahme ist. Wenn in 604 eine
Feststellung getroffen wird, dass die Bezugnahme eine schreibende
Bezugnahme ist, werden die Daten in 606 in den Schreib/Lese-Bereich 204 geschrieben.
Wenn in 604 die Bezugnahme eine lesende Bezugnahme ist,
wird eine zweite Feststellung in 608 getroffen, ob die
Daten im Schreib/Lese-Bereich 204 existieren. Wenn in 608 festgestellt
wird, dass die Daten im Schreib/Lese-Bereich existieren, werden
die Daten in 610 aus dem Schreib/Lese-Bereich 204 gelesen.
Andernfalls werden, wenn in 608 festgestellt wird, dass
die Daten nicht im Schreib/Lese-Bereich 204 existieren,
die Daten aus dem geschützten
Bereich 202 gelesen.
-
7 zeigt
ein Ablaufdiagramm, das die Logik für das Scannen aller Dateien
beschreibt, die seit einem letzten Virenscan entsprechend einer
Ausführungsform
der vorliegenden Erfindung geschrieben worden sind. Die rechts von
der punktierten Linie in 7 gezeigten Prozesse werden
während
des Vorgangs des Scannens von Dateien im Schreib-/Lese-Bereich 204 durch
Antivirussoftware ausgeführt. Die
links von der punktierten Linie angezeigten Prozesse werden von
dem Controller 301 der integrierten Laufwerkselektronik 201 des
Festplattenlaufwerks 200 als Reaktion auf die von der Antivirus
Softwareanwendung ergriffenen Maßnahmen ausgeführt. Die
gleiche Konvention wird für
die 8 und 9 verwendet, das heißt Aktionen
von Anwendungen auf der rechten Seite und Reaktionen des Controllers 301 auf
der linken Seite. Die Antivirussoftware fordert in 701 zuerst
ein Verzeichnis von Dateien an, die seit dem letzten Virenscan geschrieben
wurden. Als Antwort liefert Controller 301 in 702 ein
Verzeichnis von Dateien im Schreib/Lese-Bereich 204. Die Antivirussoftware
scannt dann in 704 jede Datei gegen alle bekannten Virenbezeichner
nach Viren. Bezeichner oder Signaturen von bösartigem Code nehmen normalerweise
die Form eines Hash ein, können aber
andere Formen annehmen und umfassen ein Codefragment, ein Datenfragment
und einen Eintrag in die Registry, um die Registry des Betriebssystems zu
scannen. Die fehlerbehebende Aktion 706 wird dann ausgeführt, wenn
ein Virus im Schreib-/Lese-Bereich 204 gefunden wird. Nach
erfolgreicher Fertigstellung des Virenscans protokolliert die Antivirussoftware
dann in 707 auf sichere Weise das Datum eines neuen erfolgreichen
Abschlusses eines Virenscans für
die Dateien im Schreib/Lese-Bereich 204. Da die Anforderung,
den neuen erfolgreichen Abschlusstermin des Virenscans sicher zu
protokollieren, einen Schreibvorgang in den geschützten Datenspeicher 302 einschließt, antwortet
der Controller 301 auf solche eine Anforderung zu Beginn
mit der Authentifizierungsprozedur in 708. Die Authentifizierungsprozedur
in 708 kann jede der zuvor hierin beschriebenen Authentifizierungsprozeduren
sein. Wenn die Authentifizierung in 708 erfolgreich ist, schreibt
der Controller 301 in 709 einen Zeitstempel in
den geschützten
Datenspeicher 302 des Schreib/Lese-Bereiches 204.
Dieser Zeitstempel stellt den Zeitpunkt dar, zu dem der letzte erfolgreiche Virenscan
beendet wurde und wird später
dazu verwendet, das Scannen in anschließenden Scanvorgängen weiter
zu reduzieren. Danach fordert die Antivirussoftware in 710 eine
Leerung des Cachespeichers von den erfolgreich gescannten Dateien
an. Als Antwort auf die Anforderung in 710 führt der
Controller 301 die Authentifizierungsroutine 712 aus.
Wenn die Authentifizierung 712 erfolgreich verläuft, wird das
Zugriffsverfahren auf die geschützten
Be reiche 202 in 713 in den Schreib/Lese-Modus
geändert
und die Dateien aus dem Schreib/Lese-Bereich 204 werden
in 714 in den geschützten
Bereich verschoben. Als ein Teil dieses Transportvorgangs werden
die erfolgreich gescannten Dateien nach dem erfolgreich Schreiben
der gescannten Dateien in die geschützten Bereiche 202 aus
dem Schreib/Lese-Bereich 204 gelöscht. Der Zugriffsmodus der
geschützten
Bereiche 202 wird dann in 715 in den schreibgeschützten Zugriffsmodus
geändert
und eine Bestätigung
wird an die Antivirussoftware zurückgegeben. Auf diese Weise
wird eine große
Anzahl von Bezeichnern, alle Bezeichner, gegen eine Minderheit von
Dateien gescannt, nur jene Dateien, die sich seit dem letzten Scanvorgang
geändert
haben. 8 zeigt ein Ablaufdiagramm, das die Logik für das Scannen
von unveränderten
Dateien im geschützten
Bereich entsprechend einer Ausführungsform
der vorliegenden Erfindung beschreibt. Die Antivirussoftware fordert zu
Beginn in 802 ein Verzeichnis von Dateien an, die seit
dem letzten Virusscan nicht geschrieben worden sind. Als Antwort
darauf gibt der Controller 301 in 804 ein Verzeichnis
von Dateien in den geschützten
Bereichen 202 zurück.
Diese Dateien müssen
nicht gegen Bezeichner gescannt werden, die in einen vorherigen
Scanvorgang einbezogen wurden. Auf diese Weise scannt die Antivirussoftware
in 806 alle Dateien in den geschützten Bereichen 202 nur
gegen neu eingebrachte Bezeichner, die in einen vorherigen Scanvorgang
nicht einbezogen waren. Diese neuen Bezeichner werden typischerweise
auf einer wöchentlichen
Basis aus dem Internet heruntergeladen und stellen eine Minderheit
des Satzes von Bezeichnern in der Datei zur Virendefinition dar.
Wenn eine fehlerbehebende Aktion in 808 erforderlich ist,
wie zum Beispiel wenn ein Virus gefunden wurde, muss diese fehlerbehebende
Aktion in 808 in Bezug auf die Daten in dem geschützten Bereich 202 auftreten,
der unter normalem Betriebs modus auf einen schreibgeschützten Modus
eingestellt ist. Auf diese Weise ist es, um die fehlerbehebende
Aktion in 808 auszuführen,
notwendig, den geschützten
Bereich 202 in einen beschreibbaren Modus zu ändern. Wenn
daher die fehlerbehebende Aktion in 808 erforderlich ist,
authentisiert die Antivirussoftware in 812 den Veränderungsvorgang
im Zugriffsmodus und, wenn die Authentifizierung in 812 Erfolg
war, werden die geschützten
Bereiche 202 in 813 in einen Schreib/Lese-Modus
geändert.
Der Controller 301 ermöglicht dann
in 814, dass die fehlerbehebende Maßnahmen 808 in den
geschützten
Bereichen 202 ergriffen werden. Der fehlerbehebenden Aktion
folgend, ändert der
Controller 301 in 815 das Zugriffsverfahren in
den geschützten
Bereichen 202 zurück
zum schreibgeschützten
Zugriffsverfahren. Sobald die Virenscans vollständig und erfolgreich sind,
protokolliert die Antivirussoftware für die geschützten Bereiche 202 auf sichere
Weise das neue erfolgreichen Abschlussdatum in 818, in
dem sie das Protokoll vom Sicherheitssubsystem anfordert. Beim Erhalten
einer solchen Anforderung ruft der Controller 301 in 819 die
Authentifizierungsroutine auf und schreibt, wenn diese erfolgreich
verläuft,
in 820 einen Zeitstempel für die erfolgreiche Fertigstellung
des Scanvorgangs in den geschützten
Datenspeicher 302 für
die geschützten Bereiche 202.
Es ist dieser Zeitstempel, auf den während des Scanvorgangs in 806 Bezug
genommen wird bei der Feststellung, welche Bezeichner seit dem letzten
Scandatum neu eingebracht worden sind. Der Feststellung kann vertraut
werden, weil die Zeitstempel in dem geschützten Datenspeicher 302 abgelegt
sind, der nur für
den Controller 301 zugänglich
ist und der für
bösartigen
Code unzugänglich
ist, der unter dem Betriebssystem von Systemprozessor 42 abläuft. Nachdem
der Zeitstempel erfolgreich in den geschützten Datenspeicher 302 geschrieben wurde,
wird eine Bestätigung
an die Anti virussoftware gesandt. Auf diese Weise wird nur eine
kleine Anzahl von Bezeichnern, nur jene Bezeichner, die seit dem
letzten Scanvorgang (wie über
den Zeitstempel überprüft) neu
heruntergeladen worden sind, gegen die Mehrheit der Dateien, die
unveränderten
Dateien gescannt, die sich in den geschützten Bereichen 202 befinden.
-
Die 9 zeigt
ein Ablaufdiagramm, das die Logik für das Scannen einer Untermenge
der unveränderten
Dateien im geschützten
Bereich entsprechend einer Ausführungsform
der vorliegenden Erfindung beschreibt. Diese Ausführungsform
ist der gemäß 8 ähnlich und
erlaubt es weniger als alle Dateien im geschützten Bereich zu scannen, wenn neue
Bezeichner heruntergeladen werden. Dies wird in 906 erreicht
durch Identifizieren, welche der Dateien in den geschützten Bereichen 202 neuer
sind als das Datum, von dem bekannt ist, dass die Existenz eines
neuen Virus bekannt geworden ist. Daher würden diese Bezeichner, wenn
sie aus dem Internet heruntergeladen werden, eine solche Information
zum Datum des ersten Bekanntwerdens enthalten, wenn dies anwendbar
ist. Den Datumsangaben der Dateien in den geschützten Bereichen 202 kann
vertraut werden, da die geschützten
Bereiche während
des normalen Betriebs in einem schreibgeschützten Zugriffsmodus aufrecht
erhalten werden und nur durch authentifizierte Prozeduren geändert werden
können.
Die Antivirussoftware kann dann das Datum des ersten Auftretens
des Virus mit dem Änderungsdatum
der Dateien vergleichen und nur jene Dateien scannen, die nach dem
Datum des ersten Bekanntwerdens des Virus erzeugt oder modifiziert
worden sind.
-
Bei
den Ausführungsformen
gemäß der 7, 8 und 9 ist,
obwohl Code, der aus dem Betriebssystem heraus ausgeführt wird,
lesenden Zugriff auf die geschützten
Bereiche 202 aufweist, dieser Code nicht widersprüchlich zu
den hierin be schriebenen erfinderischen Konzepten, die geschützte Bereiche 202 als
Teil des Sicherheitssubsystems zu betrachten, weil die geschützten Bereiche 202 normalerweise
für das
Schreiben nicht zugänglich
sind. Diese Bereiche sind nur zum Schreiben verfügbar sofort nachdem der Antivirusscan
beendet ist und die Antivirussoftware aktiv bestimmt hat, dass kein
bekannter Virus in der Anordnung abläuft. Auf diese Weise kann die
Identifizierung von Dateidaten in 906 für das in 9 vorgegebene
Beispiel dadurch ausgeführt
werden, dass die geschützten
Bereiche 202 direkt von der Antivirussoftware gelesen werden, um
die Daten zu feststellen. Diesen Daten kann vertraut werden, weil
ein schreibender Zugriff auf die geschützten Bereiche 202 normalerweise
nicht für Code
eingeräumt
wird, der aus dem Betriebssystem heraus ausgeführt wird.
-
10 zeigt
eine Tabelle 1002 von Zeitstempeleinträgen, einen für jeden
der Schreib-/Lese- und der geschützten
Bereiche entsprechend der bevorzugten Ausführungsform der vorliegenden
Erfindung, in der Zeitstempel nach jeder erfolgreichen Ausführung eines
Virenscans in jedem entsprechenden Bereich in geschütztem Datenspeicher 302 abgelegt werden.
Bereich 0 entspricht den geschützten
Bereichen 202. Bereich 1 entspricht dem Schreib-/Lese-Bereich 204.
Diese Zeitstempel werden aufrecht erhalten, so dass Antivirussoftware
auf sichere Weise feststellen kann, welche Bezeichner für das Scannen
in jedem der entsprechenden Bereiche verwendet werden sollen. Es
ist anzumerken, dass den Dateidaten von den im Schreib/Lese-Bereich gespeicherten
Dateien 204 nicht vertraut werden kann. Daher stellt der
Zeitstempel, der dem Schreib/Lese-Bereich 204 entspricht,
das letzte Mal dar, als der zwischengespeicherte Bereitstellungsbereich
in die geschützten
Bereiche 202 geleert wurde. Alle in dem Schreib/Lese-Bereich 204 gespeicherten
Da teien werden, wie in 7 gezeigt, gegen alle bekannten Bezeichner
gescannt.
-
11 zeigt
ein Blockdiagramm einer Ausführungsform
entsprechend der vorliegenden Erfindung, in der der Controller und
der geschützte
Datenspeicher in dem Disk Controller 72 statt in der Festplatte 200 selbst
angeordnet sind. In dieser Ausführungsform
ist das Plattenlaufwerk 200 deshalb von ganz konventioneller
Konstruktion. Die geschützten Bereiche 202 und
der Schreib/Lese-Bereich 204 werden in dieser Ausführungsform
logisch von dem Controller 1101 aufrecht erhalten. Der
Controller 1101 gemäß dieser
Ausführungsform
funktioniert wie die Controller 301 in den oben beschriebenen
Ausführungsformen
in Bezug auf das aufrecht Erhalten der Bereiche 202 und 204 und
beim Antworten auf Anforderungen und Abfragen der Antivirussoftware.
Ansonsten unterscheiden sich die I/O Schnittstellen und die Protokolle
für den
Controller 1101 vom weiter oben beschriebenen Controller 301 durch
ihre Anordnung. Der geschützte
Datenspeicher 1102 ist unzugänglich für Code, der unter dem Betriebssystem ausgeführt wird
und macht sich auf diese Weise die Vertrauenswürdigkeit zu Nutze, die der
Ausführungsform
gemäß 11 auf
eine dem geschützten
Datenspeicher 302 in den oben beschriebenen Ausführungsformen
analoge Weise entgegengebracht wird.
-
12 zeigt
ein Blockdiagramm einer Ausführungsform
entsprechend der vorliegenden Erfindung, in der ein Controller 1201 und
ein geschützter Datenspeicher 1202 in
das IDE Kabel 308 eingebaut sind. Auf diese Weise kann
das Sicherheitssubsystem sich überall
in der Anordnung befinden, ohne von der Erfindung abzuweichen. In
der Tat müssen
der Controller und die geschützten
Datenspeicherkomponenten des Sicherheitssubsystems sich nicht auf derselben
Untereinheit befinden.
-
13 zeigt
eine Darstellung der Virtualisierungsschicht der Anordnung, das
die Abstraktionsebenen in einem Rechnersystem zeigt, das Virtualisierungssoftware
entsprechend einer Ausführungsform der
vorliegenden Erfindung ausführt,
in der eine virtuelle Maschinenüberwachungsanordnung
verwendet wird, um den geschützten
Datenspeicher und die anderen Schutzfunktionen an Stelle von einem
in Hardware ausgeführten
Controller zu implementieren. Entsprechend dieser Ausführungsform
ist keine spezialisierte Hardware erforderlich. Auf der untersten Ebene
der Abstraktion befindet sich die Hardwareebene 1300; dies
ist die physische Hardwareebene des Rechnersystems. Eine Schicht
der virtuellen Maschinenüberwachungsanordnung 1302 ist
eine Zwischenschicht, die sich über
der Hardwareebene 1300 befindet, und alle Zugriffsversuche
auf den Systemdatenspeicher 46 und den Disk Controller 72 abfängt durch
Software, die auf dem Rechnersystem abläuft. Es ist innerhalb der Schicht
der virtuellen Maschinenüberwachungsanordnung 1302 ausgeführt, dass
die Funktionen des Controllers 301 entsprechend einigen
der beschriebenen Ausführungsformen
als Teil der virtuellen Maschinenüberwachungsanordnung selbst
ausgeführt
werden. Auf diese Weise macht das Rechnersystem Gebrauch von den
gesamten Merkmalen der Sicherheit und der Entkopplung, die virtuelle
Maschinenüberwachungsanordnungen
zur Verfügung
stellen. Auf der höchsten
Ebene der Abstraktion liegen die virtuellen Maschinen 1304 und 1306,
die letztlich Betriebssysteme und Softwareanwendungen ausführen. Virtuelle
Maschinen sind so eingerichtet, dass sie nichts von der Existenz
von anderen virtuellen Maschinen wissen. Ebenso wird der Systemdatenspeicher 46 von
der virtuellem Maschinenüberwachungsanordnung 1302 virtualisiert,
um einen geschützten
Datenspeicher zuzuordnen, der nicht direkt zugänglich ist durch Code, der
von jedem beliebigen Betriebssystem ausgeführt wird; dieser geschützte virtuel le
Datenspeicher funktioniert analog zu dem geschützten Datenspeicher 302,
während die
Anordnung eingeschaltet ist. Daher wird ein Virus, der aus dem OS-1
in der virtuellen Maschine-1 1304 heraus arbeitet zum Beispiel
nicht dazu in der Lage sein, an der Authentifizierungsprozedur zu
manipulieren oder Zugriff auf die vertrauenswürdigen Variablen zu erlangen.
Während
die Maschine ausgeschaltet ist, müssen geschützte Variable, Authentifizierungscode
und Ähnliches
in irgendeinen nichtflüchtigen
Datenspeicher auf sichere Weise gespeichert werden unter Verwendung
von irgendeinem der bekannten Verfahren zur Speicherung und Wiederherstellung
verschlüsselter
Daten in einem ungeschützten
nichtflüchtigen
Datenspeicher. Daher werden die beschriebenen Ausführungsformen
hierin nicht auf Hardwareimplementierungen beschränkt.
-
14 zeigt
ein Ablaufdiagramm, das die Logik für das Scannen aller Dateien
beschreibt, die seit einem letzten Virenscan entsprechend einer
Ausführungsform
der vorliegenden Erfindung geschrieben worden sind und in dem die
Verschiebung der Dateien vom Schreib/Lese-Bereich in den geschützten Bereich
logisch statt physisch ausgeführt
wird. Diese Ausführungsform
wird vorzugsweise logisch mit den geschützten Schreib-/Lese-Bereichen umgesetzt,
die in 5 gezeigt werden. Anstatt Daten in einem Schreib-/Lese-Bereich
zwischenzuspeichern und den Cachespeicher in einen geschützten Bereich
zu leeren, wandelt diese Ausführungsform
nach Bedarf geschützte
Bereiche auf sichere Weise in Schreib-/Lese-Bereiche und Schreib-/Lese-Bereiche in geschützte Bereiche
um. Außer
dort, wo weiter unten angemerkt, ist das in 14 gezeigte
Verfahren gleich zu dem in 7 gezeigten
Verfahren. Die Antivirussoftware fordert zuerst ein Verzeichnis
von Dateien an, die seit dem letzten Virenscan geschrieben worden
sind. Als Antwort liefert der Controller 301 in 1402 ein
Verzeichnis von Dateien, die sich geändert haben. Dies ist das Verzeichnis
von Dateien in den Schreib-/Lese-Bereichen 504, wie sie
in 5 gezeigt werden. In dieser Ausführungsform
muss die Antivirussoftware kein bestimmtes Wissen darüber aufweisen,
ob die Dateien logisch oder physisch von den Schreib/Lese-Bereichen
in die geschützten
Bereiche verschoben werden. Die Anforderung 1410 kann eine
Cachespeicherleerung oder die Umwandlung von erfolgreich gescannten
Dateien betreffen. Als Antwort auf die Anforderung 1410 führt der
Controller 301 die Authentifizierungsroutine aus. Wenn die
Authentifizierung erfolgreich ist, werden die erfolgreich gescannten
Dateien in den Schreib-/Lese-Bereichen 504 in 1414 umgewandelt
oder an die logisch geschützten
Bereiche 502 angehängt.
Dann wird eine Bestätigung
an die Antivirussoftware zurückgegeben.
Die Zuordnung von Plattenplatz zwischen den zwei Bereichen erfolgt
dynamisch, und es ist deshalb weniger wahrscheinlich, dass einem
der beiden Bereiche der Platz ausgeht. Wenn den geschützten Bereichen 502 neue
Dateien hinzugefügt werden,
werden ihre Speicherorte der Tabelle hinzugefügt, die den „logisch" geschützten Bereich 502 definiert.
Um ungebremstes Wachstum des geschützten Bereichs 502 zu
verhindern, können
vorherige Kopien (das heißt
Kopien, die sich gegenwärtig
im geschützten
Bereich befinden) von jeglichen neu zum geschützten Bereich hinzugefügte Dateien
aus dem logisch geschützten
Bereich gelöscht
werden und dem logischen „Lese-/Schreib-" Bereich hinzugefügt und wahlweise
als leer oder gelöscht
gekennzeichnet werden. Bei Anwendung dieses Verfahrens werden, wie
bei dem in 7 gezeigten Verfahren, eine
große
Anzahl von Bezeichnern, alle Bezeichner gegen eine Minderheit von
Dateien, nur jene Dateien gescannt, die sich seit dem letzten Scanvorgang
geändert
haben.
-
Die
in 14 gezeigte Ausführungsform kann als ein virtueller
Maschinenmanager implementiert werden, wie in Bezug auf 13 beschrieben.
-
Andere
Ausführungsformen
sind möglich,
in denen das Schreiben oder die Umwandlung zu den geschützten Bereichen
auftreten, nachdem die zu scannenden Bereiche zuerst in einen schreibgeschützten Status übergeführt werden.
Alternativ dazu können
die zu scannenden Bereiche zuerst in einen schreibgeschützten Zwischenspeicherbereich
verschoben werden, so dass die Dateien, sobald sie gescannt werden,
nicht unter den Angriff eines Virus fallen können, der zwischen der Zeit,
zu der die Dateien gescannt werden und wenn sie geschrieben oder umgewandelt
werden, ausgeführt
wird. Diese alternative Ausführungsform
nimmt jedoch mehr Plattenplatz in Anspruch als andere dargestellte
Ausführungsformen.
Eine Ausführungsform
der vorliegenden Erfindung kann als ein Computerprogrammprodukt
zur Verfügung
gestellt werden, das ein maschinenlesbares Medium umfassen kann,
das darauf Anweisungen gespeichert hat, die verwendet werden können, um
einen Computer (oder andere elektronische Vorrichtungen) zu programmieren,
um ein Verfahren entsprechend irgendeiner der Ausführungsformen
der vorliegenden Erfindung auszuführen. Das maschinenlesbare
Medium kann, wird aber nicht darauf eingeschränkt, Disketten, optische Platten, CD-ROMs
und magnetooptische Platten, ROMs, RAMs, EPROMs, EEPROMs, Magnetkarten
oder optische Karten oder andere Arten von Datenträgern/maschinenlesbaren
Medien umfassen, die für das
Speichern von elektronischen Anweisungen geeignet sind. Eine Ausführungsform
der vorliegenden Erfindung kann außerdem auch als ein Computerprogrammprodukt
heruntergeladen werden, wobei das Programm von einem dezentralen
Computer auf einen anfordernden Computer übertragen werden kann auf dem
Weg von Datensignalen, denen in einer Trägerwelle oder einem anderen
Ausbreitungsmedium über eine
Kommunikationsverbindung Ausdruck verliehen werden kann (zum Beispiel
einer Modem- oder Netzwerkverbindung).
-
Die
Reihenfolge von hierin angegebenen Schritten dient nur zu beispielhaften
Zwecken und sollte nicht als einschränkend interpretiert werden
in Bezug auf andere Ausführungsformen,
die möglich sind,
in dem eine andere Reihenfolge von Schritten bei der Umsetzung der
hierin beschriebenen erfinderischen Konzepte angewendet wird. Jegliche
Reihenfolgen der Schritte in den Ansprüchen dienen dem Zweck, die
Klarheit zu verbessern, und implizieren keine bestimmte Reihenfolge
der zu unternehmenden Schritte.
-
In
den Figuren und Beschreibungen wurde eine bevorzugte Ausführungsform
der Erfindung ausgeführt
und obwohl bestimmte Begriffe verwendet worden sind, verwendet die
Beschreibung daher die verwendete Terminologie nur in einem generischen und
beschreibenden Sinn und nicht zum Zweck ihrer Einschränkung.
-
Zusammenfassung
-
Nachverfolgung geschützter Speicherung
zur Beschleunigung von Antivirusprogrammen
-
Ein
Rechnersystem umfasst ein Sicherheitssubsystem, das in der Lage
ist, vertrauenswürdig
zu verfolgen, welche Dateien oder Speicherbereiche einer Speichervorrichtung
seit einem letzten Virenscan geändert
worden sind. Die vertrauenswürdige
Information kann verwendet werden, um das Scannen nach unerwünschtem
Code oder Daten wie zum Beispiel Viren und falschen oder beschädigten Einträgen in die
Registry zu beschleunigen. Im Falle von Viren werden Dateien oder
Speicherbereiche, die geändert worden
sind, gegen eine Obermenge von Virendefinitionen gescannt. Unveränderte Dateien
oder Speicherbereiche werden gegen eine Untermenge von Virendefinitionen
gescannt.