DE112005001739B4 - Nachverfolgung geschützter Speicherbereiche zur Beschleunigung von Antivirusprogrammen - Google Patents

Nachverfolgung geschützter Speicherbereiche zur Beschleunigung von Antivirusprogrammen Download PDF

Info

Publication number
DE112005001739B4
DE112005001739B4 DE112005001739.7T DE112005001739T DE112005001739B4 DE 112005001739 B4 DE112005001739 B4 DE 112005001739B4 DE 112005001739 T DE112005001739 T DE 112005001739T DE 112005001739 B4 DE112005001739 B4 DE 112005001739B4
Authority
DE
Germany
Prior art keywords
scan
area
code
identifier
trusted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112005001739.7T
Other languages
English (en)
Other versions
DE112005001739T5 (de
Inventor
David Caroll Challener
John Peter Karidis
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Singapore Pte Ltd
Original Assignee
Lenovo Singapore Pte Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lenovo Singapore Pte Ltd filed Critical Lenovo Singapore Pte Ltd
Publication of DE112005001739T5 publication Critical patent/DE112005001739T5/de
Application granted granted Critical
Publication of DE112005001739B4 publication Critical patent/DE112005001739B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/564Static detection by virus signature recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/80Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

Verfahren, das nachfolgendes umfasst:
das Abfragen eines Sicherheitssubsystems, um vertrauenswürdig festzustellen, ob seit einem letzten Scanvorgang in einen Bereich einer Speichervorrichtung geschrieben worden ist, wobei das Sicherheitssubsystem einen Datenspeicher, der unzugänglich ist für Code, der von einem Betriebssystem ausgeführt wird und eine vertrauenswürdige Variable umfasst, die in dem unzugänglichen Datenspeicher abgelegt ist, und wobei die Feststellung sich die Vertrauenswürdigkeit durch eine Bezugnahme des Sicherheitssubsystems auf die vertrauenswürdige Variable zu Nutze macht; und
das Scannen des Bereichs nach einem Bezeichner von unerwünschtem Code als Reaktion auf eine vertrauenswürdige Feststellung von besagter Abfrage, dass seit dem letzten Scanvorgang in den Bereich geschrieben worden ist, wobei das Verfahren weiterhin nachfolgendes umfasst:
das Feststellen, ob ein vorheriger Bezeichner von unerwünschtem Code in den letzten Scanvorgang einbezogen wurde; und
das Umgehen eines Scanvorgangs für diesen Bereich nach dem vorherigen Bezeichner von unerwünschtem Code als Reaktion auf eine Feststellung von besagter Abfrage, dass seit dem letzten Scanvorgang nicht in diesen Bereich geschrieben worden ist und als Reaktion auf eine Feststellung, dass
der vorherige Bezeichner in den letzten Scanvorgang einbezogen wurde, wobei das Umgehen des Scanvorgangs zu einem umgangenen Bereich führt, wobei der vorherige Bezeichner und die bekannten Bezeichner die Bezeichner von bösartigem Code sind und wobei der letzte Scanvorgang ein vorheriger Scanvorgang nach bösartigem Code ist, wobei das Verfahren weiterhin nachfolgendes umfasst:
das Anfordern eines vertrauenswürdigen Zeitstempels des Scanvorgangs vom Sicherheitssubsystem, der mit dem Zeitpunkt verbunden ist, zu dem der vorherige Scanvorgang nach bösartigem Code ausgeführt wurde und dem auf Grund des unzugänglichen Datenspeichers vertraut wird; und
dem Scannen des besagten umgangenen Bereichs gegen einen neuen Bezeichner, der mit bösartigem Code verbunden ist, von dem bekannt ist, dass er zu einem neuen Bezeichnerdatum entstanden ist, wobei das Scannen von besagtem umgangenem Bereich als Reaktion auf eine Feststellung auftritt, dass ein neuer Bezeichnerzeitstempel, der mit dem neuen Bezeichnerdatum verbunden ist, zeitlich früher liegt als der vertrauenswürdige Zeitstempel des Scanvorgangs, und wobei nur Dateien in dem umgangenen Bereich gegen den neuen Bezeichner gescannt werde, welche nach dem neuen Bezeichnerdatum erzeugt oder modifiziert wurden.

Description

  • 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, indem 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 Weise 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 Speichervorrichtung 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 Betriebssystemkernen 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.
  • Die Druckschrift US 6 735 700 B1 beschreibt ein Antivirusprogram, welches auf der Ebene von Dateien abläuft, welches beinhaltet, ein Sicherheitssystem abzufragen, um vertrauenswürdig festzustellen, ob seit einem letzten Scanvorgang in eine Datei einer Speichervorrichtung geschrieben worden ist, wobei das Sicherheitssystem einen Datenspeicher umfasst, der für den Code unzugänglich ist, der von einem Betriebssystem ausgeführt wird.
  • Die Druckschrift EP 1 056 010 A1 beschreibt ein Verfahren, welches das Abfragen eines Sicherheitssubsystems, um festzustellen, ob seit einem letzten Scanvorgang in eine Datei einer Speichervorrichtung geschrieben worden ist, beinhaltet, wobei, falls in die Datei seit einem letzten Scanvorgang geschrieben worden ist, die Datei nach einem Bezeichner von unerwünschtem Code gescannt wird.
  • Die Druckschrift US 2003 / 0 088 680 A1 beschreibt ein Zugangskontrollsystem, welches es einem Computernetzwerk ermöglicht, die Ausführung von Computercode zu verhindern, wobei Kontrollparameter wie eine Zeitbegrenzung herangezogen werden.
  • Die Druckschrift US 6 609 219 B1 beschreibt ein Verfahren, welches des Abfragen eines Sicherheitssystems, um festzustellen, ob seit einem letzten Scanvorgang ein Bereich einer Speichervorrichtung geändert worden ist, und das Scannen des Bereiches nach einem Virus in Reaktion auf eine vertrauenswürdige Feststellung, dass der Bereich seit dem letzten Scanvorgang geändert worden ist, beinhaltet.
  • Die Druckschrift US 2003 / 0 120 952 A1 beschreibt ein vorbeugendes Malware-Scannen, um festzustellen, ob Speicherorte Malware enthalten. Wenn die Speicherorte frei von Malware sind, werden sie als saubere Speicherorte klassifiziert und nachfolgende Lesezugriffe auf diese Speicherorte sind zulässig, ohne dass ein weiterer Malware-Scan erforderlich ist. Schreibvorgänge auf saubere Speicherorte werden jedoch weiterhin nach Malware durchsucht.
  • Die Druckschrift US 6 021 510 A beschreibt ein Verfahren, wobei ein kompletter Bereich einer Speichervorrichtung gegen einen neuen Bezeichner, der mit bösartigem Code verbunden ist und zu einem neuen Bezeichnerdatum entstanden ist, dass zeitlich früher liegt als der letzte Scanvorgang, gescannt wird.
  • Aufgabe der Erfindung ist es, Vorrichtungen, Programmprodukte und Verfahren anzugeben, 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, indem 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 Feststellung 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 PowerPC™ 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 Kommunikation 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, indem 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, indem 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, indem 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 Bereiche 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 Betriebsmodus 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 Antivirussoftware 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 beschriebenen 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 Dateien 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 virtuelle 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).

