-
Ein
Teil der Offenbarung dieses Patentdokuments einschließlich des
Computercodes enthält
Material, das dem Urheberrechtsschutz unterliegt. Der Urheberrechtsinhaber
hat keinen Einwand gegen die Faksimilewiedergabe des Patentdokuments
oder der Patentoffenbarung durch irgendjemanden, wie sie in der
Patentakte oder in Protokollen des Patent- und Warenzeichenamts
erscheint, behält
sich aber ansonsten alle Urheberrechte vor.
-
TECHNISCHES
GEBIET
-
Die
Erfindung bezieht sich allgemein auf das Gebiet der Netzüberwachung
und insbesondere auf ein Intrusionserfassungssystem, das die gesamte
kommende und gehende Netzaktivität
untersucht und verdächtige
Muster identifiziert, die einen Netz- oder Systemangriff oder eine
Netz- oder Systemintrusion angeben können.
-
STAND DER
TECHNIK
-
Während die
Welt ins 21-te Jahrhundert übergeht,
wächst
das Internet unbeschränkt
weiter. Netze sind für
die Durchführung
aller Formen der Geschäfts-
und persönlichen
Kommunikation unverzichtbar geworden. Netzsysteme ermöglichen,
schnell auf benötigte
Informationen zuzugreifen, mit Partnern zusammenzuarbeiten und elektronischen
Handel zu treiben. Die durch die Internet-Technologien gebotenen
Vorteile sind zu groß,
um sie zu ignorieren. Allerdings folgt wie bei allen technologischen
Fortschritten eine Abwägung.
Obgleich Computernetze die Art und Weise der Geschäftsführung revolutionieren,
können
die eingeführten
Risiken wesentlich sein. Angriffe auf Netze können zum Verlust von Geld,
von Zeit, des Rufs und vertraulicher Informationen führen.
-
Eine
zu vermeidende Hauptgefahr ist, dass äußere Eindringlinge die Steuerung
eines Hosts in einem Netz erlangen. Wenn die Steuerung erreicht
worden ist, können
private Unternehmensdateien heruntergeladen werden, kann der gesteuerte
Host verwendet werden, um weitere Computer innerhalb der Firewall
anzugreifen, oder kann der gesteuerte Host Computer irgendwo auf
der Welt abtasten oder angreifen. Viele Organisationen verfolgen
den Schutz ihrer Grenzen durch die Implementierung von Firewalls
und Intrusionserfassungssystemen (IDS).
-
Firewalls
beschränken
lediglich den Zugriff zwischen Netzen. Firewalls sind typisch so
ausgelegt, dass sie den Netzverkehr basierend auf Attributen wie
etwa Quell- oder Zieladresse, Portnummern oder Transportschichtprotokollen
filtern. Firewalls sind anfällig
für böswillig
gefertigten Verkehr, der so ausgelegt ist, dass er die festgesetzten
Blockierungsvorschriften umgeht. Außerdem sind fast alle kommerziell
verfügbaren
IDS signaturbasierte Erfassungssysteme oder anomaliebasierte Systeme.
-
Signaturbasierte
Erfassungssysteme setzen die Pakete in einer Verbindung zusammen,
um einen Strom von Bytes zu sammeln, der übertragen wird. Daraufhin wird
der Strom auf bestimmte Zeichenketten in den Daten analysiert, die üblicherweise
als "Signaturen" bezeichnet werden.
Diese Signaturen sind besondere Zeichenketten, die in bestimmten
Ausbeutungen entdeckt worden sind. Je mehr Signaturen in einer Datenbank gespeichert
sind, desto länger
dauert es, in jedem Datenstrom eine erschöpfende Suche auszuführen. Für größere Netze
mit massiven Mengen übertragener
Daten ist ein Zeichenkettenvergleichszugang undurchführbar. Um
den gesamten Kommunikationsverkehr zu analysieren, sind wesentliche
Rechenbetriebsmittel erforderlich.
-
Außerdem ist
die Signatur selbst dann, wenn eine bekannte Ausbeutungssignatur
entdeckt worden ist, erst nützlich,
wenn sie in dem Netz installiert worden ist und verfügbar ist.
Außerdem
schützt
die Signaturanalyse ein System nur vor bekannten Angriffen. Allerdings
werden jederzeit neue Angriffe implementiert. Leider würde ein
signaturbasiertes Erfassungssystem diese neuen Angriffe nicht erfassen
und das Netz verletzbar lassen.
-
Ein
weiterer Zugang zur Intrusionserfassung enthält die Erfassung einer ungewöhnlichen
Abweichung von normalem Netzverkehr, die üblicherweise als "Anomalien" bezeichnet wird.
Wie signaturbasierte Erfassungssysteme erfassen viele momentane
anomaliebasierte Intrusionserfassungssysteme nur bekannte Angriffsverfahren.
Einige dieser bekannten anomaliebasierten Angriffe enthalten TCP/IP-Stapel-Fingerabdrücke, halboffene
Angriffe und Portabtastung. Allerdings sind Systeme, die sich auf
bekannte Angriffe stützen,
leicht zu umgehen und lassen das System verletzbar. Außerdem ereignet
sich im normalen Netzverkehr ein gewisser anomaler Netzverkehr,
häufig
nicht böswillig,
routinemäßig. Zum
Beispiel könnte
eine falsch eingegebene Adresse zu einem unberechtigten Port gesendet
werden und als eine Anomalie interpretiert werden. Folglich neigen
bekannte ano maliebasierte Systeme dazu, eine unerwünschte Anzahl
falscher Alarme zu erzeugen, was eine Tendenz erzeugt, alle erzeugten
Alarme zu ignorieren.
-
Einige
bekannte Intrusionserfassungssysteme versuchen, statistische Anomalien
zu erfassen. Der Zugang ist, eine Grundlinie zu messen und daraufhin
einen Alarm auszulösen,
wenn eine Abweichung erfasst wird. Falls ein System z. B. üblicherweise
um 2 Uhr keinen Verkehr von einzelnen Workstations hat, wird eine Aktivität während dieses
Zeitrahmens als verdächtig
betrachtet. Allerdings sind Grundliniensysteme üblicherweise ineffektiv, da
eine kleine Menge böswilliger
Aktivität
durch die großen
Mengen hochvariabler normaler Aktivität maskiert wird. Insgesamt
betrachtet, ist es äußerst schwierig,
die potentiellen Angriffe zu erfassen.
-
Weitere
Intrusionserfassungssysteme vergleichen Langzeitprofil-Datenströme mit Kurzzeitprofil-Datenströmen. Ein
solches System ist im US-Patent Nr. 6.321.338 an Porras u. a. mit
dem Titel "Network
Surveillance" beschrieben.
Das in diesem Patent beschriebene System analysiert nicht notwendig
den gesamten Netzverkehr, sondern konzentriert sich stattdessen
auf schmale Datenströme.
Das System filtert ein Datenpaket in verschiedene Datenströme und vergleicht
Kurzzeitprofile mit Profilen, die über eine lange Zeitdauer gesammelt
worden sind. Allerdings ist Datenverkehr üblicherweise zu vielfältig, um
Kurzzeitprofile sinnvoll mit Langzeitprofilen zu vergleichen. Zum
Beispiel gibt lediglich die Tatsache, dass die durchschnittlichen
FTP-Ströme über lange
Zeit 3 Megabytes sein können,
nicht an, dass ein 20-Megabyte-Strom eine Anomalie ist. Folglich
erzeugen diese Systeme eine erhebliche Menge falscher Alarme oder
kann die böswillige
Aktivität
maskiert werden, indem nicht die richtigen Datenströme analysiert
werden.
-
Folglich
verfolgt und charakterisiert ein skalierbares Intrusionserfassungssystem
effektiv die Netzaktivität,
um anomales Verhalten zu unterscheiden. Wegen der Unbrauchbarkeit
der Analyse aller durch das Netz fließenden Daten kann sich das
System nicht auf signaturbasierte Verfahren stützen. Das Erfassungssystem muss
selbst mit dem Datenverkehr größerer Netze
funktionieren können.
Außerdem
muss das System ohne übermäßige Menge
falscher Alarme schnell und effizient bestimmen, ob das Netz einem
Angriff unterliegt.
-
WO
00/34847 bezieht sich auf die Erfassung von Netzintrusionen basierend
auf statistischer Analyse, um Anwenderbefehle und Programmnamen
mit einer Schablonenfolge anzupassen.
-
OFFENBARUNG
DER ERFINDUNG
-
Die
vorliegende Erfindung schafft ein genaueres und zuverlässigeres
Verfahren zur Erfassung von Netzangriffen, das im Gegensatz zu Signaturen
oder Anomalien zum großen
Teil auf "Flüssen" beruht. Dieses neue
Erfassungssystem erfordert keine aktualisierte Datenbank von Signaturen.
Stattdessen untersucht das Intrusionserfassungssystem die gesamte
kommende und gehende Aktivität
und identifiziert verdächtige
Muster, die nicht normale Flüsse
bezeichnen und einen Angriff angeben können. Die rechnerische Einfachheit
der Technik ermöglicht
den Betrieb mit viel höheren
Geschwindigkeiten, als er mit einem signaturbasierten System auf
vergleichbarer Hardware möglich
ist.
-
Gemäß der Erfindung
wird ein Verfahren zum Analysieren von Netzkommunikationsverkehr
auf eine potentielle Intrusionsaktivität gemäß Anspruch 1 geschaffen.
-
Ferner
wird gemäß der Erfindung
ein System zum Analysieren von Netzkommunikationsverkehr gemäß Anspruch
9 geschaffen.
-
In
einer Ausführungsform
der Erfindung arbeitet das Erfassungssystem so, dass es Datenpakete
verschiedenen Client/Server-Flüssen
(C/S-Flüssen)
zuweist. Für
jeden bestimmten Fluss werden Statistiken gesammelt. Daraufhin werden
die Flussstatistiken analysiert, um zu bestimmen, ob der Fluss berechtigter
Verkehr oder möglicherweise
eine verdächtige
Aktivität
zu sein scheint. Jedem Fluss, der verdächtig zu sein scheint, wird
ein als ein "Betreffindex" bezeichneter Wert
zugewiesen. Dadurch, dass jedem Fluss, der verdächtig erscheint, ein Wert zugewiesen
wird und dieser Wert zu einem akkumulierten Betreffindex, der dem verantwortlichen
Host zugeordnet ist, hinzugefügt
wird, ist es möglich,
Hosts zu identifizieren, die an einer Eindringlingsaktivität beteiligt
sind, ohne dass erhebliche ungerechtfertigte falsche Alarme erzeugt
werden. Sobald der Betreffindexwert eines Hosts einen voreingestellten
Alarmwert übersteigt,
wird eine Warnung ausgegeben und kann eine geeignete Maßnahme ergriffen
werden.
-
Allgemein
gesagt, analysiert das Intrusionserfassungssystem den Netzkommunikationsverkehr
auf eine potentielle schädliche
Aktivität.
Das System sammelt Flussdaten aus Paketanfangsblöcken zwischen zwei Hosts oder
Internetprotokoll adressen (IP-Adressen). Das Sammeln von Flussdaten
aus Paketanfangsblöcken,
die einem einzelnen Dienst zugeordnet sind, wobei wenigstens ein
Port konstant bleibt, ermöglicht eine
effizientere Analyse der Flussdaten. Die gesammelten Flussdaten
werden analysiert, um dem Fluss basierend auf der Wahrscheinlichkeit,
dass der Fluss für
die Datenaustauschvorgänge
nicht normal war, einen Betreffindexwert zuzuweisen. Es wird eine
Host-Liste gehalten, die einen akkumulierten Betreffindex enthält, der
aus den dem Host zugeordneten Flüssen
abgeleitet wurde. Sobald der akkumulierte Betreffindex einen Alarmschwellenwert überschritten
hat, wird ein Alarmsignal erzeugt.
-
KURZBESCHREIBUNG
DER ZEICHNUNG
-
Nutzen
und weitere Merkmale der vorliegenden Erfindung gehen aus einer
ausführlichen
Beschreibung einer bevorzugten Ausführungsform davon hervor, die
in Verbindung mit der folgenden Zeichnung zu nehmen ist, in der
auf gleiche Elemente mit gleichen Bezugszeichen Bezug genommen wird
und in der:
-
1 ein
Funktionsblockschaltplan ist, der ein flussbasiertes Intrusionserfassungssystem
veranschaulicht, das in Übereinstimmung
mit einer bevorzugten Ausführungsform
der vorliegenden Erfindung konstruiert ist.
-
2 ein
Diagramm ist, das Anfangsblöcke
von Datagrammen veranschaulicht.
-
3 ein
Funktionsblockschaltplan ist, der einen beispielhaften normalen
TCP-Austauschvorgang veranschaulicht.
-
4 ein
Funktionsblockschaltplan ist, der C/S-Flüsse veranschaulicht.
-
5 ein
Funktionsblock ist, der eine flussbasierte Intrusionserfassungsmaschine
veranschaulicht.
-
6 eine
Tabelle ist, die den Betreffindexwert für C/S-Flüsse veranschaulicht.
-
7 eine
Tabelle ist, die Betreffindexwerte für weitere Host-Aktivitäten veranschaulicht.
-
8 ein
Funktionsblockschaltplan ist, der eine Hardwarearchitektur veranschau licht.
-
9, die aus den 9A bis 9C besteht,
Ablaufpläne
von Programm-Threads in einer beispielhaften Ausführungsform
der Erfindung sind.
-
BESTE AUSFÜHRUNGSART
-
Die
beschriebene Ausführungsform
offenbart ein System, das ein effizientes, zuverlässiges und
skalierbares Verfahren zum Erfassen von Netzintrusionen durch Analysieren
der Austauschvorgangs-Flussstatistiken schafft. Die Netzintrusionen
werden durch eine flussbasierte Maschine erfasst, die Netzaktivitäten charakterisiert
und verfolgt, um zwischen anomaler Aktivität und normalen Austauschvorgängen zu
unterscheiden. Die flussbasierte Erfassung stützt sich nicht auf die Analyse
der Daten von Paketen für
Signaturen bekannter Angriffe. Das Analysieren von Zeichenketten
für bekannte
Angriffe ist äußerst betriebsmittelintensiv
und schützt
nicht vor neuen, unbekannten Angriffen. Stattdessen wird die vorliegende
Eindringlingserfassung dadurch ausgeführt, dass Austauschvorgangsflüsse analysiert
werden, um zu bestimmen, ob der Austauschvorgang die Flusscharakteristiken
von Sondierungen oder Angriffen aufweist. Für den Fachmann auf dem Gebiet ist
leicht klar, dass außer
den explizit beschriebenen zahlreiche Austauschvorgänge eine
Intrusionsaktivität
angeben können.
Durch die Analyse von Austauschvorgängen für anomale Flusscharakteristiken
können
Angriffe ohne die Notwendigkeit einer betriebsmittelintensiven Paketdatenanalyse
bestimmt werden.
-
Allerdings
ist es nützlich,
die Grundlagen von Internet-Austauschvorgängen zu diskutieren, um ein Verständnis des
Betriebs der flussbasierten Maschine zu erlangen. Folglich wird
anfangs eine Übersicht über ein
flussbasiertes Erfassungssystem diskutiert. Nach der Übersicht
folgen Diskussionen verschiedener Aspekte von Internet-Austauschvorgängen. Anhand
von 5 bis 9 wird ausführlich eine
ausführliche
Funktionalität
der flussbasierten Maschine der vorliegenden Erfindung beschrieben.
-
Übersicht
-
Übergehend
zu den Figuren, in denen gleiche Bezugszeichen in den mehreren Figuren
durchgängig gleiche
Elemente bezeichnen, gibt 1 eine Übersicht über ein
flussbasiertes Intrusionserfassungssystem oder eine flussbasierte
Intrusionserfassungsmaschine 155 in Übereinstimmung mit einer beispielhaften
Ausführungsform
der vorliegenden Erfindung. Das flussbasierte Intrusionserfassungssystem 155 überwacht
Netzcomputer-Austauschvorgänge.
Die Netzcomputer-Austauschvorgänge
werden über
ein bekanntes globales Computernetz, das üblicherweise als das Internet 199 bekannt
ist, geleitet. In Übereinstimmung
mit einem Aspekt der Erfindung ist die Intrusionserfassungsmaschine 155 zusammen
mit einer Datenbank 160, die Informationen speichert, die
in der Intrusionserfassungsmethodik genutzt werden, in ein Überwachungsgerät 150 integriert.
-
Es
wird betrachtet, dass die Betriebsumgebung des Intrusionserfassungssystems 155 zahlreiche
mit dem Internet 199 verbundene Hosts, z. B. den Host Nr.
1, den Host Nr. 2, den Host Nr. 3 (in dieser Reihenfolge auch als
H1–H3
bezeichnet) aufweist. Hosts sind irgendwelche Computer, die vollständigen Zweiwegezugriff auf
weitere Computer im Internet 199 haben und die ihre eigene
eindeutige IP-Adresse haben. Zum Beispiel hat der Host Nr. 1 eine
beispielhafte IP-Adresse 208.60.239.19. Das Internet 199 verbindet
Clients 110 in bekannter Client/Server-Beziehung mit einem Host-Server 130.
-
In
einer typischen Konfiguration werden einige Computer als "Server" bezeichnet, während andere
als "Clients" bezeichnet werden.
Ein Server-Computer wie etwa der Host Nr. 2 130 liefert üblicherweise
Antworten auf Anfragen von Client-Computern und stellt Dienste, Daten,
Betriebsmittel und dergleichen bereit. Währenddessen fordert ein Client-Computer
wie etwa der Host Nr. 1 110 üblicherweise die durch den
Server bereitgestellten Dienste, Daten, Betriebsmittel und dergleichen
an und nutzt sie.
-
Es
ist im Gebiet bekannt, Austauschübermittlungen
zwischen Hosts über
das Internet 199 zu senden. Das Internetprotokoll (IP)
ist das Verfahren, durch das Daten im Internet 199 von
einem Host-Computer zu einem anderen gesendet werden. Jeder Host
im Internet 199 besitzt eine IP-Adresse, die ihn eindeutig
gegenüber
allen anderen Computern identifiziert. Wenn Daten übertragen
werden, wird die Nachricht in Pakete 101 geteilt. Die Pakete 101 werden
anhand von 2 ausführlicher diskutiert.
-
Jedes
IP-Paket 101 enthält
einen Anfangsblock, der sowohl die Internet-Adresse des Senders
als auch die Internet-Adresse des Empfängers enthält. Die Pakete 101 werden
zu dem Computer, dessen Adresse spezifiziert ist, weitergeleitet.
Es sind ein berechtigter Anwender/Client 110, ein Host
Nr. 1 (H1) mit einer IP-Adresse
208.60.239.19, und ein Server, der Host Nr. 2 (H2) mit einer IP-Adresse
128.0.0.1, veranschaulicht.
-
Wie
gezeigt ist, kommuniziert ein Client 110 mit einem Server 130,
indem er Pakete 101 von Daten sendet. Ein Paket 101 ist
eine Dateneinheit, die zwischen einem Ursprung und einem Ziel geleitet
wird. Wie veranschaulicht ist, werden Nachrichten in zahlreiche
Pakete 101 segmentiert und über das Internet 199 zu dem
empfangenden Host geleitet. Der empfangende Host setzt den Strom
von Paketen 101 wieder zusammen, um die ursprüngliche
Nachricht wieder herzustellen, die daraufhin durch Anwendungsprogramme,
die auf dem empfangenden Computersystem ausgeführt werden, behandelt wird.
-
Allerdings
können
einige der Hosts Eindringlinge 120 sein, die üblicherweise
als Hacker oder Cracker bezeichnet werden. Die Eindringlinge 120 nutzen
verletzbare Computer aus. Wie gezeigt ist, ist der Eindringling 120 ein
Host mit seiner eigenen IP-Adresse 110.5.47.224. Außerdem kommuniziert
der Eindringling 120, indem er Pakete 101 über das
Internet 199 sendet. Wie zuvor angegeben wurde, enthalten
die Pakete 101 die IP-Adresse des Absenders und des Ziels,
um eine richtige Leitweglenkung sicherzustellen. Wie gezeigt ist, kann
der durch den Eindringling 120 gesendete Strom von Paketen 101 mit
den von anderen Hosts gesendeten Paketen 101 verschachtelt
sein. Die Pakete 101 enthalten Anfangsblockinformationen,
die ermöglichen, dass
der empfangende Host den verschachtelten Strom von Paketen wieder
zu den ursprünglichen
Nachrichten wie gesendet zusammensetzt.
-
Normale
Client/Server-Austauschvorgangsaktivität (C/S-Austauschvorgangsaktivität) enthält das Senden
von E-Mails, Web-Verkehr, Dateiübertragungen
und dergleichen. Austauschübermittlungen über das Internet 199 müssen an
eine spezifische IP-Adresse und an einen spezifischen Dienstkontaktport
gesendet werden. Ein "Port" ist dem Fachmann
auf dem Gebiet als eine beliebig zugewiesene Nummer bekannt, der
ein bestimmter Typ eines Rechendienstes in herkömmlichen Internet-Computer-Computer-Austauschvorgängen zugewiesen
ist, wobei z. B. Web-Verkehr herkömmlich auf Port 80,
FTP-Verkehr auf den Ports 20 und 21 usw. ist.
Die IP-Adresse spezifiziert einen spezifischen Host, während die
Dienstkontakt-Portnummer ein besonderes Server-Programm oder einen
besonderen Server-Dienst identifiziert, das/den der Host-Computer
bereitstellen kann. Heutige Portnummern reichen von 0 bis 65.535.
Wie in 1 gezeigt ist, haben eine Anzahl häufig verwendeter
Dienste oder Prozesse herkömmlich
zugewiesene Dienstkontakt-Portnummern, auf die als gut bekannte
Portnummern Bezug genommen wird, die durch die Internet Assigned
Number Authority (IANA) unterhalten werden. Diese zugewiesenen Portnummern
sind im Gebiet gut bekannt und sind typisch Ports mit niedrigen
Nummern zwischen 0 und 1023. Außerdem
sind momentan bestimmte Ports mit höheren Nummern zugewiesen worden.
-
Eine
Dienstporttabelle in 1 führt einige übliche Dienste auf, die heutige
Internet-gestützte
Computersysteme bereitstellen können.
Abgehende E-Mail nutzt üblicherweise
das bekannte Simple Mail Transfer Protocol (SMTP), das über den
Dienstkontaktport 25 implementiert wird. Für Hypertext-Transfer-Protocol-Austauschvorgänge (HTTP-Austauschvorgänge) öffnen Web-Browser
eine kurzlebige hohe Portnummer, um Web-Verkehr zu beginnen, der
zu dem Host-Server-Port 80 gesendet wird. File-Transfer-Protocol-Steueraustauschvorgänge (FTP-Steueraustauschvorgänge) werden
zu dem Server-Port 21 gesendet, während eine FTP-Datenübertragung
vom Port 20 ausgeht. Der Finger-Dienst nutzt den Dienstkontaktport 79,
der Domain Name Service (DNS) nutzt den Dienstkontaktport 53 und
Telnet-Austauschvorgänge
nutzen den Dienstkontaktport 23. Wie veranschaulicht ist,
sind häufige
Dienste üblicherweise
spezifischen vorgegebenen Dienstkontaktports zugeordnet.
-
Außerdem sind
in 1 vier Flüsse
F1 bis F4 zwischen dem Client-Host Nr. 1 110 und dem Dienst-Host
Nr. 2 130 zugewiesen. Der Fluss F1 ist eine Dateiübertragung,
die das File Transfer Protocol (FTP) nutzt. Wie gezeigt ist, wird
die Dateiübertragung
(der Fluss F1) durch einen Strom von Paketen 101 (P1–P3) geliefert,
der durch den empfangenden Host 110 wieder zusammengesetzt
wird.
-
Nachdem
die Dateiübertragung
abgeschlossen ist, beginnt der Client 110 eine HTTP-Web-Sitzung (Fluss
F2) mit dem Server 120. Der Fachmann auf dem Gebiet versteht,
dass eine Web-Sitzung üblicherweise stattfindet,
wenn ein Internet-Browser-Computerprogramm wie etwa MICROSOFT INTERNET
EXPLORER oder NETSCAPE NAVIGATOR eine Web-Seite von einem World-Wide-Web-Dienst (WWW-Dienst)
am Port 80 anfordert. Die Pakete P4, P5, P6 und P9 sind
dem Web-Verkehr des Flusses F2 zugeordnet. Diese Pakete können Daten
wie etwa ein anzuzeigendes Bild im JPG-Format, Text, ein JAVA-Programm
oder weitere Informationsmaterialien, die durch das Internet-Browser-Programm
des Clients angezeigt oder behandelt werden sollen, enthalten.
-
In
Fortsetzung des Beispiels aus 1 sendet
der Client 110 eine durch den Fluss F3 veranschaulichte
E-Mail, während
die Web-Sitzung des Flusses F2 noch geöffnet ist. Wie gezeigt ist,
können
die E-Mail-Pakete des Flusses F3 mit der zuvor geöffneten
Web-Sitzung des Flusses F2 verschachtelt sein. Wie veranschaulicht
ist, enthalten die Pakete P7, P8 und P12 die E-Mail-Nachricht.
-
Schließlich fordert
der Client 110 von dem Server 120 eine weitere
Web-Seite an, was einen nochmals weiteren HTTP-Fluss F4 beginnt.
Die Pakete P9, P10, P11, P12 und P14 repräsentieren den neuen Web-Verkehr.
-
In Übereinstimmung
mit einem Aspekt der Erfindung wird ein Fluss als abgeschlossen
betrachtet, nachdem an einer bestimmten Verbindung oder an einem
bestimmten Port eine vorgegebene Zeitdauer verstrichen ist. Falls
z. B. der HTTP-Web-Verkehr
am Port 80 für
eine vorgegebene Zeitdauer aufhört,
während nach
Ablauf dieser vorgegebenen Zeitdauer weiterer Verkehr am Port 80 aufzutreten
beginnt, wird dies in der Weise betrachtet, dass ein neuer Fluss
begonnen hat, wobei das System dementsprechend reagiert, um eine neue
Flussnummer zuzuweisen und dessen Statistiken und Charakteristiken
zu verfolgen. In der offenbarten Ausführungsform beträgt die vorgegebene
Zeitdauer 330 Sekunden, wobei aber für den Fachmann auf dem Gebiet
selbstverständlich
ist, dass diese Zeit beliebig ist und heuristisch eingestellt werden
kann.
-
Obgleich
die bevorzugte Ausführungsform
das Verstreichen einer vorgegebenen Zeitdauer nutzt, um Flüsse zu begrenzen,
versteht und würdigt
der Fachmann auf dem Gebiet, dass weitere Ereignisse, Indikatoren
oder Informationen, z. B. vorgegebene Charakteristiken des Verkehrs
an einem gegebenen Port oder das Auftreten eines FIN-Merkers in
einem Paket im Verkehr usw., verwendet werden können, um Flüsse zu begrenzen. Dem Fachmann
auf dem Gebiet fallen weitere solche Ereignisse oder Indikatoren
ein.
-
Da
in dem Beispiel aus 1 eine Zeitdauer (in diesem
Beispiel 330 Sekunden) verstrichen ist, seit der Server letztmals
irgendwelchen Web-Verkehr verarbeitet hat, wird der neue Web-Verkehr
mit den Paketen P9, P10, P11, P12 und P14 als ein neuer Fluss (F4)
betrachtet. Falls die neue Web-Seite innerhalb der vorgege benen
Zeitperiode angefordert worden wäre,
die das Ende eines Flusses definiert, wäre der neue Verkehr als Teil
des Flusses F3 enthalten.
-
Eindringlinge 120 senden über das
Netz Daten, die schädigen
sollen oder Einzelheiten über
die Hosts in dem Netz, die sie in Zukunft schädigen lassen, aufklären sollen.
Da Eindringlinge 120 andere Ziele haben, senden Eindringlinge 120 üblicherweise
Austauschübermittlungen,
die für
Client-Server-Austauschübermittlungen
nicht normal sind.
-
Zum
Beispiel können
Eindringlinge zahlreiche Ports hoher Ebene abtasten, was in normalen
Client/Server-Austauschvorgängen
nicht geschehen würde,
oder kann ein Eindringling ein User-Datagram-Protocol-Paket (UDP-Paket),
das üblicherweise
bei Streaming-Medien verwendet wird, ohne angebrachte Daten senden.
Ein Eindringling kann zu identifizieren versuchen, welches Betriebssystem
ein Host nutzt, indem er ein Paket mit einer undefinierten Menge
von TCP-Merkern sendet. Eine hohe Anzahl von TCP-Paketen 101 zu
einem einzelnen Host von einem weiteren Host kann einen halboffenen
Angriff angeben, der die Betriebsmittel des Ziels zu belegen versucht.
Jede dieser verdächtigen
Aktivitäten
ist im normalen Netzverkehr normalerweise nicht zu sehen.
-
In Übereinstimmung
mit einem Aspekt der Erfindung wird in Verbindung mit jedem durch
die Intrusionserfassungsmaschine 155 identifizierten Host
eine als "Betreffindex" (CI) bezeichnete
Variable bereitgestellt. Diese Betreffindexvariable CI wird verwendet,
um Werte zu akkumulieren, die verschiedenen in dem Netz auftretenden
anomalen Ereignissen zugeordnet sind, wenn z. B. ein bestimmter
Fluss für
ungewöhnlich gehalten
wird oder wenn bestimmte Typen anomaler Ereignisse auftreten. Während der
kumulierte Wert der CI-Variablen für einen bestimmten Host zu
dieser Zeit einen vorgegebenen Schwellenwert übersteigt, kann dieser Host
als eine ausreichende Bedrohung betrachtet werden, um das Erzeugen
einer Warnung oder eines Alarms und das Ergreifen von Maßnahmen
zu rechtfertigen.
-
Folglich
heben anomale Flüsse
und/oder Ereignisse, die durch die Intrusionserfassungsmaschine 155 identifiziert
werden, den Betreffindex (CI) für
den zugeordneten Host an. Die Intrusionserfassungsmaschine 155 analysiert
den Datenfluss zwischen IP-Vorrichtungen. Allerdings haben verschiedene
Typen von Diensten verschiedene Flusscharakteristiken, die diesem
Dienst zugeordnet sind. Somit kann ein C/S-Fluss durch die Pakete
bestimmt werden, die zwischen den zwei Hosts, die denselben Dienst
behandeln, ausgetauscht werden.
-
In Übereinstimmung
mit einem Aspekt der Erfindung arbeitet die Intrusionserfassungsmaschine 155 in
der Weise, dass sie Datenpakete 101 verschiedenen Flüssen zuweist.
Die Maschine 155 sammelt Informationen über jeden Fluss und jedem Fluss
zugeordnete Statistiken und speichert diese Informationen und Statistiken
in einer Datenbank 160. Die Flussdatenbank 160 umfasst
eine Flussdatenstruktur 162 und eine Host-Datenstruktur 166.
Die Flussdatenstruktur 162 speichert gesammelte Flussinformationen
wie etwa die IP-Adressen. Die Maschine bestimmt, welcher Host eine
niedrigere IP-Adresse hat, und weist diesem Host die IP0 zu. Dem
anderen Host wird die IP1 zugewiesen. Der Port0 wird IP0 zugewiesen
und der Port1 ist der Dienstverbindungsport für Host1. Außerdem speichert die Flussdatenstruktur 162 die
Zeit und weitere verwandte Paketinformationen, die von dem Paketanfangsblock
abgeleitet werden. In der offenbarten Ausführungsform werden diese Zeitinformationen
(z. B. die Zeit des ersten Pakets, die Zeit des letzten Pakets)
wie oben beschrieben genutzt, um zur Flussbegrenzung das Verstreichen
der Zeit zu messen.
-
Die
Intrusionserfassungsmaschine 155 analysiert die Flussdaten 160,
um zu bestimmen, ob der Fluss berechtigter Verkehr oder möglicherweise
eine verdächtige
Aktivität
zu sein scheint. Flüssen
mit verdächtiger Aktivität wird anhand
einer heuristisch vorgegebenen Beurteilung der Bedeutung der Bedrohung
des besonderen Verkehrs oder Flusses oder der verdächtigen
Aktivität
ein Betreffindexwert (CI-Wert) zugewiesen. Die Flussbetreffindexwerte
sind heuristisch aus einer umfangreichen Netzverkehrsanalyse abgeleitet
worden. Die Betreffindexwerte werden bestimmten Hosts zugewiesen
und in der Host-Datenstruktur 166 (1) gespeichert.
In Verbindung mit den 6 und 7 sind beispielhafte
Betreffindexwerte für
verschiedene beispielhafte flussbasierte Ereignisse und weitere
Typen von Ereignissen veranschaulicht.
-
Dadurch,
das jedem Fluss, der verdächtig
erscheint, ein Wert zugewiesen wird und dass dieser Wert zu einem
Gesamt-CI des für
den Fluss verantwortlichen Hosts hinzugefügt wird, ist es möglich, Hosts
zu identifizieren, die an Eindringlingsaktivitäten beteiligt sind. Sobald
der CI eines Hosts einen im Voraus festgelegten Alarmschwellenwert übersteigt,
kann ein Alarmsignal erzeugt werden. In dem Beispiel aus 1 hat
der Host H3 einen CI von 3.980 akkumuliert. Dieser übersteigt
den im Voraus festgelegten Schwellenwert von 3.500 für dieses
Netz, wobei durch eine Warnmeldung, durch eine Dialogfeld, durch
einen Personenfunkrufempfänger, durch
eine E-Mail, per Telephon oder mit einer anderen Alarmeinrichtung
ein Systemadministrator (SYS ADMIN) benachrichtigt werden kann.
-
Die
Host-Server 130 sind mit einer oder mit mehreren Netzvorrichtungen 135 wie
etwa Routern, Switches oder Hubs gekoppelt. In einer typischen bevorzugten
Konfiguration für
die vorliegende Erfindung ist ein Überwachungsgerät 150,
das eine flussbasierte Intrusionserfassungsmaschine 155 betreibt,
mit einer der Netzvorrichtungen 135 oder mit einem Abgriff
in einer Internet-Backbone-Übertragungsstrecke
gekoppelt. Das Überwachungsgerät 150 überwacht
in dem Versuch, die Intrusionsaktivität zu erfassen, die Nachrichtenübermittlungsvorgänge zwischen
dem Host-Server 130 und weiteren Hosts 120, 110.
-
Der
Fachmann auf dem Gebiet versteht, dass viele Netze Firewalls nutzen,
um unerwünschten
Netzverkehr zu beschränken.
Ein Überwachungsgerät 150 kann
vor einer Firewall verbunden sein, um auf das Netz gerichtete Intrusionen
zu erfassen. Umgekehrt kann das Überwachungsgerät 150 hinter
einer Firewall installiert sein, um Intrusionen zu erfassen, die
die Firewall umgehen. Einige Systeme installieren zwei Firewalls
mit Web- und E-Mail-Servern in der so genannten "entmilitarisierten Zone" oder "DMZ" zwischen Firewalls.
Eine übliche
Anordnung des Überwachungsgeräts 150 ist
in dieser entmilitarisierten Zone. Natürlich ist für den Fachmann auf dem Gebiet
klar, dass das flussbasierte Intrusionserfassungssystem 155 oder
Intrusionserfassungsgerät 150 ohne
Vorhandensein irgendwelcher Firewalls arbeiten kann.
-
Es
ist nun klar, dass die offenbarte Methodik der Intrusionserfassung
wenigstens teilweise dadurch ausgeführt wird, dass Austauschvorgangsflüsse analysiert
werden, um zu bestimmen, ob diese Austauschvorgänge die Flusscharakteristiken
von Sondierungen oder Angriffen haben. Durch Analysieren der Austauschvorgänge auf
anomale Flusscharakteristiken können
Angriffe ohne die Notwendigkeit einer betriebsmittelintensiven Paketdatenanalyse
bestimmt werden. Es kann ein Fluss von den Paketen 101 bestimmt
werden, die zwischen zwei Hosts, die einen einzigen Dienst nutzen, übertragen
werden. Die Adressen und die Portnummern der Austauschvorgänge werden
leicht durch Analyse der Anfangsblockinformationen in einem Datagramm
erkannt.
-
Paket
-
Nunmehr
anhand von 2 und insofern, als ein Verständnis von
Internet-Datenpaketen hilfreich für die Konstruktion von Ausführungsformen
der vorliegenden Erfindung ist, wird nachfolgend als Verständnishilfe eine
Beschreibung solcher auch "Datagramme" genannter Pakete
gegeben. Ein Paket oder Datagramm 101 ist eine selbständige, unabhängige Entität oder Dateneinheit,
die ausreichend Informationen trägt,
um von einem Quell- zu einem Zielcomputer geleitet zu werden, ohne
sich auf frühere
Austausche zwischen dem Quell- und dem Zielcomputer zu stützen. Wie
in 2 veranschaulicht ist, haben die Pakete 101 einen
Anfangsblock und ein Datensegment Im heutigen Sprachgebrauch hat
der Begriff "Paket" den Begriff "Datagramm" allgemein ersetzt.
-
Noch
einmal festgestellt, ist ein Paket 101 diejenige Dateneinheit,
die in einem paketvermittelten Netz wie etwa im Internet 199 zwischen
einem Ursprung und einem Ziel geleitet wird. Ein Paketvermittlungsschema ist
ein effizientes Verfahren der Behandlung von Übertragungen in einem verbindungslosen
Netz. Allerdings können
verbindungsorientierte Protokolle genutzt werden, um eine Sitzung
zu erzeugen. Eine Sitzung ist eine Reihe von Wechselwirkungen zwischen
zwei Austauschvorgangs-Endpunkten, die während der Spanne einer einzelnen
Verbindung stattfinden. Eine ausführliche Diskussion einer TCP/IP-Sitzung
ist anhand von 3 beschrieben. Allerdings kann
ein Host eine Nachricht senden, ohne eine Verbindung mit dem Empfänger aufzubauen.
Das heißt,
der Host sendet einfach ein Paket 101 mit der Zieladresse
an das Netz 199 und hofft, dass es ankommt.
-
2 veranschaulicht
ein beispielhaftes TCP/IP-Paket oder -Datagramm 210 und
ein beispielhaftes UDP-Datagramm 240. In einem typischen
TCP/IP-Paket wie 210 enthält jedes Paket üblicherweise
einen Anfangsblockabschnitt, der einen IP-Anfangsblock 220 und einen
TCP-Anfangsblock 230 umfasst, gefolgt von einem Datenabschnitt,
der die in dem Paket zu übermittelnden
Informationen enthält.
Die Informationen in dem IP-Anfangsblock 220, die in einem
TCP/IP-Paket 210 oder in irgendeinem anderen IP-Paket enthalten
sind, enthalten die IP-Adressen und stellen sicher, dass das Paket
zu dem richtigen Host geliefert wird. Auf den Internetprotokoll-Anfangsblock
folgt der Transportschichtprotokoll-Anfangsblock (TCP-Anfangsblock), der
die Portnummern für
den zugeordneten Dienst spezifiziert.
-
Der
Anfangsblockabschnitt in dem typischen TCP/IP-Datagramm 210 beträgt 40 Bytes,
wobei er 20 Bytes Informationen des IP-Anfangsblocks 220 und
20 Bytes Informationen des TCP-Anfangsblocks 230 enthält. Auf
die Anfangsblockinformationen folgt der Datenabschnitt oder das
Datensegment, der/das dem Paket 210 zugeordnet ist.
-
Hinsichtlich
eines typischen IP-Pakets 210 identifizieren die ersten
4 Bits des IP-Anfangsblocks 220 die
Internetprotokoll-Version (IP-Version). Die folgenden 4 Bits identifizieren
in 32-Bit-Wörtern
die IP-Anfangsblocklänge.
Die nächsten
8 Bits unterscheiden den Diensttyp, indem sie beschreiben, wie das
Paket unterwegs behandelt werden sollte. Die folgenden 16 Bits übermitteln
die Gesamtpaketlänge.
-
Große Pakete
neigen dazu, durch Netze, die keine große Paketgröße behandeln können, fragmentiert zu
werden. Um fragmentierte Pakete wieder zusammenzusetzen, wird eine
16-Bit-Paketidentifizierung verwendet. Eine Menge von drei Bits
von Fragmentierungsmerkern steuern, ob ein Paket fragmentiert ist
oder sein kann. Der 13-Bit-Fragment-Offset ist eine Laufzahl für die 4-Byte-Wörter in
dem Paket, wenn es wieder zusammengesetzt wird. In einer Reihe von
Fragmenten ist der erste Offset null.
-
Nach
den Fragmentierungsinformationen spezifiziert ein 8-Bit-Lebensdauerfeld
die verbleibende Lebensdauer eines Pakets, wobei es jedes Mal, wenn
das Paket weitergeleitet wird, dekrementiert wird. Falls dieses
Feld 0 ist, wird das Paket zerstört.
Das nächste
ist ein 8-Bit-Protokollfeld, das das in dem Datenabschnitt verwendete
Transportprotokoll spezifiziert. Das folgende 16-Bit-Feld ist eine
Anfangsblockprüfsumme
nur an dem Anfangsblock. Schließlich
enthalten die veranschaulichten letzten zwei Felder die 32-Bit-Quelladresse und
die 32-Bit-Zieladresse. Auf die Adresseninformationen folgen die
IP-Paket-Daten.
-
In
einem TCP/IP-Datagramm 210 sind die Anfangsdaten des IP-Datagramms
die Informationen des TCP-Anfangsblocks 230. Die Anfangsinformationen
des TCP-Anfangsblocks 230 enthalten
die 16-Bit-Quell- und die 16-Bit-Ziel-Portnummer. Auf die Portnummern
folgt eine 32-Bit-Laufzahl für
die Daten in dem Paket. Auf die Laufzahl folgt eine 32-Bit-Quittierungszahl.
Falls ein (unten diskutierter) ACK-Merker gesetzt ist, ist die Zahl
die nächste
Laufzahl, die der Sender des Pakets zu empfangen erwartet. Das nächste ist
ein 4-Bit-Daten-Offset, der die Anzahl der 32-Bit-Wörter in
dem TCP-Anfangsblock ist. Es folgt ein reserviertes 6-Bit-Feld.
-
Nach
dem reservierten Feld sind die nächsten
6 Bits eine Reihe von Ein-Bit-Merkern,
die in 2 als die Merker U, A, P, R, S, F gezeigt sind.
Der erste Merker ist der Dringlich-Merker (U). Falls der U-Merker
gesetzt ist, gibt er an, dass der Dringlich-Zeiger gültig ist
und auf dringliche Daten zeigt, die so schnell wie möglich bearbeitet
werden sollten. Der nächste
Merker ist der A-Merker (oder ACK-Merker oder "Quittierungs"-Merker). Der ACK-Merker gibt an, dass
eine Quittierungszahl gültig
ist, und quittiert, dass Daten empfangen worden sind. Der nächste Merker,
der Schiebe-Merker (P-Merker), teilt dem empfangenden Ende mit,
dass alle gepufferten Daten zu der Empfangsanwendung geschoben werden
sollen. Der folgende Merker ist der Rücksetzmerker (R-Merker), der
beide Enden der TCP-Verbindung abschließt. Nachfolgend ist in dem
Anfangspaket einer TCP-Verbindung
der S-Merker (oder SYN-Merker für "Synchronisier"-Merker) gesetzt,
wo beide Enden ihre TCP-Puffer synchronisieren müssen. Auf den SYN-Merker folgt
der F-Merker (für
FIN-Merker oder "Fertig"-Merker). Dieser
Merker bedeutet, dass das sendende Ende des Austauschvorgangs und
der Host keine weiteren Daten senden, aber weiter Daten quittieren
können,
die empfangen werden.
-
Auf
die TCP-Merker-Bits folgt ein 16-Bit-Empfangsfenster-Größenfeld,
das die Menge des Raums spezifiziert, der in dem Empfangspuffer
für die
TCP-Verbindung verfügbar
ist. Die Prüfsumme
des TCP-Anfangsblocks ist ein 16-Bit-Feld. Auf die Prüfsumme folgt
ein 16-Bit-Dringlich-Merker, der auf die dringlichen Daten zeigt.
Auf den TCP-Anfangsblock folgen die TCP/IP-Datagramm-Daten.
-
Weiter
anhand von 2 stellt ein typisches Anwenderdatagrammprotokoll-Paket
(UDP-Paket) 240 für
Anwendungsprogramme eine Prozedur bereit, um Nachrichten mit einem
Minimum an Protokollmechanismen zu anderen Programmen zu senden.
Als das zugrundeliegendende Protokoll wird das zuvor beschriebene IP-Protokoll verwendet.
Das UDP-Protokoll ist transaktionsorientiert und es ist kein Lieferschutz
sichergestellt. Anwendungen, die eine zuverlässige Lieferung von Daten erfordern,
verwenden üblicherweise
das zuvor beschriebene Übertragungssteuerprotokoll
(TCP).
-
Der
16-Bit-UDP-Quellport ist ein Feld, zu welchem Port eine Antwort,
wenn sinnvoll, adressiert werden sollte. Der 16-Bit-UDP-Zielport
spezifiziert das Server-Programm zur Ausführung des Pakets in dem empfangenden
Host. Nachfolgend ist das 16-Bit-UDP-Nachrichtenlängenfeld
die Länge
in Bytes des Anwenderdata gramms einschließlich Anfangsblock und irgendwelchen
Daten. Auf das Längenfeld
folgen die 16-Bit-Prüfsumme
des UDP-Anfangsblocks, die UDP-Pseudoanfangsblockinformationen 250 von
einem IP-Anfangsblock 220 und die Daten.
-
Wie
für den
Fachmann auf dem Gebiet selbstverständlich ist, besteht der grundlegende
Internet-Dienst aus einem Paketliefersystem. Da jedes Paket unabhängig von
allen anderen behandelt wird, wird der Internet-Dienst üblicherweise
als "verbindungslos" betrachtet. Einige
Transportprotokolle wie etwa UDP stellen einen unzuverlässigen Dienst
bereit, da die Lieferung des Pakets nicht sichergestellt ist. Weitere
Transportprotokolle wie etwa TCP stellen einen Mechanismus bereit,
um die Lieferung eines Pakets sicherzustellen, und können somit
zum Aufbau von Computer-Computer-"Sitzungen" im herkömmlichen Begriffssinn verwendet
werden. 3 veranschaulicht eine typische
TCP/IP-Sitzung und den Mechanismus der sichergestellten Paketlieferung.
-
Wie
zuvor festgestellt wurde, analysiert die flussbasierte Maschine 155 nicht
die Datensegmente von Paketen für
eine Signaturidentifizierung. Stattdessen ordnet die Maschine 155 alle
Pakete einem Fluss zu. Sie analysiert bestimmte statistische Daten
und ordnet einer anomalen Aktivität einen Betreffindexwert zu.
Die Maschine 155 baut für
verdächtige
Hosts einen Betreffindex auf, indem sie verdächtige Aktivitäten in dem
Netz erfasst. Wenn diese Hosts ausreichend Betreff (in Form eines
kumulierten CI-Werts) aufgebaut haben, so dass sie den vorgegebenen
Schwellenwert des Netzadministrators überqueren, wird ein Alarm erzeugt.
-
Sitzung
-
Nunmehr übergehend
zu 3 ist eine TCP-Sitzung 300 eine Vollduplexverbindung,
die die gleichzeitige Übertragung
von Daten in beiden Richtungen ermöglicht. Bevor die Übertragung
beginnen kann, treten sowohl das sendende als auch das empfangende
Anwendungsprogramm mit ihren jeweiligen Betriebssystemen in Wechselwirkung,
wobei sie sie über
die bevorstehende Stream-Übertragung
informieren. Die Protokollsoftware kommuniziert, indem sie Nachrichten
hinüber
sendet, überprüft, dass
die Übertragung
berechtigt ist, und angibt, dass beide Seiten zum Empfangen von
Daten bereit sind.
-
3 veranschaulicht
eine beispielhafte TCP/IP-Sitzung 300. Wie anhand von 2 diskutiert
wurde, wird jedes Mal, wenn ein Host eine Sitzung mit einem wei teren
Host beginnt, ein SYN-Merker gesetzt. In dem Anfangspaket sendet
der Host 1 eine Nachricht, in der nur der SYN-Merker gesetzt ist.
Der SYN-Merker ist so ausgelegt, dass er eine TCP-Verbindung aufbaut
und ermöglicht,
dass beide Enden ihre TCP-Puffer synchronisieren. Der Host1 liefert
die Folge des ersten Datenpakets, das er senden wird.
-
Der
Host2 reagiert mit einem SYN-ACK-Paket. In dieser Nachricht sind
sowohl der SYN-Merker als auch der ACK-Merker gesetzt. Der Host2
liefert die Anfangslaufzahl für
seine Daten an den Host1. Der Host2 sendet außerdem die Quittierungszahl,
die die nächste
Laufzahl ist, die der Host2 vom Host 1 zu empfangen erwartet, an
den Host1. In dem von dem Host 2 gesendeten SYN-ACK-Paket ist die
Quittierungszahl die Anfangslaufzahl des Hosts 1 plus 1, was die
nächste
empfangene Laufzahl sein sollte.
-
Der
Host 1 reagiert auf das SYN-ACK mit einem Paket, in dem nur der
ACK-Merker gesetzt ist. Der Host 1 quittiert, dass das nächste vom
Host 2 empfangene Paket von Informationen die Anfangslaufzahl des Hosts
2 plus 1 ist. Der Dreiwege-Quittierungsaustausch
ist abgeschlossen und es werden Daten übertragen.
-
Der
Host2 reagiert auf das ACK-Paket mit seinem eigenen ACK-Paket. Der
Host2 quittiert die Daten, die er vom Host1 empfangen hat, indem
er eine Quittierungszahl sendet, die um eins höher als seine zuletzt empfangene
Datenlaufzahl ist. Beide Hosts senden Pakete, bei denen der ACK-Merker
gesetzt ist, bis die Sitzung enden soll, obgleich der P- und der
U-Merker, falls berechtigt, ebenfalls gesetzt sein können.
-
Wie
veranschaulicht ist, sendet der Host1, wenn er sein Ende der Sitzung
abschließt,
ein Paket, bei dem der FIN- und der ACK-Merker gesetzt sind. Der
FIN-Merker informiert
den Host2, dass keine weiteren Daten durch den Host1 gesendet werden.
Der ACK-Merker quittiert die letzten durch den Host1 empfangenen Daten,
indem er den Host2 über
die nächste
Laufzahl, die er zu empfangen erwartet, informiert.
-
Der
Host2 quittiert das FIN-Paket, indem er sein eigenes ACK-Paket sendet.
Das ACK-Paket hat die Quittierungszahl, die um eins höher als
die Laufzahl des FIN-ACK-Pakets
des Hosts1 ist. Abgesehen davon, dass die Pakete des HOST1 keine
Daten an das TCP/IP-Ende der Anfangsblöcke angehängt haben, werden weiter ACK-Pakete
zwischen den zwei Hosts geliefert.
-
Wenn
der Host 2 bereit ist, die Sitzung abzuschließen, sendet er sein eigenes
Paket, bei dem der FIN- und der ACK-Merker gesetzt sind. Der Host1
antwortet, dass er das letzte Paket empfangen hat, mit einem ACK-Paket,
das an den Host2 eine Quittierungszahl liefert, die um eins größer als
die in dem FIN-ACK-Paket des Host2 gelieferte Laufzahl ist.
-
Alternativ
kann ein Host wünschen,
eine Sitzung aktiv zu halten, auch nachdem er das Senden seiner momentanen
Daten abgeschlossen hat. Falls in naher Zukunft weitere Daten gesendet
werden sollen, ist es effizienter, eine Sitzung offen zu halten,
als mehrere Sitzungen zu öffnen.
Eine Sitzung, bei der die Verbindung offen gehalten wird, falls
zukünftige
Daten übermittelt
werden sollen, wird typisch als eine "Dauer"-Sitzung bezeichnet. In diesem Szenarium
wird eine Sitzung dadurch geschlossen, dass ein Paket gesendet wird,
bei dem der Rücksetzmerker
(R) gesetzt ist (auch ein "Rücksetzpaket" genannt), nachdem
eine Zeitdauer keine Daten geliefert worden sind. Viele Browser-Anwendungen
stellen ein 300-Sekunden-Inaktivitätsfenster bereit, bevor sie
eine Sitzung mit einem R-Paket (Rücksetzen) schließen.
-
Die
beschriebene TCP-Sitzung 300 aus 3 ist eine
allgemeine TCP-Sitzung, an der ein Netz beteiligt sein könnte. In Übereinstimmung
mit der Erfindung werden Flussdaten über die Sitzung gesammelt,
um bestimmen zu helfen, ob der Austauschvorgang anomal ist. In der
bevorzugten Ausführungsform
werden Informationen wie etwa die Gesamtzahl der gesendeten Pakete,
die Gesamtmenge der gesendeten Daten, die Sitzungsstartzeit und
die Sitzungsdauer und die in allen Paketen gesetzten TCP-Merker
gesammelt, in der Datenbank 160 gespeichert und analysiert,
um zu bestimmen, ob der Austauschvorgang verdächtig war. Falls ein Austauschvorgang
für verdächtig gehalten
wird, d. h., falls er vorgegebene Kriterien erfüllt, wird zu dem kumulierten
CI-Wert, der dem Host zugeordnet ist, der den Austauschvorgang ausgeführt hat,
ein vorgegebener Betreffindexwert hinzugefügt, der einer vorgegebenen
Kategorie der verdächtigen
Aktivität
zugeordnet ist.
-
Zum
Beispiel gibt es in einem normalen Austauschvorgang kein TCP/IP-Paket,
bei dem sowohl der SYN-Merker als auch der FIN-Merker gesetzt sind.
Da ein Paket, bei dem sowohl der SYN-Merker als auch der FIN-Merker
gesetzt sind, undefiniert ist, behandelt jedes Betriebssystem dieses
Paket in verschiedenen Verfahren. Ein Betriebssystem kann eine ICMP-Nachricht
senden, kann ein Rücksetzen
senden oder kann es möglicherweise
einfach ignorieren und nichts senden. Folglich kann ein Eindringling
ein SYN-FIN-Paket spezifisch senden, um das Betriebssystem des Ziel-Hosts
identifizieren zu helfen.
-
Als
ein weiteres Beispiel wird eine potentielle TCP-Sondierung angegeben,
falls ein bestimmter Host eine große Anzahl von SYN-Paketen an
einen Ziel-Host sendet und als Antwort zahlreiche R-Pakete von dem Ziel-Host
empfängt.
Gleichfalls geben zahlreiche von einem Host zu einem Ziel-Host gesendete
UDP-Pakete und zahlreiche von dem Ziel-Host empfangene ICMP-"Port-nicht-verfügbar"-Pakete eine potentielle
UDP-Sondierung an. Durch mehrere Pakete von derselben Quellportnummer,
die an verschiedene Portnummern an einem Ziel-Host gesendet werden,
wird eine Stealth-Sondierung angegeben.
-
Wie
anderswo beschrieben wurde, werden UDP-Pakete häufig in Verbindung mit Streaming-Medien und
weiteren Anwendungen, die Daten an viele Hosts liefern, verwendet.
Ein UDP-Paket ohne angehängte Daten
tritt in normalen Austauschvorgängen
nicht auf. Tatsächlich
kann ein Fluss mit zahlreichen SYN-Paketen mit zahlreichen SYN-ACK-Antworten
einen halboffenen Angriff angeben, der dafür ausgelegt ist, die Ports und
Betriebsmittel des Ziel-Hosts zu belegen. Aus dem Vorstehenden ist
selbstverständlich
und klar, dass eine Analyse des Flusses von Austauschvorgängen Angriffe
auf ein System identifizieren kann.
-
Anhand
der 6 und 7 sind einige typische anomale
Austauschvorgänge
aufgeführt,
die eine Intrusionsaktivität
angeben. Allerdings besitzt jeder Diensttyp sein eigenes Profil
normaler Aktivität.
Folglich ist es erwünscht,
jeden Diensttyp zu analysieren und die Charakteristiken eines "normalen" Flusses einschließlich der
normalen Folge von Merkern und dergleichen zu ermitteln.
-
Fluss
-
In Übereinstimmung
mit einem beispielhaften Aspekt der Erfindung kann ein "Fluss" durch die Pakete bestimmt
sein, die zwischen zwei einem einzelnen Dienst zugeordneten Hosts
ausgetauscht werden. Es wird daran erinnert, dass ein einzelner
Dienst üblicherweise
einem bestimmten Port an einem Server zugeordnet ist und außerdem einem
zugewiesenen Dienst auf einer Client-Maschine zuge ordnet ist; die
Portnummern in Server-Maschinen wie etwa im Server 130 des
Hosts Nr. 2 (1) sind üblicherweise festgesetzt, während sie in
Client-Maschinen wie etwa im Client 110 des Hosts Nr. 1 üblicherweise
variieren. Wie zuvor beschrieben wurde, endet ein Fluss in der wie
hier beschriebenen bevorzugten Ausführungsform, wenn für eine vorgegebene
Zeitdauer wie etwa 330 Sekunden für HTTP-Flüsse keine Pakete zwischen den
Hosts ausgetauscht werden.
-
4 veranschaulicht
einige übliche
Flüsse.
Wie bekannt ist, besitzt jeder Host seine eigene eindeutige IP-Adresse.
Auf IP-Adressen wird üblicherweise
durch vier Sätze
von Zahlen, die durch Punkte getrennt sind, z. B. N.N.N.N., wobei
N zwischen 0 und 255 variiert, Bezug genommen. Wie ebenfalls beschrieben
wurde, begrenzen die zugewiesenen Portnummern des Servers die durch
diesen Server bereitgestellten Dienste; in heutigen Systemen können die
Portnummern zwischen 0 und 65.536 variieren.
-
Der
Client ist mit einer IP-Adresse Adresse1 veranschaulicht, während der
Server mit einer IP-Adresse Adresse0 veranschaulicht ist. Wie veranschaulicht
ist, werden durch den Client drei getrennte Dienste – HTTP, SMTP
und FTP – aufgerufen.
Eine auf der Client-Maschine ausgeführte Web-Browser-Anwendung
(nicht gezeigt) nutzt das Hypertext Transfer Protocol (HTTP), eine
E-Mail-Anwendung (ebenfalls nicht gezeigt), nutzt das Simple Mail
Transfer Protocol (SMTP) und ein Dateiübertragungs-Anwendungsprogramm
(nicht gezeigt) nutzt das File Transfer Protocol (FTP).
-
Austauschvorgänge, die
jedes dieser Protokolle nutzen, stellen verschiedene Flusscharakteristiken bereit.
Folglich ist es erwünscht
Flüsse
zu bestimmen, in denen jeder der Dienste getrennt analysiert wird.
Somit repräsentieren
die veranschaulichten Austauschvorgänge wie definiert drei verschiedene
Flüsse.
-
Der
erste veranschaulichte Fluss ist Web-Verkehr (HTTP-Protokoll) zwischen
dem Client bei der IP-Adresse1 und dem Server bei der IP-Adresse0.
Wie in dem Beispiel veranschaulicht ist, öffnet der Client-Web-Browser
einen wahlfreien kurzlebigen hohen Port (51.132). Ein hoher Port
wird genutzt, da die niedrigen Portnummern kleiner als 1024 für bestimmte
Dienste vorbelegt sind. Einer dieser bestimmten Dienste ist Port 80 für HTTP,
der auf bekannte Weise anzeigbare Web-Seiten und verwandte Dateien überträgt. Der Web-Browser
sendet die Anforderung an den Port 80 des Servers. Der
Server-Port antwortet, indem er die an geforderten Web-Seiten-Daten
in Paketen sendet, wobei die Portnummer in den an den Client übertragenen Paketen
den Zielport auf 51.132 des Client einstellt. Alle Austauschübermittlungen
durch Clients, die HTTP nutzen, werden an Port 80 des Servers
geendet. Die HTTP-Austauschvorgänge
zwischen Port 51.132 von Adresse1 und Port 80 von Adresse0
sind ein C/S-Fluss.
-
Falls
330 Sekunden keine Austauschvorgänge
zwischen den zwei IP-Adressen und dem einen niedrigen Port (z. B.
dem Port 80) stattfinden, wird ein Fluss abgeschlossen.
Die meisten Web-Browser oder eine TCP-Verbindung senden ein Rücksetzpaket
(d. h. ein Paket, bei dem der R-Merker gesetzt ist), falls 5 Minuten keine
Austauschübermittlungen
gesendet oder empfangen werden. Eine Analyse kann bestimmen, ob
der Fluss für
HTTP-Austauschvorgänge
anomal ist oder nicht.
-
Der
nächste
veranschaulichte Fluss ist E-Mail-Verkehr zwischen dem Client und
dem Server, der Port 25 nutzt. Wie in 4 veranschaulicht
ist, öffnet
die Client-E-Mail-Anwendung
einen wahlfreien hohen kurzlebigen Port, z. B. den Port 49.948.
Die E-Mail-Anwendung des Clients sendet die E-Mail unter Nutzung
des Simple Mail Transfer Protocol (SMTP) an den Port 25 des
Servers. Der Port 25 ist herkömmlich für SMTP-Austauschvorgänge bestimmt.
Falls 330 Sekunden keine Austauschübermittlungen zwischen den
zwei IP-Adressen und dem niedrigen Port geliefert werden, wird ein
Fluss abgeschlossen. Falls der Client innerhalb 330 Sekunden nach
dem Ende der ersten E-Mail ein weiteres SMTP-E-Mail-Paket oder weitere
SMTP-E-Mail-Pakete an den Server sendet, gibt es nur einen Fluss.
-
Falls
z. B., wie in 4 gezeigt ist, innerhalb von
330 Sekunden ein zweites E-Mail-Paket
gesendet wird, das von dem kurzlebigen Port 35.620 ausgeht, gibt
es nur einen Fluss. Falls das zweite E-Mail-Paket gegenüber der
ersten gesendeten E-Mail später
als 330 Sekunden war, wird es für
Analysezwecke als ein weiterer Fluss klassifiziert. Eine Analyse
kann bestimmen, ob der Fluss für
SMTP-Austauschvorgänge
anomal ist oder nicht.
-
Das
File Transfer Protocol (FTP) ist das einfachste Verfahren für den Austausch
von Dateien zwischen Hosts im Internet. Ein Client beginnt eine
Sitzung, indem er eine Anforderung für Austauschvorgänge an Port 21 der
bestimmten Server-Maschine sendet. Außerdem nimmt der Client eine
zweite Portnummer auf, die verwendet werden soll, wenn Daten ausgetauscht
werden. Wie in 4 veranschau licht ist, beginnt
der Server den Austausch von seinem eigenen Port 20 (FTP-Daten) zu dem durch
den Client bestimmten Port, Port 4993. Obgleich zwei Ports,
Port 20 und Port 21, an dem Server genutzt wurden,
wird dieser eindeutige Fall als ein C/S-Fluss klassifiziert. Vorzugsweise
haben Ausführungsformen
der vorliegenden Erfindung einer flussbasierten Intrusionserfassungsmaschine
die Fähigkeit,
die FTP-Austauschvorgänge
an beiden Ports als einen Fluss zuzuordnen.
-
Wie
gezeigt ist, kann ein Fluss durch die Pakete bestimmt werden, die
zwischen zwei einem einzelnen Dienst zugeordneten Hosts ausgetauscht
werden. Eine Portnummer bestimmt eine Dienstanwendung, die dem besonderen
Port zugeordnet ist. Austauschvorgänge, die verschiedene Protokolle
oder Dienste nutzen, stellen verschiedene Flusscharakteristiken
bereit. Folglich wird jeder der Dienste durch die Flussmaschine 155 getrennt
analysiert.
-
Flussbasierte
Maschine
-
5 veranschaulicht
eine logische Softwarearchitektur einer flussbasierten Intrusionserfassungsmaschine 155,
die in Übereinstimmung
mit einer Ausführungsform
der vorliegenden Erfindung konstruiert ist. Wie für den Fachmann
auf dem Gebiet selbstverständlich
ist, ist das System unter Nutzung Internet-fähiger Computersysteme mit Computerprogrammen
konstruiert, die so ausgelegt sind, dass sie die hier beschriebenen Funktionen
ausführen.
Vorzugsweise sind die verschiedenen Rechenfunktionen als verschiedene,
aber verwandte Prozesse, die als "Threads" bekannt sind, implementiert, die auf
modernen Multithreading-Multitasking-Computersystemen gleichzeitig
ausgeführt
werden.
-
Die
Computerprogramme oder Threads werden auf einem Computersystem 800 ausgeführt, das
wie anhand von 8 beschrieben konstruiert ist,
die ein geeignetes beispielhaftes Computersystem veranschaulicht,
das zur Konstruktion eines Überwachungsgeräts 150,
das eine Intrusionserfassungsmaschine 155 enthält, oder
einer getrennt implementierten Intrusionserfassungsmaschine genutzt
werden kann. Obgleich die beschriebenen Ausführungsformen allgemein anhand
eines im Internet zugänglichen
Computersystems beschrieben sind, das für die Implementierung der Maschine 155 vorgesehen
ist, erkennt der Fachmann auf dem Gebiet, dass die vorliegende Erfindung
in Computerprogrammcode implementiert werden kann, der in Verbindung
mit weiteren Programmmodulen in verschiedenen Typen von Universalcomputern,
Spezialcomputern oder dedizierten Computern ausführt werden kann. Dementsprechend
umfassen die Begriffe "Computer", "Betriebssystem" und "Anwendungsprogramm" selbstverständlich alle
Typen von Computern und die Programmmodule, die dafür ausgelegt
sind, durch die Computer implementiert zu werden.
-
Die
folgende Diskussion von Verfahren, insbesondere in Bezug auf die
Softwarearchitektur, wird zum größten Teil
hinsichtlich Prozessen und symbolischen Darstellungen von Operationen
durch herkömmliche Computerkomponenten
einschließlich
einer Zentraleinheit (CPU), Speicherablagevorrichtungen für die CPU, Netzkommunikationsschnittstellen,
verbundenen Anzeigevorrichtungen und Eingabevorrichtungen dargestellt. Darüber hinaus
können
diese Prozesse und Operationen herkömmliche Computerkomponenten
in einer heterogen verteilten Rechenumgebung einschließlich fernen
Datei-Servern, fernen Computer-Servern und fernen Speicherablagevorrichtungen
nutzen. Jede dieser herkömmlichen
verteilten Rechenkomponenten ist durch die CPU über ein Austauschvorgangsnetz
zugänglich.
-
Die
Prozesse und Operationen, die durch den Computer ausgeführt werden,
enthalten die Manipulation von Signalen durch eine CPU oder durch
einen fernen Server wie etwa durch eine Internet-Web-Site sowie die
Pflege dieser Signale in Datenstrukturen, die in einer oder in mehreren
der lokalen oder fernen Speicherablagevorrichtungen liegen. Diese
Datenstrukturen erlegen der Sammlung von Daten, die in einer Speicherablagevorrichtung
gespeichert sind, eine physikalische Organisation auf und repräsentieren
spezifische elektrische, optische oder magnetische Elemente. Diese
symbolischen Darstellungen sind die Einrichtungen, die von dem Fachmann
auf dem Gebiet der Computerprogrammierung und Computerkonstruktion
verwendet werden, um die Lehren und Erfindungen einem anderen Fachmann
auf dem Gebiet effektiv zu übermitteln.
Für diese
Diskussion wird ein Prozess so verstanden, dass er eine Folge vom
Computer ausgeführter
Schritte, die zu einem konkreten, nutzbaren und fassbaren Ergebnis
führen,
d. h. zur Erfassung von Eindringlingen anhand von C/S-Flüssen, sowie
weiterer Aktivität,
die heuristisch als eine Bedrohung empfunden wird, die wesentlich genug
ist, um die Zuweisung eines Betreffindexwerts zu rechtfertigen,
enthält.
-
Diese
Schritte erfordern allgemein Manipulationen von Größen wie
etwa IP-Adressen, der Paketlänge, der
Anfangsblocklänge,
Startzeiten, Endzeiten, Portnummern und weiteren paketbezogenen
Informationen. Üblicherweise,
aber nicht not wendig, nehmen diese Größen die Form elektrischer,
magnetischer oder optischer Signale an, die gespeichert, übertragen,
kombiniert, verglichen oder auf andere Weise manipuliert werden
können.
Herkömmlich
wird für
den Fachmann auf dem Gebiet auf diese Signale als Bits, Bytes, Wörter, Werte,
Elemente, Symbole, Zeichen, Terme, Zahlen, Punkte, Datensätze, Objekte,
Bilder, Dateien oder dergleichen Bezug genommen. Allerdings sollte
nicht vergessen werden, dass diese und ähnliche Begriffe geeigneten
Größen für Computeroperationen
zugeordnet werden sollten und dass diese Begriffe lediglich herkömmliche
Etiketten sind, die an Größen angebracht
sind, die innerhalb und während
des Betriebs des Computers vorhanden sind.
-
Außerdem wird
auf diese Manipulationen in dem Computer selbstverständlich häufig in
Begriffen wie etwa Anzeigen, Entscheiden, Speichern, Hinzufügen, Vergleichen,
Verschieben, Positionieren, Anordnen und Ändern Bezug genommen, die häufig manuellen
Operationen zugeordnet sind, die durch einen menschlichen Betreiber
ausgeführt
werden. Die hier beschriebenen Operationen enthalten Maschinenoperationen,
die in Verbindung mit verschiedenen Eingaben ausgeführt werden,
die durch einen menschlichen Betreiber oder Anwender geliefert werden,
der mit dem Computer in Wechselwirkung tritt. Außerdem sind die hier beschriebenen Programme,
Prozesse, Routinen und Verfahren selbstverständlich weder auf irgendeinen
besonderen Computer oder auf irgendeine besondere Vorrichtung bezogen
oder beschränkt
noch auf irgendein besonderes Austauschvorgangsnetz oder auf irgendwelche
besonderen Computerarchitekturen bezogen oder beschränkt. Eher
können
verschiedene Typen von Universalmaschinen mit Programmmodulen, die
in Übereinstimmung mit
den hier beschriebenen Lehren konstruiert sind, verwendet werden. Ähnlich kann
es sich als vorteilhaft erweisen, eine Spezialvorrichtung zur Ausführung der
hier beschriebenen Verfahrensschritte mittels dedizierter Computersysteme
in einer spezifischen Netzarchitektur mit fest verdrahteter Logik
oder mit in einem nicht flüchtigen
Speicher wie etwa in einem Nur-Lese-Speicher gespeicherten Programmen
zu konstruieren.
-
Unter
Berücksichtigung
des Vorstehenden beginnen die Zeichnungsfiguren mit 5,
wobei der beigefügte
Anhang von Computerprogrammcode verschiedene Funktionen, Prozesse
oder Routinen veranschaulicht, die durch eine Ausführungsform
der vorliegenden Erfindung ausgeführt werden. Außerdem können die
hier dargestellten Prozesse und Verfahren selbstverständlich verschieden
angeordnet sein oder können die
Schritte in einer anderen Reihenfolge verwendet werden. Mit anderen
Worten, einige Prozesse und Verfahren können gelöscht, wiederholt, umgeordnet,
kombiniert oder gemischt werden, um ähnliche Prozesse und Verfahren
zu bilden.
-
5 veranschaulicht
den Betrieb der bevorzugten flussbasierten Maschine 155.
Die Maschine speichert Daten von ihren Operationen in einer Datenbank 160,
die in der offenbarten Ausführungsform
zwei Datenstrukturen umfasst, wobei eine zum Sammeln von Statistiken über Datenflüsse (Flussdatenstruktur 162), die
im Gang sind, und eine weitere zum Akkumulieren von Daten über die
an diesen Flüssen
beteiligten Host-Computer (Host-Datenstruktur 166) verwendet
wird. Sie hat drei Haupt-Threads oder -Prozesse, die diese Datenstrukturen
lesen und schreiben, um mögliche
Eindringlinge zu identifizieren, die als Hosts mit hohem Betreffindex
oder Hosts mit hohem CI identifiziert werden. Diese Threads sind
ein Paketklassifizierer-Thread 510, ein Flusssammler-Thread 520 und
ein Warnungsmanager-Thread 530. Außerdem identifizieren die Threads
die Client- und Server-Netzanwendungen,
die durch die Hosts betrieben werden, von denen beobachtet wird,
dass sie an den beobachteten Flüssen
beteiligt sind (Portprofilbildung).
-
Paketklassifizierer
-
Die
Anfangsblockdaten werden durch den Paketklassifizierer-Thread 510 gelesen.
Der Paketklassifizierer-Thread 510 wird jedes Mal ausgeführt, wenn
neue Paketinformationen verfügbar
sind. Der Thread 510 sucht anhand der Quell- und der Ziel-IP-Adresse
in der Flussdatenstruktur 162 nach einem vorhandenen Fluss.
Um die Suche und die Datensatzeinfügung zu ermöglichen, wird ein symmetrischer
Hash der zwei IP-Adressen erzeugt und als ein Index eines Datenfelds
verwendet, das auf den Beginn einer zweiseitig verketteten Liste
aller Flüsse
mit diesem Hash-Wert zeigt. Wie dem Fachmann auf dem Gebiet bekannt
ist, ist ein symmetrischer Hash ein mathematischer Prozess, der
eine probabilistisch eindeutige Zahl erzeugt, die in einer Datenstruktur
wie etwa in der Flussdatenstruktur 162 die schnelle Indizierung
und Sortierung ermöglicht.
-
Die
Flussverarbeitung erfolgt für
TCP- und UDP-Pakete, wobei die Portnummern in dem Transportschichtanfangsblock
verwendet werden, um den zu aktualisierenden Flussdatensatz zu indizieren.
Für ICMP-Pakete,
die Zurückweisungen
eines Pakets bilden, wird die Kopie des zurückgewiesenen Pakets in dem ICMP-Datenfeld
verwendet, um die IP-Adressen und die Portnummern des entsprechenden Flusses
zu identifizieren.
-
Für die folgende
Beschreibung wird die IP-Adresse mit dem niedrigeren Wert, wenn
sie als eine vorzeichenlose 32-Bit-Ganzzahl betrachtet wird, als
ip[0] bezeichnet, und wird die entsprechende Portnummer als pt[0]
bezeichnet. Die höhere
IP-Adresse wird als ip[1] bezeichnet und die entsprechende TCP-
oder UDP-Portnummer
wird als pt[1] bezeichnet. An diesem Punkt kann entweder pt[0] oder
pt[1] als der "Server"-Port bestimmt werden,
indem ein geeignetes Bit in einer Bitmap gesetzt wird, die Teil
des Flussdatensatzes ist (Datensatz-"Zustand", Bit 1 oder 2 ist gesetzt).
-
Falls
ein bestimmtes Paket 101, das durch den Paketklassifizierer 510 verarbeitet
wird, an einen bestimmten Eintrag oder Datensatz in der Flussdatenstruktur 162 angepasst
ist, werden Daten von diesem bestimmten Paket 101 verwendet,
um die Statistiken in dem entsprechenden Flussdatenstruktur-Datensatz
zu aktualisieren. Ein Paket 101 wird als an einen Flussdatenstruktur-Datensatz
angepasst betrachtet, falls beide IP-Nummern angepasst sind und
falls:
- a) beide Portnummern angepasst sind
und kein Port als der "Server"-Port gekennzeichnet ist oder
- b) die zuvor als der "Server"-Port gekennzeichnete
Portnummer angepasst ist oder
- c) eine der Portnummern angepasst ist, während es die andere nicht ist,
und keine der Portnummern als der Server-Port gekennzeichnet worden
ist (in diesem Fall wird die angepasste Portnummer als der "Server"-Port gekennzeichnet).
-
Falls
in der Flussdatenstruktur 162 kein früherer Datensatz vorhanden ist,
der an das momentane Paket angepasst ist, wird in der Flussdatenstruktur 162 unter
Verwendung der IP-Adressen und der Portnummern von dem momentanen
Paket ein neuer Flussdatensatz erzeugt und mit dem Ende der geeigneten
verketteten Liste von Flussdatensätzen verkettet. Der Zeitpunkt,
zu dem der Fluss begonnen hat, d. h. der Zeitpunkt der Erfassung
der ersten Pakete, wird in den Datensatz als die "Start"-Zeit in ein vorgegebenes
Feld des Datensatzes geschrieben.
-
Die
Zeit jedes Pakets wird "zuletzt" in den Datensatz
geschrieben, wobei der vorherige Wert überschrieben wird.
-
Flussdatenstruktur
-
Die
bevorzugte Flussdatenstruktur 162 besitzt in jedem Datensatz
mehrere verschiedene Felder. Die bevorzugte Flussdatenstruktur ist
(in der bekannten Programmiersprache C) wie folgt, wobei der als
[2] gezeigte Index (0 oder 1) "0" ist, falls die Paketquelle
der Host ip[0] ist, während
er ansonsten "1" ist (wobei z. B.
die Paketbytes zu bytes[1] hinzugefügt werden, pkt[1] inkrementiert
wird usw., wenn die Paketquelle ip[1] ist):
-
-
Es
wird angemerkt, dass viele der Felder, z. B. die Anzahl der gesendeten
Pakete und Bytes, die Anzahl der Pakete mit verschiedenen TCP-Merker-Bit-Kombinationen,
die für
TCP-Flüsse
gesendet werden, die Anzahl der ICMP-"Port-Nichtverfügbarkeiten" für
einen UDP-Fluss, Zähler
für jeden
Host sind. Außerdem
können
Bitmaps wie etwa die Bitmap aller gesehenen TCP-Merker, die mit
dem TCP-Merkerfeld jedes TCP-Pakets bitweise ODER-verknüpft sind,
ausgefüllt
werden. Es werden Daten für
den Quell-Host (Ursprungs-Host) ausgefüllt.
-
Außerdem fügt der Paketklassifizierer-Thread 510 einige
Daten direkt zu der Host-Datenstruktur 166 hinzu.
Die meisten dieser Daten (wie etwa die durch jeden Host gesendeten
Bytes) könnten
später
durch den Flusssammler-Thread 520 hinzugefügt werden,
wobei aber ihre Hinzufügung
auf paketweiser Grundlage die Sammlung von Echtzeit-Rateninformationen
(wie etwa die in jedem Zeitintervall gesendeten Bytes) ermöglicht. Diese
Datensätze
werden in der folgenden Host-Datenstruktur 166 angegeben.
-
Host-Datenstruktur
-
Die
Host-Datenstruktur 166 akkumuliert Daten über alle
Hosts, von denen beobachtet wird, dass sie an einem Fluss beteiligt
sind. Es folgt eine Beschreibung dieser Datenstruktur im Format
der Sprache C:
-
-
-
Flusssammler-Thread
-
Der
Flusssammler-Thread 520 wird periodisch (z. B. alle fünf Minuten)
ausgeführt
und durchsucht linear die gesamte Flussdatenstruktur 162,
um Flüsse
zu ermitteln, die eine bestimmte Zeitdauer (z. B. 6 Minuten) inaktiv
waren. Diese Flüsse
werden als fertig betrachtet, wobei eine Logikbaumanalyse erfolgt,
um sie entweder als einen normalen Fluss oder als eine potentielle
Sondierung oder als eine andere verdächtige Aktivität, die die
Zuweisung eines Betreffindexwerts rechtfertigt, zu klassifizieren.
-
Normale
Flüsse
sind jene, für
die die entsprechenden Statistiken einen normalen Informationsaustausch
zwischen zwei Hosts angeben. Derjenige Host, der den Fluss begonnen
hat, wird als der Client (d. h. als der Computer, der TCP SYN-Pakete gesendet hat
oder der ein Anfangs-UDP-Paket gesendet hat) betrachtet. Der andere
Host wird als der Server (d. h. als der Computer, der TCP SYN-ACK-Pakete gesendet oder
auf ein UDP-Paket geantwortet hat) betrachtet. Während eines normalen Flusses
werden einige Daten ausgetauscht.
-
Eine
potentielle Sondierung ist ein Fluss, der einen Host (einen möglichen
Eindringling) zu haben scheint, der Pakete sendet, um Informationen über einen
weiteren Host (ein beabsichtigtes Opfer) zu erlangen. Ein Beispiel
einer potentiellen Sondierung ist ein Fluss, der TCP-Pakete irgendeiner
Sorte hat, die durch einen Host (den Eindringling) gesendet wurden,
und der näherungsweise
die gleiche Anzahl von TCP-Rücksetzpaketen
hat, die durch den anderen gesendet wurden. Ein weiteres Beispiel
ist ein Fluss, der UDP-Pakete hat, die durch ICMP-"Port-nicht-verfügbar"-Pakete beantwortet
wurden. Ein Fluss mit ICMP-"Ziel-nicht-erreichbar"-Paketen, die durch
einen Host gesendet wurden, wird als eine potentielle Sondierung
betrachtet, die durch den anderen Host erfolgt.
-
In Übereinstimmung
mit der Erfindung geben einige potentielle Sondierungen wesentlich
wahrscheinlicher als andere eine Sondierung an. Um dies zu behandeln,
wird für
jeden Fluss ein der "Betreffindex" genannter Wert berechnet
oder auf andere Weise bestimmt und dieser Wert zu dem Betreffindexwert,
der in der Host-Datenstruktur 166 akkumuliert wird, hinzugefügt. Tabelle
I aus 6 zeigt ein Schema für die Zuweisung von Betreffindexwerten
wegen der Flussanalyse. Nachdem der Fluss analysiert worden ist,
wird der Flussdatensatz in die Flussprotokolldatei geschrieben und
daraufhin aus der Flussdatenstruktur gelöscht.
-
Weitere Betreffindexinkremete
-
Betreffindexwerte
(CI-Werte), die aus Paketanomalien berechnet werden, werden ebenfalls
zum akkumulierten Betreffindexwert eines Hosts hinzugefügt. Tabelle
II aus 7 zeigt ein Schema für die Zuweisung von Betreffindexwerten
wegen weiterer Ereignisse, die durch die Flussanalyse offenbart
werden. Zum Beispiel gibt es viele Kombinationen von TCP-Merkerbits,
die in gültigen
TCP-Verbindungen selten oder nie gesehen werden. Wenn eine dieser
Kombinationen durch den Paketklassifizierer-Thread 510 erkannt
wird, fügt
er zu dem akkumulierten Betreffindexwert des sendenden Hosts direkt
einen vorgegebenen Wert hinzu. Wenn der Paketklassifizierer-Thread 510 entlang
der verketteten Liste des Flusses (d. h. der Flussdaten 162)
nach einer Anpassung an das momentane Paket 101 sucht,
hält er
einen Zählwert
der Anzahl aktiver Flüsse
mit angepassten IP-Adressen, aber keiner angepassten Portnummer.
Falls diese Anzahl einen vorgegebenen Schwellenwert (z. B. 4) übersteigt
und größer als
die vorher festgestellte Zahl ist, wird ein CI für eine Menge, die einer "Portabtastung" entspricht, hinzugefügt. Zur
Angabe, dass der Host einen CI für "Portabtastung" empfangen hat, wird
ein Bit in dem Host-Datensatz gesetzt.
-
Es
kann eine Liste von IP-Adressen gehalten werden, die durch jeden
Host kontaktiert oder sondiert werden. Wenn diese Liste angibt,
dass mehr als eine Schwellenwertzahl weiterer Hosts (z. B. 8) in
demselben Teilnetz kontaktiert worden sind, wird zu dem Host ein
CI hinzugefügt
und wird ein Bit in dem Host-Datensatz gesetzt,
um anzugeben, dass der Host einen CI für "Adressenabtastung" empfangen hat.
-
Diese
und weitere Werte des Betreffindex sind für nicht flussbasierte Ereignisse
in 7 gezeigt.
-
Warnungsmanager-Thread
-
Der
Warnungsmanager-Thread 530 wird periodisch (z. B. nach
dem Flussmanager-Thread 520) ausgeführt und führt eine lineare Suche durch
die Host-Datenstruktur 166 aus. Während er dies tut, stellt er
eine Anzahl von Listen zusammen, die zur Verwendung durch Anwenderschnittstellenprogramme,
d. h. Programme, die Informationen von dem Betrieb des Intrusionserfassungssystems
oder Intrusionserfassungsgeräts 150 berichten,
in verschiedene Ausgangsdateien geschrieben werden.
-
Zum
Beispiel erzeugt der Warnungsmanager-Thread 530 vorzugsweise
eine Warnungsliste 546 von Hosts mit einem CI über einem
bestimmten Schwellenwert. Dieser Schwellenwert wird so eingestellt,
dass die Liste über
100 Host-Datensätze
lang ist. In Übereinstimmung
mit der bevorzugten Ausführungsform
der Erfindung sortiert ein Anwenderschnittstellenprogramm (nicht
gezeigt) diese Liste in der Reihenfolge eines absteigenden CI-Werts,
die obersten 60 Hosts mit hohen CI-Werten, und zeigt sie an. Es wird eine ähnliche
Liste erzeugt, die auf der durchschnittlichen Byterate über das
letzte Zeitintervall (z. B. 5 Minuten) basiert. Falls durch den
Netzadministrator ein Bereich oder eine Menge von Bereichen von
IP-Adressen als "innere Adressen" definiert worden
sind, können
getrennte Listen für "innere" und "äußere" Hosts erzeugt werden. Es können zahlreiche
weitere Abfragen und Berichte 548 zur Durchsicht und Analyse
durch einen Netzsystemadministrator (SYS ADMIN) erzeugt werden.
-
Der
Thread des Paketklassifizierers 510 sammelt Informationen über Netzoperationen
wie etwa Pakete und Bytes auf Sekunden-, Minuten- und Stundenbasis.
Diese Informationen werden über
alle Pakete und über
bestimmte Kategorien von Paketen wie etwa TCP und UDP und Teilmengen
von diesen, die auf der Portnummer basieren, gesammelt. Außerdem werden
Histogramme der Paketgröße und der
TCP- oder UDP-Portnummer gesammelt. Der Warnungsmanager-Thread 530 schreibt
die aktualisierten Daten zur Verwendung durch die Anwenderschnittstelle
oder zur späteren
Offline-Analyse in verschiedene Ausgangsdateien.
-
Außerdem sucht
der Warnungsmanager 530 nach Hosts, deren CI oder Verkehr
(Byterate) voreingestellte Alarmschwellenwerte übersteigt und die in vorherigen
Läufen
nicht behandelt worden sind. Die neuen Alarmbedingungen können eine
sofortige Betreiberbenachrichtigung durch einen Betreiberbenachrichtigungsprozess 542 veranlassen.
Diese Bedingungen können
auf der Anwenderschnittstelle hervorgehoben werden und veranlassen,
dass SNMP-Trap-Nachrichten an eine Netzüberwachungseinrichtung wie
etwa HP Openview gesendet werden und/oder dass E-Mail-Nachrichten
an den Netzadministrator gesendet werden, was wiederum veranlassen
kann, dass Nachrichten an Personenfunkrufempfänger oder Zellentelephone gesendet werden.
Außerdem
können
Nachrichten gesendet werden, die veranlassen, dass automatische
Vorrichtungen wie etwa ein Firewall-Manager 544 Pakete,
die zu oder von einem störenden
Host gehen, fallenlassen. Somit ist klar, dass die vorliegende Erfindung
vorteilhaft mit Firewalls und weiteren Netzsicherheitsvorrichtungen
und -prozessen zusammenarbeitet, um für das Computernetz und für die Computerbetriebsmittel
einer Entität
zusätzlichen
Schutz zu schaffen.
-
Hardware
-
Anhand
von 8 ist eine bevorzugte Hardwarekonfiguration 800 einer
Ausführungsform
beschrieben, die die Funktionen der oben beschriebenen flussbasierten
Maschine ausführt. 8 veranschaulicht
eine typische Hardwarekonfiguration 800 für ein Netzintrusionserfassungssystem.
Ein Überwachungsgerät 150 dient
als ein Weiterreichungsfilter des Netzverkehrs. Eine Netzvorrichtung 135 wie
etwa ein Router, ein Switch, ein Hub, ein Abgriff oder dergleichen
liefert den Ort zum Verbinden des Überwachungsgeräts 150 mit
dem Netz 899, um den Netzverkehr zu überwachen.
-
Wie
veranschaulicht ist, ist das Überwachungsgerät 150 vorzugsweise
mit zwei Netzschnittstellenkarten (NIC) 830 wie etwa 10/100-MHz-Ethernet-Adaptern
Modell 932 der Marke 3COM oder mit anderen Adaptern, die
an das Netz angepasst sind, konfiguriert. Allerdings ist für den Fachmann
auf dem Gebiet klar, dass eine oder mehrere Karten genutzt werden
können,
um die Funktionen des derzeit be schriebenen Zweikartensystems auszuführen. Die Überwachungseinrichtungs-NIC 834 ist
typisch auf eine Promiscuous-Betriebsart oder auf eine ähnliche
Funktion eingestellt. Die Promiscuous-Betriebsart ist eine Betriebsart,
in der jedes durch die Netzvorrichtung 135 gehende Datenpaket
empfangen und gelesen wird. Eine Administrations-NIC 838 ermöglicht eine
Netzschnittstelle und behandelt von dem Überwachungsgerät 135 gesendete
Befehle. Ein NIC-Treiber 820 ermöglicht, dass die Netzverkehrsdaten
mit dem Prozessor 850 ausgetauscht werden. Weitere Treiber 825 werden
als Schnittstelle oder für
Austauschvorgänge
mit weiteren Vorrichtungen einschließlich Peripheriegeräten genutzt.
Diese Peripheriegeräte
enthalten Tastaturen, Monitore, Drucker, Ablagevorrichtungen und
weitere Eingabe/Ausgabe-Vorrichtungen. Für den Fachmann auf dem Gebiet
ist klar, dass solche Treiber üblicherweise
mit dem System gepackt sind.
-
Vorzugsweise
muss das Betriebssystem 810 für den Computer 800 mit
der Hardware des Überwachungsgeräts 150 kompatibel
sein. Ein Betriebssystem 810, das genutzt werden kann,
ist das als LINUX bezeichnete Betriebssystem. Für den Fachmann auf dem Gebiet
ist klar, dass leicht andere Betriebssysteme ersetzt werden können. Wie
dem Fachmann auf dem Gebiet bekannt ist, steuert das Betriebssystem
eines Computers den Betrieb des Prozessors 850. Der Prozessor 850 ist
an den Speicher 805 angeschlossen, um Programme auszuführen. Vorzugsweise
hat das Überwachungsgerät 128 Megabyte
oder mehr Speicher.
-
Wie
anhand von 5 diskutiert wurde, führt der
Prozessor 850 den Paketklassifizierer-Thread 510, den
Flusssammler-Thread 520 und den Warnungsmanager-Thread 530 aus.
Diese Threads treten wie beschrieben mit der Flussdatenstruktur 162 und
mit der Host-Datenstruktur 166 in Wechselwirkung. Die Datenstrukturen
schaffen eine temporäre
Speicherung von Informationen. Wie anhand von 5 diskutiert
wurde, wird auf der Festplatte 840 auf Wunsch eine Protokolldatei
zur kriminalistischen Analyse gehalten.
-
Ablaufpläne
-
Für eine Diskussion
der Schritte des bevorzugten Paketklassifizierer-Threads, Flusssammler-Threads und
Warnungsmanager-Threads wird nun auf 9 Bezug
genommen. Wie zuvor anhand von 5 diskutiert wurde,
umfasst die bevorzugte flussbasierte Intrusionserfassungsmaschine 155 drei
funktionale Threads oder Prozesse, die in einem System oder Gerät, das eine
Ausführungsform
der Erfin dung implementiert, ausgeführt werden. Der Paketklassifizierer-Thread 510 klassifiziert
Pakete in ihren zugeordneten Fluss und aktualisiert die Flussdatensätze. Der
Flusssammler-Thread 520 bestimmt einen Abschluss eines
Flusses, führt
eine Logikbaumanalyse aus, um den Fluss zu klassifizieren, und weist
in Reaktion auf die Erfassung einer Aktivität, die eine Zunahme des CI
rechtfertigt, einen entsprechenden CI-Wert zu. Schließlich erzeugt
der Warnungsmanager-Thread 530 Berichte und Alarmsignale,
falls ein Alarmschwellenwert überschritten
wird.
-
In 9A beginnt
der Flussklassifizierer-Thread 510 mit Schritt 912.
In Schritt 912 bestimmt der Thread 510, ob ein
neues Paket verfügbar
ist. Falls kein neues Paket verfügbar
ist, wird dem Nein-Zweig von Schritt 912 zu Schritt 912 gefolgt,
in dem der Thread 510 auf ein neues Paket wartet. Falls
ein neues Paket verfügbar
ist, wird dem Ja-Zweig von Schritt 912 zu Schritt 914 gefolgt,
in dem der Thread bestimmt, ob das Paket zu einem neuen Fluss gehört.
-
Wie
zuvor diskutiert wurde, werden durch den Paketklassifizierer-Thread 510 die
Anfangsblockdaten gelesen, falls jedes Paket verarbeitet wird. Der
Thread 510 sucht anhand der Quell- und der Ziel-IP-Adresse in
der Flussdatenstruktur 162, die als ein Datenfeld im Speicher
verkörpert
ist, nach einem vorhandenen Fluss. Als der Index in das Datenfeld
wird ein symmetrischer Hash der zwei IP-Adressen verwendet, der
auf den Beginn einer zweiseitig verketteten Liste aller Flüsse mit
diesem Hash-Wert zeigt.
-
Es
erfolgt die Flussverarbeitung für
TCP- und UDP-Pakete, wobei die Portnummern in dem Transportschicht-Anfangsblock
verwendet werden, um den zu aktualisierenden Flussdatensatz zu identifizieren.
Für ICMP-Pakete,
die Zurückwiesungen
eines Pakets bilden, wird die Kopie des zurückgewiesenen Pakets in dem ICMP-Datenfeld
verwendet, um die IP-Adressen und Portnummern des entsprechenden
Flusses zu identifizieren.
-
Ein
Paket 101 wird als an einen Flussdatenstruktur-Datensatz
angepasst betrachtet, falls beide IP-Nummern angepasst sind und
falls:
- a) beide Portnummern angepasst sind
und kein Port als der "Server"-Port gekennzeichnet
ist oder
- b) die zuvor als der "Server"-Port gekennzeichnete
Portnummer angepasst ist oder
- c) eine der Portnummern angepasst ist, während es die andere nicht ist,
und
beide Portnummern nicht als der Server-Port gekennzeichnet
worden sind (in diesem Fall wird die angepasste Portnummer als der "Server"-Port gekennzeichnet).
-
Falls
ein neuer Fluss bestimmt wird, wird durch Schritt 916 dem
Ja-Zweig von Schritt 914 gefolgt. In Schritt 916 wird
ein neuer Flussdatensatz erzeugt. Falls kein Fluss vorhanden ist,
der an das momentane Paket angepasst ist, wird unter Verwendung
der IP-Adressen und Portnummern von dem momentanen Paket ein neuer
Flussdatensatz begonnen und mit dem Ende der geeigneten verketteten
Liste von Flussdatensätzen verkettet.
-
Die
IP-Adresse mit dem niedrigeren Wert wird, wenn sie als eine vorzeichenlose
32-Bit-Ganzzahl betrachtet wird, mit ip[0] bezeichnet und die entsprechende
Portnummer wird mit pt[0] bezeichnet. Die höhere IP-Adresse wird mit ip[1]
bezeichnet und die entsprechende TCP- oder UDP-Portnummer wird mit
pt[1] bezeichnet. An diesem Punkt kann entweder pt[0] oder pt[1]
als der "Server"-Port bezeichnet
werden, indem das geeignete Bit in einer Bitmap gesetzt wird, die
Teil des Flussdatensatzes ist (Datensatz-"Zustand", Bits 1 oder 2 gesetzt).
-
Auf
Schritt 916 folgt Schritt 918, in dem die Flussdatensätze in der
Flussdatenstruktur 162 aktualisiert werden. Die Zeit, zu
der der Fluss gestartet wird, die Paketerfassungszeit, wird in den
Datensatz-"Start" geschrieben. Die
durch den Paketklassifizierer-Thread aktualisierten Flussdatenstrukturen
sind ausführlich
anhand von 5 diskutiert. Schritt 918 wird
zu Schritt 912 zurückgeleitet,
in dem der Thread 510 bestimmt, ob ein neues Paket verfügbar ist.
-
Nachfolgend
anhand von 9B beginnt der Flusssammler-Thread 520 mit
Schritt 942. In Schritt 942 bestimmt der Thread 520,
ob eine Zeitdauer, in der offenbarten Ausführungsform z. B. 5 Minuten,
verstrichen ist. Falls die erforderliche Zeitdauer nicht verstrichen
ist, wird dem Nein-Zweig von Schritt 942 zu Schritt 942 gefolgt,
in dem der Thread 520 darauf wartet, dass die Zeit verstreicht.
-
Falls
die Zeit verstrichen ist, wird dem Ja-Zweig von Schritt 942 zu
Schritt 943 gefolgt, in dem der Thread 520 eine
Inaktivitätssuche
ausführt.
Der Flusssammler-Thread 520 wird
periodisch (z. B. alle fünf
Minuten) ausgeführt
und durchsucht linear die gesamte Flussdatenstruktur 162,
um Flüsse
zu ermitteln, die für eine
bestimmte Zeitdauer (z. B. 6 Minuten, obgleich diese Zeit beliebig
ist und heuristisch bestimmt werden kann) inaktiv gewesen sind.
Diese Flüsse
werden als fertig betrachtet.
-
Auf
Schritt 943 folgt Schritt 944. In Schritt 944 wird
eine Logikbaumanalyse durchgeführt,
um ihn entweder als einen normalen Fluss oder als eine potentielle
Sondierung zu klassifizieren. Normale Flüsse sind jene, deren Statistiken
einen normalen Informationsaustausch zwischen zwei Hosts angeben.
Vorzugsweise wird der Host, der den Fluss begonnen hat, als der
Client (der TCP SYN-Pakete sendete oder der das Anfangs-UDP-Paket
sendete) betrachtet. Der andere Host wird als der Server (der TCP
SYN-ACK-Pakete sendete oder auf ein UDP antwortete) betrachtet.
Während
eines normalen Flusses werden einige Daten ausgetauscht.
-
Es
wird daran erinnert, dass eine beispielhafte Angabe einer potentiellen
Sondierung ein Fluss ist, der einen Host (den Eindringling) zu haben
scheint, der Pakete sendet, um Informationen über einen weiteren Host (das
Opfer) zu erlangen. Ein Beispiel einer potentiellen Sondierung ist
ein Fluss, der TCP-Pakete irgendeiner Sorte hat, die durch einen
Host (den Eindringling) gesendet wurden, und näherungsweise die gleiche Anzahl von
TCP-Rücksetzpaketen
hat, die durch den anderen gesendet wurden. Ein weiteres Beispiel
ist ein Fluss, der UDP-Pakete hat, die durch ICMP-"Port-nicht-verfügbar"-Pakete beantwortet
wurden. Ein Fluss mit ICMP-"Ziel-nicht-verfügbar"-Paketen, der durch
einen Host gesendet wurde, wird als eine potentielle Sondierung
betrachtet, die durch den anderen Host erfolgt.
-
Auf
Schritt 944 folgt Schritt 945, in dem ein CI-Wert
zugewiesen wird, der der erfassten Aktivität entspricht. Wie zuvor diskutiert
wurde, geben einige Arten von Austauschvorgängen und Paketaktivitäten wesentlich
wahrscheinlicher als andere Sondierungen an. Ein geeigneter CI-Betrag
für die
bestimmte Aktivität
wird z. B. durch Bezugnahme auf eine Tabelle wie etwa die in 7 gezeigte
bestimmt. Der entsprechende CI-Wert für die bestimmte Aktivität wird zu
dem Betreffindexwert, der in der Host-Datenstruktur 166 akkumuliert
wird, hinzugefügt.
Tabelle I aus 6 und Tabelle II aus 7 zeigen
ein Schema für
die Zuweisung von Betreffindexwerten wegen der Flussanalyse.
-
Auf
Schritt 945 folgt Schritt 946. In Schritt 946 wird
der Flussdatensatz in die Flussprotokolldatei geschrieben. Auf Schritt 946 folgt
Schritt 947. In Schritt 947 wird der Flussdatensatz
aus der Flussdatenstruktur gelöscht.
Nach Schritt 947 wird der Thread zu Schritt 942 zurückgeleitet,
in dem der Thread die erforderliche Zeit wartet.
-
Nachfolgend
anhand von 9C beginnt der Alarmmanager-Thread 530 mit
Schritt 972. In Schritt 972 bestimmt der Thread 530,
ob eine periodische Zeit verstrichen ist. Falls die erforderliche
Zeitdauer nicht verstrichen ist, wird dem Nein-Zweig von Schritt 972 zu Schritt 972 gefolgt,
in dem der Thread 950 darauf wartet, dass die Zeit verstreicht.
-
Falls
die Zeit verstrichen ist, wird dem Ja-Zweig von Schritt 972 zu
Schritt 973 gefolgt, in dem der Thread 530 die
Betreffindexsuche ausführt.
Der Warnungsmanager-Thread 530 wird periodisch (z. B. auf
den Flussmanager-Thread 520 folgend) ausgeführt und
führt eine
lineare Suche durch die Host-Datenstruktur 166 aus.
-
Auf
Schritt 973 folgt Schritt 974. In Schritt 974 stellt
er eine Anzahl von Listen zusammen, die zur Verwendung durch die
Anwenderschnittstellenprogramme in verschiedene Ausgangsdateien
geschrieben werden. Zum Beispiel sammelt er eine Warnliste von Hosts
mit einem CI über
einem bestimmten Schwellenwert. Dieser Schwellenwert kann so eingestellt
werden, dass die Liste etwa 100 Host-Datensätze lang ist. Vorzugsweise
sortiert ein Anwenderschnittstellenprogramm diese Liste in der Reihenfolge
absteigenden CI-Werts, die obersten 60 Hosts mit hohen CI-Werten,
und zeigt sie an. Außerdem
wird eine ähnliche
Liste erzeugt, die auf der durchschnittlichen Byterate über das
letzte Intervall (z. B. 5 Minuten) basiert. Falls durch den Netzadministrator
ein Bereich oder eine Menge von Bereichen von IP-Adressen als "innere Adressen" definiert worden sind,
können
getrennte Listen für "innere" und "äußere" Hosts erzeugt werden. Es können zahlreiche
weitere Abfragen und Berichte 548 zur Durchsicht und Analyse
durch den Netzadministrator erzeugt werden. Der Warnungsmanager-Thread 530 schreibt
die aktualisierten Daten zur Verwendung durch die Anwenderschnittstelle oder
zur späteren
Offline-Analyse
in verschiedene Ausgangsdateien.
-
Auf
Schritt 974 folgt Schritt 975, in dem der Thread 530 bestimmt,
ob ein Alarmschwellenwert überschritten
worden ist. Falls der Alarmschwellenwert nicht überschritten worden ist, wird
der Nein-Zweig von Schritt 975 zurückgeleitet, um Schritt 972 auszuführen. In
Schritt 972 bestimmt der Thread 530, ob eine erforderliche
Zeitdauer verstrichen ist.
-
Falls
ein Alarmschwellenwert überschritten
worden ist, wird dem Ja-Zweig von Schritt 975 zu Schritt 976 gefolgt.
In Schritt 976 erzeugt der Warnungsmanager-Thread bestimmte
vorgegebene Signale, die dafür ausgelegt
sind, die Aufmerksamkeit eines Systemadministrators oder einer anderen
interessierten Person zu erregen. Der Warnungsmanager 530 sucht
nach Hosts, deren CI oder Verkehr (Byterate) im Voraus festgelegte
Alarmschwellenwerte übersteigt
und die in vorhergehenden Läufen
nicht behandelt worden sind. Die neuen Alarmbedingungen können eine
sofortige Betreiberbenachrichtigung verursachen. Diese Bedingungen
können
auf der Anwenderschnittstelle hervorgehoben werden und können veranlassen,
dass SNMP-Trap-Nachrichten an eine Netzüberwachungseinrichtung wie
etwa HP Openview gesendet werden und/oder dass E-Mail-Nachrichten
an den Netzadministrator gesendet worden, was wiederum veranlassen
kann, dass Nachrichten an Personenfunkrufempfänger oder Zellentelephone gesendet
werden. Außerdem
können
Nachrichten gesendet werden, die veranlassen, dass automatische
Vorrichtungen wie etwa ein Firewall-Manager Pakete, die zu oder
von einem störenden
Host gehen, fallen lässt.
Auf Schritt 976 folgt Schritt 972, in dem der
Thread 530 die erforderliche Zeitdauer wartet.
-
Angesicht
des vorstehenden ist offensichtlich, dass die vorliegende Erfindung
ein Intrusionserfassungssystem schafft, das robust, skalierbar und
effizient ist und verschiedene Probleme mit der herkömmlichen
signaturbasierten oder rein anomaliebasierten Intrusionserfassung überwindet.
Selbstverständlich
bezieht sich das Vorstehende nur auf die beispielhaften Ausführungsformen
der vorliegenden Erfindung, wobei daran zahlreiche Änderungen
vorgenommen werden können,
ohne von dem wie durch die folgenden Ansprüche definierten Umfang der
Erfindung abzuweichen. Dementsprechend sollen die im Folgenden dargelegten Ansprüche und
nicht nur die vorstehende Veranschaulichung die Ausschließlichkeitsrechte
der Erfindung definieren.
-
INDUSTRIELLE
ANWENDUNGEN
-
Ein
flussbasiertes Intrusionserfassungssystem überwacht effizient und zuverlässig Netzverkehr
auf mögliche
Intrusionen mit der Fähigkeit,
für große Verkehrsflüsse skaliert
zu werden. Dementsprechend besitzt die flussbasierte Maschine Anwendbarkeit
auf den Gebieten der Netzüberwachung,
der Netzsicherheit, der Netzvorrichtungen, der Netzkommunikation
und auf anderen Gebieten.