DE69831708T2 - Effiziente Erkennung von Computerviren und andere Dateneigenschaften - Google Patents

Effiziente Erkennung von Computerviren und andere Dateneigenschaften Download PDF

Info

Publication number
DE69831708T2
DE69831708T2 DE69831708T DE69831708T DE69831708T2 DE 69831708 T2 DE69831708 T2 DE 69831708T2 DE 69831708 T DE69831708 T DE 69831708T DE 69831708 T DE69831708 T DE 69831708T DE 69831708 T2 DE69831708 T2 DE 69831708T2
Authority
DE
Germany
Prior art keywords
data
signature
signatures
sequence
properties
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69831708T
Other languages
English (en)
Other versions
DE69831708D1 (de
Inventor
Jeffery Owen Cortlandt Manor Kephart
Alexandre Guy George Morin
Gregory Bret New York Sorkin
Joseph Warren Newbury Park Wells
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
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE69831708D1 publication Critical patent/DE69831708D1/de
Publication of DE69831708T2 publication Critical patent/DE69831708T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf die Erfassung von Dateneigenschaften, z.B. der Infizierung mit bestimmten Computerviren, welche Datenfolgen möglicherweise besitzen. Insbesondere bezieht sich diese Erfindung auf Verfahren zum Erfassen von Dateneigenschaften, welche mit der Verwendung eines Minimums des Systemhauptspeichers einhergehen.
  • Es bestehen mehrere anerkannte Verfahren zur Erfassung von Computerviren im Speicher, in Programmen, Dokumenten oder anderen potentiellen Hosts, welche diese unter Umständen beherbergen. Ein gängiges Verfahren, welches in den meisten Antivirusprodukten Einsatz findet, wird „Scanning" genannt.
  • Ein Scanner sucht nach potentiellen Hosts für eine Menge aus einem oder mehreren (typischerweise aus mehreren tausend) als „Signaturen" bezeichneten spezifischen Codemustern, welche auf besonders bekannte Viren oder Virenfamilien hindeuten oder bei denen die Wahrscheinlichkeit besteht, dass sie in neuen Viren enthalten sind. Die typische Signatur besteht aus einem Muster, dessen Entsprechung es zu finden gilt, sowie aus impliziten oder expliziten Hilfsinformationen über die Art der Entsprechung, und eventuell über Transformationen, die an den Eingabedaten vor der Suche nach einer Entsprechung für das Muster durchzuführen sind. Bei dem Muster könnte es sich um eine Bytesequenz handeln, zu welcher in dem potentiellen Host eine exakte oder inexakte Entsprechung zu suchen ist. Allgemeiner ausgedrückt, könnte das Muster ein regulärer Ausdruck sein. Die Hilfsinformationen könnten Informationen über die Anzahl und/oder den Ort der zulässigen fehlangepassten Bytes enthalten. Ebenso könnten sie die Übereinstimmung in verschiedener Weise einschränken; z.B. könnte die Übereinstimmung auf Eingabedaten begrenzt werden, welche Computerprogramme im .EXE-Format darstellen, und eine weitere Einschränkung könnte festlegen, dass Übereinstimmungen nur dann angegeben werden, wenn sie in einem Bereich innerhalb eines Kilobytes zu beiden Seiten des Eingangspunkts auftreten. Die Hilfsinformationen können außerdem Transformationen präzisieren; z.B. könnte die Notwendigkeit bestehen, Eingabedaten dadurch zu transformieren, dass aneinander angrenzende Bytes vor dem Scannen nach der angegebenen Bytesequenz durch Xoring vereint werden. (Dies gestattet Mustern, in Daten lokalisiert zu werden, welche verschlüsselt wurden, indem jedes Byte mit einem beliebigen 1 Byte Schlüssel einem Xoring unterzogen wurde; eine detaillierte Beschreibung ist zu finden in dem am 15. August 1995 an William C. Arnold, u.a. erteilten US Patent 5442699 mit dem Titel „Searching for patterns in encrypted data".) Weitere Beispiele für Transformationen, die gegenwärtig allgemein eingesetzt werden, umfassen die Anwendung eines Emulators auf dem Eingabeprogramm, damit ein polymorpher Virus ermutigt wird, sich vor dem Scannen nach Mustern (nahezu) selbst zu entschlüsseln, und das Parsing eines Microsoft Word Dokuments, um die Makrodaten vor dem Scannen nach Makroviren zu entschlüsseln.
  • Ein weiteres Beispiel für einen Virusscanner wird in NL-A-9100084 angeführt.
  • Bezeichnenderweise geht ein Scanner so vor, dass er zunächst die Signaturdaten für einen oder mehrere Viren in den Speicher lädt und dann eine Menge von potentiellen Hosts auf Entsprechungen zu einer oder mehreren der Signaturen untersucht. Wird irgendeine Signatur gefunden, können weitere Maßnahmen ergriffen werden, um den Benutzer vor dem wahrscheinlichen Vorhandensein eines Virus zu warnen und um das Virus in einigen Fällen zu beseitigen.
  • Da die Anzahl bekannter Computerviren rapide über die Zehntausend-Marke hinauswächst, spitzt sich das Problem hinsichtlich der Aufbewahrung von Signaturen und zugehörigen Informationen im Speicher immer mehr zu. Dies gilt insbesondere im Fall des DOS-Betriebssystems, welches normalerweise gerade einmal 640 Kilobytes für sämtliche Programme und Daten im Systemspeicher zur Verfügung stellt, einschließlich der Virussignaturen, des Antivirus-Programmcodes, der anti-viralen Terminator- und Stay Resident Prozessen sowie jedes beliebigen anderen nicht zugehörigen Codes und ebensolcher Daten, welche eventuell in den Systemspeicher geladen wurden.
  • Eine mögliche Lösung für das Problem der Speicherknappheit in auf DOS basierenden Systemen besteht darin, dass das Antivirusprogramm einen DOS-Extender einsetzt, welcher Programmen gestattet, mehr als 640 Kilobytes an Speicher zu verwenden, falls ein derartiger „erweiterter Speicher" auf dem Computer vorhanden ist. Obgleich viele der heutigen PCs über einen erweiterten Speicher verfügen, können DOS-Extender den Betrieb eines Antivirusprogramms erheblich verlangsamen. Jedenfalls ist es selbst bei anderen Betriebssystemen als DOS wünschenswert, die Speicherverwendung zu minimieren, vorausgesetzt, dass sich dies ohne eine erhebliche Herabsetzung der Geschwindigkeit des Scanners bewerkstelligen lässt.
  • Die Erfassung von Computerviren bietet nur ein Beispiel für das generelle Problem bezüglich der Bestimmung, ob eine gegebene Datenfolge irgendeine aus einer gegebenen Menge von Eigenschaften besitzt. Unter einer Datenfolge ist eine Sequenz von Bytes zu verstehen, welche Informationen auf einem Computer repräsentieren, z.B. ein Programm oder ein Dokument. Ein Beispiel für eine Eigenschaft von Datenfolgen, welche Computerprogramme bilden, stellt deren Infizierung mit dem Jerusalem Virus dar. Die Menge von Eigenschaften könnte allen bekannten Viren oder einer ihrer Untermengen zugehören. Ein zweites Beispiel für eine Eigenschaft von Computerprogrammen ist die, von einem bestimmten Kompilierer kompiliert worden zu sein. Für Datenfolgen, welche Text darstellen, gehören zu den Beispielen für Dateneigenschaften, dass der Text in einer bestimmten Sprache abgefasst ist, z.B. in Französisch, oder dass er Informationen über ein bestimmtes Sachgebiet enthält, z.B. über Sport oder die Aufführungen von Händel-Oratorien.
  • Ein gängiges Verfahren zur Erfassung von Dateneigenschaften in Datenfolgen besteht in der Suche nach einer Menge von Mustern, welche auf diese Eigenschaften hinweisen. Bei Computerviren sind die Muster typischerweise Computervirussignaturen, wie oben beschrieben. Der Kompilierer, der zur Erzeugung eines gegebenen Körpers eines Maschinencodes verwendet wird, stellt eine Eigenschaft dar, welche sich ebenfalls mit Hilfe von Signaturen identifizieren lässt. Um Sprachen oder Sachgebiete zu identifizieren, kann ein Text nach Mengen von Schlüsselwörtern abgescannt werden, und aus der Häufigkeit des Auftretens dieser Schlüsselwörter oder deren ungefährer Entsprechungen lässt sich folgern ob, und wenn ja, welche Eigenschaften vorhanden sind. Recht häufig gibt es ein Abbild von den lokalisierten Ereignissen des Vorkommens der Muster auf eine (möglicherweise leere) Menge von gefolgerten Dateneigenschaften. Das Abbild kann die Orte der Ereignisse des Vorkommens innerhalb der Datenfolge berücksichtigen oder auch nicht. Das Abbild kann ein eins-zu-eins, ein eins-zu-viele oder ein viele-zu-eins Verhältnis darstellen. Beispielsweise ist das Abbild bei Computervirusanwendungen ungefähr eins-zu-eins, aber einige Signaturen treten in mehreren Viren auf, und zur Identifizierung eines einzigen Virus werden mitunter mehrere Signaturen benützt.
  • Ungeachtet der Besonderheiten einer Anwendung kommt es häufig vor, dass eine effiziente Erfassung von Dateneigenschaften innerhalb einer Datenfolge eine simultane Suche nach einer großen Anzahl von Mustern in eben dieser Datenfolge verlangt. In solchen Fällen kann der zur Speicherung der Muster und jeglicher Hilfsdaten benötigte Speicherplatz erheblich sein. Gemeinhin ist es wünschenswert, dass ein Detektor von Dateneigenschaften in jeglicher Hinsicht so effizient wie möglich arbeitet; insbesondere ist von Belang, dass der Detektor den geringst möglichen Speicherplatz in Anspruch nimmt.
  • Grob umrissen, bietet die vorliegende Erfindung sowohl ein effizientes Verfahren zum Erfassen der Wahrscheinlichkeit des Vorhandenseins von bekannten Dateneigenschaften in einer Datenfolge als auch eine Programmspeichereinheit (z.B. eine Diskette), welche von einem Rechner gelesen werden kann und konkret ein Programm von Befehlen beinhaltet, welche durch den Rechner ausgeführt werden können, um die Schritte dieses Verfahrens durchzuführen.
  • Aufgrund dessen bietet die vorliegende Erfindung ein Verfahren zum Erfassen der Wahrscheinlichkeit des Vorhandenseins einer Dateneigenschaft aus einer ersten Menge von bekannten Dateneigenschaften in einer Datenfolge durch Verwendung einer zweiten Menge G von allgemeinen Merkmalen und einer dritten Menge S von Signaturen, wobei die allgemeinen Merkmale und die Signaturen für die erste Menge von Dateneigenschaften kennzeichnend sind, wobei das Verfahren die folgenden Schritte umfasst:
    • a) Laden der Menge G in einen Speicher eines Computers,
    • b) Lokalisieren der Ereignisse des Vorkommens jedes allgemeinen Merkmals der Menge G in der Datenfolge,
    • c) Erstellen eines ersten Abbilds von den Ereignissen des Vorkommens, die in Schritt b) lokalisiert wurden, um eine Teilmenge S* von S zu erhalten,
    • d) Laden aller Signaturen aus der Teilmenge S* in einen Speicher des Computers,
    • e) Lokalisieren der Ereignisse des Vorkommens aller Signaturen aus der Teilmenge S* in der Datenfolge, und
    • f) Erstellen eines zweiten Abbilds von den Ereignissen des Vorkommens, die in Schritt b) lokalisiert wurden, um eine Menge von Dateneigenschaften zu identifizieren, die in der Datenfolge wahrscheinlich vorhanden sind.
  • In Abhängigkeit von der Wahrscheinlichkeit, dass irgendeine identifizierte Menge von Dateneigenschaften in besagter Datenfolge vorhanden ist, kann das Verfahren nach Wunsch einen weiteren Schritt umfassen, welcher darin besteht, dass die Identität der Dateneigenschaften in der identifizierten Menge signalisiert wird.
  • Gemäß einer weiteren bevorzugten Ausführungsform und in Abhängigkeit davon, ob irgendwelche Signaturen gemäß Schritt (d) in den Speicher geladen werden, kann das Verfahren einen weiteren Schritt umfassen, welcher in dem Entladen der Signaturen aus dem Speicher nach Ausführung von Schritt (e) besteht.
  • In einer bevorzugten Ausführungsform des erfinderischen Verfahrens ist jede Dateneigenschaft ein Computervirus, der durch eine Signatur s der dritten Menge S identifizierbar ist.
  • In einer bevorzugten Ausführungsform des erfinderischen Verfahrens benötigt die zweite Menge G von allgemeinen Merkmalen eine geringere Speichergröße für die Speicherung als die dritte Menge S von Signaturen.
  • Vorzugsweise umfasst das besagte erste Abbild wie folgt:
    • c1) für jedes allgemeine Merkmal, das in der Datenfolge wenigstens einmal vorkommt, Abrufen einer zugehörigen Liste von Signaturen der ersten Menge S aus einer ersten Nachschlagtabelle,
    • c2) Verknüpfen aller abgerufenen zugehörigen Signaturlisten, um eine verknüpfte Signaturliste zu bilden,
    • c3) Zählen der Häufigkeit des Vorkommens jeder Signatur in der verknüpften Signaturliste,
    • c4) Bilden der Teilmenge S* aus allen Signaturen s, für welche die gezählte Häufigkeit des Vorkommens in der verknüpften Signaturliste nicht kleiner als ein Schwellenwert für s ist, der aus einem Wert berechnet wird, der aus einer zweiten Nachschlagtabelle erhalten wird.
  • Gemäß einer bevorzugten Ausführungsform des erfinderischen Verfahrens wird die erste Nachschlagtabelle aus einer Sammlung von Datenfolgen automatisch abgeleitet, wobei jede Datenfolge wenigstens eine der Dateneigenschaften besitzt, wobei dieses Verfahren die folgenden Schritte umfasst:
    • L1a) Lokalisieren aller Ereignisse des Vorkommens jedes allgemeinen Merkmals der Menge G und jeder Signatur der Menge S in jeder Datenfolge in der Sammlung,
    • L1b) Definieren einer zugehörigen Merkmalliste für jede Signatur s, die alle allgemeinen Merkmale enthält, die in jedem Element einer definierten Teilmenge der Menge von Datenfolgen, in denen die Signatur s vorhanden ist, vorkommen,
    • L1c) für jedes allgemeine Merkmal g Definieren einer zugehörigen Signaturliste aller Signaturen, die g in ihren zugehörigen Merkmallisten enthalten, und
    • L1d) Bilden der ersten Nachschlagtabelle durch Speichern jedes allgemeinen Merkmals g mit seiner zugehörigen Signaturliste.
  • Vorzugsweise wird die zweite Nachschlagtabelle aus einer Sammlung von Datenfolgen automatisch abgeleitet, wobei jede Datenfolge wenigstens eine der Dateneigenschaften enthält, wobei dieses Verfahren die folgenden Schritte umfasst:
    • L2a) Lokalisieren aller Ereignisse des Vorkommens aller allgemeinen Merkmale der Menge G und aller Signaturen der Menge S in jeder Datenfolge in der Sammlung,
    • L2b) für jede Signatur s,
    • i) Definieren einer zugehörigen Merkmalliste für jede Signatur s, die alle allgemeinen Merkmale enthält, die in jedem Element einer definierten Teilmenge der Menge von Datenfolgen, in denen die Signatur s vorhanden ist, vorkommen,
    • ii) Zählen der Anzahl unterschiedlicher allgemeiner Merkmale in der zugehörigen Merkmalliste, und
    • iii) Berechnen einer Funktion des Zählers für die Signatur s;
    • L2c) Bilden der zweiten Nachschlagtabelle durch Speichern jeder Signatur s mit der Funktion ihres Zählers.
  • In einer bevorzugten Ausführungsform ist die Funktion des Zählers der Zählerstand selbst. In einer weiteren Ausführungsform kann die Funktion des Zählers der größere Wert von einer ersten gewählten Konstanten und dem Zählerstand, verringert um eine zweite gewählte Konstante, sein.
  • Wie zuvor erwähnt, bietet die Erfindung weiterhin allgemein eine Programmspeichereinheit (z.B. ein Computerband oder eine Diskette), welche durch einen Rechner gelesen werden kann und konkret ein Programm aus Anweisungen beinhaltet, welche durch den Rechner ausgeführt werden können, und zwar zwecks Durchführung von Schritten eines Verfahrens zum Erfassen der Wahrscheinlichkeit des Vorhandenseins einer Dateneigenschaft aus einer ersten Menge von bekannten Dateneigenschaften in einer Datenfolge durch Verwendung einer zweiten Menge G von allgemeinen Merkmalen und einer dritten Menge S von Signaturen, wobei die allgemeinen Merkmale und die Signaturen kennzeichnend für die erste Menge von Dateneigenschaften sind, wobei besagtes Verfahren die folgenden Schritte umfasst:
    • a) Laden der Menge G in einen Speicher eines Computers,
    • b) Lokalisieren der Ereignisse des Vorkommens jedes allgemeinen Merkmals der Menge G in der Datenfolge,
    • c) Erstellen eines ersten Abbilds von den Ereignissen des Vorkommens, die in Schritt b) lokalisiert wurden, um eine Teilmenge S* von S zu erhalten,
    • d) Laden aller Signaturen aus der Teilmenge S* in einen Speicher des Computers,
    • e) Lokalisieren der Ereignisse des Vorkommens aller Signaturen aus der Teilmenge S* in der Datenfolge, und
    • f) Erstellen eines zweiten Abbilds von den Ereignissen des Vorkommens, die während Schritt e) lokalisiert wurden, um eine Menge von Dateneigenschaften zu identifizieren, die in der Datenfolge wahrscheinlich vorhanden sind.
  • Anders formuliert, stellt die vorliegende Erfindung fest, wenn überhaupt, welche Dateneigenschaften aus einer ersten Menge T derartiger Eigenschaften eine gegebene Datenfolge D wahrscheinlich besitzt. Bei ihrer Verwendung von Speicherplatz erweist sich die vorliegende Erfindung effizient, und in einigen Fällen kann sie außerdem einen Geschwindigkeitsvorteil gegenüber bestehenden Techniken verschaffen.
  • Die Erfindung kann als eine Klassifiziereinrichtung für Datenfolgen betrachtet werden, welche zwei wesentliche Komponenten beinhaltet. Bei der ersten Komponente handelt es sich um eine „Standard"-Klassifiziereinrichtung, welche innerhalb einer gegebenen Datenfolge D nach einer Menge S (d.h. nach einer „dritten Menge") von Mustern und zugehörigen Hilfsdaten sucht (welche nachfolgend als „Signaturen" bezeichnet werden); wenn sie derartige Signaturen findet, verwendet die Einrichtung ein Abbild zwischen den lokalisierten Ereignissen des Vorkommens (d.h. den Identitäten beliebiger vorkommender Signaturen und möglicherweise deren Ort in D) und den Dateneigenschaften, um daraus auf das wahrscheinliche Vorhandensein einer oder mehrerer Dateneigenschaften in D zu schließen. Typischerweise gehört jede Signatur zu nur einer oder vielleicht zu einigen wenigen der Dateneigenschaften in T, so dass das Abbild zwischen Signaturen und Dateneigenschaften gewöhnlich recht einfach ausfällt, vielleicht sogar eins-zu-eins ist. Bei der zweiten Komponente handelt es sich um eine „Filter"-Klassifiziereinrichtung, welche vor der „Standard"-Klassifiziereinrichtung zum Einsatz kommt. Die Filter-Klassifiziereinrichtung sucht innerhalb der gegebenen Datenfolge D nach Ereignissen des Vorkommens einer anderen Menge (d.h. einer „zweiten Menge") G von Mustern und zugehörigen Hilfsdaten (welche nachfolgend als „allgemeine Merkmale" bezeichnet werden). Typischerweise gehören die von dem „Filter" verwendeten allgemeinen Merkmale tendenziell zu mehreren der Dateneigenschaften, und sind sowohl kompakter in ihrer Darstellung als auch geringer in ihrer Anzahl als jene, die von der „Standard"-Klassifiziereinrichtung benützt werden. Daher neigt der von der Menge G benützte Speicherplatz dazu, weitaus niedriger zu sein als jene, die von der Menge S in Anspruch genommen wird. Die in D vorgefundene Teilmenge von Ereignissen des Vorkommens allgemeiner Merkmale wird, falls sie irgendwelche Elemente enthält, eingesetzt, um eine Teilmenge von Signaturen S* zu konstruieren, welche in D vorhanden sein könnte. Anstatt die ganze Menge von Signaturen S zu verwenden, muss die „Standard"-Klassifiziereinrichtung lediglich S* aus einem sekundären Speichermedium (z.B. einer Festplatte, Diskette oder einem CD-ROM) in den Speicher laden. Daraufhin arbeitet die Standard-Klassifiziereinrichtung in normaler Weise, wobei sie das Vorhandensein jeder beliebigen Signatur verwendet, die in D gefunden wird, um daraus auf das wahrscheinliche Vorhandensein von zugehörigen Dateneigenschaften innerhalb D zu schließen.
  • In Situationen der Praxis, z.B. beim Scannen nach Computerviren, sind die kombinierten Speichererfordernisse der „Filter"-Klassifiziereinrichtung und der kennzeichnenderweise kleinen Teilmenge S* von Signaturen, welche von der „Standard"-Klassifiziereinrichtung geladen wird, geringer als die Speichererfordernisse der nicht erweiterten „Standard"-Klassifiziereinrichtung, welche die gesamte Menge S von Signaturen einsetzen muss. Anders ausgedrückt, sind die Speichererfordernisse für G, S* und den Extracode, welcher durch das Filter eingeführt wird, erheblich geringer als die Speichererfordernisse für S. Dadurch, dass die Speichererfordernisse in dieser Weise reduziert werden, besteht keine Notwendigkeit, die Geschwindigkeit der Klassifiziereinrichtung zu senken; tatsächlich trug die Speicherverringerung bei einer Ausführung dieser Erfindung dazu bei, die Gesamtgeschwindigkeit der Klassifiziereinrichtung zu verbessern.
  • Die Menge von Signaturen S kann manuell oder automatisch abgeleitet werden; das automatische Extrahieren wird in US Patent 5452442 beschrieben. Auch die Menge allgemeiner Merkmale G lässt sich manuell oder automatisch ableiten; eine automatische Ableitung kann durch Mittel erfolgen, welche beschrieben sind in US Patent 5675711 mit dem Titel: „Adaptive Statistical Regression and Classification of Data Strings, with Application to the Generic Detection of Computer Viruses". Dieses Patent wurde am 13. Mai 1994 an G. J. Tesauro, G. B. Sorkin und J. O. Kephart erteilt. Das Abbild zwischen einer Teilmenge allgemeiner Merkmale und der zugehörigen Teilmenge von Signaturen, welche zu überprüfen sind, lässt sich zwar auch manuell ableiten, aber in einer bevorzugten Ausführungsform wird das Abbild automatisch durch Verfahren abgeleitet, welche in der detaillierten Beschreibung der vorliegenden Erfindung ausführlicher zu erläutern sind.
  • In einer Ausführungsform der vorliegenden Erfindung handelt es sich bei besagter Datenfolge um jede beliebige Bytesequenz, welche ausführbare Anweisungen und zugehörige Daten darstellt, welche als potentieller Host für ein Computervirus dienen können, und die Klassifiziereinrichtung wird eingesetzt, um das wahrscheinliche Vorhandensein irgendeines Virus unter einer spezifizierten Menge von Computerviren zu erfassen. Die „Standard"-Komponente der Klassifiziereinrichtung besteht aus einem Virusscanner, z.B. jenem der in IBM AntiVirus eingegliedert ist, oder nahezu jedem anderen Standardvirusscanner.
  • Eine zweite Ausführungsform der vorliegenden Erfindung besteht in ihrer Anwendung hinsichtlich des Problems der Bestimmung, welcher Kompilierer zur Erzeugung eines gegebenen ausführbaren Computerprogramms eingesetzt wurde, wenn überhaupt. Bei dieser Anwendung ist die Datenfolge, welche der Klassifiziereinrichtung präsentiert wird, der Maschinencode des gegebenen Computerprogramms. Das Verfahren beinhaltet zunächst das Abscannen des Programms nach einer Menge von allgemeinen Merkmalen, wobei jedes Merkmal durch eine Bytesequenz dargestellt wird, für welche eine Entsprechung benötigt wird, die exakt ist oder eine vorgegebene Anzahl von Fehlübereinstimmungen aufweist; ferner das Abbilden der Teilmenge allgemeiner Merkmale auf eine Teilmenge von Signaturen, wobei jede Signatur aus einer Bytesequenz besteht, der exakt oder mit einer vorgegebenen Anzahl von Fehlübereinstimmungen zu entsprechen ist; des Weitern das Abscannen des Programms nach jeder Signatur in der Teilmenge; und, falls irgendwelche Signaturen innerhalb des Programms lokalisiert werden, die Schlussfolgerung, dass das Programm unter Verwendung des zu der Signatur/den Signaturen gehörenden Kompilierers kompiliert wurde.
  • Eine Ausführungsform der Erfindung wird nun unter Bezugnahme auf die begleitenden Zeichnungen beschrieben, in welchen:
  • 1 ein Blockdiagramm eines Computersystems zur Ausführung der vorliegenden Erfindung ist.
  • 2 ein Flussdiagramm ist, welches ein Verfahren zum Erfassen von Dateneigenschaften in einer gegebenen Datenfolge in Übereinstimmung mit der vorliegenden Erfindung beschreibt.
  • 3 ein Flussdiagramm ist, welches eine Funktion zur Abbildung beschreibt, welche eine Menge allgemeiner Merkmale in eine Teilmenge von Signaturen in Übereinstimmung mit der vorliegenden Erfindung abbildet.
  • 4 ein Flussdiagramm ist, welches ein Verfahren zur Ableitung zweier Nachschlagtabellen in Übereinstimmung mit der vorliegenden Erfindung erläutert.
  • Zunächst wird auf 1 Bezug genommen, welche ein Blockdiagramm eines Systems 10 zeigt, das sich zur Veranschaulichung der Erfindung eignet.
  • Ein Bus 12 besteht aus einer Mehrzahl von Signalleitungen zum Transport von Adressen, Daten und Steuerungsbefehlen zwischen einer Zentraleinheit (ZE) 14 und einer Anzahl anderer Einheiten des Systembusses. An den Systembus 12 ist ein RAM 16 gekoppelt, welches Speicherplatz für Programmbefehle und Arbeitsspeicher für die ZE 14 zur Verfügung stellt. Weiterhin ist mit dem Systembus 12 ein Subsystem 18 zur Terminal-Steuerung verbunden, welches Ausgänge an ein Display 20, typischerweise ein CRT-Monitor, liefert und Eingänge von einem Gerät 22 für manuelle Eingabe, z.B. von einer Tastatur oder einem Zeigegerät (z.B. einer Maus), erhält. Ein Subsystem 24 zur Festplattensteuerung koppelt eine rotierende Festplatte, oder Festplatte 26, bidirektional mit den Systembus 12. Die Steuerung 24 und die Festplatte 26 verschaffen Massenspeicher für ZE-Befehle und -Daten. Ein Subsystem 28 zur Floppy Disk Steuerung, welches gemeinsam mit den Floppy Disk Laufwerken 30 als Eingabemittel bei dem Transfer von Computerdaten von Floppy Disketten 30a zum Systemspeicher nützlich ist, verbindet bidirektional ein oder mehrere Floppy Disk Laufwerke 30 mit dem Systembus 12.
  • Selbstverständlich können die in 1 veranschaulichten Komponenten in einem Personal Computer, einem tragbaren Computer, einer Workstation, einem Minicomputer, einem Supercomputer oder jedem beliebigen anderen System enthalten sein, welches einen Computer umfasst. Dementsprechend sind die Einzelheiten der physischen Ausführung der Hardware des Datenverarbeitungssystems 10, wie etwa die Struktur des Busses 12 oder die Anzahl der an den Bus gekoppelten Zentraleinheiten 14 nicht entscheidend für den Betrieb der Erfindung und werden daher nicht weiter erläutert.
  • Das erfindungsgemäße Verfahren wird nun anhand eines spezifischen, in 2 dargestellten Beispiels dargelegt. 2 zeigt ein Flussdiagramm, welches die Logik der Abläufe veranschaulicht, durch welche auf die Wahrscheinlichkeit des Vorhandenseins beliebiger erheblicher Dateneigenschaften innerhalb einer gegebenen Datenfolge D, sowie auf die Identitäten solcher Dateneigenschaften, geschlossen wird.
  • Zunächst wird die vollständige zweite Menge G von allgemeinen Merkmalen in einen Speicher eines Computers geladen 202. Die Daten der allgemeinen Merkmale spezifizieren Muster, für die es eine Entsprechung zu finden gilt, und zugehörige Hilfsdaten, wie bereits zuvor im Bezug auf den Stand der Technik erklärt wurde. Dann erfolgt die Suche 204 nach Datenfolge D, um Ereignisse des Vorkommens jedes allgemeinen Merkmals zu finden, welches zu der Menge G gehört. Die Daten auf den lokalisierten Ereignissen des Vorkommens können genaue Einzelheiten darüber enthalten, wo jedes Merkmal in D vorkommt, oder lediglich die Anzahl von Ereignissen des Vorkommens jedes Musters innerhalb D oder innerhalb bestimmter Bereiche von D zählen (z.B. in einem Bereich von 1000 Bytes vor oder nach dem Eintrittspunkt, wenn D ein potentiell infiziertes Host-Programm darstellt), oder auch lediglich vermerken, ob jedes allgemeine Merkmal überhaupt innerhalb D vorgekommen ist oder nicht. Dann bildet in Schritt 206 eine erste Abbildungsfunktion M1 die lokalisierten Ereignisse des Vorkommens in jeglicher Form, in welcher diese ausgedrückt sind, in einer Signaturreferenzliste Sref* ab, welche die Identitäten einer Teilmenge S* von Signaturen enthält, die aus der vollständigen dritten Menge S von Signaturen ausgewählt werden. In Schritt 208 wird eine Bestimmung durchgeführt, ob die Teilmenge S* Signaturen enthält. Ist dies nicht der Fall, wird daraus der Schluss gezogen 210, dass wahrscheinlich keine erheblichen Dateneigenschaften vorhanden sein. Wenn die Teilmenge S* jedoch Signaturen enthält, dann werden in Schritt 212 jene Signaturen, auf welche in der Signaturreferenzliste Sref* verwiesen wird, aus einer Datenbank der vollständigen Menge von Signaturen S, welche sich auf einem sekundären Speichermedium, z.B. einer Festplatte, einer Floppy Disk oder einem CD-ROM, befindet, ausgelesen und in ein primäres Speichermedium, d.h. einen Computerspeicher, geladen. Nun ist die Signaturteilmenge S* in dem Speicher vorhanden. Die Datenfolge D wird durchsucht 214, um Ereignisse des Vorkommens jeder Signatur in der Teilmenge S* zu finden. Erneut können die lokalisierten Ereignisse des Vorkommens so spezifisch oder unspezifisch bezüglich des genauen Ortes oder der Häufigkeit des Auftretens jedes Musters sein, wie dies von der Anwendung garantiert wird. Daraufhin bildet eine zweite Abbildungsfunktion M2 die lokalisierten Ereignisse des Vorkommens in eine gefolgerte Gruppe von Dateneigenschaften ab 216, welche wahrscheinlich innerhalb D vorhanden sind. Das zweite Abbild M2 ist häufig recht einfach; im Fall von Computerviren wird es typischerweise als Nachschlagtabelle implementiert, welche jeder Signatur eine Liste von einem oder mehreren Viren zuordnet, bei denen die Wahrscheinlichkeit besteht, dass sie vorhanden sind, wenn diese Signatur gefunden wird. Nachdem gefolgert wurde, dass eine oder mehrere Dateneigenschaften innerhalb der Datenfolge vorhanden sein können, besteht die Möglichkeit zur Erzeugung 218 eines entsprechenden Signals, z.B. ein Message Listing, oder die Anzeige einer Beschreibung von Dateneigenschaften, welche wahrscheinlich vorhanden sind, auf dem Computerdisplay, oder auch ein Trigger, der weitere Abläufe auslöst, welche dem Vorhandensein der Dateneigenschaften angemessen sind. In Schritt 220 kann die Signaturteilmenge S* optional aus dem Speicher entladen oder im Zwischenspeicher untergebracht werden, um eventuell zu Lasten irgendeines Speichers an Geschwindigkeit zu gewinnen.
  • Typischerweise ist eine Signatur gerade einmal einer oder vielleicht ein paar der Dateneigenschaften in der erheblichen Menge zugehörig, obgleich dies nicht wesentlich ist. Das Ableiten der Menge von Signaturen lässt sich mittels einer Vielzahl von Verfahren durchführen, einschließlich einer manuellen Bestimmung durch einen Fachmann oder einer automatischen Extraktion von Signaturen aus zwei Mengen von Datenfolgen, nämlich einer ersten Menge von Datenfolgen, von der bekannt ist, dass sie die Dateneigenschaften besitzt, und einer zweiten Menge von Datenfolgen, von der bekannt ist, dass sie die Dateneigenschaften nicht besitzt. Die Einzelheiten eines solchen automatischen Verfahrens zur Signaturextraktion werden in US Patent 5452442 beschrieben.
  • Kennzeichnenderweise ist ein allgemeines Merkmal mehreren Dateneigenschaften in der erheblichen Menge zugehörig, obgleich dies nicht wesentlich ist. Die Menge von allgemeinen Merkmalen kann manuell durch einen Fachmann oder automatisch aus zwei Mengen von Datenfolgen abgeleitet werden, nämlich einer ersten Menge von Datenfolgen, von der bekannt ist, dass sie die Dateneigenschaften besitzt, und einer zweiten Menge von Datenfolgen, von der bekannt ist, dass sie die Dateneigenschaften nicht besitzt. Die Einzelheiten der automatisierten Extraktion allgemeiner Merkmale werden in dem von Tesauro, u.a. gestellten US Patentantrag S.N. 08/242757 beschrieben.
  • Die Abbildungsfunktion M1, welche die lokalisierten Ereignisse des Vorkommens der allgemeinen Merkmale in der Datenfolge in eine Signaturreferenzliste Sref* abbildet, kann auf vielerlei Arten funktionieren. Wie zuvor ausgeführt, kann das Abbild von den genauen Orten oder der Anzahl von Zeitpunkten, zu denen ein bestimmtes allgemeines Merkmal erscheint, abhängen oder nicht. Wenn besagte Datenfolgen potentielle Hosts für Computerviren sind, besteht die Möglichkeit, Einzelheiten des genauen Orts zu ignorieren (vorausgesetzt, dass die Entsprechung in allgemeine Bereiche fällt, welche durch die Hilfsdaten zugelassen werden), und es ist weiterhin möglich, die Details der Häufigkeit des Vorkommens der Ereignisse zu ignorieren (d.h. ausschlaggebend ist einzig, ob ein gegebenes Merkmal erscheint oder nicht). Ein Flussdiagramm einer bevorzugten Ausführungsform der Abbildungsfunktion, welche für den Fall eingeführt wurde, dass die Datenfolgen Computerprogramme sind, ist in 3 erläutert. Für jedes allgemeine Merkmal g wird aus einer im Voraus errechneten Nachschlagtabelle L1 eine zugehörige Signaturliste erhalten 302, wenn die Anzahl der Zeitpunkte, zu denen es innerhalb der Datenbereiche vorkommt, die durch die Hilfsdaten für g definiert werden, größer Null ist. In Schritt 304 werden sämtliche zugehörigen Signaturlisten, die so abgerufen wurden, zwecks Bildung einer verknüpften Signaturliste VSL verbunden. Daraufhin wird in Schritt 306 die Häufigkeit des Vorkommens jeder Signatur s innerhalb der verknüpften Signaturliste, O(s), gezählt. Für jede Signatur s, für welche O(s) Null überschreitet, wird ein maximaler Schwellenwert MT(s) aus einer Nachschlagtabelle L2 abgerufen 308, welcher maximale Schwellenwerte für jede Signatur in Menge S enthält. In Schritt 310 kann eine Funktion F auf jeden abgerufenen maximalen Schwellenwert MT(s) angewandt werden, um einen gleichen oder kleineren Schwellenwert T(s) zu erhalten, welcher die minimale Anzahl von Zeitpunkten darstellt, die s innerhalb VSL erscheinen muss, um sich für die Einbeziehung in die Menge S* zu qualifizieren. Die logische Maßnahme zur Verringerung des Schwellenwerts von MT(s) auf einen kleineren Wert T(s) wäre, einige Fehlübereinstimmungen zu akzeptieren, z.B. als Reaktion auf den ausdrücklichen Wunsch eines Benutzers, dies so zu handhaben. In einem solchen Fall könnte die Funktion F z.B. T(s) als den größeren Wert von einer ersten gewählten Konstante (z.B. 1) oder den MT(s) weniger einer zweiten gewählten Konstante berechnen. In Schritt 312 wird die Signatur s zu der Signaturreferenzliste Sref* zugefügt, wenn, und nur dann, wenn die Zahl O(s) nicht unter dem Schwellenwert T(s) liegt.
  • Die im Voraus berechnete Nachschlagtabelle L1, welche für jedes allgemeine Merkmal eine Liste zugehöriger Signaturen enthält, lässt sich manuell oder automatisch erzeugen. In einer bevorzugten Ausführungsform erfolgt die Erzeugung automatisch durch ein Verfahren, welches in dem Flussdiagramm aus 4 dargestellt ist. Zunächst wird eine Sammlung von Sample-Datenfolgen, von denen jede bekanntermaßen mindestens eine der erheblichen Dateneigenschaften besitzt, gesucht 402, um alle Ereignisse des Vorkommens jedes allgemeinen Merkmals und jede Signatur in jeder Datenfolge in der Sammlung zu finden. (Die Einbeziehung von Samples, welche keine der Dateneigenschaften besitzen, führt nicht zum Scheitern des Verfahrens; es findet lediglich eine Verschwendung statt). Dann wird für jede Signatur s eine Teilmenge aller Datenfolgensamples, welche s enthalten, identifiziert 404. Die Teilmenge von Datensamples könnte allen Datensamples in der Sammlung entsprechen, welche s enthalten, oder sie könnte durch andere Kriterien weiter eingeschränkt sein; z.B. könnten bei der sich auf Computerviren beziehenden Ausführungsform Datensamples, welche „unechte" Entsprechungen zu Signaturen enthalten, von der Teilmenge ausgeschlossen werden.
  • Von einer gegebenen Signatur s kann gesagt werden, dass sie einem gegebenen Element D der Sammlung von Datenfolgen nur fälschlich entspricht, wenn beide der folgenden Bedingungen erfüllt sind. Zunächst ist/sind die Dateneigenschaft(en), welche D besitzt, bekannt oder kann/können durch ein unabhängiges Verfahren, welches kein Scannen nach Signaturen in der Menge S mit sich bringt, und anschließendes Erstellen des Abbilds M2 zwecks Folgerung der Dateneigenschaften erschlossen werden. (Von jedem Element einer Menge von Selbstreproduzenten, welche dadurch erhalten wird, dass ein Sampel eines Virus X absichtlich dazu gebracht wird, sich zu vermehren, wäre bekannt, dass es die Dateneigenschaft „mit X infiziert" besitzt). Zweitens enthält die Menge von Dateneigenschaften, welche zu s gehören (jene, welche durch Erstellen des Abbilds M2 aus s erhalten werden) jene Dateneigenschaften) nicht, von der/denen unabhängig bekannt ist, dass D diese besitzt. (Selbst wenn das gegebene Element D nur mit Virus X infiziert ist, enthält es möglicherweise andere Virussignaturen bedingt durch die Tatsache, dass Viren untereinander häufig Familienähnlichkeit aufweisen und daher mitunter ähnliche Bytesequenzen enthalten.)
  • In Schritt 406 wird für jede Signatur eine Liste zugehöriger Merkmale dadurch festgelegt, dass in diese Liste alle allgemeinen Merkmale aufgenommen werden, welche in jedem Element der Datensampleteilmenge für s vorkommen. Als nächstes wird für jedes allgemeine Merkmal g eine Liste zugehöriger Signaturen bestimmt 408, welche aus allen Signaturen besteht, die g unter ihren zugehörigen Merkmallisten enthalten. Schließlich wird die Nachschlagtabelle L1 gebildet, indem jedes allgemeine Merkmal g mit seiner in Schritt 408 erhaltenen zugehörigen Signaturliste gespeichert wird 410.
  • Die Schwellenwertnachschlagtabelle L2 (welche die minimale Anzahl von Zeitpunkten enthält, zu denen eine gegebene Signatur in der verknüpften Signaturliste erscheinen muss, damit sie der Signaturreferenzliste Sref* zugefügt werden kann) lässt sich ebenfalls manuell oder automatisch erzeugen. Eine bevorzugte Ausführungsform ist in 4 dargestellt. Sobald die Liste zugehöriger Merkmale für jede Signatur s erzeugt ist 406, wird eine Funktion F2 der Anzahl unterschiedlicher allgemeiner Merkmale in jeder zugehörigen Merkmalliste in Schritt 412 errechnet, um den maximalen Schwellenwert MT(s) zu erhalten. Typischerweise ist die Funktion F2 die Identität, d.h. die Funktion der Anzahl ist die Anzahl selbst. Allgemeiner ausgedrückt, ist F2 kleiner oder gleich der Anzahl selbst; in letzterem Fall gestattet dies Fehlübereinstimmungen. Zu beachten gilt, dass derartige Fehlübereinstimmungen entweder bei der Ableitung der Schwellenwertnachschlagtabelle L2 oder bei der Ableitung eines Schwellenwerts aus dem Wert in der Nachschlagtabelle in Schritt 308 zugelassen werden können. Anders ausgedrückt, erfüllen die Funktionen F1 und F2 im Wesentlichen den gleichen Zweck – nämlich die Berücksichtigung von Fehlübereinstimmungen -, und jeder bestimmten Ausführung der Erfindung können beide, eine oder keine von diesen angewandt werden. Schließlich wird die zweite Nachschlagtabelle durch Speichern jeder Signatur s mit dem maximalen Schwellenwert MT(s) gebildet 414.
  • Die Klassifizierungsdaten, einschließlich der vollständigen Menge allgemeiner Merkmale G, der vollständigen Menge von Signaturen S, der im Voraus berechneten Nachschlagtabelle L1 und der Schwellenwertnachschlagtabelle L2, können zu einem beliebigen Zeitpunkt vor der Erfassungsphase auf einem Computersystem berechnet werden, welches sich von jenem völlig unterscheidet, auf welchem die Erfassung der Dateneigenschaften stattfindet. Die Klassifizierungsdaten können als eine oder mehrere Dateien gespeichert werden, aus welchen sich eine unbegrenzte Anzahl von Kopien anfertigen und auf Computern speichern lässt, auf welchen das Vorhandensein der erheblichen Dateneigenschaften erfasst werden soll. Wenn zu einem späteren Zeitpunkt eine Datenfolge auf einem solchen Computer klassifiziert werden soll, können die Klassifizierungsdaten aus der Datei/den Dateien in den Speicher des Computers geladen werden, gemeinsam mit Verfahren zur Verwendung der Klassifizierungsdaten, um die Datenfolgen zu klassifizieren.
  • BEISPIEL
  • Zum besseren Verständnis der Erfindung erfolgt deren Beschreibung anhand eines spezifischen Beispiels für deren Verwendung zur Viruserfassung in zwei Phasen, und zwar einer Phase der „Vorbereitung" oder Ableitung der Nachschlag- und Schwellenwerttabellen, und einer Erfassungsphase.
  • Vorbereitungsphase
    • 1. Eingaben: Bei Ableitung einer Nachschlagtabelle werden in diesem Beispiel die drei folgenden Eingaben getätigt:
    • A) Eine Sammlung von Samples virusinfizierter Datenfolgen. Hierbei wird angenommen, dass 17 derartige Samples vorhanden sind, von denen das erste und das letzte gezeigt werden: Sample V1: CD13AB00B74D01BC820631343004914009A9B175858BCAF37CD2180E9004A ... ... ... Sample V17: 906453C7CD2180D1C56803A32400A16A0A42CC9B511175858B2CF44A2E8E0
    • B) Eine Menge G allgemeiner Merkmale, abgeleitet aus der Sammlung virusinfizierter Samples von Datenfolgen in a) durch Mittel, welche in dem von Tesauro, u.a. gestellten US Patentantrag S.N. 08/242757 beschrieben sind (gängiger Praxis zufolge liegt die Anzahl allgemeiner Merkmale typischerweise in einem Bereich von mehreren Dutzend bis mehreren Tausend.) Hierbei wird davon ausgegangen, dass vier derartige allgemeine Merkmale, also g1, g2, g3 und g4, bestehen, von denen jedes als eine Bytesequenz zu verstehen ist, für welche die genaue Entsprechung benötigt wird, und jedes an einer beliebigen Stelle innerhalb der gegebenen Datenfolge zu finden ist: g1: B74D01 g2: CD2180 g3: C3E807 g4: 175858
    • C) Eine Menge S von Signaturen, die aus der Sammlung virusinfizierter Datenfolgen in Übereinstimmung mit Verfahren abgeleitet werden, welche in dem am 19. September 1995 an Jeffrey O. Kephart erteilten US Patent Nr. 5452442 offenbart sind. Hierbei wird von 8 derartigen Signaturen ausgegangen, also s1, s2, ..., s8, von denen jede als eine Bytesequenz zu verstehen ist, für welche die genaue Entsprechung benötigt wird, und jede an einer beliebigen Stelle innerhalb der gegebenen Datenfolge gefunden werden kann: s1: 4D01BC820631343 s2: 4D01BC850631343 s3: FA8BCDE800005B8 s4: 8ED0BC000750B8C s5: 4F0026A0FE032EA s6: 2BCB2E8A0732C2D s7: 28B1E3C00E827FF s8: 6803A32400A16A0
    • 2. Scannen jedes Samples nach Signaturen und allgemeinen Merkmalen. Der nächste Schritt beim Ableiten der Nachschlagtabelle besteht im Scannen jedes virusinfizierten Samples, um die Ereignisse des Vorkommens sämtlicher Signaturen und allgemeiner Merkmale zu lokalisieren; für Samples V1 und V17 ergaben sich aus diesem Schritt die folgenden Ergebnisse:
      Figure 00180001
      Figure 00190001
      Die Ergebnisse der Scanvorgänge mit V1, V2, ..., V17 sind in Tabelle A festgehalten: Tabelle A
      Figure 00190002
    • 3. Erzeugen einer Tabelle allgemeiner Merkmale, welche zu jeder Signatur gehören. Für jede distinkte Signatur besteht der nächste Schritt darin, sämtliche allgemeinen Merkmale zu identifizieren („Liste zugehöriger Merkmale"), welche stets mit ihr zusammen in der zuvor genannten Tabelle A auftreten, und zwar in der zweiten Spalte einer Tabelle B. Daraufhin kann die Anzahl derartiger distinkter allgemeiner Merkmale, welche in der zweiten Spalte zu finden sind, (in einer dritten Spalte von Tabelle B) festgehalten werden. Anhand dieser dritten Spalte werden während der Phase der Erfassung Schwellenwerte berechnet. Unter Verwendung von Tabelle A in besagter Weise lässt sich die folgende Tabelle B herleiten:
  • Tabelle B
    Figure 00200001
  • Aus Tabelle A geht beispielsweise hervor, dass s4 in den Samples V7, V8 und V9 erschien. Das einzige allgemeine Merkmal, das in jedem einzelnen dieser Samples auftrat, war g2, weshalb in Tabelle B nur g2 zu s4 gehört.
  • Nun lässt sich die Nachschlagtabelle L2 ableiten, indem eine Funktion F2 auf die Anzahl der jeder Signatur zugehörigen Merkmale angewandt wird. Der Einfachheit halber wird F2 als Identität angenommen. Dann wird die Nachschlagtabelle L2 verbatim der ersten und der dritten Spalte von Tabelle B schlicht entnommen: Nachschlagtabelle L2
    Signatur Maximaler Schwellenwert
    s1 2
    s2 2
    s3 3
    s4 1
    s5 2
    s6 3
    s7 1
    s8 2
    • 4. Invertieren zwecks Erhalt von Signaturen, welche jedem allgemeinen Merkmal zugehörig sind. Tabelle B wird schließlich invertiert, um eine Nachschlagtabelle L1 zu erhalten, welche, für jedes allgemeine Merkmal, alle Signaturen auflistet, denen es in Tabelle B zugehörig ist. Beispielsweise ist g3 in der zweiten Spalte von Tabelle B als zugehöriges allgemeines Merkmal für Signaturen s2, s3 und s6 gelistet, und dies ist in Tabelle L1 festgehalten.
    Nachschlagtabelle L1
    Allgemeines Merkmal Zugehörige Signaturliste
    g1 s1 s3 s5 s7
    g2 s2 s4 s5 s6 s8
    g3 s2 s3 s6
    g4 s1 s3 s6 s8
  • Nun stehen sämtliche Elemente, welche zur Erfassung von Viren in Übereinstimmung mit der Erfindung benötigt werden, zur Verfügung: sowohl die Mengen G und S als auch die Nachschlagtabellen L1 und L2.
  • DETEKTIONSPHASE
  • Anhand dieser Phase des Beispiels wird erläutert, wie sich die vorliegende Erfindung zwecks Bestimmung einsetzen lässt, ob irgendeine der 8 Virussignaturen in einer Datenfolge D vorhanden ist, welche Gegenstand der Untersuchungen ist. Anstatt der aus s1–s8 bestehenden Menge S muss lediglich die aus g1–g4 bestehende Menge G in den Speicher geladen werden, welche weitaus weniger Speicherplatz benötigt. Im Anschluss daran werden gängige Scantechniken zur Suche nach g1, g2, g3 und g4 in der Datenfolge D eingesetzt:
  • Datenfolge D:
    Figure 00210001
  • Um die Signaturreferenzliste Sref* zu erhalten, muss nun das Abbild M1 erstellt werden. In diesem Beispiel tritt G1 zweimal und G4 einmal auf; des weiteren ist das Abbild M1 so beschaffen, dass die exakten Stellen des Vorkommens von G1 und G4 belanglos sind, genauso wie die Tatsache, dass GI mehr als einmal erschienen ist. Da G1 und G4 die einzigen allgemeinen Merkmale darstellen, welche in D erscheinen, werden sie beide als Nachschlagschlüssel in Nachschlagtabelle L1 eingesetzt, und ihre zugehörigen Signaturlisten werden zwecks Erzeugung einer verknüpften Signaturliste verbunden:
  • Verknüpfte Signaturliste: s1 s3 s5 s7 s1 s3 s6 s8
  • Die Ereignisse des Vorkommens jeder Signatur in der verknüpften Signaturliste werden gezählt und in der zweiten Spalte von Tabelle D angezeigt. Dann werden die maximalen Schwellenwerte MT(s) für jede Signatur s aus Nachschlagtabelle L2 abgerufen, und eine Funktion F1 wird auf jeden davon angewandt, um T(s) zu ermitteln. In diesem Beispiel wird von Funktion F1 als der Identität ausgegangen, so dass die Schwellenwerte in der dritten Spalte von Tabelle D verbatim aus der zweiten Spalte der Nachschlagtabelle L2 übernommen werden. Danach werden Spalten zwei und drei von Tabelle D verglichen, und jene, bei denen die Zahl in der zweiten Spalte den Schwellenwert in der dritten Spalte erreicht oder übertrifft, werden in der vierten Spalte angegeben.
  • Figure 00220001
  • Mit s1 und s7 erfüllen in diesem Fall zwei Signaturen das Kriterium, und die Signaturreferenzliste Sref* besteht aus s1 und s7.
  • Dementsprechend wird nur die aus den Signaturen s1 und s7 bestehende Menge S* von der Diskette in den Speicher geladen, und gängige Scanverfahren (z.B. jene, die von IBM AntiVirus eingesetzt werden) können dann bei dem Versuch verwendet werden, s1 und s7 innerhalb der Datenfolge D zu lokalisieren.
  • Das Ergebnis dieses Scanvorgangs lautet wie folgt:
  • Datenfolge D:
    Figure 00230001
  • Das Vorhandensein von s7 innerhalb der Datenfolge D wird folglich erfasst, und ein Abbild M2 kann erstellt werden, um eine Liste von Viren zu erhalten, welche zu s7 gehören (typischerweise nur einer). Dadurch lassen sich die geeigneten Maßnahmen ergreifen, z.B. das Warnen des Benutzers vor der wahrscheinlichen Anwesenheit des Virus. Eine Alternative dazu stellt das Senden eines entsprechenden Signals an andere, nicht von der Tragweite dieser Erfindung erfasste Abläufe dar, welche über das Vorhandensein der Dateneigenschaft informiert werden müssen.
  • An diesem Punkt können s1 und s7 aus dem Speicher entfernt werden, wenn dies gewünscht wird; allerdings wird bei Caching mitunter bevorzugt, diese zu behalten.
  • Wie die vorangehenden Ausführungen belegen, verlangt die dargelegte Erfindung lediglich jene Speichergröße, welche erforderlich ist, um g1, g2, g3, g4, s1 und s7 zum Zwecke des Scannens zu speichern, und nicht die weitaus beträchtlichere Größe zur Speicherung aller acht der möglichen Virussignaturen s1, s2, ... s8 aus diesem Beispiel.
  • Obgleich diese Erfindung unter Bezugnahme auf eine bevorzugte Anwendungsmöglichkeit erläutert wurde, welche sich auf Computerviren bezieht, sind für Fachleute auch weitere Anwendungen des hierin offenbarten erfinderischen Konzepts offenkundig.

Claims (16)

  1. Verfahren zum Erfassen der Wahrscheinlichkeit des Vorhandenseins einer Dateneigenschaft aus einer ersten Gruppe von bekannten Dateneigenschaften in einer Datenfolge durch Verwendung einer zweiten Gruppe G von allgemeinen Merkmalen und einer dritten Gruppe S von Signaturen, wobei die allgemeinen Merkmale und die Signaturen für die erste Gruppe von Dateneigenschaften kennzeichnend sind, wobei das Verfahren die folgenden Schritte umfasst: a) Laden der Gruppe G in den Speicher eines Computers (202); b) Lokalisieren der Ereignisse des vorkommens jedes allgemeinen Merkmals der Gruppe G in der Datenfolge (204); c) Erstellen eines ersten Abbilds von den Ereignissen des Vorkommens, die im Schritt b) lokalisiert wurden, um eine Teilmenge S* von S zu erhalten (206); d) Laden aller Signaturen aus der Teilmenge S* in einen Speicher des Computers (212); e) Lokalisieren der Ereignisse des Vorkommens aller Signaturen aus der Teilmenge S* in der Datenfolge (214); und f) Erstellen eines zweiten Abbilds von den Ereignissen des Vorkommens, die im Schritt b) lokalisiert wurden, um eine Menge von Dateneigenschaften zu identifizieren, die in der Datenfolge wahrscheinlich vorhanden sind (216).
  2. verfahren nach Anspruch 1, bei dem die erste Abbildung umfasst: c1) für jedes allgemeine Merkmal, das in der Datenfolge wenigstens einmal vorkommt, Abrufen einer zugehörigen Liste von Signaturen der ersten Menge S aus einer ersten Nachschlagtabelle (302); c2) Verknüpfen aller abgerufenen zugehörigen Signaturlisten, um eine verknüpfte Signaturliste zu bilden (304); c3) Zählen der Häufigkeit des Vorkommens jeder Signatur in der verknüpften Signaturliste (306); und c4) Bilden der Teilmenge S* aus allen Signaturen s, für die die gezählte Häufigkeit des Vorkommens in der verknüpften Signaturliste nicht kleiner als ein Schwellenwert für s ist, der aus einem Wert berechnet wird, der aus einer zweiten Nachschlagtabelle erhalten wird (308 bis 312).
  3. Verfahren nach Anspruch 2, bei dem die erste Nachschlagtabelle aus einer Sammlung von Datenfolgen automatisch abgeleitet wird, wobei jede Datenfolge wenigstens eine der Dateneigenschaften besitzt, wobei das Verfahren die folgenden Schritte umfasst: L1a) Lokalisieren aller Ereignisse des Vorkommens jedes allgemeinen Merkmals der Menge G und jeder Signatur der Menge S in jeder Datenfolge in der Sammlung (402); L1b) Definieren einer zugehörigen Merkmalliste für jede Signatur s, die alle allgemeinen Merkmale enthält, die in jedem Element einer definierten Teilmenge der Menge von Datenfolgen, in denen die Signatur s vorhanden ist, vorkommen (404); L1c) für jedes allgemeine Merkmal g Definieren einer zugehörigen Signaturliste aller Signaturen, die g in ihren zugehörigen Merkmallisten enthalten (408); und L1d) Bilden der ersten Nachschlagtabelle durch Speichern jedes allgemeinen Merkmals g mit seiner zugehörigen Signaturliste (410).
  4. Verfahren nach Anspruch 2, bei dem die zweite Nachschlagtabelle aus einer Sammlung von Datenfolgen automatisch abgeleitet wird, wobei jede Datenfolge wenigstens eine der Dateneigenschaften enthält, wobei das Verfahren die folgenden Schritte umfasst: L2a) Lokalisieren aller Ereignisse des Vorkommens aller allgemeinen Merkmale der Menge G und aller Signaturen der Menge S in jeder Datenfolge in der Sammlung (402); L2b für jede Signatur s i) Definieren einer zugehörigen Merkmalliste für jede Signatur s, die alle allgemeinen Merkmale enthält, die in jedem Element einer definierten Teilmenge der Menge von Datenfolgen, in denen die Signatur s vorhanden ist, vorkommen; ii) Zählen der Anzahl von unterschiedlichen allgemeinen Merkmalen in der zugehörigen Merkmalliste; und iii) Berechnen einer Funktion des Zählers (412) für die Signatur s; und L2c) Bilden der zweiten Nachschlagtabelle durch Speichern jeder Signatur s mit der Funktion ihres Zählers (414).
  5. Verfahren nach Anspruch 4, bei dem die Funktion des Zählers der Zählerstand selbst ist.
  6. Verfahren nach Anspruch 4, bei dem die Funktion des Zählers der größere Wert von einer ersten gewählten Konstanten und dem Zählerstand, verringert um eine zweite gewählte Konstante, ist.
  7. Verfahren nach 1, das ferner den folgenden Schritt umfasst, bei dem in Abhängigkeit davon, ob irgendeine identifizierte Menge von Dateneigenschaften in der Datenfolge wahrscheinlich vorhanden ist, die Identität der Dateneigenschaften der identifizierten Menge signalisiert wird.
  8. Verfahren nach Anspruch 1, das ferner den folgenden Schritt umfasst, bei dem in Abhängigkeit davon, ob nach dem Schritt (d) irgendwelche Signaturen in den Speicher geladen werden, die Signaturen nach dem Ausführen des Schritts (e) aus dem Speicher entladen werden.
  9. Verfahren nach Anspruch 1, das ferner den folgenden Schritt umfasst, bei dem in Abhängigkeit davon, ob irgendwelche Signaturen in den Speicher geladen werden, die Signaturen im Speicher zwischengespeichert werden.
  10. Verfahren nach Anspruch 1, 2, 3 oder 4, bei dem die Dateneigenschaften Computerviren sind.
  11. Verfahren nach Anspruch 1, 2, 3 oder 4, bei dem jede Dateneigenschaft eine charakteristische Eigenschaft ist, die durch einen bestimmten Kompilierer kompiliert wurde.
  12. Verfahren nach Anspruch 1, 2, 3 oder 4, bei dem jede Dateneigenschaft ein Computervirus ist, der durch wenigstens eine Signatur der dritten Menge S identifiziert werden kann.
  13. Verfahren nach Anspruch 1, 2, 3 oder 4, bei dem jede Dateneigenschaft ein Computervirus ist, der durch wenigstens eine Signatur der dritten Menge S identifiziert werden kann, wobei die zweite Menge G der allgemeinen Merkmale eine geringere Speichergröße zum Speichern benötigt als die dritte Menge S von Signaturen.
  14. Verfahren nach Anspruch 3, bei dem die definierte Teilmenge der Menge der Datenfolgen, in denen die Signatur s vorhanden ist, die Menge der Datenfolgen selbst ist.
  15. Verfahren nach Anspruch 3, bei dem die definierte Teilmenge der Menge von Datenfolgen, in denen die Signatur s vorhanden ist, aus der Menge von Datenfolgen und höchstens einer bereitgestellten Menge der zugehörigen Dateneigenschaften für jede Datenfolge abgeleitet wird, wobei das Verfahren die folgenden Schritte umfasst: a) Einschließen aller Datenfolgen in der Menge von Datenfolgen in die Teilmenge von Datenfolgen; und b) für jede Datenfolge in der Menge, für die eine Menge von zugehörigen Dateneigenschaften bereitgestellt wurde, Entfernen dieser Datenfolge aus der Teilmenge, wenn ihre bereitgestellte Menge von zugehörigen Dateneigenschaften und die Dateneigenschaften, die s durch die zweite Abbildung zugehörig sind, keine gemeinsamen Dateneigenschaften enthalten.
  16. Programmspeichereinheit, die durch einen Rechner gelesen werden kann und konkret ein Programm aus Anweisungen beinhaltet, die durch den Rechner ausgeführt werden können, um Verfahrensschritte eines Verfahrens zum Erkennen der Wahrscheinlichkeit des Vorhandenseins einer Dateneigenschaft aus einer ersten Menge von bekannten Dateneigenschaften in einer Datenfolge durch Verwendung einer zweiten Menge G von allgemeinen Merkmalen und einer dritten Menge S von Signaturen, wobei die allgemeinen Merkmale und die Signaturen kennzeichnend für die erste Menge von Dateneigenschaften sind, wobei das Verfahren die folgenden Schritte umfasst: a) Laden der Menge G in einen Speicher eines Computers (202); b) Lokalisieren der Ereignisse des Vorkommens jedes allgemeinen Merkmals in der Menge G in der Datenfolge (204); c) Erstellen eines ersten Abbilds von den Ereignissen des Vorkommens, die während des Schritts b) lokalisiert wurden, auf eine Teilmenge S* von S (206); d) Laden aller Signaturen aus der Teilmenge S* in einen Speicher des Computers (212); e) Lokalisieren aller Ereignisse des Vorkommens von allen Signaturen aus der Teilmenge S* in der Datenfolge (214); und f) Erstellen eines zweiten Abbilds von den Ereignissen des Vorkommens, die während des Schritts e) lokalisiert wurden, um eine Menge von Dateneigenschaften, die in der Datenfolge wahrscheinlich vorhanden sind, zu identifizieren (216).
