-
GEBIET DER
ERFINDUNG
-
Die
Offenbarung betrifft das Gebiet der Netzwerkschnittstellen-Controllerschaltung
bzw. -Controllerschaltkreise.
-
STAND DER
TECHNIK
-
In
einer herkömmlichen
Netzwerkanordnung ist ein Netzwerkschnittstellencontroller in einem
Host oder Leitrechner mit einem Netzwerk verknüpft. Der Controller kann dazu
in der Lage sein, in einen Betriebsmodus mit relativ geringem Stromverbrauch einzutreten,
in dem der Energieverbrauch geringer sein kann, als wenn der Controller
in einem Betriebsmodus mit relativ höherem Stromverbrauch arbeitet. Danach,
wenn der Controller über
das Netzwerk eine vorbestimmte Abfolge von Symbolen und/oder Werten
empfängt,
kann der Controller den Empfang der Abfolge erkennen, und kann in
Reaktion auf den Empfang der Abfolge in den Betriebsmodus mit relativ
höherem
Stromverbrauch eintreten. Die vorbestimmte Abfolge kann statisch
sein, oder ein Programmprozeß,
der im Host ausgeführt
wird, kann dazu fähig
sein, die Abfolge zu verändern.
-
Des
Weiteren wird bei dieser herkömmlichen Netzwerkanordnung
durch einen Host-Prozessor im Host ein Viruserkennungsprogramm ausgeführt. Die Ausführung des
Viruserkennungsprogramms durch den Host-Prozessor führt dazu,
daß der
Host-Prozessor Daten und Programmkode, die im Systemspeicher des
Hosts und/oder einem Massenspeicher abgespeichert sind, untersucht,
um festzustellen, ob die Daten und/oder der Programmkode eine oder mehrere
vorbestimmte Abfolgen von Werten enthält, für die zuvor festgestellt worden
ist, daß sie
mit dem Vorhandensein eines oder mehrerer Viren in Zusammenhang
stehen. Falls der Host-Prozessor
diese eine oder diese Mehrzahl vorbestimmter Abfolgen in den Daten
und/oder dem Programmkode entdeckt, kann der Host-Prozessor feststellen,
daß ein
oder mehrere Viren in den Daten und/oder dem Programmkode vorhanden
sind, und kann Maßnahmen einleiten,
um diesen Zustand zu korrigieren.
-
Falls
die Daten und/oder der Programmkode, die im Host gespeichert sind,
einen oder mehrere Viren enthalten, ist es wahrscheinlich, daß die Daten
und/oder der Programmkode dem Host ursprünglich über das Netzwerk zugeführt worden
sind. Leider gibt es bei dieser herkömmlichen Anordnung keinen Mechanismus
am Netzwerkschnittstellencontroller zum Erkennen eines oder mehrerer
Viren, die der Netzwerkschnittstellencontroller über das Netzwerk empfangen
hat; des Weiteren gibt es bei dieser herkömmlichen Anordnung keinen Mechanismus, der
verhindert, daß ein
oder mehrere Viren, die der Netzwerkschnittstellencontroller über das
Netzwerk empfangen hat, im Systemspeicher und/oder Massenspeicher
des Hosts abgespeichert werden. Des Weiteren gibt es bei dieser
herkömmlichen
Anordnung im Host keinen Mechanismus zum Ermitteln einer Quelle
des einen oder der Mehrzahl von Viren, die den einen oder die Mehrzahl
von Viren über
das Netzwerk zum Host übertragen
hat.
-
Des
Weiteren kann der eine oder die Mehrzahl von Viren durch den Host-Prozessor
ausgeführt werden,
nachdem ein oder mehrere Viren im Systemspeicher und/oder Massenspeicher
des Hosts abgespeichert worden sind, sofern der eine oder die Mehrzahl
von Viren nicht vom Host entfernt wird, bevor sie durch den Host-Prozessor
ausgeführt
wird. Dies kann unter anderem dazu führen, daß der Netzwerkschnittstellencontroller
den einen oder die Mehrzahl von Viren über das Netzwerk auf andere
Hosts überträgt. Leider
ist der Netzwerkschnittstellencontroller bei diesem herkömmlichen
Netzwerk nicht dazu fähig,
das Vorhandensein eines oder mehrerer Viren in Daten und/oder Programmkode,
die durch den Netzwerkschnittstellencontroller über das Netzwerk weitergeleitet
werden sollen, zu erkennen und/oder die Übertragung eines oder mehrerer
Viren in Daten und/oder Programmkode, die durch den Netzwerkschnittstellencontroller über das
Netzwerk weitergeleitet werden sollen, zu verhindern.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Merkmale
und Vorteile von Ausführungsformen
des beanspruchten Gegenstands der Erfindung werden anhand der nun
folgende ausführliche
Beschreibung, sowie durch Bezugnahme auf die Zeichnungen, in denen
dieselben Bezugsziffern gleichartige Komponenten darstellen, deutlich
werden, wobei:
-
1 ein
Netzwerk abbildet, das eine Systemausführungsform enthält.
-
2 die
Systemausführungsform
abbildet, die das Netzwerk von 1 enthält.
-
3 ein
Ablaufdiagramm ist, das Vorgänge veranschaulicht,
die gemäß einer
Ausführungsform ausgeführt werden
können.
-
Obwohl
die folgende ausführliche
Beschreibung unter Bezugnahme auf veranschaulichende Ausführungsformen
erfolgt, sind für
Fachleute viele Alternativen, Abänderungen
und Variationen davon augenscheinlich. Demgemäß ist beabsichtigt, daß der beanspruchte
Gegenstand der Erfindung umfassend betrachtet wird, und daß er ausschließlich dadurch
definiert ist, wie in den beiliegenden Ansprüchen dargelegt ist.
-
AUSFÜHRLICHE
BESCHREIBUNG
-
1 zeigt
eine Ausführungsform
eines Netzwerks 10. Netzwerk 10 kann Leitrechner
oder Hosts 12, 14 und 18 aufweisen, die über das
Netzwerk 16 kommunikativ miteinander verbunden sind. Wie
hierin verwendet, wird eine erste Vorrichtung als mit einer zweiten
Vorrichtung „kommunikativ
verbunden" betrachtet,
wenn die erste Vorrichtung dazu fähig ist, ein oder mehrere Signale,
die ein oder mehrere Pakete kodieren und/oder darstellen können, von der
zweiten Vorrichtung zu empfangen, oder solche Signale auf die zweite
Vorrichtung zu übertragen. Das
Netzwerk 16 kann zum Beispiel ein oder mehrere lokale Netzwerke
und/oder ein oder mehrere Weitverkehrsnetze aufweisen. Die Hosts 12, 14 und/oder 18 können dazu
fähig sein,
in Übereinstimmung
mit einem oder mehreren Übertragungsprotokollen über das
Netzwerk 16 ein oder mehrere Pakete untereinander auszutauschen.
Dieses eine oder diese Mehrzahl von Übertragungsprotokollen können zum
Beispiel ein Ethernet-Protokoll und/oder ein TCP/IP-Protokoll (Übertragungssteuerungsprotokoll/Internetprotokoll)
umfassen. Wenn dieses eine oder diese Mehrzahl von Übertragungsprotokollen
zum Beispiel ein Ethernet-Protokoll umfassen, kann das Ethernet-Protokoll
mit dem Protokoll, das im Standard 802.3, Ausgabe 2000, veröffentlicht
am 20. Oktober 2000 vom Institut für Elektrik- und Elektronikingenieure,
Inc. (IEEE), beschrieben ist, kompatibel sein, oder mit diesem übereinstimmen.
Wenn die Hosts 12, 14 und/oder 18 dazu
fähig sind,
untereinander über
das Netzwerk 16 ein oder mehrere Pakete in Übereinstimmung
mit dem TCP/IP-Protokoll auszutauschen, kann dieses TCP/IP-Protokoll
alternativ oder zusätzlich
dazu den Protokollen entsprechen, die in den Bitten um Stellungnahme
(RFC) 791 und 793, veröffentlicht
im September 1981 von der Internet-Entwickler- Einsatzgruppe (IETF), beschrieben sind,
oder mit diesen übereinstimmen.
Ohne von dieser Ausführungsform
abzuweichen, können
die Hosts 12, 14 und/oder 18 natürlich dazu
fähig sein,
untereinander über
das Netzwerk 16 ein oder mehrere Pakete in Übereinstimmung
mit einem oder mehreren zusätzlichen
und/oder anderen Übertragungsprotokollen auszutauschen.
-
Wie
hierin verwendet, bedeutet „Paket" ein oder mehrere
Symbole und/oder einen oder mehrere Werte. Ebenfalls wie hierin
verwendet, versteht man unter „Host" eine Vorrichtung,
die dazu fähig
ist, einen oder mehrere logische Vorgänge und/oder einen oder mehrere
arithmetische Vorgänge
auszuführen.
-
2 zeigt
die Systemausführungsform 200,
die der Host 12 aufweisen kann. Die Systemausführungsform 200 kann
einen Host-Prozessor 12 umfassen, der mit einem Chipsatz 14 gekoppelt ist.
Der Host-Prozessor 12 kann zum Beispiel einen Intel® Pentium® 4
Mikroprozessor aufweisen, der im Handel vom Rechtsnachfolger der
gegenständlichen Anmeldung
erhältlich
ist. Natürlich
kann der Host-Prozessor 12 alternativ dazu eine andere
Art von Mikroprozessor, zum Beispiel einen Mikroprozessor, der von
einer anderen Quelle als dem Rechtsnachfolger der gegenständlichen
Anmeldung hergestellt worden und/oder im Handel erhältlich ist, aufweisen,
ohne von dieser Ausführungsform
abzuweichen.
-
Der
Chipsatz 14 kann ein Host-Brücken/Hubsystem aufweisen, das
den Host-Prozessor 12, den Systemspeicher 21 und
das Benutzerschnittstellensystem 16 miteinander und mit
einem Bussystem 22 verbindet. Der Chipsatz 14 kann
auch ein Eingabe-Ausgabe(I/O)-Brücken/Hubsystem
(nicht abgebildet) aufweisen, welches das Host-Brücken/Hubsystem
mit dem Bus 22 verbinden kann. Der Chipsatz 14 kann
Chips mit integrierte Leiterplatten, zum Beispiel jene, die aus
Sätzen
von integrierten Leitplatten, die im Handel vom Rechtsnachfolger
der gegenständlichen
Anmeldung erhältlich
sind, ausgewählt
sind (z.B. Grafikspeicher und I/O-Steuerungshub-Chipsätze), aufweisen, obwohl auch,
oder alternativ dazu, andere integrierte Leiterplatten verwendet
werden können.
Das Benutzerschnittstellensystem 16 kann zum Beispiel eine
Tastatur, ein Zeigegerät
und ein Anzeigesystem aufweisen, die es einem menschlichen Benutzer
ermöglichen,
Befehle in das System 200 einzugeben und den Betrieb des
Systems 200 zu überwachen.
-
Der
Bus 22 kann einen Bus aufweisen, welcher der Peripheral
Component Interconnect (PCI = Schnittstelle für periphere Komponenten) Localbus-Spezifikation,
Neuregelung 2.2, 18. Dezember 1998, erhältlich von der PCI Special
Interest Group (Gruppe mit besonderem Interesse für PCI) in
Portland, Oregon, USA, entspricht (im Folgenden bezeichnet als „PCI-Bus"). Alternativ dazu
kann Bus 22 statt dessen einen Bus aufweisen, welcher der PCI-X-Spezifikation, Rev.
1.0a, 24. Juli 2000, erhältlich
von der oben genannten PCI Special Interest Group in Portland, Oregon,
USA, entspricht (im Folgenden bezeichnet als „PCI-X-Bus"). Alternativ dazu kann Bus 22 auch
andere Arten und Anordnungen von Bussystemen aufweisen.
-
Prozessor 12,
Systemspeicher 21, Chipsatz 14, Bus 22 und
Leiterkartensteckplatz 30 können auf einer einzelnen Platine,
zum Beispiel einer Systemhauptplatine 32, angeordnet sein.
Der Leiterkartensteckplatz 30 kann einen PCI-Erweiterungssteckplatz,
der eine PCI-Bus-Schnittstelle 36 aufweist, aufweisen.
Die Schnittstelle 36 kann elektrisch und mechanisch mit
einer PCI-Bus-Schnittstelle 34,
welche die Leiterkarte 20 aufweist, gekoppelt sein. Steckplatz 30 und
Karte 20 können
so gestaltet sein, daß sie
ein Einstecken der Karte 20 in den Steckplatz 30 erlauben.
Ist die Karte 20 ordnungsgemäß in den Steckplatz 30 eingesteckt,
können
die Schnittstellen 34 und 36 elektrisch und mechanisch
miteinander gekoppelt sein. Wenn die Schnittstellen 34 und 36 derart
miteinander gekoppelt sind, wird eine Protokoll-Offload-Engine 202 in
der Karte 20 elektrisch mit dem Bus 22 gekoppelt.
-
Wenn
die Protokoll-Offload-Engine 202 elektrisch mit dem Bus 22 gekoppelt
ist, kann der Host-Prozessor 12 über den
Chipsatz 14 und den Bus 22 Daten und/oder Befehle
mit der Engine 202 austauschen, wodurch es dem Host-Prozessor 12 möglich wird,
den Betrieb der Engine 202 zu steuern und/oder zu überwachen.
Die Protokoll-Offload-Engine 202 kann Netzwerkschnittstellen-Controller(NIC)-Schaltkreise 204 aufweisen.
Die NIC-Schaltkreise 204 können einen Speicher 206 und
Verarbeitungsschaltkreise 208 aufweisen. Wie hierin verwendet,
können „Schaltkreise" einzeln oder in
beliebiger Kombination zum Beispiel analoge Schaltkreise, digitale
Schaltkreise, festverdrahtete Schaltkreise, programmierbare Schaltkreise,
Zustandsmaschinenschaltkreise und/oder Speicher, der Programmbefehle,
die durch programmierbare Schaltkreise ausgeführt werden können, aufweisen
kann, aufweisen.
-
Der
Speicher 21 und/oder der Speicher 206 können computerlesbaren
Nur-Lese-Speicher, Massenspeicher und/oder Direktzugriffs-Speicher
aufweisen. Im Betrieb kann der Speicher 21 einen oder mehrere
Viruserkennungs- und/oder Viruskorrekturprogrammprozesse 23 und
einen oder mehrere Betriebssystemprogrammprozesse 31 speichern.
Jeder der Programmprozesse 23 und 31 kann einen
oder mehrere Programmbefehle, die durch den Prozessor 12 ausgeführt werden
können,
und/oder eine oder mehrere Datenstrukturen, auf die mit dem Prozessor 12 zugegriffen,
mit denen der Prozessor 12 betrieben werden und/oder die
der Prozessor 12 beeinflussen kann, aufweisen. Das Ausführen dieser
Programmbefehle und/oder das Zugreifen auf, das Betrieben werden
mit und/oder das Beeinflussen dieser Datenstrukturen durch den Prozessor 12 kann
zum Beispiel dazu führen,
daß der
Prozessor 12 Vorgänge
ausführt,
die dazu führen,
daß der
Prozessor 12, das System 200 und/oder der Host 12 die
Vorgänge,
deren Ausführung
durch Prozessor 12, System 200 und/oder Host 12 hierin
beschrieben ist, ausführen.
-
Ohne
von dieser Ausführungsform
abzuweichen, kann/können
die gesamte Engine 202 und/oder Schaltkreise 204,
oder ein Abschnitt davon, statt in der Karte 20 auch in
anderen Strukturen, Systemen und/oder Vorrichtungen, die zum Beispiel
eine Hauptplatine 32, die mit dem Bus 22 gekoppelt
ist und Daten und/oder Befehle mit anderen Komponenten des Systems 200 austauscht,
aufweist, eingeschlossen sein. Ohne von dieser Ausführungsform abzuweichen
kann der Chipsatz 14 zum Beispiel einen oder mehrere integrierte
Schaltkreise aufweisen, welche die gesamte/n Engine 202 und/oder
Schaltkreise 204, oder einen Abschnitt davon, aufweisen können. Andere
Abänderungen
sind ebenfalls möglich
ohne von dieser Ausführungsform
abzuweichen.
-
Ebenso
kann der Speicher 206 zusätzlich oder alternativ dazu
im Betrieb einen oder mehrere Programmprozesse (nicht abgebildet)
speichern. Jeder der Programmprozesse kann einen oder mehrere Programmbefehle,
die durch die Engine 202, die Schaltkreise 204 und/oder
die Schaltkreise 208 ausgeführt werden können, und/oder
eine oder mehrere Datenstrukturen, auf die durch die Engine 202,
die Schaltkreise 204 und/oder die Schaltkreise 208 zugegriffen
werden kann, die mit diesen betrieben werden können und/oder durch diese beeinflußt werden können, aufweisen.
Das Ausführen
dieser Programmbefehle und/oder das Zugreifen auf, Betrieben werden
mit und/oder Beeinflussen dieser Datenstrukturen durch die Engine 202,
die Schaltkreise 204 und/oder die Schaltkreise 208 kann
zum Beispiel dazu führen,
daß der
Prozessor 12 Vorgänge
ausführt,
die dazu führen
können,
daß die
Engine 202, die Schaltkreise 204 und/oder die
Schaltkreise 208 die Vorgänge, deren Ausführung durch
die Engine 202, die Schaltkreise 204 und/oder
die Schaltkreise 208 hierin beschrieben ist, ausführen.
-
In
dieser Ausführungsform
kann die Karte 20 kommunikativ mit dem Netzwerk 16 verbunden
sein. Die Karte 20 kann dazu fähig sein, über das Netzwerk 16 ein
oder mehrere Pakete mit dem Host 14 und/oder dem Host 18 auszutauschen.
-
Unter
besonderer Bezugnahme auf 3 werden
nun Vorgänge 300,
die im System 200 und/oder im Netzwerk 10 gemäß einer
Ausführungsform
ausgeführt
werden können,
beschrieben. Zum Beispiel nach einem Zurücksetzen des Systems 200 und/oder
der Karte 20 kann der Host 14 dem Host 12 über das
Netzwerk 16 ein oder mehrere Pakete 212 übermitteln.
Ein oder mehrere Pakete 212 können ein oder mehrere Pakete 214A oder
eine Mehrzahl von Paketen 214A ... 214N aufweisen.
-
Ein
oder mehrere Pakete 212 können durch die Karte 20 aus
dem Netzwerk 16 empfangen werden. Danach können die
Schaltkreise 208, mindestens zum Teil beruhend auf einem
oder mehreren Abschnitten 226A eines oder mehrerer Pakete 214A, eine
oder mehrere Signaturen 230 erzeugen. Wie hierin verwendet
bedeutet "Signatur" einen Satz aus einem
oder mehreren Symbolen und/oder einem oder mehreren Werten, erzeugt
mindestens zum Teil beruhend auf einem Satz aus einem oder mehreren Symbolen
und/oder einem oder mehreren Werten. In dieser Ausführungsform
können
die eine oder die Mehrzahl von Signaturen 230 zum Beispiel
eine Abfolge aus einem oder mehreren Symbolen und/oder einem oder
mehreren Werten, die in einem oder mehreren Abschnitten 226A enthalten
sind, aufweisen (zum Beispiel eine Teilmenge der Abfolge aus einem
oder mehreren Symbolen und/oder einem oder mehreren Werten, die
in einem oder mehreren Abschnitten 226A enthalten sind).
Alternativ oder zusätzlich
dazu können
eine oder mehrere Signaturen 230 zum Beispiel einen oder
mehrere zyklische Redundanzprüfungs-(CRC)-Werte,
erzeugt mindestens zum Teil beruhend auf einem oder mehreren Abschnitten 226A und
einem oder mehreren CRC-Algorithmen, aufweisen. Wie hierin verwendet
umfaßt
ein „Abschnitt" eines Elements entweder
einen Teil des oder die Gesamtheit des Elements.
-
In
dieser Ausführungsform
können
die Schaltkreise 208 zum Beispiel eine oder mehrere Signaturen 230 gemäß einem
oder mehreren Signaturerzeugungsalgorithmen, die mit einem oder
mehreren Viren in Verbindung stehen, erzeugen. Dieser eine oder
diese Mehrzahl von Signaturerzeugungsalgorithmen kann zum Beispiel
einen oder mehrere entsprechende Abschnitte (zum Beispiel einen
oder mehrere Abschnitte 226A und/oder 226N, und/oder die
ent sprechenden Größen eines
oder mehrerer Abschnitte 226A und/oder 226N) eines
oder mehrerer Pakete 212 bestimmen, bei denen ein oder
mehrere entsprechende Sätze
aus einem oder mehreren logischen Vorgängen, einem oder mehreren arithmetischen
Vorgängen
und/oder einer oder mehreren anderen Formen von Datenbeeinflussung
(zum Beispiel Kettenentfernung) auszuführen sind, um eine oder mehrere
Signaturen 230 zu erzeugen. Dieser eine oder diese Mehrzahl
von Algorithmen kann empirisch derart ermittelt werden, daß eine oder
mehrere Signaturen 230, die durch den einen oder die Mehrzahl von
Algorithmen erzeugt worden sind, einer oder mehreren vorbestimmten
Signaturen 27, für
die zuvor festgestellt worden ist, daß sie mit dem Vorhandensein
eines oder mehrerer Viren in Verbindung stehen, entsprechen, falls
der eine oder die Mehrzahl von Abschnitten eines oder mehrerer Pakete 212,
die in dem einen oder der Mehrzahl von Signaturerzeugungsalgorithmen
bestimmt worden ist, einen oder mehrere Viren aufweisen.
-
Zum
Beispiel können
eine oder mehrere Signaturen 27 eine oder mehrere Ketten
aufweisen, für die
zuvor durch vorherige empirische Überprüfung (zum Beispiel eines oder
mehrerer Pakete durch einen oder mehrere Viruserkennungsprogrammprozesse)
festgestellt worden ist, daß sie
das Vorhandensein eines oder mehrerer Viren bedeuten. In diesem
Beispiel kann der eine oder die Mehrzahl von Algorithmen das Überprüfen eines
oder mehrerer Pakete 212 umfassen, um festzustellen, ob
ein oder mehrere Abschnitte (zum Beispiel ein oder mehrere Abschnitte 226A und/oder 226N)
eines oder mehrerer Pakete 212 diese eine oder diese Mehrzahl
von Ketten aufweisen, und falls ein oder mehrere Pakete 212 diese
eine oder diese Mehrzahl von Ketten aufweisen, kann dieser eine
oder diese Mehrzahl von Algorithmen als eine oder mehrere Signaturen 230 das Entfernen
dieser einen oder dieser Mehrzahl von Ketten aus einem oder mehreren
Paketen 212, zum Beispiel aus einem Abschnitt 226A eines
Pakets 214A und aus einem anderen Abschnitt 226N eines
anderen Pakets 214N, umfassen. Alternativ oder zusätzlich dazu
kann der eine oder die Mehrzahl von Algorithmen zum Beispiel das
Erzeugen eines oder mehrerer CRC-Prüfsummenwerte für ein oder
mehrere Pakete 212, ein oder mehrere Pakete 214A und/oder 214N und/oder
einen oder mehrere Abschnitte 226A und/oder 226N umfassen.
-
Bei
dieser Ausführungsform
kann ein Virus einen oder mehrere Befehle umfassen, die, wenn sie durch
eine Maschine (wie zum Beispiel einen Computer und/oder einen Prozessor)
ausgeführt
werden, dazu führen
können,
daß die
Maschine einen oder mehrere Vorgänge,
wie zum Beispiel einen oder mehrere böswillige und/oder unberechtigte
Vorgänge,
ausführt,
deren Ausführung
für einen
menschlichen Bediener und/oder Benutzer der Maschine unerwünscht ist.
Alternativ oder zusätzlich
dazu kann bei dieser Ausführungsform
ein Virus Daten umfassen, die, wenn durch eine Maschine auf sie
zugegriffen wird und/oder sie durch eine Maschine beeinflußt werden,
dazu führen
können,
daß die
Maschine einen oder mehrere Vorgänge
ausführt,
deren Ausführung
für einen
menschlichen Bediener und/oder Benutzer der Maschine unerwünscht ist.
Des Weiteren können
bei dieser Ausführungsform
eine oder mehrere vorbestimmte Signaturen 27 eine Mehrzahl
von vorbestimmten Signaturen 29A ... 29N umfassen. Jede
der Signaturen 29A ... 29N kann mit einem entsprechenden
Virus (zum Beispiel mit dessen Vorhandensein) in Verbindung stehen.
-
Bei
dieser Ausführungsform
kann der Speicher 21 eine Virusdefinitionsdatenbank 25 speichern, und/oder
ein oder mehrere Prozesse 23 können eine solche umfassen.
Die Datenbank 25 kann einen oder mehrere Tupel (nicht abgebildet)
aufweisen. Der eine oder die Mehrzahl von Tupeln können eine
entsprechende der einen oder der Mehrzahl von Signaturen 27,
einen oder mehrere entsprechende Viren, mit denen die jeweiligen
Signaturen 27 in Verbindung stehen, einen oder mehrere
entsprechende Signaturerzeugungsalgorithmen und einen oder mehrere
entsprechende zusätzliche
Hinweise, die anzeigen können,
ob der eine oder die Mehrzahl entsprechender Viren in einem oder
mehreren Abschnitten eines oder mehrerer Pakete 212 vorhanden
sind. Die Schaltkreise 208 können gemäß diesem einen oder dieser Mehrzahl
von Signaturerzeugungsalgorithmen eine oder mehrere Signaturen 230 erzeugen,
und können die
eine oder die Mehrzahl von Signaturen 230 mit der einen
oder der Mehrzahl von Signaturen 27, die mit diesem einen
oder dieser Mehrzahl entsprechender Signaturerzeugungsalgorithmen
in Verbindung stehen, vergleichen.
-
Bei
dieser Ausführungsform
kann, bevor die Schaltkreise 208 eine oder mehrere Signaturen 230 erzeugen,
mindestens ein Abschnitt der Daten, die in der Datenbank 25 und/oder
vorbestimmten Signaturen 29A ... 29N enthalten
sind, vom Host 18 über
das Netzwerk 16 auf das System 200 übertragen
werden. Ohne von dieser Ausführungsform
abzuweichen können
natürlich
auch andere Verfahren verwendet werden, um die Datenbank 25 und/oder
die vorbestimmten Signaturen 29A ... 29N im Speicher 21 und/oder in
einem oder mehreren Prozessen 23 abzuspeichern. Bei dieser
Ausführungsform
kann, bevor die Schaltkreise 208 eine oder mehrere Signaturen 230 erzeugen,
das Ausführen
eines oder mehrerer Prozesse 23 durch den Prozessor 12 dazu
führen,
daß der
eine oder die Mehrzahl vorbestimmter Signaturerzeugungsalgorithmen und/oder
eine oder mehrere vorbestimmte Signaturen 27 vom Speicher 21 zu
den Schaltkreisen 204 übertragen,
und zur Verwendung durch die Schaltkreise 208, mindestens
zum Teil für die
Erzeugung einer oder mehrerer Signaturen 230, im Speicher 206 abgespeichert
werden. Alternativ oder zusätzlich
dazu kann, bevor die Schaltkreise 208 eine oder mehrere
Signaturen 230 erzeugen, die Ausführung eines oder mehrerer Prozesse 23 durch den
Prozessor 12 dazu führen,
daß ein
CRC-Startwert (seed value) vom Speicher 21 zu den Schaltkreisen 204 übertragen,
und zur Verwendung durch die Schaltkreise 208, mindestens
zum Teil für
die Erzeugung einer oder mehrerer Signaturen 230, im Speicher 206 abgespeichert
werden.
-
Nachdem
die Schaltkreise 208 eine oder mehrere Signaturen 230 erzeugt
haben, können
die Schaltkreise 204 und/oder die Schaltkreise 208 mindestens
zum Teil feststellen, ob mindestens eine Signatur (zum Beispiel
eine oder mehrere Signaturen 230), die mindestens zum Teil
auf einem oder mehreren entsprechenden Abschnitten 226A und/oder 226N eines
oder mehrerer entsprechender Pakete 214A und/oder 214N beruhen,
mit mindestens einem Virus in Verbindung steht, wie durch Vorgang 302 in 3 dargestellt.
Bei dieser Ausführungsform
können
die Schaltkreise 208 und/oder die Schaltkreise 204 den
Vorgang 302 ausführen,
indem sie eine oder mehrere Signaturen 230 mit jeder der
einen oder der Mehrzahl vorbestimmter Signaturen 27 vergleichen. Entsprechen
eine oder mehrere der Signaturen 230 einer oder mehreren
der einen oder der Mehrzahl vorbestimmter Signaturen 27,
so können
die Schaltkreise 208 und/oder 204 mindestens zum
Teil als Ergebnis des Vorgangs 302 feststellen, daß eine oder mehrere
der Signaturen 230 mit mindestens einem Virus in Verbindung
stehen.
-
Falls
mindestens zum Teil als Ergebnis des Vorgangs 302 die Schaltkreise 204 und/oder 208 feststellen,
daß mindestens
eine Signatur 230 mit mindestens einem Virus in Verbindung
steht, können die
Schaltkreise 204 zu einem oder mehreren Elementen außerhalb
der Schaltkreise 204, wie zum Beispiel dem Host-Prozessor 12 und/oder
einem oder mehreren Prozessen 23, eine oder mehrere Mitteilungen 210 ausgeben,
die anzeigen können,
daß eine
oder mehrere Signaturen 230 mit mindestens einem Virus
in Verbindung stehen, wie durch Vorgang 304 in 3 dargestellt.
Der Host-Prozessor 12 und/oder ein oder mehrere Prozesse 23 können eine oder
mehrere Mitteilungen 210 empfangen, wie durch Vorgang 306 in 3 dargestellt.
Wie durch Vorgang 308 in 3 dargestellt,
können
dann der Host-Prozessor 12 und/oder ein oder mehrere Prozesse 23,
mindestens zum Teil als Reaktion auf den Empfang der einen oder
mehreren Mitteilungen 210 durch den Host-Prozessor 12 und/oder
einen oder mehrere Prozesse 23, einen oder mehrere entsprechende
Abschnitte 226A und/oder 226N eines oder mehrerer
entsprechender Pakete 214A und/oder 214N untersuchen,
um festzustellen, ob ein oder mehrere Abschnitte 226A und/oder 226N mindestens
zum Teil mindestens einen Virus aufweisen. Bei dieser Ausführungsform
können
der Host-Prozessor 12 und/oder ein oder mehrere Prozesse 23 als
Teil des Vorgangs 308 einen oder mehrere Abschnitte 226A und/oder 226N und
ein oder mehrere Pakete 212 untersuchen, um festzustellen,
welche der jeweiligen zusätzlichen
Kriterien, die mit einem oder mehreren der jeweiligen Viren in Verbindung
stehen, in den jeweiligen Tupeln in Datenbank 25 durch
einen oder mehrere Abschnitte 226A und/oder 226N und/oder
ein oder mehrere Pakete 212 erfüllt sind. Falls die jeweiligen
zusätzlichen
Kriterien derart erfüllt
sind, können
der Prozessor 12 und/oder ein oder mehrere Prozesse 23 als
Ergebnis des Vorgangs 308 feststellen, daß ein oder
mehrere Abschnitte 226A und/oder 226N einen oder
mehrere der entsprechenden Viren, die mit den jeweiligen zusätzlichen
Kriterien in Verbindung stehen, aufweisen. Dann können ein
oder mehrere Prozesse 23 und/oder der Host-Prozessor 12 einem
oder mehreren Betriebssystemsprozessen 31 Zeichen geben.
Dies kann zu einer Abänderung
der Ausführung
eines oder mehrerer der Prozesse 31 durch den Host-Prozessor 12 führen, so
daß durch
den Host-Prozessor 12 ein oder mehrere Vorgänge ausgeführt werden
können,
die zum Beispiel dazu führen
können,
daß ein
menschlicher Bediener des Systems 200 davon unterrichtet wird,
daß mindestens
ein Virus in einem oder mehreren Paketen 212 entdeckt worden
ist, und/oder die den Bediener dazu auffordern, dem System 200 zu erlauben,
Maßnahmen
zu treffen, um diesen Zustand zu korrigieren.
-
Vor
dem Ausführen
des Vorgangs 308 können
die Schaltkreise 204 im Speicher 206 einen oder mehrere
Abschnitte 226A und/oder 226N und/oder ein oder
mehrere Pakete 212 abspeichern. Um die mögliche Ausbreitung
eines oder mehrerer Viren über
die Karte 20 hinaus zu verhindern, können die Schaltkreise 204 einem
oder mehreren Elementen (wie zum Beispiel einem oder mehreren Prozessen 31)
im System 200 außerhalb
der Schaltkreise 204 verbieten, auf einen oder mehrere
Abschnitte 226A und/oder 226N und/oder ein oder
mehrere Pakete 212 zuzugreifen (und/oder einen oder mehrere
Viren, die darin enthalten sein können, auszuführen).
-
Vorteilhafterweise
kann dies verhindern, daß ein
oder mehrere Viren, welche die Netzwerkschnittstellen-Controllerschaltkreise 204 über das
Netzwerk 16 empfangen haben, im Systemspeicher 21 und/oder
dem Massenspeicher (nicht abgebildet) im System 200 abgespeichert
und/oder durch die Systemausführungsform
ausgeführt
werden.
-
Falls
die Schaltkreise 208 und/oder 204 als Ergebnis
des Vorgangs 302 feststellen, daß eine oder mehrere Signaturen 230 mit
mindestens einem Virus in Verbindung stehen, können die Schaltkreise 208 und/oder 204 zusätzlich dazu
zum Beispiel Kopfinformationen und/oder Netzwerkströmungsinformationen,
die in einem oder mehreren Paketen 212 enthalten sind,
untersuchen, und können,
mindestens zum Teil beruhend auf solchen Informationen, die Quelle
(zum Beispiel Host 14), die ein oder mehrere Pakete 212 über das
Netzwerk 16 zum System 200 übertragen hat, ermitteln.
-
Alternativ
oder zusätzlich
dazu können
die Schaltkreise 204 dazu fähig sein, ein oder mehrere Pakete
zu erzeugen und über
das Netzwerk 16 zu einem Host (zum Beispiel dem Host 18)
zu übermitteln. Bei
dieser Anordnung können
ein oder mehrere Pakete 212 dafür bestimmt sein, von den Schaltkreisen 204 über das
Netzwerk 16 zum Host 18 ausgegeben zu werden.
Bevor ein oder mehrere Pakete 212 von den Schaltkreisen 204 zum
Netzwerk 16 übertragen werden,
können
die Schaltkreise 204 ein oder mehrere Pakete 212 im
Speicher 206 abspeichern. Die Schaltkreise 208 können, im
Wesentlichen in der zuvor beschriebenen Weise, mindestens zum Teil
beruhend auf einem oder mehreren Abschnitten (zum Beispiel einem
oder mehreren Abschnitten 226A und/oder 226N)
eines oder mehrerer Pakete 212, die im Speicher 206 abgespeichert
sind, eine oder mehrere Signaturen 230 erzeugen.
-
Danach
können
bei dieser Anordnung die Schaltkreise 204 und/oder 208 den
Vorgang 302 im Wesentlichen in der zuvor beschriebenen
Weise ausführen.
Falls die Schaltkreise 204 und/oder 208 mindestens
zum Teil als Ergebnis des Vorgangs 302 feststellen, daß eine oder
mehrere Signaturen 230 mit mindestens einem Virus in Verbindung
steht, können dann
die Schaltkreise 204 mindestens zum Teil eine oder mehrere
Mitteilungen 210 an einen oder mehrere Prozesse 23 und/oder
den Host-Prozessor 12 ausgeben, wie durch Vorgang 304 dargestellt.
Die eine oder die Mehrzahl an Mitteilungen können durch einen oder mehrere
Prozesse 23 und/oder den Host-Prozessor 12 empfangen werden,
wie durch Vorgang 306 dargestellt.
-
Danach
können
der Host-Prozessor 12 und/oder der eine oder die Mehrzahl
an Prozessen 23, mindestens zum Teil als Reaktion auf den
Empfang der einen oder mehreren Mitteilungen 210 am Host-Prozessor 12 und/oder
dem einen oder der Mehrzahl von Prozessen 23, einen oder
mehrere entsprechende Abschnitte 226A und/oder 226N eines oder
mehrerer entsprechender Pakete 214A und/oder 214N untersuchen,
um festzustellen, ob ein oder mehrere der entsprechenden Abschnitte 226A und/oder 226N mindestens
zum Teil mindestens einen Virus aufweisen. Bei dieser Ausführungsform können der
Host-Prozessor 12 und/oder der eine oder die Mehrzahl von
Prozessen 23 als Teil des Vorgangs 308 einen oder
mehrere Abschnitte 226A und/oder 226N und/oder
ein oder mehrere Pakete 212 untersuchen, um zu ermitteln,
welche der entsprechenden zusätzlichen
Kriterien, die mit einem oder mehreren der entsprechenden Viren
in Verbindung stehen, in den jeweiligen Tupeln in Datenbank 25 durch
einen oder mehrere der Abschnitte 226A und/oder 226N und/oder
ein oder mehrere der Pakete 212 erfüllt sein können. Falls die entsprechenden zusätzlichen
Kriterien derart erfüllt
sind, können
der Prozessor 12 und/oder ein oder mehrere Prozesse 23 als
Ergebnis des Vorgangs 308 feststellen, daß ein oder
mehrere Abschnitte 226A und/oder 226N einen oder
mehrere der entsprechenden Viren, die mit den jeweiligen zusätzlichen
Kriterien in Verbindung stehen, aufweisen. Dann können ein
oder mehrere Prozesse 23 und/oder der Host-Prozessor 12 einem oder
mehreren Betriebssystemsprozessen 31 Zeichen geben. Dies
kann zu einer Abänderung
der Ausführung
eines oder mehrerer der Prozesse 31 durch den Host-Prozessor 12 führen, so
daß durch den
Host-Prozessor 12 ein oder mehrere Vorgänge ausgeführt werden können, die
zum Beispiel dazu (ihren können,
daß ein
menschlicher Bediener des Systems 200 davon unterrichtet
wird, daß mindestens
ein Virus in einem oder mehreren Paketen 212 entdeckt worden
ist, und/oder die den Bediener dazu auffordern, dem System 200 zu
erlauben, Maßnahmen
zu treffen, um diesen Zustand zu komgieren. Solche Korrekturmaßnahmen
können
zum Beispiel das Verhindern der Übertragung
eines oder mehrerer Abschnitte 226A und/oder 226N und/oder
eines oder mehrerer Pakete 212 durch die Schaltkreise 204 auf des
Netzwerk 16 und/oder den Host 14, und das weitere
Abtasten von Daten, die im System 200 gespeichert sind,
um zu ermitteln, ob ein oder mehrere Viren in diesen Daten vorhanden
sind, umfassen.
-
Zusammengefaßt kann
folglich eine Systemausführungsform
eine Platine, die eine Busschnittstelle und eine Leiterkarte, die
in die Busschnittstelle eingesteckt werden kann, aufweist, aufweisen.
Die Leiterkarte kann Netzwerkschnittstellen-Controllerschaltkreise
aufweisen, die mindestens zum Teil dazu fähig sind, zu ermitteln, ob
mindestens eine Signatur, die mindestens zum Teil auf einem oder
mehreren der entsprechenden Abschnitte eines oder mehrere der entsprechenden
Pakete beruht, mit mindestens einem Virus in Verbindung steht.
-
Vorteilhafterweise
können
die Netzwerksschnittstellen-Controllerschaltkreise bei dieser Systemausführungsform
dazu fähig
sein, einen oder mehrere Viren, welche die Netzwerkschnittstellen-Controllerschaltkreise über das
Netzwerk empfangen hat, zu erkennen. Ebenfalls können bei dieser Systemausführungsform
die Netzwerkschnittstellen-Controllerschaltkreise vorteilhafterweise
dazu fähig
sein, zu verhindern, daß ein
oder mehrere Viren, welche die Netzwerkschnittstellen-Controllerschaltkreise über das
Netzwerk empfangen haben, im Systemspeicher und/oder im Massenspeicher
des Hosts abgespeichert werden, und/oder daß sie durch die Systemausführungsform
ausgeführt
werden. Des Weiteren können
bei dieser Systemausführungsform
die Netzwerkschnittstellen-Controllerschaltkreise vorteilhafterweise
dazu fähig
sein, eine Quelle des einen oder der Mehrzahl von Viren, die den
einen oder die Mehrzahl von Viren über das Netzwerk zu den Netzwerkschnittstellen-Controllerschaltkreisen übertragen
hat, zu ermitteln. Darüber
hinaus können
bei dieser Systemausführungsform
die Netzwerkschnittstellen-Controllerschaltkreise vorteilhafterweise
auch dazu fähig
sein, das Vorhandensein eines oder mehrere Viren zu erkennen und/oder
die Übertragung
eines oder mehrerer Viren durch die Netzwerkschnittstellen-Controllerschaltkreise
zum Netzwerk und/oder über
das Netzwerk zu einem Host zu verhindern.
-
Die
Begriffe und Ausdrücke,
die hierin benützt
worden sind, sind als beschreibende, nicht jedoch als einschränkende Begriffe
verwendet, und es ist nicht beabsichtigt, durch die Verwendung dieser Begriffe
und Ausdrücke
irgendwelche Entsprechungen der gezeigten und beschriebenen Merkmale (oder
Abschnitte davon) auszuschließen,
und es versteht sich, daß verschiedene
Abänderungen,
Variationen, Alternativen und Entsprechungen innerhalb des Umfangs
der Ansprüche
möglich
sind. Demgemäß sollen
die Ansprüche
alle diesen Abänderungen,
Variationen, Alternativen und Entsprechungen umfassen.
-
Zusammenfassung
-
Die
vorliegende Erfindung umfaßt
ein Ermitteln (302), mindestens zum Teil durch eine Netzwerkschnittstellen-Controllerschaltung,
ob mindestens eine Signatur, die mindestens zum Teil auf einem oder
mehreren entsprechenden Abschnitten eines oder mehrerer entsprechender
Pakete beruht, mit mindestens einem Virus in Verbindung steht.