DE60307581T2 - Verbessertes geheimes Hashen der TCP SYN/FIN-Korrespondenz - Google Patents

Verbessertes geheimes Hashen der TCP SYN/FIN-Korrespondenz Download PDF

Info

Publication number
DE60307581T2
DE60307581T2 DE60307581T DE60307581T DE60307581T2 DE 60307581 T2 DE60307581 T2 DE 60307581T2 DE 60307581 T DE60307581 T DE 60307581T DE 60307581 T DE60307581 T DE 60307581T DE 60307581 T2 DE60307581 T2 DE 60307581T2
Authority
DE
Germany
Prior art keywords
packet
tcp
syn
sequence number
package
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE60307581T
Other languages
English (en)
Other versions
DE60307581D1 (de
Inventor
Jean-Marc Robert
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia Canada Inc
Original Assignee
Alcatel Canada Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alcatel Canada Inc filed Critical Alcatel Canada Inc
Publication of DE60307581D1 publication Critical patent/DE60307581D1/de
Application granted granted Critical
Publication of DE60307581T2 publication Critical patent/DE60307581T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Description

  • Verwandte Anmeldungen
  • Diese Anmeldung entspricht inhaltlich einer Continuation in Part Anmeldung mit der US Serial Number 10/158,115, eingereicht am 31. Mai 2002.
  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft allgemein Systeme auf Computerbasis und insbesondere Verfahren zum Erkennen von sicherheitsrelevanten Angriffen in solchen Systemen.
  • Hintergrund
  • Angriffe auf Webseiten haben in den letzten Jahren zu schwerwiegenden Unterbrechungen der Netzwerkdienste geführt. Diese Angriffe können jede beliebige Form annehmen, einschließlich, aber nicht begrenzt auf SYN Überflutung oder Denial of Service (Dienstverweigerungs-) Angriffe.
  • Bei einem SYN Überflutungsangriff überlastet ein Angreifer die Site eines Opfers bis zu einem Punkt, wo sie den eingehenden Verkehr nicht mehr bewältigen kann. Solch ein Angriff konzentriert sich gewöhnlich auf ein eigentümliches Merkmal von Diensten auf TCP Basis.
  • TCP Dienste verlassen sich beim Verbindungsaufbau im Wesentlichen auf ein Dreiweg- Handshaking Protokoll. Ein Teilnehmer, der eine Verbindung mit einem Host herstellen möchte, sendet ein Synchronisationssignal (SYN) an den Host, und der Host antwortet dem Teilnehmer mit einer SYN Bestätigungsantwort (ACK (von acknowledgement)). Der Teilnehmer gibt dann eine Bestätigung zurück, und die Verbindung ist aufgebaut. Das Handshaking Protokoll ist in 1 dargestellt.
  • Bei der Beendigung einer Verbindung sendet der Teilnehmer ein Endepaket (FIN (von finish)) an den Host, das anzeigt, dass keine weiteren Daten oder Pakets an den Host gerichtet werden, und danach wird die Verbindung beendet.
  • Bei einem SYN Überflutungsangriff wird der Angreifer gewöhnlich eine falsche oder ungültige Quellenadresse benutzen, so dass, wenn der Host die SYN/ACK Meldung zurückgibt, diese keinen gültigen Teilnehmer erreicht. Bei Anwendung des TCP Protokolls speichert der Host halb geöffnete Verbindungen, d.h. Verbindungen, für die das dritte Element des Dreiwegeprotokolls für eine bestimmte Zeit nicht erledigt ist, bis ein System- Timeout auftritt. Wenn während dieser Zeitspanne eine Vielzahl von halb geöffneten Verbindungen auf der Hostseite eingerichtet werden, wird der für die Pflege solcher Verbindungen eingerichtete Speicher überlaufen und schließlich nicht mehr in der Lage sein, weitere SYN Pakets zu empfangen. In diesem Stadium wird der Server oder Host zusammenbrechen oder auf keine weiteren neuen Verbindungen antworten, und die Site geht außer Betrieb. Weil der Host nicht in der Lage ist, weitere Daten zu empfangen, war der Angreifer erfolgreich beim Erzeugen eines Zustands, der als Denial of Service (Dienstverweigerungs-) Angriff bekannt ist. Denial of Service Angriffe sind zu einer zunehmend in den Vordergrund tretenden Form von Sicherheitsbedrohung geworden, und das Problem war bis jetzt recht schwierig zu lösen. Es wurden mehrere Gegenmaßnahmen vorgeschlagen und können als Firewall und Routerfilterung, Betriebssystemverbesserungen, Protokollverbesserungen und Erkennung von Eindringlingen charakterisiert werden.
  • Auf dem Gebiet der Sicherheit gegen Angriffe existiert ein beachtenswerter Stand der Technik, und das Problem ist gut beschrieben in einer Veröffentlichung von C. Schuba, I. Krsul, M. Kuhn, E. Spafford, A. Sundaram and D. Zamboni mit dem Titel "Analysis of a denial of service attack on TCP", veröffentlicht in den Proceedings des 1997 IEEE Symp. Security and Privacy. Das Dokument von Schuba u.a. beschreibt das Problem und die klassischen Lösungen für einen Proxy Dienst: das TCP Relay und der halbtransparente TCP Gateway. Bei diesen beiden Lösungen fängt eine Firewall TCP Verbindungen ab, pflegt den Status der TCP Statusmaschine und führt neue Pakets ein, um die Angriffe abzuwehren.
  • Die Proxy Lösungen nach dieser Publikation müssen für jede Verbindung die Status der entsprechenden TCP Statusmaschine pflegen. Dieser Mechanismus benötigt eine Menge Ressourcen und kann selbst wieder das Ziel eines neuen Denial of Service Angriffs werden. Somit machen die hohen Kosten für den Rechnereinsatz diese Lösung ungeeignet für Netzwerkrouter oder Switches.
  • Eine zweite Lösung nach dem Stand der Technik, die näher an der vorliegenden Erfindung liegt, ist beschrieben in H. Wang, D. Zhang and K.G. Shin, "Detecting SYN flooding attacks", Proc. Infocom 2002. Das Verfahren nach Wang et al. beruht auf einem Zählerargument der SYN und FIN Pakets bei den TCP Verbindungen. Diese Pakets sollten in jeglichen ordentlich ablaufenden Verbindungen paarweise auftreten. Somit sollte die Anzahl der SYN Pakets ungefähr der Anzahl der FIN Pakets entsprechen. Die Einfachheit dieses Verfahrens beruht auf dem statusfreien und niedrigen Kosten für den Rechnereinsatz, wodurch es den Detektionsmechanismus selbst immun gegen Überflutungsangriffe macht. Diese Einfachheit ermöglicht, dass die Detektion in den Blattroutern durchgeführt werden kann, die Endhosts mit dem Internet verbinden.
  • Die Gegenmaßnahme nach Wang et al. hat einen größeren Schwachpunkt. Wenn Angreifer das Detektionsprotokoll, das bei diesem Verfahren angewandt wird, genau kennen, können sie diesen Ansatz durchkreuzen, indem sie einfach die Router überfluten mit synchronisierten SYN und zusammenhanglosen und oft ungültigen. FIN Pakets. Damit wären die Stände von SYN Zähler und FIN Zähler ungefähr gleich. Doch der TCP/IP Stapel des Opfers wäre offen für viele halb geöffnete Verbindungen, die von den ungültigen FIN Pakets nicht geschlossen würden. Das entspricht dem ursprünglichen Denial of Service Angriff. Das US Patent 6,321,338 an Porras et al., erteilt am 20. November 2001, mit dem Titel "Network Surveillance" stellt auch Stand der Technik für diese Technologie bereit. Entsprechend dem Porras et al. Patent wird ein Verfahren zur Verfügung gestellt zur Netzwerküberwachung einschließlich der empfangenen Netzwerkpakets, die von einer Netzwerkeinheit bearbeitet werden und wenigstens ein langfristiges und wenigstens ein kurzfristiges statistisches Profil bilden aus einer Messzahl der Netzwerkpakets, die den Datentransfer, die Fehler oder die Verbindungen überwacht. Ein Vergleich der statistischen Profile wird herangezogen zur Beurteilung, ob der Unterschied der statistischen Profile eine verdächtige Netzwerkaktivität anzeigt.
  • Das US Patent 6,321,338 offenbart weiterhin, zusätzlich zu den oben erwähnten Details, dass Intensitätsmessungen der Ereignisströme z.B. der ICMP Pakets, besonders geeignet sind für das Erkennen von Überflutungsangriffen. Weiterhin offenbart das Patent, dass Intensitätsmessungen, die SYN Meldungen mit SYN_ACK Meldungen korrelieren, eine Mengenanalyse von SYN/RST Meldungen oder TCP/FIN Meldungen nützlich sind, die Verfügbarkeit von Ports oder Scanning Angriffe zu erkennen.
  • Ein zweites Patent von Interesse ist das US Patent 5,958,053, das am 28. September 1999 an Denker erteilt wurde mit dem Titel "Communications protocol with improved security". Entsprechend dem Denker Patent umfasst die darin beschriebene Erfindung zwei neue Protokolle auf der ersten Ebene und einige Ausführungsbeispiele eines Protokolls einer zweiten Ebene. Die beiden erfindungsgemäßen neuen Protokolle auf der ersten Ebene umfassen das TCP2B Protokoll und das TCP2E Protokoll. Im TCP2B Protokoll zeigen sowohl der Klient als auch der Server ihre Unterstützung für dieses Protokoll an, indem sie ein oder mehrere Bits im TCP Header benutzen. Entsprechend dem TCP2B Protokoll sendet der Klient seine angeforderten Optionen in der ACK Meldung erneut, so dass der Server die Optionen nach der Verbindungsanforderung nicht speichern muss. Im TCP2E Protokoll pflegt der Server eine "Freundes"- Tabelle, die Adressen speichert, die vor kurzem beobachtet und als in Übereinstimmung mit TCP befunden wurden. Wenn eine Klientenadresse in der Freundestabelle enthalten ist, erfolgt die Bearbeitung der Verbindungsanforderung nach TCP. Andernfalls sendet der Server eine Bestätigungsmeldung an den Klienten, um diesen aufzufordern, eine Reset Meldung (RST) zu senden. Die Klientenadresse kann dann in die Freundestabelle aufgenommen werden.
  • Das Patent 5,958,053 offenbart die Verwendung einer Hashing Funktion an den Quellen- und an den Ziel- IP Adressen, den Portnummern plus einem Geheimschlüssel, der nur dem Server bekannt ist, zum Auseinanderhalten von SYN Pakets. Zusätzlich offenbart das Patent das Pflegen einer Hash Tabelle, die Zählwerte enthält, die entsprechenden Klienten zugeordnet werden, um erfolglose Versuche zu erkennen, wie sie bei SYN Überflutungsangriffen auftreten würden. Jeder Zähler wird heruntergezählt, nachdem eine SYN Meldung von seinem entsprechenden Dienst empfangen wurde, und heraufgezählt, wenn eine Verbindung zwischen dem Klienten und dem Server nach dem Empfang der ACK vom Klienten erfolgreich aufgebaut wurde.
  • Denial of Service Angriffe benutzen häufig TCP Setup SYN Meldungen, um Zielspeicher mit falschen Verbindungsanforderungen zu überfluten. Um solche Angriffe zu erkennen, wurde eine Anzahl von Heuristika auf Statistikbasis entwickelt, die SYN- gegen FIN- Meldungen zählen und ein Ungleichgewicht als Angriff kennzeichnen. Unglücklicherweise kann ein Angreifer eine Anzahl dieser Systeme überlisten, indem er es mit ebenso vielen FINs wie SYNs überflutet, aber die FINs ohne Beziehung zu den SYNs hält.
  • Das ist auch erkennbar, wenn das Erkennungssystem fähig ist, eine Tabelle aller SYNs zu pflegen, und nur solche FINs zu zählen, die zu einer gültigen SYN gehören. Bei Anwendungen mit hoher Bandbreite kann es unglücklicherweise vorkommen, dass es nicht möglich ist, solch eine umfangreiche Tabelle von Verbindungen zu pflegen.
  • Die im US Patent 5,958,053 angegebene Lösung überwacht die Verbindungen nur auf Basis der IP Adressen und Port Nummern.
  • Ein weiterer Stand der Technik wird im Patentdokument EP-A-1 154 610 angegeben. Dieses Dokument beschreibt ein Verfahren und ein System zur Abwehr eines SYN Überflutungsangriffs in einer Servereinheit eines IP Netzes. Die Servereinheit betreibt TCP und ermöglicht den Aufbau von TCP Verbindungen mit Klienteneinrichtungen. Immer wenn die Servereinheit eine SYN Meldung empfängt, berechnet der Servercomputer eine ISR (Initial Sequence number Receiver side (= ursprüngliche Sequenznummer auf Empfängerseite)) und antwortet der Klienteneinrichtung mit einer SYN-ACK Meldung, die die berechnete ISR enthält. Bei jedem Empfang einer ACK Meldung wird die ISR überprüft. Wenn die Prüfung negativ ist, wird die ACK Meldung verworfen. Wenn die Prüfung bestanden wird, wird die ISR als eine authentische berechnete ISR akzeptiert und entsprechend decodiert. Dann wird tatsächlich eine TCP Verbindung aufgebaut. Somit wird eine TCP Verbindung nur aufgebaut, wenn ein Klient die reguläre TCP Dreiweg Handshaking Prozedur abschließt, wodurch das Erzeugen halb offener Verbindungen, beispielsweise durch DoS oder DDoS Angriffe vermieden wird.
  • Dies ist ein weiterer Ansatz. Er benutzt keine Hashing Tabelle. Er ist darauf gerichtet, eine Verbindung für gültig zu erklären, bevor sie aufgebaut wird, um gegen Angriffe zu schützen und solche Angriffe abzuwehren.
  • Die besten Lösungen nach dem Stand der Technik, die den Erfindern bekannt sind, überwachen den Verkehr und sammeln Statistikdaten auf Basis SYNs gegen FINs, und zeigen einen Angriff an, wenn eine Diskrepanz auftritt. Es gibt keine Korrespondenzprüfung zwischen den ausgehenden SYNs und eingehenden FINs. Dies lässt eine Lücke, die auch von einem gewitzten Angreifer genutzt werden kann, weil der Angreifer ein Opfer mit SYN Pakets und nichtkorrespondierenden FIN Pakets überfluten kann. Das Opfer häuft halb geöffnete Verbindungen an, und der Detektor ist überlistet.
  • Die gleichzeitig anhängige Anmeldung US 10/158,115 offenbart eine Verbesserung des Standes der Technik, indem sie eine Korrespondenz zwischen SYNs und FINs aufrechterhält, wodurch die Sicherheitslücke geschlossen wird. Dies geschieht durch Verwendung einer Hash Funktion zur Kartierung von SYN Meldungen zu entsprechenden FIN Meldungen.
  • Die zuvor genannte Anmeldung stellt auch einen kohärenten Weg zur Verfügung, um mit Reset Pakets umzugehen.
  • Zusammenfassung
  • Die vorliegende Erfindung ist gerichtet auf einen Mechanismus, der die Korrespondenz zwischen SYN Pakets und FIN Pakets ermittelt. Sie vergrößert die Wirkung des Mechanismus, der in der gleichzeitig anhängigen Anmeldung US 10/158,115 eingeführt wird durch Anwendung von Sequenznummern in die Berechnung. Entsprechend der vorliegenden Erfindung wäre es nicht möglich, den verstärkten Mechanismus mit einem einzigen Angriffstool-Programm zu umgehen, das keine ausdrücklichen Informationen von einem Angriffsopfer empfängt.
  • Somit wird entsprechend der vorliegenden Anmeldung ein Verfahren zur Erkennung von Denial of Service Angriffen auf eine Verbindung in einem digitalen Kommunikationssystem bereitgestellt, wobei das Verfahren die folgenden Schritte umfasst:
    • a) Berechnen eines ersten Wertes für ein verbindungsherstellendes Paket während einer vorbestimmten Zeitspanne bei Anwendung einer Hash Funktion mit Quellen- und Ziel IP Adressen, Quellen- und Ziel Portnummern und einem Geheimschlüssel als Eingangsparameter;
    • b) Verarbeiten eines Teils der nachfolgenden Pakets durch Addieren des ersten Wertes zu einem zweiten Wert, der von einer Sequenznummer jedes verarbeiteten nachfolgenden Pakets und der vorbestimmten Zeitspanne abhängt, um entsprechende Indices für eine Hash Tabelle zu erhalten, wobei die Hash Tabelle Zählerwerte für gegenwärtige, vorhergehende und nächste Speicherplätze enthält, in die die verarbeiteten Pakets einkartiert werden; und
    • c) Feststellung, ob ein Denial of Service Angriff vorliegt durch Auswertung entsprechender Indices, wobei ein Angriff dann angezeigt wird, wenn der aus einem verarbeiteten Paket berechnete Index nicht auf einen momentanen, vorhergehenden oder nächsten Speicherplatz zeigt, der einen Zählerwert größer als null hat.
  • Kurze Beschreibung der Zeichnungen
  • Die Erfindung wird im Folgenden detaillierter beschrieben mit Bezug auf die anhängenden Zeichnungen, in denen:
  • 1 das TCP Initialisierungsprotokoll zeigt; und
  • 2 ein Ausführungsbeispiel der vorliegenden Erfindung zeigt.
  • 3A und 3B sind Flussdiagramme, die den Prozess nach der vorliegenden Erfindung zeigen.
  • Detaillierte Beschreibung der Erfindung
  • 1 zeigt das TCP/IP Protokoll für das Starten einer Verbindung von einem Klienten zu einem Host oder Server.. Ein Klient sendet ein Verbindungsaufbausignal (SYN) an den Server, und der Server antwortet dem Klient mit einer SYN/ACK Meldung, die zurück an den Klienten gesendet wird. Der Klient gibt dann eine Bestätigungsmeldung zurück, die die Verbindung vollständig öffnet.
  • Bei der Beendigung einer Verbindung sendet der Klient eine FIN- oder Verbindungsabschlussmeldung an den Host oder Server, der die Meldung bestätigt, und der Server sendet eine Bestätigung, um die Verbindung formal zu schließen.
  • Wie zuvor erläutert, wird, wenn der dritte Weg der Verbindungsaufbaumeldung, d.h. die Bestätigung des Klienten an den Server, beim Server nicht empfangen wird, hält der Server eine Aufzeichnung der halb geöffneten Verbindung aufrecht, und eine Vielzahl solcher halb geöffneter Verbindungen kann den Server überlasten, was zu einem Zusammenbruch und zur Unterbrechung des Dienstes führt.
  • Es wird davon ausgegangen, dass die vorliegende Erfindung besonders bei Routern Anwendung finden wird, die am Rand des Internet liegen und Zugang von einem lokalen Gebietsnetz zum Internet oder allgemein zum Netzwerk bieten. Sie kann auch in einem Switch, einer Firewall oder einem Host usw. eingesetzt werden. 2 ist ein Blockschaltbild dieser Anwendung auf hoher Ebene, die den Router zeigt, der den Mechanismus zum Ausführen des erfindungsgemäßen Verfahrens enthält.
  • Die SYN Überflutungsangriffe können wirksam erkannt werden durch Pflege der Status der Verbindungen in einer Hash Tabelle. Solch ein System kann effizienter sein als die anderen Verfahren, die bei der Diskussion des Standes der Technik identifiziert wurden. Die damit verknüpfte Hash Funktion. muss kollisionsresistent sein, d.h. es muss rechnertechnisch unmöglich sein, zwei Paare am gleichen Speicherplatz eingetragen zu finden. Das kann mit einer getasteten Funktion erreicht werden.
  • Deshalb können eingehende Signalpakets (SYN, SYN/ACK, FIN, RST) bei der vorlegenden Erfindung durch eine geheime Hash Funktion auf Speicherplätze kartiert werden, und die Statistik kann für jeden Speicherplatz gepflegt werden, anstatt für das gesamte System. Ein einfacher Zähler kann herauf gezählt werden bei SYNs und heruntergezählt bei FINs für jeden Speicherplatz. Auf diese Weise kann es wenigstens eine statistische Korrespondenz zwischen SYNs und FINs geben, und ohne Kenntnis der Mappingfunktion hat der Angreifer keine Möglichkeit, FINs so nachzumachen, dass sie (ohne Korrespondenz zu dem gleichen SYN) auf den gleichen Speicherplatz kartiert werden. Das beruht auf der Annahme, dass der Angreifer nur zwei Möglichkeiten hat; entweder den Dreiwege- Handshake abzuschließen und schließlich die Verbindung, oder den Dreiwege- Handshake nicht abzuschließen und den Klienten mit einer halb geöffneten Verbindung zurücklassen. Die Mappingfunktion könnte [Quellen IP, Ziel IP, Zielport, Schlüssel] auf n Speicherplätze hashmäßig verteilen. Die Wahl von n ist ein Kompromiss zwischen höheren Anforderungen an den Checkmechanismus und der Wirksamkeit des Systems. Als Beispiel würden bei n = 100 zu viele statistische Kollisionen bei einem Angriff riskiert (d.h. das System könnte den laufenden Angriff nicht erkennen); n = 106 wäre viel besser in Bezug auf Kollisionen; aber der Speicherplatzbedarf wäre (beispielsweise) für einen kleinen Router zu groß. Es könnten tatsächlich alle Datenstrukturen verwendet werden, die Einfügen, Mitgliedschaftsabfragen und wahlweise Entfernen unterstützen (z.B. Bloom- Filter mit getasteter Hash Funktion). Das Hauptanliegen ist, eine effiziente Datenstruktur zu haben, bei der falsche positive Mitgliedschaftsabfragen sehr niedrig sind. Das ist der Grund, weshalb die Größe der Tabelle riesig ist.
  • Der Schlüsselparameter ermöglicht, dass der Hash Algorithmus bekannt sein kann, aber dass die Korrespondenz zwischen [IPs, Ports] und Speicherplatz vor dem Angreifer verborgen bleibt. Somit wäre der Schlüssel eine Zufallszahl, die nur dem Detektionssystem bekannt ist.
  • Ein globaler Zähler würde gepflegt, um alle offenen Verbindungen zu verfolgen. Es wäre das Herz der Logik, die entscheidet, ob ein Angriff stattfindet.
  • Denial of Service Angriffe sind zu einer zunehmend in den Vordergrund tretenden Form von Sicherheitsbedrohung geworden, und das Problem scheint recht schwierig zu lösen zu sein, weil die Angriffe sich auf Eigenschaften stützen, die der TCP/IP Infrastruktur innewohnen. Die vorliegende Erfindung stellt ein Mittel zur Erkennung von Denial of Service Angriffen zur Verfügung, das wirksamer und robuster ist als bekannte Verfahren.
  • Somit ist die Erfindung bezogen auf ein Verfahren zum Erkennen von Denial of Service Angriffen des Typs mit Überflutung, bei dem die SYN Meldungen mit den FIN Meldungen in Übereinstimmung gebracht werden bei Verwendung eines Hash Algorithmus, der für zusätzliche Sicherheit einen Schlüssel enthält.
  • Die Erfindung beruht auf einem Verfahren des Messens verbindungsherstellender Pakets (SYN) und verbindungsauflösender Pakets (FIN), die bei einem Router während eines vorbestimmten Zeitintervalls empfangen werden. Informationen im Paket wie Quellen- und Ziel- IP Adressen, Port Nummern und ein geheimer Schlüssel werden benutzt, um mittels einer Hash Funktion einen Wert zu berechnen. Das Haupt- Unterscheidungsmerkmal des Verfahrens ist das Verarbeiten eines nach Wahrscheinlichkeitsgesetzen bestimmten Anteils der Pakets einer Verbindung bei Verwendung eines Hash Algorithmus zur Feststellung, ob die Pakets zu dem Fluss gehören, den das TCP SYN Paket ausgelöst hat. Der Hash Algorithmus enthält für zusätzliche Sicherheit einen Geheimschlüssel. Das Ergebnis der Hash Funktion wird zu einem Wert addiert, der von der Sequenznummer (oder wahlweise von dem ACK Flag) eines Pakets, das verarbeitet wird, und von der TCP Fenstergröße der Verbindung abhängt, um einen Index für eine Hash Tabelle zu berechnen. Alle Speicherplätze der Hash Tabelle enthalten einen Zähler entsprechend der Anzahl der Elemente, die auf diesem Speicherplatz eingespeichert werden. Wenn der aus einem verarbeiteten Paket berechnete Index nicht auf einen momentanen, vorhergehenden oder nachfolgenden Zählerwert zeigt, der größer als null ist, dann gehört das verarbeitete Paket nicht zu irgend einem Fluss, der von einem TCP SYN Paket ausgelöst wurde, und das verarbeitete Paket wird verworfen. Während die Pakets verarbeitet werden, werden die Zählerwerte in den Speicherplätzen aufrechterhalten.
  • Gewöhnlich werden die Speicherplatz- Zählwerte am Ende des vorbestimmten Zeitintervalls zurückgesetzt, das entweder ein kontinuierlich gleitendes Fenster oder ein nicht überlappendes gleitendes Fenster ist.
  • Das Verfahren zur Erkennung eines Denial of Service Angriffs beruht auf der Verwendung von einem beliebigen aus kumulativer Summe, gleitendem Mittelwert oder einer Filterableitung, um Änderungen im globalen Zähler zu erkennen.
  • Eine strengere Korrespondenz zwischen den SYN Pakets und den FIN Pakets ist wünschenswert, ohne dass alle Pakets der Verbindung zu zergliedern. Die vorherigen Lösungen müssen entweder alle Pakets bearbeiten – was zu langsam ist für eine Netzwerkeinrichtung – oder ihre Korrespondenz nur auf die IP Adressen und TCP Ports beschränken – zu schwach.
  • Aus der Sicht jedes Teilnehmers wird eine TCP Verbindung ausgelöst mit einem TCP SYN Paket und abgeschlossen von einem TCP FIN Paket. Die Korrespondenz zwischen diesen Pakets kann überprüft werden durch Überwachen der Paket- Sequenznummern. Diese Zahlen müssen in Übereinstimmung mit einigen Regeln steigen. Der ursprüngliche Wert dieser Sequenz wird bestimmt von der Initial Sequence Number, die im TCP SYN Paket gesetzt wird.
  • Ein offensichtlicher Weg, um zweifelfrei die Korrespondenz zwischen einem TCP SYN Paket und einem TCP FIN Paket festzustellen, ist, den Fensteralgorithmus des TCP Protokolls zu simulieren. Das setzt voraus, dass alle Pakets zerlegt werden müssen.
  • Um dies zu vermeiden, wird ein neuer Mechanismus vorgeschlagen, der auf einer geheimen Hash Funktion beruht.
  • Entsprechend dem neuen Mechanismus unterstützt eine Hash Tabelle folgende Operationen: Einfügen, Entfernen und Abfrage. Mit der Hash Tabelle ist eine geheime Hash Funktion verknüpfttatsächlich kann mehr als eine Funktion erforderlich sein, z.B. Bloom Filter. Die Funktion muss ein geheimes Argument enthalten, um einen böswilligen Angreifer daran zu hindern, diesen Mechanismus zu überlisten.
  • Wie erwähnt, benutzt in der gleichzeitig anhängigen US Anmeldung 10/158,115 die Hash Funktion die folgenden Eingangsparameter (SecretValue, IPSOURCE, IPDEST, PortSOURCE, PortDEST). Solche Funktionen können auf Basis von Einweg Hash Funktionen wie MD5 oder SHA-1 durchgeführt werden.
  • Der erfindungsgemäße Mechanismus ist wie folgt:
    Beim Empfang eines TCP SYN Pakets mit ISNSOURCE als Initial Sequence Number wird die Tabelle T wie folgt aktualisiert:
    Füge ein Element -z.B. durch Addieren von 1 zu einem Zähler in den Tabelleneingang beim Index Hash (SecretValue, IPSOURCE, IPDEST, PORTSOURCE, PORTDEST) + Floor (SNSOURCE/(TCP Window Size·t))
  • Wobei t eine Vertrauensziffer ist, die auf 210 gesetzt wird. Die Floor Funktion kann wie folgt definiert werden: Floor (x) = die größte Ganzzahl, die kleiner oder gleich x ist.
  • Für jedes nachfolgende Paket der Verbindung
  • Bestimme mit der Wahrscheinlichkeit von p ~ 0,01, ob dieses Paket zu verarbeiten ist. Wenn das Paket in den Wahrscheinlichkeitsbereich fällt, wird es verarbeitet durch Feststellung, ob der Tabelleneintrag beim Index Hash (SecretValue, IPSOURCE, IPDEST, PORTSOURCE, PORTDEST) + Floor (ISNSOURCE/(TCP Window Size·t))(als momentaner Speicherplatz bezeichnet)
    oder beim Index
    Hash (SecretValue, IPSOURCE, IPDEST, PORTSOURCE, PORTDEST) + Floor (SNSOURCE/(TCP Window Size·t)) – 1(als vorhergehender Speicherplatz bezeichnet)
    oder beim Index Hash (SecretValue, IPSOURCE, IPDEST, PORTSOURCE, PORTDEST) + Floor (SNSOURCE/(TCP Window Size·t)) + 1(als nächster Speicherplatz bezeichnet)
    größer als null ist. Der Wert SN bezeichnet die Paket Sequenznummer. Wenn dies der Fall ist, wird das Paket akzeptiert. Andernfalls wird das Paket als nicht zu dem
  • Datenstrom gehörend erkannt, der von dem TCP SYN Paket ausgelöst wurde. Weil die Sequenznummer des Pakets empfangen wurde, nachdem die Initial Sequence Number erhöht wurde, muss die Hash Funktion plus der Sequenznummer größer sein als die Hash Funktion für das ursprüngliche SYN Paket.
  • Schließlich, wenn der Speicherplatz leer ist und der vorhergehende nicht leer ist, wird ein Paket bei dem momentanen Speicherplatz addiert, und ein Paket wird vom vorhergehenden Speicherplatz entfernt. Dies geschieht, um sicherzustellen, dass der Speicherplatz, der das nächste Paket erhalten soll, fortschreitet, so wie sich die Sequenznummern der Pakets erhöhen.
  • Der Vertrauensfaktor t stellt mit guter Wahrscheinlichkeit sicher, dass das vorhergehende Paket, das verarbeitet wurde – oder das SYN Paket – im momentanen Speicherplatz oder im vorhergehenden eingefügt wurde.
  • Beim Empfang eines TCP FIN Pakets läuft der Prozess wie oben beschrieben. In diesem Fall wird jedoch, wenn das TCP FIN Paket als ein gültiges erkannt wurde, das entsprechende Element in der Hash Tabelle vom momentanen Speicherplatz oder vom vorhergehenden entfernt. Das gilt auch beim Empfang eines TCP RST Pakets.
  • Die 3A und 3B sind Flussdiagramme, die den neuen Mechanismus nach der vorliegenden Erfindung zeigen.
  • Wie in 3A dargestellt, wird ein Anteil eingehender Pakets, die keine SYN, FIN oder RST Pakets sind, die unter das Auswahlkriterium p fallen, verarbeitet, um den Hash Speicherplatz auf Basis von IP Port Nummer und Sequenznummer zu berechnen. Zu diesem Zeitpunkt werden der vorhergehende und der nachfolgende Speicherplatz in Relation zu dem momentanen ermittelt. Wenn der momentane Speicherplatz nicht leer ist, wird das Paket akzeptiert. Wenn er leer ist, wird festgestellt, ob der vorhergehende Speicherplatz leer ist. Wenn dieser nicht leer ist, wird das Paket auf dem vorhergehenden Speicherplatz entfernt, und das Paket wird auf dem momentanen Speicherplatz eingefügt. Wenn der vorhergehende Speicherplatz auch leer ist, wird festgestellt, ob der nachfolgende Speicherplatz leer ist. Wenn das der Fall ist, wird das Paket verworfen, andernfalls wird es akzeptiert.
  • 3B zeigt den Prozess, wenn das eingehende Paket ein FIN Paket oder ein RST Paket ist. In diesem Fall wird der Hash Speicherplatz auf Basis von IP Port Nummern und der Sequenznummer berechnet. Es werden wiederum die vorhergehenden und die nachfolgenden Speicherplätze in Relation zu dem momentanen ermittelt. Wenn der momentane Speicherplatz nicht leer ist, wird das Paket akzeptiert. Wenn der momentane Speicherplatz leer ist und wenn der vorhergehende Speicherplatz nicht leer ist, wird das Paket auf dem vorhergehenden Speicherplatz entfernt, und das neue Paket wird akzeptiert. Andernfalls wird das Paket zurückgewiesen.
  • Eine Variante dieses Algorithmus ist, die Berechnung auf Basis der Bestätigungsnummern anstelle der Sequenznummern durchzuführen. Diese Variante beruht auf der Tatsache, dass die meisten TCP/IP Stapellösungen das ACK Flag bei jedem Paket setzen – ausgenommen bei dem ursprünglichen SYN Paket.
  • Das bietet einen größeren Vorteil, wenn ein Server seiner eigenen Wahl der Initial Sequence Number vertraut, nicht aber der des Klienten. Diese Lösung verhindert, dass zwei bösartige Angreifer die gleiche Initial Sequence Number benutzen können, damit diese sich gegenseitig beim Verkehr mit dem Server stören. Deshalb baut der Server die Kommunikation auf bei Anwendung seiner eigenen Initial Sequence Number und der vom Klienten gesendeten Bestätigungsnummer.
  • Der Mechanismus nach der vorliegenden Erfindung stellt eine stärkere Korrespondenz bereit als die Hash Lösung, die die Sequenznummern nicht berücksichtigt. Das resultiert in einer schnelleren Lösung als die zuvor erwähnte offensichtliche Lösung, die den TCP Fensteralgorithmus simuliert. Jedenfalls würde eine solche Lösung eine Hash Funktion benutzen, um die Datenstrukturen aufrechtzuerhalten und die Sequenznummern beizubehalten.
  • Denial of Service Angriffe sind zu einer zunehmend in den Vordergrund tretenden Form von Sicherheitsbedrohung geworden, und das Problem scheint recht schwierig zu lösen zu sein, weil die Angriffe sich auf Eigenschaften stützen, die der TCP/IP Infrastruktur innewohnen. Die vorliegende Erfindung stellt ein Mittel zur Erkennung von Denial of Service Angriffen zur Verfügung, das wirksamer und robuster ist als bekannte Verfahren.
  • Obwohl besondere Ausführungsbeispiele beschrieben und dargestellt wurden, ist es für den Fachmann offensichtlich, dass zahlreiche Änderungen eingeführt werden können, ohne vom Grundkonzept abzuweichen.