DE69831708T 1997-07-10 1998-06-30 Effiziente Erkennung von Computerviren und andere Dateneigenschaften Expired - Fee Related DE69831708T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US890013 1997-07-10
US08/890,013 US6016546A (en) 1997-07-10 1997-07-10 Efficient detection of computer viruses and other data traits

Publications (2)

Publication Number Publication Date
DE69831708D1 DE69831708D1 (de) 2006-02-09
DE69831708T2 true DE69831708T2 (de) 2006-06-29

Family

ID=25396111

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69831708T Expired - Fee Related DE69831708T2 (de) 1997-07-10 1998-06-30 Effiziente Erkennung von Computerviren und andere Dateneigenschaften

Country Status (3)

Country Link
US (1) US6016546A (de)
EP (1) EP0896285B1 (de)
DE (1) DE69831708T2 (de)

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108799A (en) * 1997-11-21 2000-08-22 International Business Machines Corporation Automated sample creation of polymorphic and non-polymorphic marcro viruses
US5987610A (en) * 1998-02-12 1999-11-16 Ameritech Corporation Computer virus screening methods and systems
US6338141B1 (en) * 1998-09-30 2002-01-08 Cybersoft, Inc. Method and apparatus for computer virus detection, analysis, and removal in real time
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
US6622134B1 (en) * 1999-01-05 2003-09-16 International Business Machines Corporation Method of constructing data classifiers and classifiers constructed according to the method
US6487666B1 (en) 1999-01-15 2002-11-26 Cisco Technology, Inc. Intrusion detection signature analysis using regular expressions and logical operators
US6954858B1 (en) 1999-12-22 2005-10-11 Kimberly Joyce Welborn Computer virus avoidance system and mechanism
US6792556B1 (en) 2000-05-31 2004-09-14 Dell Products L.P. Boot record recovery
JP3251000B2 (ja) * 2000-09-07 2002-01-28 松本建工株式会社 住宅の断熱構造及び使用する遮熱材
US6886099B1 (en) * 2000-09-12 2005-04-26 Networks Associates Technology, Inc. Computer virus detection
US7210041B1 (en) * 2001-04-30 2007-04-24 Mcafee, Inc. System and method for identifying a macro virus family using a macro virus definitions database
US7043758B2 (en) 2001-06-15 2006-05-09 Mcafee, Inc. Scanning computer files for specified content
US7366910B2 (en) * 2001-07-17 2008-04-29 The Boeing Company System and method for string filtering
US7487544B2 (en) * 2001-07-30 2009-02-03 The Trustees Of Columbia University In The City Of New York System and methods for detection of new malicious executables
US7657935B2 (en) * 2001-08-16 2010-02-02 The Trustees Of Columbia University In The City Of New York System and methods for detecting malicious email transmission
IL160757A0 (en) * 2001-09-14 2004-08-31 Computer Ass Think Inc Virus detection system
US6985908B2 (en) * 2001-11-01 2006-01-10 Matsushita Electric Industrial Co., Ltd. Text classification apparatus
US8544087B1 (en) 2001-12-14 2013-09-24 The Trustess Of Columbia University In The City Of New York Methods of unsupervised anomaly detection using a geometric framework
US9306966B2 (en) 2001-12-14 2016-04-05 The Trustees Of Columbia University In The City Of New York Methods of unsupervised anomaly detection using a geometric framework
US7225343B1 (en) * 2002-01-25 2007-05-29 The Trustees Of Columbia University In The City Of New York System and methods for adaptive model generation for detecting intrusions in computer systems
US7140041B2 (en) * 2002-04-11 2006-11-21 International Business Machines Corporation Detecting dissemination of malicious programs
US20040021889A1 (en) * 2002-07-30 2004-02-05 Mcafee David A. Method of transmitting information from a document to a remote location, and a computer peripheral device
GB2391965B (en) * 2002-08-14 2005-11-30 Messagelabs Ltd Method of, and system for, heuristically detecting viruses in executable code
US8359650B2 (en) * 2002-10-01 2013-01-22 Skybox Secutiry Inc. System, method and computer readable medium for evaluating potential attacks of worms
US8407798B1 (en) 2002-10-01 2013-03-26 Skybox Secutiry Inc. Method for simulation aided security event management
GB2396227B (en) * 2002-12-12 2006-02-08 Messagelabs Ltd Method of and system for heuristically detecting viruses in executable code
EP1429225A1 (de) * 2002-12-13 2004-06-16 Hewlett-Packard Company Verfahren und Vorrichtung bezogen auf Produktserien, Produkterfassung und Kundendiestleistung
US20040158730A1 (en) * 2003-02-11 2004-08-12 International Business Machines Corporation Running anti-virus software on a network attached storage device
US7426634B2 (en) * 2003-04-22 2008-09-16 Intruguard Devices, Inc. Method and apparatus for rate based denial of service attack detection and prevention
US20050015599A1 (en) * 2003-06-25 2005-01-20 Nokia, Inc. Two-phase hash value matching technique in message protection systems
US7424706B2 (en) * 2003-07-16 2008-09-09 Microsoft Corporation Automatic detection and patching of vulnerable files
US20050081053A1 (en) * 2003-10-10 2005-04-14 International Business Machines Corlporation Systems and methods for efficient computer virus detection
GB2407884A (en) * 2003-11-05 2005-05-11 Qinetiq Ltd Detecting unauthorised steganographic programs stored on a computer system
US8151117B2 (en) 2003-11-05 2012-04-03 Vocalcomm Group, Llc Detection of items stored in a computer system
US7870161B2 (en) * 2003-11-07 2011-01-11 Qiang Wang Fast signature scan
US7639714B2 (en) 2003-11-12 2009-12-29 The Trustees Of Columbia University In The City Of New York Apparatus method and medium for detecting payload anomaly using n-gram distribution of normal data
US7079986B2 (en) * 2003-12-31 2006-07-18 Sieracki Jeffrey M Greedy adaptive signature discrimination system and method
US8271200B2 (en) * 2003-12-31 2012-09-18 Sieracki Jeffrey M System and method for acoustic signature extraction, detection, discrimination, and localization
US8478539B2 (en) 2003-12-31 2013-07-02 Jeffrey M. Sieracki System and method for neurological activity signature determination, discrimination, and detection
US7555777B2 (en) * 2004-01-13 2009-06-30 International Business Machines Corporation Preventing attacks in a data processing system
US7861304B1 (en) * 2004-05-07 2010-12-28 Symantec Corporation Pattern matching using embedded functions
US7694340B2 (en) * 2004-06-21 2010-04-06 Microsoft Corporation Anti virus for an item store
US7936682B2 (en) * 2004-11-09 2011-05-03 Cisco Technology, Inc. Detecting malicious attacks using network behavior and header analysis
US8010685B2 (en) * 2004-11-09 2011-08-30 Cisco Technology, Inc. Method and apparatus for content classification
WO2006060581A2 (en) * 2004-11-30 2006-06-08 Sensory Networks Inc. Apparatus and method for acceleration of security applications through pre-filtering
US20070039051A1 (en) * 2004-11-30 2007-02-15 Sensory Networks, Inc. Apparatus And Method For Acceleration of Security Applications Through Pre-Filtering
US7707635B1 (en) 2005-10-06 2010-04-27 Trend Micro Incorporated Script-based pattern for detecting computer viruses
US7582562B2 (en) * 2005-10-06 2009-09-01 Micron Technology, Inc. Atomic layer deposition methods
DE102005063052A1 (de) * 2005-12-29 2007-07-05 Endress + Hauser Process Solutions Ag Verfahren zum Schutz von Feldgeräten der Prozessautomatisierungstechnik
US20080016573A1 (en) * 2006-07-13 2008-01-17 Aladdin Knowledge System Ltd. Method for detecting computer viruses
US7802299B2 (en) * 2007-04-09 2010-09-21 Microsoft Corporation Binary function database system
US20090013405A1 (en) * 2007-07-06 2009-01-08 Messagelabs Limited Heuristic detection of malicious code
US9100319B2 (en) 2007-08-10 2015-08-04 Fortinet, Inc. Context-aware pattern matching accelerator
US8375449B1 (en) 2007-08-10 2013-02-12 Fortinet, Inc. Circuits and methods for operating a virus co-processor
US7854008B1 (en) * 2007-08-10 2010-12-14 Fortinet, Inc. Software-hardware partitioning in a virus processing system
US8079084B1 (en) 2007-08-10 2011-12-13 Fortinet, Inc. Virus co-processor instructions and methods for using such
US8286246B2 (en) 2007-08-10 2012-10-09 Fortinet, Inc. Circuits and methods for efficient data transfer in a virus co-processing system
US8656489B1 (en) * 2007-09-29 2014-02-18 Symantec Corporation Method and apparatus for accelerating load-point scanning
JP5008006B2 (ja) * 2007-12-27 2012-08-22 インターナショナル・ビジネス・マシーンズ・コーポレーション シンプトンの検証を可能にするためのコンピュータ・システム、方法及びコンピュータ・プログラム
US8799450B2 (en) * 2008-10-14 2014-08-05 Mcafee, Inc. Server-based system, method, and computer program product for scanning data on a client using only a subset of the data
IL195340A (en) 2008-11-17 2013-06-27 Shlomo Dolev Builds and detects malware signatures for executable codes on your computer
US8291497B1 (en) * 2009-03-20 2012-10-16 Symantec Corporation Systems and methods for byte-level context diversity-based automatic malware signature generation
US8572740B2 (en) 2009-10-01 2013-10-29 Kaspersky Lab, Zao Method and system for detection of previously unknown malware
US8805083B1 (en) 2010-03-21 2014-08-12 Jeffrey M. Sieracki System and method for discriminating constituents of image by complex spectral signature extraction
US9558762B1 (en) 2011-07-03 2017-01-31 Reality Analytics, Inc. System and method for distinguishing source from unconstrained acoustic signals emitted thereby in context agnostic manner
US9691395B1 (en) 2011-12-31 2017-06-27 Reality Analytics, Inc. System and method for taxonomically distinguishing unconstrained signal data segments
US9886945B1 (en) 2011-07-03 2018-02-06 Reality Analytics, Inc. System and method for taxonomically distinguishing sample data captured from biota sources
KR101908944B1 (ko) * 2011-12-13 2018-10-18 삼성전자주식회사 데이터 분석 시스템에서 맬웨어를 분석하기 위한 장치 및 방법
US8281399B1 (en) 2012-03-28 2012-10-02 Symantec Corporation Systems and methods for using property tables to perform non-iterative malware scans
US9172721B2 (en) 2013-07-16 2015-10-27 Fortinet, Inc. Scalable inline behavioral DDOS attack mitigation
CN104850782B (zh) * 2014-02-18 2019-05-14 腾讯科技(深圳)有限公司 匹配病毒特征的方法及装置
US9015165B1 (en) * 2014-03-03 2015-04-21 Michael L. Hamm Text-SQL relational database
US9973528B2 (en) 2015-12-21 2018-05-15 Fortinet, Inc. Two-stage hash based logic for application layer distributed denial of service (DDoS) attack attribution
RU2628923C1 (ru) * 2016-05-20 2017-08-22 Акционерное общество "Лаборатория Касперского" Система и способ распределения файлов между виртуальными машинами, входящими в распределённую систему виртуальных машин, для выполнения антивирусной проверки
US11580219B2 (en) * 2018-01-25 2023-02-14 Mcafee, Llc System and method for malware signature generation

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2000006C (en) * 1989-01-23 1994-07-12 Walter W. Chang Combinatorial signatures for data encoding and searching
NL9101181A (nl) * 1991-07-05 1993-02-01 Nederland Ptt Werkwijze en inrichting voor het detecteren van een of meer bekende karakterstrings in een verzameling karakters.
GB9220404D0 (en) * 1992-08-20 1992-11-11 Nat Security Agency Method of identifying,retrieving and sorting documents
JP2501771B2 (ja) * 1993-01-19 1996-05-29 インターナショナル・ビジネス・マシーンズ・コーポレイション 不所望のソフトウェア・エンティティの複数の有効なシグネチャを得る方法及び装置
US5675711A (en) * 1994-05-13 1997-10-07 International Business Machines Corporation Adaptive statistical regression and classification of data strings, with application to the generic detection of computer viruses
US5706365A (en) * 1995-04-10 1998-01-06 Rebus Technology, Inc. System and method for portable document indexing using n-gram word decomposition
US5696822A (en) * 1995-09-28 1997-12-09 Symantec Corporation Polymorphic virus detection module
US5765030A (en) * 1996-07-19 1998-06-09 Symantec Corp Processor emulator module having a variable pre-fetch queue size for program execution
US5854916A (en) * 1995-09-28 1998-12-29 Symantec Corporation State-based cache for antivirus software
US5822517A (en) * 1996-04-15 1998-10-13 Dotan; Eyal Method for detecting infection of software programs by memory resident software viruses
US5832208A (en) * 1996-09-05 1998-11-03 Cheyenne Software International Sales Corp. Anti-virus agent for use with databases and mail servers