Claims (12)

  1. Verfahren, das nachfolgendes umfasst: das Abfragen eines Sicherheitssubsystems, um vertrauenswürdig festzustellen, ob seit einem letzten Scanvorgang in einen Bereich einer Speichervorrichtung geschrieben worden ist, wobei das Sicherheitssubsystem einen Datenspeicher, der unzugänglich ist für Code, der von einem Betriebssystem ausgeführt wird und eine vertrauenswürdige Variable umfasst, die in dem unzugänglichen Datenspeicher abgelegt ist, und wobei die Feststellung sich die Vertrauenswürdigkeit durch eine Bezugnahme des Sicherheitssubsystems auf die vertrauenswürdige Variable zu Nutze macht; und das Scannen des Bereichs nach einem Bezeichner von unerwünschtem Code als Reaktion auf eine vertrauenswürdige Feststellung von besagter Abfrage, dass seit dem letzten Scanvorgang in den Bereich geschrieben worden ist, wobei das Verfahren weiterhin nachfolgendes umfasst: das Feststellen, ob ein vorheriger Bezeichner von unerwünschtem Code in den letzten Scanvorgang einbezogen wurde; und das Umgehen eines Scanvorgangs für diesen Bereich nach dem vorherigen Bezeichner von unerwünschtem Code als Reaktion auf eine Feststellung von besagter Abfrage, dass seit dem letzten Scanvorgang nicht in diesen Bereich geschrieben worden ist und als Reaktion auf eine Feststellung, dass der vorherige Bezeichner in den letzten Scanvorgang einbezogen wurde, wobei das Umgehen des Scanvorgangs zu einem umgangenen Bereich führt, wobei der vorherige Bezeichner und die bekannten Bezeichner die Bezeichner von bösartigem Code sind und wobei der letzte Scanvorgang ein vorheriger Scanvorgang nach bösartigem Code ist, wobei das Verfahren weiterhin nachfolgendes umfasst: das Anfordern eines vertrauenswürdigen Zeitstempels des Scanvorgangs vom Sicherheitssubsystem, der mit dem Zeitpunkt verbunden ist, zu dem der vorherige Scanvorgang nach bösartigem Code ausgeführt wurde und dem auf Grund des unzugänglichen Datenspeichers vertraut wird; und dem Scannen des besagten umgangenen Bereichs gegen einen neuen Bezeichner, der mit bösartigem Code verbunden ist, von dem bekannt ist, dass er zu einem neuen Bezeichnerdatum entstanden ist, wobei das Scannen von besagtem umgangenem Bereich als Reaktion auf eine Feststellung auftritt, dass ein neuer Bezeichnerzeitstempel, der mit dem neuen Bezeichnerdatum verbunden ist, zeitlich früher liegt als der vertrauenswürdige Zeitstempel des Scanvorgangs, und wobei nur Dateien in dem umgangenen Bereich gegen den neuen Bezeichner gescannt werde, welche nach dem neuen Bezeichnerdatum erzeugt oder modifiziert wurden.
  2. Verfahren gemäß Anspruch 1, wobei die Bezeichner aus der Gruppe ausgewählt sind, die aus einer Signatur, einem Codefragment, einem Datenfragment, einem Hash und einem Registryeintrag in die Registry des Betriebssystems besteht.
  3. Verfahren gemäß Anspruch 1, das weiterhin nachfolgendes umfasst: das Scannen von Dateien in einem Scanbereich einer Datenspeicheranordnung nach bösartigem Code, wobei die Datenspeicheranordnung in einen ersten Bereich und den Scanbereich unterteilt ist und der erste Bereich auf sichere Weise zwischen einem normalen schreibgeschützten Status und einem beschreibbaren Status konfigurierbar ist, wobei die Konfiguration unter der Steuerung einer Sicherheitsanordnung abläuft, die einen geschützten Datenspeicher aufweist, der unzugänglich ist für Code, der unter einem Betriebssystem ausgeführt wird; auf erfolgreiches Scannen von mindestens einer Datei, in welcher kein bösartiger Code gefunden wurde, 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 abläuft; das Schreiben von erfolgreich gescannten Dateien im Scanbereich in den ersten Bereich; und das Konfigurieren des ersten Bereichs in den schreibgeschützten Status nach dem besagten Schreiben von erfolgreich gescannten Dateien.
  4. Verfahren gemäß Anspruch 3, das weiterhin nachfolgendes umfasst: das Löschen der erfolgreich gescannten Dateien aus dem Scanbereich nach dem besagten Schreiben von erfolgreich gescannten Dateien.
  5. Verfahren gemäß Anspruch 4, wobei die Authentifizierung für die erste Sicherheitsmaßnahme eine Authentifizierung ist, die aus der Gruppe ausgewählt wird, die aus einem Kennwort, einer digitalen Signatur und einer biometrischen Kennung besteht.
  6. Verfahren gemäß Anspruch 3, wobei der erste und die Scanbereiche logisch unterteilt sind.
  7. Verfahren gemäß Anspruch 3, wobei der erste und die Scanbereiche physisch unterteilt sind.
  8. Verfahren gemäß Anspruch 7, wobei die physisch unterteilten Bereiche entsprechende zusammenhängende Bereiche auf der Speichervorrichtung sind.
  9. Verfahren gemäß Anspruch 3, wobei besagte Authentifizierung der ersten Sicherheitsmaßnahme unter der Steuerung einer virtuellen Maschinenüberwachungsanordnung ausgeführt wird.
  10. Verfahren gemäß Anspruch 3, wobei die Sicherheitsanordnung in Hardware implementiert ist, so dass der geschützte Datenspeicher außerdem für einen Hauptprozessor unzugänglich ist, der das Betriebssystem ausführt, wobei sich die Hardware physisch an einem Ort befindet, der aus der Gruppe ausgewählt wird, die aus einer Speichercontroller, einem Speichervorrichtungskabel und der Speichervorrichtung besteht.
  11. Produkt, das nachfolgendes umfasst: ein von einem Computer verwendbares Medium, das von einem computerlesbaren Programmcode darauf gespeichert hat, wobei der computerlesbare Programmcode in besagtem Produkt wirkend ist, um: ein Sicherheitssubsystem abzufragen, um vertrauenswürdig festzustellen, ob seit einem letzen Scanvorgang in einen Bereich einer Speichervorrichtung geschrieben worden ist; und das Scannen des Bereichs nach einem Bezeichner von unerwünschtem Code als Reaktion auf eine vertrauenswürdige Feststellung der Abfrage, dass seit dem letzen Scanvorgang in den Bereich geschrieben worden ist; wobei die Feststellung sich die Vertrauenswürdigkeit durch eine vertrauenswürdige Variable zu Nutze macht und wobei die vertrauenswürdige Variable in einem geschützten Datenspeicher abgelegt ist und der geschützte Datenspeicher nicht zugänglich ist für Code, der von einem Betriebssystem ausgeführt wird, wobei der computerlesbare Programmcode außerdem wirken ist, um: festzustellen, ob ein vorheriger Bezeichner von unerwünschtem Code in den letzten Scanvorgang einbezogen wurde; und einen Scanvorgang des Bereichs für den vorherigen Bezeichner von unerwünschtem Code zu umgehen als Reaktion auf eine Feststellung der Abfrage, dass seit dem letzten Scanvorgang nicht in den ersten Bereich geschrieben worden ist und als Reaktion auf eine Feststellung, dass der vorherige Bezeichner in den letzten Scanvorgang einbezogen wurde; wobei der von dem Computer lesbare Programmcode außerstande ist auf die vertrauenswürdige Variable zuzugreifen, die sich die Vertrauenswürdigkeit der vertrauenswürdigen Feststellung zu Nutze macht, wobei der computerlesbare Programmcode außerdem wirken ist, um: ein Scannen des Bereichs nach dem vorherigen Bezeichner von unerwünschtem Code zu umgehen als Reaktion auf eine Feststellung der Abfrage, dass seit dem letzten Scanvorgang nicht in den Bereich geschrieben worden ist und als Reaktion auf eine Feststellung, dass der vorherige Bezeichner in den letzten Scanvorgang einbezogen wurde, wobei die Umgehung des Scanvorgangs in einem umgangenen Bereich resultiert; wobei der von dem Computer lesbare Programmcode außerstande ist, direkt auf den geschützten Datenspeicher zuzugreifen, der sich die Vertrauenswürdigkeit der vertrauenswürdigen Feststellung zu Nutze macht, wobei der Code weiterhin wirkend ist, um: vom Sicherheitssubsystem einen vertrauenswürdigen Zeitstempel für den Scanvorgang abzufragen, der mit dem Zeitpunkt in Beziehung steht, zu dem der vorherige Scanvorgang nach bösartigem Code ausgeführt wurde und dem auf Grund des unzugänglichen Datenspeichers vertraut wird; und den umgangenen Bereich gegen einen neuen Bezeichner zu scannen, der mit bösartigem Code verknüpft ist von dem bekannt ist, dass er zu einem neuen Bezeichnerdatum entstanden ist, wobei das Scannen des umgangenen Bereichs als Reaktion auf eine Feststellung eintritt, dass ein neuer Bezeichnerzeitstempel, der mit dem Datum des neuen Bezeichners verknüpft ist, zeitlich früher liegt als der vertrauenswürdige Zeitstempel des Scanvorgangs, und wobei nur Dateien aus dem angegebenen Bereich gegen den neuen Bezeichner gescannt werden, welche nach dem neuen Bezeichnerdatum erzeugt oder modifiziert wurden.wobei der vorherige Bezeichner und die bekannten Bezeichner die Bezeichner von bösartigem Code sind und wobei der letzte Scanvorgang ein vorheriger Scanvorgang nach bösartigem Code ist, wobei.
  12. Produkt gemäß Anspruch 11, wobei die Bezeichner aus der Gruppe ausgewählt sind, die aus einer Signatur, einem Codefragment, einem Datenfragment, einem Hash und einem Registryeintrag in der Registry des Betriebssystems besteht.