Claims (8)

  1. Verfahren zum Erkennen eines "Denial of Service" (Dienstverweigerungs-) Angriffs auf eine Verbindung in einem digitalen Kommunikationssystem, wobei das Verfahren folgende Schritte umfasst: a) Berechnen eines ersten Wertes für ein verbindungsherstellendes Paket während einer vorbestimmten Zeitspanne bei Anwendung einer Hash Funktion mit Quellen- und Ziel IP Adressen, Quellen- und Ziel Portnummern und einem Geheimschlüssel als Eingangsparameter; b) Verarbeiten eines Teils der nachfolgenden Pakets durch Addieren des ersten Wertes zu einem zweiten Wert, der von einer Sequenznummer jedes verarbeiteten nachfolgenden Pakets und der vorbestimmten Zeitspanne abhängt, um einen momentanen Index für eine Hash Tabelle von Speicherplätzen für Zählerwerte zu erhalten, in die die besagten verarbeiteten Pakets einkartiert werden, wobei der besagte momentane Index auf einen momentanen Speicherplatz zeigt; und c) Feststellung, ob ein Denial of Service Angriff vorliegt durch Auswertung eines vorhergehenden Index, der auf einen vorhergehenden Speicherplatz zeigt durch Abwärtszählen des besagten momentanen Index und eines nächsten Index, der auf den nächsten Speicherplatz zeigt durch Aufwärtszählen des besagten momentanen Index, wobei ein Angriff dann angezeigt wird, wenn der aus einem verarbeiteten Paket berechnete Index nicht auf einen momentanen, vorhergehenden oder nächsten Speicherplatz zeigt, der einen Zählerwert größer als null hat.
  2. Verfahren nach Anspruch 1, wobei dem besagten verbindungsherstellenden Paket eine anfängliche Sequenznummer zugeordnet wird.
  3. Verfahren nach Anspruch 2, wobei die besagte Sequenznummer eine Sequenznummer ist, die jedem der besagten nachfolgenden Pakets zugeordnet wird.
  4. Verfahren nach Anspruch 2, wobei die besagte Sequenznummer einem Verbindungsbestätigungs- (ACK) Paket zugeordnet wird.
  5. Verfahren nach Anspruch 1, wobei ein Verbindungsbestätigungs- Paket genau so verarbeitet wird wie eins der besagten nachfolgenden Pakets.
  6. Verfahren nach Anspruch 1, wobei der besagte Anteil an nachfolgenden Pakets, die verarbeitet werden, etwa 1 Prozent aller empfangenen nachfolgenden Pakets ausmacht.
  7. Verfahren nach Anspruch 1, wobei die vorbestimmten Zeitspannen eines aus kontinuierlich gleitendem Fenster oder nicht überlappendem gleitenden Fenster sind.
  8. Verfahren nach Anspruch 7, wobei die Speicherplatz-Zählwerte am Ende der vorbestimmten Zeitspanne zurückgesetzt werden.