Also Published As

Publication number Publication date
EP0896285B1 (de) 2005-09-28
DE69831708D1 (de) 2006-02-09
EP0896285A1 (de) 1999-02-10
US6016546A (en) 2000-01-18

Similar Documents

Publication Publication Date Title
DE69831708T2 (de) Effiziente Erkennung von Computerviren und andere Dateneigenschaften
DE69807716T2 (de) Erkennung von computerviren verteilt über mehreren datenströme
DE69804658T2 (de) Anitivirenbeschleuniger
DE69229521T2 (de) Datenbankauffindungssystem
DE69804495T2 (de) Informationsmanagement und wiedergewinnung von schlüsselbegriffen
DE60105611T2 (de) Erkennung von viren durch histogramme
DE69631457T2 (de) Vorrichtung und verfahren zum übertragbaren indexieren von dokumenten gemäss einer n-gram-wortzerlegung
DE69131941T2 (de) System und verfahren für informationsauffindung
DE69909945T2 (de) Verfahren und Anordnung zur Korrelation von Profildaten dynamisch erzeugt durch ein optimiertes ausführbares Programm mit Quellcodeanweisungen
DE69804760T2 (de) Verfahren und vorrichtung zur erkennung polymorpher viren
DE3856055T2 (de) Verfahren und Einrichtung, um gleichzeitigen Zugriff zu indizierten sequentiellen Dateien zu ermöglichen
DE69738101T2 (de) Verwaltung des Zugangs zu Objekten mit Hilfe von Referenzen mit drei Zuständen
DE69425711T2 (de) Computerverfahren und -system zur Optimierung von Beta-Bäumen
DE68929132T2 (de) Datenbankverwaltungssystem und Verfahren hierfür
DE102005023128B4 (de) System und Verfahren zum gemeinschaftlichen Verwenden von Speicherressourcen zwischen mehreren Dateien
DE69430943T2 (de) Verfahren und System zum Überwachen von Datei-Attributen
DE10300545B4 (de) Vorrichtung, Verfahren, Speichermedium und Datenstruktur zur Kennzeichnung und Speicherung von Daten
DE102005032734B4 (de) Indexextraktion von Dokumenten
DE102013206744A1 (de) Deduplizierende speicherung mit verbesserter erkennung von häufigen blöcken
DE3901485A1 (de) Dokumenten-wiedergewinnungssystem
DE102014204834A1 (de) Computerimplementierte Systeme und Verfahren zum Vergleichen und Assoziieren von Objekten
DE102014204830A1 (de) Computerimplementierte Systeme und Verfahren zum Vergleichen und Assoziieren von Objekten
DE19843445A1 (de) Navigationssystem für eine Dokumentbilder-Datenbank
DE102006039484A1 (de) n-GRAM Indexstruktur mit zwei Ebenen und Verfahren zur Indexerstellung, Queryverarbeitung und Indexableitung
DE19959758A1 (de) Bestimmung der Art und der Genauigkeit von lokalen Variablen bei vorhandenen Subroutinen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

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

8339 Ceased/non-payment of the annual fee