DE112005001739.7T 2004-07-20 2005-05-12 Nachverfolgung geschützter Speicherbereiche zur Beschleunigung von Antivirusprogrammen Active DE112005001739B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/894,588 2004-07-20
US10/894,588 US7581253B2 (en) 2004-07-20 2004-07-20 Secure storage tracking for anti-virus speed-up
PCT/EP2005/052192 WO2006008199A2 (en) 2004-07-20 2005-05-12 Secure storage tracking for anti-virus speed-up

Publications (2)

Publication Number Publication Date
DE112005001739T5 DE112005001739T5 (de) 2007-06-14
DE112005001739B4 true DE112005001739B4 (de) 2019-10-24

Family

ID=34979552

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112005001739.7T Active DE112005001739B4 (de) 2004-07-20 2005-05-12 Nachverfolgung geschützter Speicherbereiche zur Beschleunigung von Antivirusprogrammen

Country Status (7)

Country Link
US (1) US7581253B2 (de)
JP (1) JP4627547B2 (de)
CN (1) CN101002156B (de)
DE (1) DE112005001739B4 (de)
GB (1) GB2437562B (de)
TW (1) TWI420300B (de)
WO (1) WO2006008199A2 (de)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7624443B2 (en) * 2004-12-21 2009-11-24 Microsoft Corporation Method and system for a self-heating device
US7409719B2 (en) * 2004-12-21 2008-08-05 Microsoft Corporation Computer security management, such as in a virtual machine or hardened operating system
US7581250B2 (en) * 2005-02-17 2009-08-25 Lenovo (Singapore) Pte Ltd System, computer program product and method of selecting sectors of a hard disk on which to perform a virus scan
US7743417B2 (en) * 2005-02-28 2010-06-22 Hitachi Global Storage Technologies Netherlands B.V. Data storage device with code scanning capability
US7660797B2 (en) * 2005-05-27 2010-02-09 Microsoft Corporation Scanning data in an access restricted file for malware
US7636946B2 (en) * 2005-08-31 2009-12-22 Microsoft Corporation Unwanted file modification and transactions
US7930749B2 (en) * 2006-05-11 2011-04-19 Eacceleration Corp. Accelerated data scanning
EP1870829B1 (de) 2006-06-23 2014-12-03 Microsoft Corporation Softwareschutz durch Erzwingen der Datenflussintegrität
US20080155264A1 (en) * 2006-12-20 2008-06-26 Ross Brown Anti-virus signature footprint
US8561204B1 (en) 2007-02-12 2013-10-15 Gregory William Dalcher System, method, and computer program product for utilizing code stored in a protected area of memory for securing an associated system
US8898355B2 (en) * 2007-03-29 2014-11-25 Lenovo (Singapore) Pte. Ltd. Diskless client using a hypervisor
US7941657B2 (en) * 2007-03-30 2011-05-10 Lenovo (Singapore) Pte. Ltd Multi-mode mobile computer with hypervisor affording diskless and local disk operating environments
US8533847B2 (en) * 2007-05-24 2013-09-10 Sandisk Il Ltd. Apparatus and method for screening new data without impacting download speed
US8214895B2 (en) * 2007-09-26 2012-07-03 Microsoft Corporation Whitelist and blacklist identification data
US8307443B2 (en) * 2007-09-28 2012-11-06 Microsoft Corporation Securing anti-virus software with virtualization
JP5392494B2 (ja) * 2007-10-09 2014-01-22 日本電気株式会社 ファイルチェック装置、ファイルチェックプログラムおよびファイルチェック方法
US20090094698A1 (en) * 2007-10-09 2009-04-09 Anthony Lynn Nichols Method and system for efficiently scanning a computer storage device for pestware
US8014976B2 (en) * 2007-10-24 2011-09-06 Microsoft Corporation Secure digital forensics
US8091115B2 (en) * 2008-10-03 2012-01-03 Microsoft Corporation Device-side inline pattern matching and policy enforcement
US20100115619A1 (en) * 2008-11-03 2010-05-06 Michael Burtscher Method and system for scanning a computer storage device for malware incorporating predictive prefetching of data
US8401521B2 (en) * 2008-11-25 2013-03-19 Broadcom Corporation Enabling remote and anonymous control of mobile and portable multimedia devices for security, tracking and recovery
US9020993B2 (en) 2008-12-16 2015-04-28 Sandisk Il Ltd. Download management of discardable files
US9104686B2 (en) 2008-12-16 2015-08-11 Sandisk Technologies Inc. System and method for host management of discardable objects
US8205060B2 (en) * 2008-12-16 2012-06-19 Sandisk Il Ltd. Discardable files
US9015209B2 (en) * 2008-12-16 2015-04-21 Sandisk Il Ltd. Download management of discardable files
US8849856B2 (en) * 2008-12-16 2014-09-30 Sandisk Il Ltd. Discardable files
US8375192B2 (en) * 2008-12-16 2013-02-12 Sandisk Il Ltd. Discardable files
US20100153474A1 (en) * 2008-12-16 2010-06-17 Sandisk Il Ltd. Discardable files
US20100235329A1 (en) * 2009-03-10 2010-09-16 Sandisk Il Ltd. System and method of embedding second content in first content
US20100235900A1 (en) * 2009-03-13 2010-09-16 Assa Abloy Ab Efficient two-factor authentication
US9032058B2 (en) * 2009-03-13 2015-05-12 Assa Abloy Ab Use of SNMP for management of small footprint devices
US7591019B1 (en) * 2009-04-01 2009-09-15 Kaspersky Lab, Zao Method and system for optimization of anti-virus scan
US8745743B2 (en) * 2009-06-09 2014-06-03 F-Secure Oyj Anti-virus trusted files database
US20100333155A1 (en) * 2009-06-30 2010-12-30 Philip David Royall Selectively using local non-volatile storage in conjunction with transmission of content
GB2471716A (en) * 2009-07-10 2011-01-12 F Secure Oyj Anti-virus scan management using intermediate results
US8499304B2 (en) * 2009-12-15 2013-07-30 At&T Mobility Ii Llc Multiple mode mobile device
JP5573216B2 (ja) * 2010-02-17 2014-08-20 富士通株式会社 ファイル検疫装置およびファイル検疫方法
US8463802B2 (en) 2010-08-19 2013-06-11 Sandisk Il Ltd. Card-based management of discardable files
US8549229B2 (en) 2010-08-19 2013-10-01 Sandisk Il Ltd. Systems and methods for managing an upload of files in a shared cache storage system
KR101217709B1 (ko) 2010-12-31 2013-01-02 주식회사 안랩 악성코드 탐지 장치 및 방법
US8788849B2 (en) 2011-02-28 2014-07-22 Sandisk Technologies Inc. Method and apparatus for protecting cached streams
US9298910B2 (en) 2011-06-08 2016-03-29 Mcafee, Inc. System and method for virtual partition monitoring
US9110595B2 (en) 2012-02-28 2015-08-18 AVG Netherlands B.V. Systems and methods for enhancing performance of software applications
US8656494B2 (en) 2012-02-28 2014-02-18 Kaspersky Lab, Zao System and method for optimization of antivirus processing of disk files
US8938796B2 (en) 2012-09-20 2015-01-20 Paul Case, SR. Case secure computer architecture
GB2506622A (en) * 2012-10-04 2014-04-09 Ibm Anti-virus data management
CN104317952B (zh) * 2014-11-13 2017-10-13 北京奇虎科技有限公司 移动终端中存储空间的扫描方法和装置
US9355248B1 (en) 2015-01-26 2016-05-31 Red Hat, Inc. Container and image scanning for a platform-as-a-service system
US9654497B2 (en) 2015-04-04 2017-05-16 International Business Machines Corporation Virus-release-date-based priority virus scanning
US9858418B2 (en) 2015-05-29 2018-01-02 International Business Machines Corporation Reducing delays associated with restoring quarantined files
CN105320886B (zh) * 2015-09-22 2018-04-06 北京奇虎科技有限公司 检测移动终端中是否存在恶意软件的方法和移动终端
CN106909845A (zh) * 2015-12-23 2017-06-30 北京奇虎科技有限公司 一种程序对象扫描的方法和装置
WO2018127278A1 (de) * 2017-01-04 2018-07-12 Gerhard Schwartz Asymmetrische system- und netzwerkarchitektur
US10511631B2 (en) 2017-01-25 2019-12-17 Microsoft Technology Licensing, Llc Safe data access through any data channel
CN109922045B (zh) * 2019-01-30 2021-07-02 赵东升 一种信息处理装置的控制方法
JP7315844B2 (ja) * 2019-11-20 2023-07-27 株式会社バッファロー 情報処理装置、ウイルス駆除方法、および、コンピュータプログラム
WO2023049215A1 (en) 2021-09-22 2023-03-30 Illumina, Inc. Compressed state-based base calling
US20230195902A1 (en) 2021-12-21 2023-06-22 Acronis International Gmbh Systems and methods for protecting data during synchronization
US20230343414A1 (en) 2022-03-25 2023-10-26 Illumina, Inc. Sequence-to-sequence base calling

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6021510A (en) 1997-11-24 2000-02-01 Symantec Corporation Antivirus accelerator
EP1056010A1 (de) 1999-05-28 2000-11-29 Hewlett-Packard Company Datenintegritätsüberwachung in einer vertrauten Rechnereinheit
US20030088680A1 (en) 2001-04-06 2003-05-08 Nachenberg Carey S Temporal access control for computer virus prevention
US20030120952A1 (en) 2001-12-26 2003-06-26 Tarbotton Lee Codel Lawson Malware scanning to create clean storage locations
US6609219B1 (en) 2000-01-24 2003-08-19 Hewlett-Packard Development Company, L.P. Data corruption testing technique for a hierarchical storage system
US6735700B1 (en) 2000-01-11 2004-05-11 Network Associates Technology, Inc. Fast virus scanning using session stamping

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9003890D0 (en) * 1990-02-21 1990-04-18 Rodime Plc Method and apparatus for controlling access to and corruption of information in computer systems
EP0510244A1 (de) * 1991-04-22 1992-10-28 Acer Incorporated Verfahren und Anordnung zum Schutz eines Computers gegen Computerviren
US5367682A (en) * 1991-04-29 1994-11-22 Steven Chang Data processing virus protection circuitry including a permanent memory for storing a redundant partition table
CN1068212A (zh) 1992-03-11 1993-01-20 邵通 微机硬盘读写控制器
US5649095A (en) * 1992-03-30 1997-07-15 Cozza; Paul D. Method and apparatus for detecting computer viruses through the use of a scan information cache
JPH09138733A (ja) 1995-11-14 1997-05-27 Hokkaido Nippon Denki Software Kk 磁気ディスク装置の保護方式
JP3392283B2 (ja) * 1996-02-23 2003-03-31 株式会社日立情報システムズ コンピュータウィルスの侵入防止方法
GB9605338D0 (en) * 1996-03-13 1996-05-15 Arendee Ltd Improvements in or relating to computer systems
US6802028B1 (en) * 1996-11-11 2004-10-05 Powerquest Corporation Computer virus detection and removal
US5969632A (en) * 1996-11-22 1999-10-19 Diamant; Erez Information security method and apparatus
US6094731A (en) * 1997-11-24 2000-07-25 Symantec Corporation Antivirus accelerator for computer networks
US6067618A (en) * 1998-03-26 2000-05-23 Innova Patent Trust Multiple operating system and disparate user mass storage resource separation for a computer system
AU4321799A (en) * 1998-06-22 2000-01-10 Colin Constable Virtual data storage (vds) system
US6711583B2 (en) * 1998-09-30 2004-03-23 International Business Machines Corporation System and method for detecting and repairing document-infecting viruses using dynamic heuristics
US6272533B1 (en) * 1999-02-16 2001-08-07 Hendrik A. Browne Secure computer system and method of providing secure access to a computer system including a stand alone switch operable to inhibit data corruption on a storage device
TW452733B (en) * 1999-11-26 2001-09-01 Inventec Corp Method for preventing BIOS from viruses infection
CN1187685C (zh) * 2000-01-11 2005-02-02 神达电脑股份有限公司 感染计算机病毒文件的追踪检测方法
US6763466B1 (en) * 2000-01-11 2004-07-13 Networks Associates Technology, Inc. Fast virus scanning
US7216366B1 (en) * 2000-11-17 2007-05-08 Emc Corporation Storage based apparatus for antivirus
WO2002054251A2 (en) * 2000-12-29 2002-07-11 Valt. X Apparatus and method for protecting data recorded on a storage medium
US6922774B2 (en) * 2001-05-14 2005-07-26 The United States Of America As Represented By The National Security Agency Device for and method of secure computing using virtual machines
JP4733323B2 (ja) * 2001-09-17 2011-07-27 株式会社アール・アイ データ一括保護システム
US7340774B2 (en) * 2001-10-15 2008-03-04 Mcafee, Inc. Malware scanning as a low priority task
JP2003196111A (ja) * 2001-12-26 2003-07-11 Hitachi Ltd 電子署名を用いたウィルスチェック方法
JP2003216445A (ja) * 2002-01-23 2003-07-31 Hitachi Ltd コンピュータウイルスのチェック方法
JP3979285B2 (ja) * 2002-12-17 2007-09-19 株式会社日立製作所 情報処理システム
US20040158730A1 (en) * 2003-02-11 2004-08-12 International Business Machines Corporation Running anti-virus software on a network attached storage device
US7134006B2 (en) * 2003-06-03 2006-11-07 Gateway Inc. Method and system for changing software access level within or outside a host protected area

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6021510A (en) 1997-11-24 2000-02-01 Symantec Corporation Antivirus accelerator
EP1056010A1 (de) 1999-05-28 2000-11-29 Hewlett-Packard Company Datenintegritätsüberwachung in einer vertrauten Rechnereinheit
US6735700B1 (en) 2000-01-11 2004-05-11 Network Associates Technology, Inc. Fast virus scanning using session stamping
US6609219B1 (en) 2000-01-24 2003-08-19 Hewlett-Packard Development Company, L.P. Data corruption testing technique for a hierarchical storage system
US20030088680A1 (en) 2001-04-06 2003-05-08 Nachenberg Carey S Temporal access control for computer virus prevention
US20030120952A1 (en) 2001-12-26 2003-06-26 Tarbotton Lee Codel Lawson Malware scanning to create clean storage locations

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
R. P. Goldberg, „Survey of Virtual Machine Research" IEEE Computer, Vol. 7, Nr. 6, 1974 zu beziehen. Während der 1970er