DE60307581T 2002-12-12 2003-12-09 Verbessertes geheimes Hashen der TCP SYN/FIN-Korrespondenz Expired - Fee Related DE60307581T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US316883 1994-10-03
US10/316,883 US7373663B2 (en) 2002-05-31 2002-12-12 Secret hashing for TCP SYN/FIN correspondence

Publications (2)

Publication Number Publication Date
DE60307581D1 DE60307581D1 (de) 2006-09-28
DE60307581T2 true DE60307581T2 (de) 2007-08-09

Family

ID=32325927

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60307581T Expired - Fee Related DE60307581T2 (de) 2002-12-12 2003-12-09 Verbessertes geheimes Hashen der TCP SYN/FIN-Korrespondenz

Country Status (3)

Country Link
US (1) US7373663B2 (de)
EP (1) EP1429230B1 (de)
DE (1) DE60307581T2 (de)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101055861B1 (ko) * 2003-08-08 2011-08-09 케이코 오가와 통신 시스템, 통신 장치, 통신 방법 및 그것을 실현하기위한 통신 프로그램
US7634655B2 (en) * 2004-02-13 2009-12-15 Microsoft Corporation Efficient hash table protection for data transport protocols
CN100370757C (zh) * 2004-07-09 2008-02-20 国际商业机器公司 识别网络内分布式拒绝服务攻击和防御攻击的方法和系统
US20060026669A1 (en) * 2004-07-29 2006-02-02 Zakas Phillip H System and method of characterizing and managing electronic traffic
US20060075142A1 (en) * 2004-09-29 2006-04-06 Linden Cornett Storing packet headers
US7620046B2 (en) * 2004-09-30 2009-11-17 Intel Corporation Dynamically assigning packet flows
US7512684B2 (en) * 2004-09-30 2009-03-31 Intel Corporation Flow based packet processing
US7478429B2 (en) * 2004-10-01 2009-01-13 Prolexic Technologies, Inc. Network overload detection and mitigation system and method
US20060126640A1 (en) * 2004-12-14 2006-06-15 Sood Sanjeev H High performance Transmission Control Protocol (TCP) SYN queue implementation
WO2006103337A1 (fr) * 2005-03-31 2006-10-05 France Telecom Procede de controle d’une table de flots adaptative et de detection d’une attaque par inondation d’un reseau de transmission de donnees par paquets a large bande et equipement d’analyse correspondant
DE602005018549D1 (de) * 2005-05-04 2010-02-04 Telecom Italia Spa Verfahren und system zum verarbeiten von paketflüssen und computerprogrammprodukt dafür
US8132018B2 (en) * 2005-06-30 2012-03-06 Intel Corporation Techniques for password attack mitigation
US7730209B2 (en) * 2006-01-18 2010-06-01 Microsoft Corporation Efficient dispatch of messages based on message headers
US8661160B2 (en) * 2006-08-30 2014-02-25 Intel Corporation Bidirectional receive side scaling
KR100806492B1 (ko) * 2006-11-13 2008-02-21 삼성에스디에스 주식회사 Tcp 상태천이를 이용한 서비스거부 공격의 차단방법
US8031611B2 (en) * 2006-12-01 2011-10-04 Electronics And Telecommunications Research Institute Method of generating IP traffic flow based on a time bucket
JP4232828B2 (ja) * 2007-02-01 2009-03-04 沖電気工業株式会社 アプリケーション分類方法、ネットワーク異常検知方法、アプリケーション分類プログラム、ネットワーク異常検知プログラム、アプリケーション分類装置、ネットワーク異常検知装置
US8307415B2 (en) * 2007-05-09 2012-11-06 Microsoft Corporation Safe hashing for network traffic
US8014282B2 (en) * 2008-06-26 2011-09-06 Intel Corporation Hashing packet contents to determine a processor
TW201031141A (en) * 2009-02-04 2010-08-16 Univ Nat Taiwan Packets inspection device and method
US9003033B2 (en) * 2009-06-02 2015-04-07 Centurylink Intellectual Property Llc IP session-based regulation and billing
US8463887B2 (en) * 2009-12-23 2013-06-11 Citrix Systems, Inc. Systems and methods for server surge protection in a multi-core system
US8706736B2 (en) * 2011-09-30 2014-04-22 Broadcom Corporation Extended width entries for hash tables
US8832830B2 (en) * 2011-11-28 2014-09-09 International Business Machines Corporation Securing network communications from blind attacks with checksum comparisons
US9047417B2 (en) 2012-10-29 2015-06-02 Intel Corporation NUMA aware network interface
US20140161061A1 (en) * 2012-12-10 2014-06-12 Xg Technology, Inc. Hybrid arq system using a sliding purge window for wireless networks
US8978138B2 (en) 2013-03-15 2015-03-10 Mehdi Mahvi TCP validation via systematic transmission regulation and regeneration
US9197362B2 (en) 2013-03-15 2015-11-24 Mehdi Mahvi Global state synchronization for securely managed asymmetric network communication
US10684973B2 (en) 2013-08-30 2020-06-16 Intel Corporation NUMA node peripheral switch
US9560173B2 (en) * 2013-10-22 2017-01-31 Vmware, Inc. Techniques for improving SYN cache performance
GB2540949B (en) * 2015-07-31 2019-01-30 Arm Ip Ltd Probabilistic Processor Monitoring
US20220407871A1 (en) * 2021-06-18 2022-12-22 At&T Intellectual Property I, L.P. Massive vulnerable surface protection

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5542089A (en) 1994-07-26 1996-07-30 International Business Machines Corporation Method and apparatus for estimating the number of occurrences of frequent values in a data set
US5958053A (en) * 1997-01-30 1999-09-28 At&T Corp. Communications protocol with improved security
US6321338B1 (en) 1998-11-09 2001-11-20 Sri International Network surveillance
US7304990B2 (en) * 2000-02-03 2007-12-04 Bandwiz Inc. Method of encoding and transmitting data over a communication medium through division and segmentation
EP1154610A3 (de) 2000-05-12 2005-05-11 International Business Machines Corporation Verfahren und System zur Überwindung von TCP Syn Flutungsangriffen
US7124440B2 (en) * 2000-09-07 2006-10-17 Mazu Networks, Inc. Monitoring network traffic denial of service attacks
US7058718B2 (en) * 2002-01-15 2006-06-06 International Business Machines Corporation Blended SYN cookies
US20030200441A1 (en) * 2002-04-19 2003-10-23 International Business Machines Corporation Detecting randomness in computer network traffic