Also Published As

Publication number Publication date
CN101002156A (zh) 2007-07-18
JP4627547B2 (ja) 2011-02-09
US7581253B2 (en) 2009-08-25
GB2437562B (en) 2008-10-08
CN101002156B (zh) 2010-05-05
WO2006008199A3 (en) 2006-04-13
DE112005001739T5 (de) 2007-06-14
GB2437562A (en) 2007-10-31
WO2006008199A2 (en) 2006-01-26
GB0701190D0 (en) 2007-02-28
TW200609723A (en) 2006-03-16
US20060021032A1 (en) 2006-01-26
JP2008507055A (ja) 2008-03-06
TWI420300B (zh) 2013-12-21

Similar Documents

Publication Publication Date Title
DE112005001739B4 (de) Nachverfolgung geschützter Speicherbereiche zur Beschleunigung von Antivirusprogrammen
DE112012003988B4 (de) Schützen des Arbeitsspeichers eines virtuellen Gasts
US7581252B2 (en) Storage conversion for anti-virus speed-up
DE112018002031B4 (de) Sichern einer betriebssystemkonfiguration unter verwendung von hardware
US8346805B2 (en) Filter driver for identifying disk files by analysis of content
DE102007057901B4 (de) Anordnung, Computerprogrammprodukt und Verfahren zur sicheren Aktualisierung von Firmware einer Hardwarevorrichtung unter Verwendung eines Hypervisor
DE102011082184A1 (de) Sicherheitsschutz für Speicherinhalt von Prozessorhauptspeicher
DE202014011092U1 (de) Sicherheitsarchitektur für virtuelle Maschinen
DE112007001321T5 (de) Ausführung eines Sichere-Umgebungs-Initialisierungsbefehls in einem Punkt-zu-Punkt-Verbindungssystem
DE112016000576T5 (de) Sicheres Booten eines Computers von einer für den Benutzer vertrauenswürdigen Einheit aus
DE10393662T5 (de) Bereitstellen eines sicheren Ausführungsmodus in einer Preboot-Umgebung
DE112013005184T5 (de) Für einen Benutzer vertrauenswürdige Einheit zum Erkennen einer virtualisierten Umgebung
DE112019000594T5 (de) Injizieren von Abfangcode in einen Ausführungspfad eines ein Programm ausführenden Prozesses, um einen Abfangadressbereich zu erzeugen, um möglichen schädlichen Programmcode zu erkennen
DE102021101826A1 (de) Zugriffsberechtigungen für speicherbereiche
DE102018126136A1 (de) Technologien zur biometrischen Authentifizierung vor dem Booten
US20170053118A1 (en) Changed Block Tracking Driver for Agentless Security Scans of Virtual Disks
DE102020113691A1 (de) Systeme und verfahren zum verwalten von endpunkt-sicherheitszuständen
CN110221991B (zh) 计算机外围设备的管控方法及系统
DE102021129179B4 (de) Sichere intelligente container zum steuern des zugriffs auf daten
RU2702053C1 (ru) Способ снижения нагрузки на сканирующую подсистему путем дедупликации сканирования файлов
JP2002304231A (ja) コンピュータシステム
KR20070030931A (ko) 안티-바이러스 속도 향상을 위한 안전 저장 추적 방법
US8301608B1 (en) Real-time access of opportunistically locked files without breaking opportunistic locks
DE102012216599B4 (de) Verfahren und System zur sichere Verwaltung von Datenspeichern mithilfe eines Datenträgermanagers
EP2431906B1 (de) Verfahren zur Prüfung von Aktionen mit Daten

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification

Ipc: G06F 21/00 AFI20070323BHDE

8127 New person/name/address of the applicant

Owner name: LENOVO (SINGAPORE) PTE. LTD., SINGAPUR/SINGAPO, SG

R016 Response to examination communication
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0021000000

Ipc: G06F0021560000

R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R082 Change of representative

Representative=s name: SCHWEIGER, MARTIN, DIPL.-ING. UNIV., DE