Also Published As

Publication number Publication date
EP1429230A2 (de) 2004-06-16
US20030226032A1 (en) 2003-12-04
DE60307581D1 (de) 2006-09-28
EP1429230A3 (de) 2004-10-20
US7373663B2 (en) 2008-05-13
EP1429230B1 (de) 2006-08-16

Similar Documents

Publication Publication Date Title
DE60307581T2 (de) Verbessertes geheimes Hashen der TCP SYN/FIN-Korrespondenz
DE60313529T2 (de) Hashing der TCP SYN/FIN-Korrespondenz
DE60311185T2 (de) Statistische Methoden zur Detektion von Angriffen durch Überflutung mittels TCP SYN Paketen
DE10394008B4 (de) System und Verfahren zum Detektieren und Nachverfolgen von Denial of Service-Angriffen
US7301899B2 (en) Prevention of bandwidth congestion in a denial of service or other internet-based attack
Wang et al. Change-point monitoring for the detection of DoS attacks
Mirkovic et al. D-WARD: a source-end defense against flooding denial-of-service attacks
Wang et al. Detecting SYN flooding attacks
Wang et al. Syn-dog: Sniffing syn flooding sources
DE102005037968B4 (de) Schutzsystem für eine Netzwerkinformationssicherheitszone
EP1560398B1 (de) Messung eines Stroms von Datenpaketen zum Begrenzen der Wirkungen von Denial-of-service Angriffen
DE60110792T2 (de) Paketkommunikationssystem
Apiecionek et al. Quality of services method as a DDoS protection tool
US20020032774A1 (en) Thwarting source address spoofing-based denial of service attacks
DE60310056T2 (de) Verringerung von Denial-of-service Angriffen mittels Frequenzbereichstechniken
CN1893375A (zh) 用于检测和减轻分布式拒绝服务攻击的系统和方法
CN109327426A (zh) 一种防火墙攻击防御方法
CN106357685A (zh) 一种防御分布式拒绝服务攻击的方法及装置
CN108809923A (zh) 在检测DDoS攻击时的流量过滤的系统和方法
DE112012002054T5 (de) Spoofing-Angriff-Abwehrverfahren unter Verwendung eines Blockierungsservers
Foroushani et al. TDFA: traceback-based defense against DDoS flooding attacks
DE602004011864T2 (de) Die DOS Angriffsmitigation mit vorgeschlagenen Mitteln von upstream Router
US7464410B1 (en) Protection against flooding of a server
Priyadharshini et al. Prevention of DDOS attacks using new cracking algorithm
Haggerty et al. DiDDeM: a system for early detection of TCP SYN flood attacks

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee