-
Die
vorliegende Erfindung betrifft ein Netzwerksystem zwischen Clientcomputern
und Servercomputern und insbesondere eine Servercomputer-Schutzvorrichtung
zum Schützen
eines Servercomputers gegen nicht-ordnungsgemäßen Zugriff, der absichtlich
störend
auf das Verarbeiten eines Servercomputers einwirkt.
-
Heutzutage
sind Computerserversysteme weit verbreitet, in denen eine unbegrenzte
oder begrenzte Anzahl von Clientcomputern mit einem Servercomputer über ein
Paketvermitteltes Netzwerk verbunden sind und Datenpakete werden
von dem Servercomputer gemäß Anforderungspaketen
von den Clientcomputern geliefert. Ein Paket ist eine bestimmte
Menge von Daten, die über
ein Netzwerk gesendet werden. Ein Paket umfasst im Wesentlichen einen
Header (Kopfdatensatz) und einen Datenkörper. Der Header umfasst die
IP-Adresse (IP – Internet Protocol)
eines Übertragungsziels,
eine Quell-IP-Adresse,
eine Übertragungssequenznummer,
die die ordinale Beziehung zwischen Paketen anzeigt und Ähnliches.
-
Ein
ordnungsgemäßes Zugangsanforderungsverfahren
in TCP/IP (Transmission Control Protocol/IP – Übertragungssteuerprotokoll/IP),
das ein Beispiel eines Verbindungstyps-Protokolls ist. Zum Beispiel
zeigt 18 das Verfahren, in dem:
- (a) ein Clientcomputer, ein Verbindungsanfragepaket
(SYN (Synchronous) Packet – SYN-Paket (SYN – Synchron))
an einen Servercomputer sendet,
- (b) der Servercomputer ein Verbindungsanfrage-Bestätigungspaket
(SYN+ACK (Acknowledgement Packet – SYN+ACK-Paket (ACK – Bestätigung))
an den Clientcomputer sendet,
- (c) der Clientcomputer ein Bestätigungspaket (ACK-Paket) an
den Servercomputer sendet, um einen logischen Kommunikationspfad
(Verbindung) herzustellen, was ein „3-Wege-Handshake-Schema" („3-way
handshake scheme")
genannt wird,
- (d) der Clientcomputer ein Datenanforderungspaket an den Servercomputer
sendet, während
die Verbindung zuvor aufgebaut wird, wobei das Datenanforderungspaket
zum Beispiel ein URL-Paket (Uniform Resource Locator – gleichförmiger Ressourcenlokalisierer)
ist,
- (e) der Servercomputer das Datenpaket, das von dem URL-Paket von dem Clientcomputer
angefordert wird, an diesen sendet. Das Datenpaket schließlich von
dem Clientcomputer empfangen wird.
-
Es
gibt eine wachsende Tendenz zu Angriffen auf einen Servercomputer
durch nicht-ordnungsgemäßen Zugang
von einem Clientcomputer aus. Die Absicht des Angriffs durch nichtordnungsgemäßen Zugang
ist es, störend
auf Dienste einzuwirken, die von dem Servercomputer bereitgestellt
werden. Daten, die von dem Servercomputer in Reaktion auf eine ordnungsgemäße Zugangsanforderung
bereitgestellt werden, werden tatsächlich an der Clientcomputerseite
empfangen und verwendet, falls die ordnungsgemäße Zugangsanfrage von dem Clientcomputer
zu dem Servercomputer durchgeführt
wird. Jedoch wird die Zugangsanforderung, die vorgesehen ist, um
den Servercomputer anzugreifen, nicht zum Zwecke eines Empfangens
einer Datenlieferung durchgeführt,
sondern für
den Zweck eines nicht-ordnungsgemäßen Zugreifens.
-
Ein
Angriff, um den Datenlieferdienst dienstunfähig zu machen, der von einem
Ziel-Servercomputer bereitgestellt wird, durch Senden einer großen Menge
von ähnlichen
Zugangsanforderungen von einem Clientcomputer an den Servercomputer
wird als DoS- Angriff
(Denial of Service Attack – Verweigerung eines
Dienstes-Angriff) bezeichnet. Der DoS-Angriff ist schwierig von
einem Zugriff von einem ordnungsgemäßen Client zu unterscheiden
und daher ist es schwierig effektive Maßnahmen gegen derartige Angriffe
zu unternehmen. Es gibt ebenso eine andere Form eines Angriffs,
bei der eine Vielzahl von Clientcomputern DoS-Angriffe zusammen
durchführen.
-
Zum
Beispiel schaden allgemeine DoS-Angriffe über das Internet Servercomputern
in der folgenden Weise.
- (1) Wie in 19 gezeigt,
Senden einer großen Menge
von SYN-Paketen in einer Menge, die die Kapazität des Servercomputers überschreitet, wodurch
der Servercomputer gehindert wird, irgendein SYN+ACK-Paket zu senden
(hiernach „SYN-Flut" – „SYN Flood").
- (2) Wie in 20 gezeigt, eine oder mehrere
ungeeignete Clientcomputer senden eine große Anzahl von Sätzen von
SYN- und ACK-Paketen
an einen Servercomputer, um eine Verbindung mit dem Servercomputer
aufzubauen. Diese Clients senden kein Paket, wie zum Beispiel ein
URL-Paket, das ursprünglich
von einer Clientcomputerseite aus innerhalb eines vorbestimmten
Zeitraumes gesendet werden soll. Dadurch wird der Servercomputer
mit aufgebauter Verbindung stehengelassen (hiernach „aufgebaute
Flut" – „Established
Flood").
- (3) Wie in 21 gezeigt, jeder Clientcomputer führt einen
ordnungsgemäßen Zugriff
eines Sendens eines URL-Paketes durch aufgebaute Verbindungen durch,
wie es ordnungsgemäße Clientcomputer
durchführen.
Ein derartiger ordnungsgemäßer Zugriff
wird von einer Anzahl von Clientcomputern im Wesentlichen zur gleichen
Zeit durchgeführt
(zum Beispiel bei einer vorbestimmten Zeit). Dadurch wird eine große Menge
von Zugriffen auf einen bestimmten Servercomputer konzentriert und
seine Verarbeitungslast wird erhöht,
um auf den normalen Betrieb des Servercomputers störend einzuwirken.
Ein derartiger Angriff wird insbesondere DDoS-Angriff genannt (Distributed
Denial of Service attack – verteilte Verweigerung
eines Dienstes-Angriffs) (hiernach „Zugriffs-Flut" – „Access
Flood").
-
Wenn
ein Servercomputer derartigen Angriffen unterliegt, werden Ressourcen,
wie zum Beispiel ein Speicher in dem Servercomputer, verschwendet, da
dieser zum Beispiel einen Datenversorgungsspeicher für jede Verbindungsanfrage
sicherstellen muss. Dies wirkt besonders störend auf einen normalen Zugang
von Clientcomputern ein, die keine Absicht haben, einen Schaden
zu verursachen.
-
Eine
Servercomputer-Schutzvorrichtung, die zwischen Servercomputern und
einem Netzwerk angeordnet wird, wird herkömmlich bereitgestellt, um den
Servercomputer gegen derartige Angriffe zu schützen. Hinsichtlich einer SYN-Flut
verarbeitet die herkömmliche
Servercomputer-Schutzvorrichtung lediglich die Verbindungsanfrage,
die eine Vielzahl von Malen als eine ordnungsgemäße Verbindungsanfrage wiederholt
wird oder verarbeitet die Zugangsanfrage von einem Client, der bereits
einen ordnungsgemäßen Zugang
als eine ordnungsgemäße Verbindungsanfrage
durchgeführt
hat. Diese Vorrichtung betrachtet andere Arten von Zugriffen als
nicht-ordnungsgemäße Zugriffe,
um diese zurückzuweisen und
die entsprechenden Pakete zu verwerfen.
-
Falls
jedoch ein Angreifer die gleiche Verbindungsanfrage viele Male zu
der herkömmlichen Computerschutzvorrichtung
ausgibt, wird ein Angriff erfolgreich. Zusätzlich kann die herkömmliche Schutzvorrichtung
nicht mit aufgebauter Flut und Zugriffsflut umgehen.
-
Eine
derartige herkömmliche
Servercomputer-Schutzvorrichtung arbeitet lediglich derart, dass nicht-ordnungsgemäße Zugriffe
aktiv detektiert werden, um geblockt zu werden. Es ist wünschenswert, dass
eine Servercomputer-Schutzvorrichtung den Servercomputer durch Durchführen eines
Bestimmungsprozesses schützt,
der bestimmt ob oder ob nicht ein Zugriff normal ist, dann es dem
Zugriff erlaubt, durch die Vorrichtung zu passieren, falls der Zugriff
als normal bestimmt wird oder den Zugriff in dieser Verbleiben lässt, der
nicht durch die Vorrichtung passieren kann.
-
Schuba
et al. "Analysis
of a Denial of Service Attack an TCP" Security and Privacy 1997 Proceedings,
1997 IEEE Symposium IEEE Computer Soc. 4. May 1997, S. 208-223 beschreibt
ein System, das einen Server überwacht,
welches diesen schützt
und den Netzwerkverkehr in oder von einem Server einsetzen kann,
der überwacht
wird.
-
Es
ist ein Ziel der vorliegenden Erfindung, ein Servercomputer-Schutzverfahren
und eine -Vorrichtung bereitzustellen, die einen Servercomputer
vollständig
gegen DoS-Angriffe schützen
kann.
-
Gemäß einem
Aspekt der vorliegenden Erfindung wird eine Servercomputer-Schutzvorrichtung zum
Schützen
eines Servercomputers durch Erlauben von lediglich ordnungsgemäßem Zugang
von einem oder mehr Clientcomputern bereitgestellt, um den Servercomputer
zu erreichen, gekennzeichnet durch: eine Zugangsanforderungs-empfangenden Vorrichtung
zum Empfangen von Zugangsanforderungen anstelle des Servercomputers,
die von den Clientcomputern gesendet werden; eine Zugangsanforderungs-überprüfende Vorrichtung
zum Überprüfen jeder
empfangenen Zugangsanforderung, um zu bestimmen, ob die empfangene
Zugriffsanforderung ordnungsgemäß ist oder
nicht, wobei die Zugriffsanforderungs-überprüfende Vorrichtung angepasst
ist, die Zugangsanforderung als ordnungsgemäß zu bestimmen, wenn ein Verbindungsanforderungspaket und
ein Bestätigungspaket,
das dem Verbindungsanforderungspaket folgt, empfangen werden und
dann ein Datenanforderungspaket empfangen wird bevor eine spezifische
Zeit abläuft,
wobei das Datenanforderungspaket anfordert, dass der Servercomputer Daten
an den einen oder mehrere Clientcomputer überträgt; und eine Zugangsanforderungs-Übertragungsvorrichtung
zum Übertragen
lediglich der Zugangsanforderung zu dem Servercomputer, die als ordnungsgemäß bestimmt
ist, während
verhindert wird, dass andere Zugangsanforderungen, die als nicht-ordnungsgemäß bestimmt
sind, zu dem Servercomputer übertragen
werden.
-
Gemäß einem
Aspekt der vorliegenden Erfindung wird ein Servercomputer-Schutzverfahren
eines Schützens
eines Servercomputers durch Erlauben von lediglich ordnungsgemäßem Zugang
von einem oder mehreren Clientcomputern bereitgestellt, um den Servercomputer
zu erreichen, gekennzeichnet durch: Empfangen anstelle des Servercomputers von
Zugriffsanforderungen, die von den Clientcomputern gesenden werden; Überprüfen jeder
empfangenen Zugangsanforderung, um zu bestimmen, ob die empfangene
Zugangsanforderung ordnungsgemäß ist oder
nicht, wobei Zugangsanforderung als ordnungsgemäß bestimmt wird, wenn ein Verbindungsanforderungspaket
und ein Bestätigungspaket,
das dem Verbindungsanforderungspaket folgt, empfangen werden und
dann ein Datenanforderungspaket empfangen wird bevor eine spezifische
Zeit abläuft, wobei
das Datenanforderungspaket anfordert, dass der Servercomputer Daten
zu einem oder mehreren Clientcomputern überträgt; und Übertragen an den Servercomputer
lediglich der Zugangsanforderung, die als ordnungsgemäß bestimmt
wird, während
verhindert wird, dass andere Zugangsanforderungen, die als nicht-ordnungsgemäß bestimmt
sind, zu dem Servercomputer übertragen
werden.
-
Gemäß einem
Aspekt der vorliegenden Erfindung wird ein Computerprogrammprodukt
bereitgestellt mit: einem Computerspeichermedium und einem Computerprogrammcode-Mechanismus, der
in dem Computerspeichermedium zum Veranlassen eines Computers eingebettet
ist, um eine Servercomputer-Vorrichtung durch Erlauben von lediglich
ordnungsgemäßem Zugang
von einem oder mehreren Clientcomputervorrichtungen zu schützen, um
die Servercomputervorrichtung zu erreichen, wobei der Computercodemechanismus
gekennzeichnet ist durch: ein Codesegment zum Empfangen anstelle der
Servercomputervorrichtung von Zugangsanforderungen, die von den
Clientcomputervorrichtungen gesendet werden; ein Codesegment zum Überprüfen jeder
empfangenen Zugangsanforderung, um zu bestimmen, ob die empfangene
Zugangsanforderung ordnungsgemäß ist oder
nicht, wobei die Zugangsanforderung als ordnungsgemäß bestimmt
wird, wenn ein Verbindungsanforderungspaket und ein Bestätigungspaket,
das dem Verbindungsanforderungspaket folgt, empfangen werden und
dann ein Datenanforderungspaket empfangen wird, bevor eine spezifische
Zeit abläuft,
wobei das Datenanforderungspaket anfordert, dass der Servercomputer
Daten zu einem oder mehreren Clientcomputern überträgt; und ein Codesegment zum Übertragen
an die Servercomputervorrichtung lediglich der Zugangsanforderungen,
die als ordnungsgemäß bestimmt
sind, während
verhindert wird, dass andere Zugangsanforderungen, die als nicht-ordnungsgemäß bestimmt
sind, zu der Servercomputervorrichtung übertragen werden.
-
Diese
Zusammenfassung der Erfindung beschreibt nicht notwendigerweise
alle notwendigen Merkmale, so dass die Erfindung ebenso eine Unter-Kombination
dieser beschriebenen Merkmale sein kann.
-
Die
Erfindung kann vollständiger
aus der folgenden detaillierten Beschreibung verstanden werden,
wenn diese in Verbindung mit den begleitenden Zeichnungen genommen
wird, in denen:
-
1 ein
Netzwerksystem ist, auf das eine Servercomputer-Schutzvorrichtung
gemäß einer Ausführung der
vorliegenden Erfindung angewendet wird;
-
2 ein
Blockdiagramm ist, das eine schematische Struktur einer Servercomputer-Schutzvorrichtung
gemäß der ersten
Ausführung
der vorliegenden Erfindung zeigt;
-
3 ein
Flussdiagramm ist, das einen Verarbeitungsbetrieb der Servercomputer-Schutzvorrichtung
gemäß der ersten
Ausführung
zeigt;
-
4 ein
Blockdiagramm ist, das eine schematische Struktur einer Servercomputer-Schutzvorrichtung
gemäß der zweiten
Ausführung
der vorliegenden Erfindung zeigt;
-
5A und 5B Flussdiagramme
sind, die einen Verarbeitungsbetrieb der Servercomputer-Schutzvorrichtung
gemäß der zweiten
Ausführung
zeigen;
-
6 ein
Blockdiagramm ist, das eine schematische Struktur einer Servercomputer-Schutzvorrichtung
gemäß der dritten
Ausführung
der vorliegenden Erfindung zeigt;
-
7 ein
Flussdiagramm ist, das einen Verarbeitungsbetrieb der Servercomputer-Schutzvorrichtung
gemäß der dritten
Ausführung
zeigt;
-
8 ein
Blockdiagramm ist, das eine schematische Struktur einer Servercomputer-Schutzausrüstung gemäß der vierten
Ausführung
der vorliegenden Erfindung zeigt;
-
9 einen
typischen IP-Header in TCP/IP zeigt;
-
10 einen
typischen TCP-Header in TCP/IP zeigt;
-
11 eine
Ausführung
einer Header-Korrektur zeigt, die von der Schutzvorrichtung durchgeführt wird;
-
12 ein
Blockdiagramm ist, das eine schematische Struktur einer Servercomputer-Schutzvorrichtung
gemäß der fünften Ausführung der
vorliegenden Erfindung zeigt;
-
13 eine
Struktur einer Verbindungssteuereinheit zeigt;
-
14 ein
Blockdiagramm ist, das eine schematische Struktur einer Servercomputer-Schutzvorrichtung
gemäß der sechsten
Ausführung
der vorliegenden Erfindung zeigt;
-
15 ein
Blockdiagramm ist, das eine schematische Struktur einer Servercomputer-Schutzvorrichtung
gemäß einer
Modifikation der sechsten Ausführung
der vorliegenden Erfindung zeigt;
-
16 ein
Blockdiagramm ist, das eine schematische Struktur einer Servercomputer-Schutzvorrichtung
gemäß der siebenten
Ausführung
der vorliegenden Erfindung zeigt;
-
17 ein
Flussdiagramm ist, das einen Verarbeitungsbetrieb der Servercomputer-Schutzvorrichtung
gemäß der siebenten
Ausführung
der vorliegenden Erfindung zeigt;
-
18 ein
Beispiel eines Zugriffsanfrageverfahrens (3-Wege-Handshake-Schema) zeigt;
-
19 ein
Beispiel eines Angriffmusters zeigt (SYN-Flut);
-
20 ein
anderes Beispiel eines Angriffmusters zeigt (aufgebaute Flut); und
-
21 ein
anderes Beispiel eines Angriffmusters zeigt (Zugriffs-Flut).
-
Ausführungen
der vorliegenden Erfindung werden unten unter Bezug auf die Ansichten
der begleitenden Zeichnungen beschrieben.
-
1 ist
eine schematische Ansicht, die ein Netzwerksystem zeigt, in dem
eine Servercomputer-Schutzvorrichtung gemäß Ausführungsformen der vorliegenden
Erfindung implementiert ist. In dem System ist ein Servercomputer 104 mit
einem Netzwerk 102 über
eine Servercomputer-Schutzausrüstung 103 verbunden.
Der Servercomputer 104 tauscht Datenpakete mit Clientcomputern 101-1, 101-2, 102-3 (hiernach
gemeinsam „Clientcomputer 101"), die mit dem Netzwerk 102 verbunden
sind, durch die Servercomputer-Schutzausrüstung fehlerfrei aus.
-
(Erste Ausführungsform)
-
2 ist
ein Blockdiagramm, das eine schematische Struktur einer Servercomputer-Schutzvorrichtung
(hiernach „Schutzvorrichtung") 103 gemäß der ersten
Ausführungsform
der vorliegenden Erfindung zeigt. Die Schutzvorrichtung 103 umfasst
eine Zugangsanfrage-empfangende Einheit 201, eine Zugangsanfrage-überprüfende Einheit 202 und
eine Zugangsanfrage-Übertragungseinheit 203.
Die Schutzvorrichtung 103 empfängt und überprüft eine Zugangsanfrage von
einem Servercomputer 104 anstelle des Servercomputers 104.
-
Ein
Zugangsanfragepaket, das von einem Clientcomputer 101 gesendet
wird, wird vor einer Überprüfung von
der Zugangsanfrage-empfangenden Einheit 201 empfangen und
dann an die Zugangsanfrage-überprüfende Einheit 202 übertragen. Zugangsanfragepakete
umfassen Pakete in drei Stufen, nämlich ein Verbindungsanfragepaket
(SYN-Paket), ein Bestätigungspaket
(ACK-Paket) und ein Datenanforderungspaket (zum Beispiel als „URL-Paket" in einer Erklärung von
Ausführungsformen
bezeichnet). Die Zugangsanfrageüberprüfende Einheit 202 überprüft, ob oder
ob nicht die Sequenz von Zugangsanfragepaketen in der ordnungsgemäßen Reihenfolge
bei ordnungsgemäßen Zeiträumen angekommen
ist.
-
Das Überprüfungsergebnis
des Zugangsanfragepakets von der Zugangsanfrage-überprüfenden Einheit 202 wird
an die Zugangsanfrage-empfangende Einheit 201 gemeldet.
Das überprüfte Zugangsanfragepaket
wird an die Zugangsanfrage-Übertragungseinheit 203 gesendet.
Das überprüfte Zugangsanfragepaket
wird von der Zugangsanfrage-Übertragungseinheit 203 an
einen Servercomputer 104 übertragen, falls das Überprüfungsergebnis normal
ist.
-
Der
Fluss eines gesamten Verarbeitens von der Servercomputer-Schutzausrüstung 103 wird
unten unter Bezug auf das Flussdiagramm aus 3 beschrieben.
Zunächst
sendet auf Empfang eines Verbindungsanfragepaketes (SYN-Paket) von
dem Clientcomputer 101 hin die Servercomputer-Schutzausrüstung 103 ein
Verbindungsanfrage-Bestätigungspaket
(SYN+ACK) an den Clientcomputer (S101) und geht in einen Wartezustand
auf ein Zugangsanfragepaket über
(d.h. ACK-Paket oder URL-Paket) in der nächsten Stufe (S102).
-
Hier überprüft die Zugangsanfrage-überprüfende Einheit 202 in
Schritt S103, ob oder ob nicht die Zugangsanfrage eine ordnungsgemäße Zugangsanfrage
ist (dies kann in einer anderen Weise ausgedrückt werden als „ob oder
ob nicht diese eine nicht-ordnungsgemäße Zugangsanfrage" ist). Die auf die Überprüfung angewendeten
Bedingungen umfassen zum Beispiel ein Bestimmen, ob URL-Pakete von dem
Clientcomputer 101 in einem vorbestimmten Zeitraum gesendet
werden, während
die Verbindung aufgebaut ist. Es sollte erwähnt werden, dass die Bedingungen
für die
Zugangsanfrage nicht für
eine nicht-ordnungsgemäße Zugangsanfrage
sein sollten, sondern für
eine ordnungsgemäße Zugangsanfrage.
-
Bei
Schritt 103 werden in dieser Ausführung Zugangsanfragen einer
SYN-Flut einschließlich
aufgebauter-Flut, die in der Beschreibung des verwandten Standes
der Technik beschrieben sind, als nicht-ordnungsgemäße Zugriffe
beseitigt, da URL-Pakete
nicht innerhalb eines bestimmten Zeitraumes gesendet werden, falls
eine SYN-Flut einschließlich
einer aufgebauten-Flut
auftritt.
-
Falls
die Zugangsanfragen als eine ordnungsgemäße Anfrage nach der Überprüfung bestimmt
ist, verbindet die Zugangsanfrage-Übertragungseinheit 203 mit
dem Servercomputer 104 (S104) und überträgt die ordnungsgemäße Zugangsanfrage
an den Servercomputer 104 (S105). Der Servercomputer 104 liefert
die Daten, die von dem URL-Paket bestimmt sind, an den Clientcomputer 101 über die
Servercomputer-Schutzausrüstung 103 auf
einer Paketbasis (S106). Die Servercomputer-Schutzausrüstung 103 trennt
von dem Servercomputer 104 auf Beendigung der Datenlieferung
hin (S107) und trennt ebenso von dem Clientcomputer 101.
Falls die Zugangsanfragen als nicht-ordnungsgemäße Anfrage in Schritt S103
bestimmt werden, geht der Schritt zu S108 und ein Trenn-Verarbeiten für den Client
wird ausgeführt.
-
Die
Struktur einer praktischeren Ausführungsform der vorliegenden
Erfindung ist zum Beispiel unten beschrieben.
-
Eine
Schutzvorrichtung 103 umfasst eine Takteinheit zum Messen
des Fortschritts bei der Zeit nach Aufbauen der Erfindung mit dem
Clientcomputer 101, bis ein Datenanforderungspaket ankommt. Falls
eine vorbestimmte Art von Paket (zum Beispiel ein Datenanforderungspaket)
nicht an eine Datenanforderungs-empfangende Einheit 201 gesendet
wird, bestimmt die Schutzvorrichtung 103, dass es einen nicht-ordnungsgemäßen Zugriff
gibt und bricht die Verbindung ab. Dadurch werden Ressourcenallokationen
in der Schutzvorrichtung 103 daran gehindert, überdimensioniert
zu sein und Ressourcen, wie zum Beispiel ein Speicher, können schnell
in Reaktion auf einen Verbindungsbetrieb durch den ordnungsgemäßen Clientcomputer 101 alloziert
werden.
-
Ebenso
kann die Schutzvorrichtung 103 einen Zugriff, der einen
großen
Fortschritt der Zeit nach einem Aufbauen einer Verbindung aufweist,
bis ein Datenanforderungspaket ankommt, als einen nicht-ordnungsgemäßen Zugang
bestimmen und die Verbindung abbrechen.
-
Das
Schutzgerät 103 kann
weiter mit einer Zähleinheit
zum Zählen
der Anzahl von Anfragen ausgerüstet
werden, die für
die gleichen Daten von dem gleichen Clientcomputer in einem vorbestimmten
Zeitraum durchgeführt
werden.
-
Wenn
die Anzahl von Anforderungen für
die gleichen Daten größer als
eine vorbestimmte Zahl innerhalb eines bestimmten Zeitraums ist,
bestimmt die Schutzvorrichtung 103, dass der Zugang nicht-ordnungsgemäß ist und
bricht die Verbindung ab.
-
Gemäß der oben
beschriebenen Ausführungsform
wird ein Servercomputer gegen einen DoS-Angriff geschützt, wie
zum Beispiel SYN-Flut einschließlich
aufgebauter-Flut. Die Struktur zum vollen Schützen eines Servercomputers
gegen Angriffe einschließlich
Zugriffs-Flut, die in der Beschreibung des verwandten Stands der
Technik beschrieben ist, wird in einer anderen Ausführungsform
erklärt.
-
Der
auf dem Gebiet tätige
Fachmann erkennt, dass die Bedingungen, die von der Zugangsanfrage-überprüfenden Einheit 202 verwendet
werden, eine Zugangsanfrage in Schritt S103 zu überprüfen, nicht auf den Zeitraum
bis zu einer Ankunft eines URL-Paketes begrenzt sind, wie oben beschrieben
(eine Zugangsanfrage beseitigt wird, die zum Beispiel lediglich
ein SYN-Paket sendet). Zum Beispiel kann eine Zugangsanfrage, die
niemals an den Servercomputer 104 gegeben werden darf,
als die Bedingung verwendet werden. In dem Falle zum Beispiel darf
ein Zugriff als ein ordnungsgemäßer Zugriff hindurchpassieren,
falls die Zugangsanfrage ersichtlich kein nicht-ordnungsgemäßes URL-Paket ist.
-
Die
Ausführungsform
kann wie folgt modifiziert werden. Jedes Paket einer der Stufen,
die eine Zugangsanfrage bestehen, wird nicht an den Servercomputer 104 übertragen
bis die Pakete aller der Stufen von der Zugangsanfrage-empfangenden
Einheit 201 empfangen sind. Wenn die Pakete aller der Stufen
von der Zugangsanfrage-empfangenden Einheit 201 empfangen
sind, werden die empfangenen Pakete bei der Datenanfrageüberprüfenden Einheit 202 überprüft und als
eine ordnungsgemäße Zugangsanfrage
bestimmt, die Zugangsanfrage-Übertragungseinheit 203 überträgt dann
die bestimmten Pakete an den Servercomputer 104.
-
(Zweite Ausführungsform)
-
4 ist
ein Blockdiagramm, das eine schematische Struktur einer Servercomputer-Schutzvorrichtung
gemäß der zweiten
Ausführung
der vorliegenden Erfindung darstellt. Die Ausführungsform betrifft eine Servercomputer-Schutzvorrichtung,
die ein nicht-ordnungsgemäßes Anforderungspaket,
das eine übermäßige Last
auf einem Servercomputer 104 ergeben kann, basierend auf
Datenliefernden Zuständen
von dem Servercomputer 104 detektiert, so dass der Servercomputer 104 geschützt wird.
Die Schutzvorrichtung 103, die in 4 gezeigt
ist, bestimmt, ob oder ob nicht die Anzahl von Verbindungsanfragen
(die Anzahl von SYN-Paketen), die von dem Clientcomputer 101 gesendet
wird, im Überangebot
verglichen mit der Anzahl einer Datenlieferung von dem Servercomputer 104 ist.
Wenn die Anzahl von Verbindungsanfragen ein Überangebot wird, bestimmt die
Schutzvorrichtung 103, dass die Last auf dem Servercomputer 104 übermäßig ist
und begrenzt ein Übertragen
der Zugangsanfragen zu dem Servercomputer 104 (oder stoppt
das Übertragen und
weist die Zugriffsanfrage zurück).
-
Wie
in 4 gezeigt umfasst die Serverschutzvorrichtung 103 dieser
Ausführungsform
eine Verbindungsanfragen-zählende
Einheit 303 und eine Serverlast-überprüfende Einheit 302,
die anstelle einer Zugangsanfrage-überprüfenden Einheit 202 zum Überprüfen des
Inhalts von Zugangsanforderungen bereitgestellt werden, wie in der
ersten Ausführung beschrieben
ist.
-
Ein
Verbindungsanfragepaket (SYN-Paket) von dem Clientcomputer 101 wird
von einer Zugangsanfrage-empfangenden Einheit 201 empfangen.
Das Verbindungsanfragepaket wird ebenso in die Verbindungsanfrage-zählende Einheit 303 eingegeben.
Die Verbindungsanfrage-zählende
Einheit 303 zählt
die Anzahl von Verbindungsanfragen des Servercomputers 104.
Die Anzahl von Verbindungsanfragen umfasst die Gesamtzahl von SYN-Paketen an
den Servercomputer 104, die von allen der Clientcomputer
einschließlich
des Clientcomputers 101 angefordert werden. Bemerke, dass
im Allgemeinen eine Vielzahl von Verbindungen zwischen einem Clientcomputer
und einem Servercomputer eingerichtet sind.
-
Eine
zählende
Einheit für
gelieferte Daten 301 zählt
andauernd und/oder periodisch die Anzahl von Daten, die von dem
Servercomputer 104 geliefert werden. Die Anzahl von gelieferten
Daten bedeutet die Anzahl von Malen, die Daten tatsächlich auf
Empfang einer gegebenen Verbindungsanfrage durch eine aufgebaute
Verbindung geliefert werden.
-
Der
Fluss eines gesamten Verarbeitens von der Schutzvorrichtung 103 wird
unten unter Bezug auf das Flussdiagramm aus 5A beschrieben.
-
Zunächst ist
die Schutzvorrichtung 103 in einem Wartezustand auf eine
Verbindungsanfrage (S201). Wenn ein SYN-Paket (Verbindungsanfrage) von
dem Clientcomputer 101 von der Verbindungsanfrage-zählenden
Einheit 303 akzeptiert wird, überprüft eine Serverlast-überprüfende Einheit 302 auf der
Basis der Anzahl von gelieferten Daten, die von der zählenden
Einheit 301 gezählt
werden und der Anzahl von Verbindungsanfragen, die von der Verbindungsanfragen-zählenden Einheit 303 gezählt wird,
ob die Last auf dem Servercomputer übermäßig ist oder nicht (S202).
Falls insbesondere zum Beispiel die Anzahl von gelieferten Daten
relativ klein im Vergleich zu der Anzahl von Verbindungsanfragepaketen
(SYN-Paketen) ist, wird es bestimmt, dass die Anzahl von Verbindungsanfragepaketen übermäßig ist
und die Last auf dem Servercomputer 104 ebenso übermäßig sein
kann. Bemerke, dass in Schritt S202 die Verbindungsanfragezählende Einheit 303 die
Anzahl von Datenanforderungen (die Gesamtzahl von URL-Paketen) statt
einem Zählen
der Anzahl von Verbindungsanfragen (der Gesamtzahl von SYN-Paketen)
zählen
kann.
-
Falls
es in Schritt S202 bestimmt wird, dass die Anzahl von Verbindungsanfragen
nicht übermäßig ist,
verbindet die Schutzvorrichtung 103 mit dem Clientcomputer 101,
der einen Zugang angefordert hat (S203) und geht in einen Datenanforderungs-erwartenden
Zustand über
(S204). Zu dieser Zeit erhöht
die Serverlast-überprüfende Einheit 302 die
Anzahl von Verbindungen um eins (S205).
-
Die
Schutzvorrichtung 103 verbindet dann mit dem Servercomputer 104 (S206)
und überträgt ein Datenanforderungspaket
(URL-Paket), das von dem Clientcomputer 101 gesendet wird,
an den Servercomputer 104 (S207). Nachdem der Servercomputer 104 Daten
an den Clientcomputer 101 liefert (S208), trennt die Schutzvorrichtung 103 von
dem Clientcomputer 101 und Servercomputer 104 (S209). Die
Serverlast-überprüfende Einheit 302 vermindert die
Anzahl von Verbindungen um eins (S210).
-
Falls
es im Gegensatz dazu in Schritt S202 bestimmt wird, dass die Anzahl
von Verbindungsfragen übermäßig ist,
nämlich
die Last auf dem Servercomputer 104 übermäßig ist, geht die Schutzvorrichtung
in einen Wartezustand auf eine Verbindungsanfrage (S201).
-
Gemäß dieser
Ausführungsform
ist es möglich,
zu verhindern, dass die Last auf dem Servercomputer 104 übermäßig aufgrund
von DoS-Angriffen wird und den Durchsatz des Servers davon abzuhalten,
sich zu vermindern.
-
5B zeigt
eine Modifikation des Verarbeitungsbetriebes, der in 5A gezeigt
ist.
-
Falls
es in Schritt S202 bestimmt wird, dass die Anzahl von Verbindungsanfragen übermäßig ist, bestimmt
Schritt S202' in 5B,
ob die älteste
von Verbindungen, die kein Verbindungs-Verarbeiten unterlaufen hat,
abgebrochen werden sollte oder nicht. Falls die Anzahl von Verbindungsanfragen
die Anzahl von Verbindungen überschreitet,
die von der Schutzvorrichtung 103 gehandhabt werden können, wird
die älteste
Verbindung abgebrochen. Dann geht der Prozess zu Schritt S203 eines
Verbindens mit einem Clientcomputer. Das nachfolgende Verarbeiten ist
das Gleiche wie dasjenige, das in 5A gezeigt ist.
Falls es in Schritt S202' bestimmt
wird, dass die Anzahl von Verbindungen die Anzahl von Verbindungen
nicht überschreitet,
die von der Schutzvorrichtung 103 gehandhabt werden können, wird
ein Wartezustand auf eine Verbindungsanfrage wiederhergestellt (S201).
-
Durch
Abbrechen der ältesten
Verbindung gemäß dieser
Modifikation kann ein Dienst fortgesetzt werden, selbst wenn ein
DoS-Angriff auf die Schutzvorrichtung selbst durchgeführt wird.
Die zweite Ausführungsform
ist besonders geeignet zum Bewältigen
von Angriffen einschließlich
Zugriffs-Flut, die in der Beschreibung des verwandten Standes der Technik
beschrieben ist.
-
(Dritte Ausführungsform)
-
6 ist
ein Blockdiagramm, das eine schematische Struktur einer Servercomputer-Schutzvorrichtung 103 gemäß der dritten
Ausführungsform zeigt. 7 ist
ein Flussdiagramm, das den Verarbeitungsbetrieb darstellt, der von
dem Gerät
gemäß dieser
Ausführung
durchgeführt
wird. Diese Ausführungsform
umfasst eine Anzahl von zählenden
Einheiten für
gelieferte Daten 301, die die Anzahl von Datenlieferungen
für jeden
Clientcomputer zählen, der
eine Zugangsanfrage gesendet hat und Serverlast-überpfrüfenden Einheiten 302,
die die Last auf dem Servercomputer ebenso für jeden Clientcomputer überprüfen, die
in Verbindung mit der zweiten Ausführungsform beschrieben sind.
Es sollte erwähnt
werden, dass es genügt,
falls die Daten zählenden
Einheiten 301 und die Serverlast-überpfrüfenden Einheiten 302 einfache
Berechnungsfunktionen aufweisen und daher selbst falls eine große Anzahl dieser
Einheiten bereitgestellt wird, der Speicher oder CPU-Ressourcen der Schutzvorrichtung 103 nicht
sehr viel aufgebraucht werden. Folglich kann ungefähr die gleiche
Anzahl von Paaren von Daten-zählenden
Einheiten 301 bzw. Serverlast-überpfrüfenden Einheiten 302 für 1,000
bis 10,000 Clientcomputer bereitgestellt werden. Es ist alternativ
möglich,
dass ein Paar einer Daten-zählenden
Einheit 301 und eine Serverlast-überprüfende Einheit 302 mit
jeder einer Vielzahl von bereits-aufgebauten Verbindungen in einem
spezifischen Clientcomputer verknüpft werden.
-
Wie
in 7 gezeigt, ist in einer anfänglichen Stufe die Schutzvorrichtung 103 in
einem Wartezustand auf eine Verbindungsanfrage (S301). Dann empfängt die
Vorrichtung 103 ein SYN-Paket und ein ACK-Paket von einem
spezifischen Clientcomputer (zum Beispiel irgendeinem aus 101-1, 101-2, 101-3,
die in 1 gezeigt sind), die Schutzvorrichtung 103 baut
eine Verbindung mit dem spezifischen Clientcomputer (S302) auf.
Dann verknüpft die
Vorrichtung den spezifischen Clientcomputer mit einem Paar einer
Daten-zählenden
Einheit 301 und einer Serverlast-überprüfenden Einheit 302.
Für einige
andere spezifische Clientcomputer, für die eine andere Verbindung
aufgebaut worden ist, werden einige andere Paare einer Daten-zählenden
Einheit 301 und einer Serverlast-überprüfenden Einheit 302 verknüpft.
-
Die
Schutzvorrichtung 103 wird dann in einen Wartezustand auf
eine Zugangsanfrage von dem spezifischen Clientcomputer gesetzt
(S304). Wenn die Zugangsanfrage von dem spezifischen Clientcomputer
gesendet wird, wird die Zugangsanfrage sofort von der Zugangsanfrage-empfangenden
Einheit 201 empfangen und zu einer Zugangsanfrage-Übertragungseinheit 203 gesendet.
Die Zugangsanfrage-Übertragungseinheit 203 überträgt die Zugangsanfrage
an einen Servercomputer 104 und dadurch wird eine Verbindung
zwischen dem spezifischen Clientcomputer und dem Servercomputer 104 aufgebaut
(S305).
-
Die
zählende
Einheit für
gelieferte Daten 301 zählt
Daten, die an den spezifischen Clientcomputer geliefert werden,
an den der Servercomputer 104 gegenwärtig die angeforderten Daten
liefert und die Serverlast-überprüfende Einheit 302 überprüft, ob die
Last auf dem Server von dem spezifischen Clientcomputer übermäßig ist
oder nicht (S306).
-
Falls
die Last die vorbestimmte Last nicht überschreitet, weist die Serverlast-überprüfende Einheit 302 die
Zugangsanfrage-Übertragungseinheit 203 an,
ein URL-Paket an den Servercomputer 104 zu übertragen
(S307). Der Servercomputer 104 liefert dann die angeforderten
Daten an den spezifischen Clientcomputer (S308). Auf Beendigung
einer Datenlieferung hin trennt die Schutzvorrichtung 103 die Verbindung
zwischen dem spezifischen Clientcomputer und dem Servercomputer.
-
Falls
die Last die vorbestimmte Last überschreitet,
wird das Verarbeiten in Schritt S306 erneut durchgeführt, um
die Zugangsanfrage-Übertragungseinheit 203 vom Übertragen
eines Datenanforderungspaket an den Servercomputer 104 abzuhalten und
die Schutzvorrichtung 103 wartet, bis die Anzahl von gelieferten
Daten zu dem Clientcomputer abfällt. In
dem Fall, bei dem der spezifische Clientcomputer kein Autorisierter
ist, ist es vorzuziehen, dass die Verbindung nach einem Warten für einen
vorbestimmten Zeitraum gezwungenermaßen getrennt werden sollte.
-
Die
oben beschriebene Ausführungsform
ermöglicht
es, zu verhindern, dass die Last auf dem Servercomputer 104 übermäßig wird
und ebenso zu verhindern, dass ein spezifischer Clientcomputer den Servercomputer 104 belegt,
wodurch eine Störung bei
einer Datenlieferung an andere Computer unterdrückt wird. Daher kann dieses
ebenso eine Zugriffs-Flut bewältigen,
die in einer „Beschreibung
des verwandten Standes der Technik" beschrieben ist.
-
(Vierte Ausführungsform)
-
8 ist
ein Blockdiagramm, das eine schematische Struktur einer Servercomputer-Schutzvorrichtung 103 gemäß der vierten
Ausführungsform zeigt.
Diese Ausführungsform
ist im Wesentlichen die gleiche wie die erste Ausführungsform,
weist jedoch eine Header-korrigierende Einheit 210 auf.
Die Headerkorrigierende Einheit 210 ist für eine geeignete Paketsequenzsteuerung
bereitgestellt, die nach dem Verbindungsprozess durchgeführt wird,
selbst falls die Schutzvorrichtung 103, die zwischen dem
Clientcomputer 101 und dem Servercomputer 104 vermittelt,
Pakete überprüft, bevor
diese Computer verbunden sind.
-
9 zeigt
einen allgemeinen IP-Header bei TCP/IP-Kommunikationen und 10 stellt
einen TCP-Header dar. Die Header-korrigierende Einheit 210 korrigiert
von den Inhalten des IP-Headers eine Prüfsumme 500, eine Ziel-IP-Adresse 501 und
eine Ziel-IP-Adresse 502. Weiter korrigiert die Header-korrigierende Einheit 210 von
den Inhalten des TCP-Headers eine Sequenznummer 503, eine ACK-Nummer 504 und
eine Prüfsumme 505.
-
Gewöhnlicherweise
wird die Sequenz einer Übertragung/eines
Empfangs von Paketen auf der Basis der Sequenznummer 503 gesteuert.
Die Reihenfolge von Paketen wird durch Weiterleiten der Sequenznummer 503 zwischen
dem Servercomputer 104 und dem Clientcomputer 101 in
sowohl Empfangs- als auch Übertragungsrichtungen
bestimmt.
-
Wenn
jedoch die Schutzvorrichtung 103 dieser Ausführungsform
angewendet werden soll, wird ein Verbindungsbetrieb (Schritt S104
in 3) für
einen Servercomputer 104 von einem Clientcomputer 103 nach
einer Überprüfung der
Gültigkeit
einer Datenanforderung von dem Clientcomputer 101 durchgeführt (Schritt
S103 in 3). Daher muss ein Verbindungsverarbeiten
für einen
Clientcomputer 101 unweigerlich mit der Schutzvorrichtungs-Sequenznummer
durchgeführt
werden, die beliebig von der Servercomputer-Schutzvorrichtung 103 erzeugt
wird (Schritt S101 in 3). Da diese Schutzvorrichtungs-Sequenznummer
sich von der Servercomputer-Sequenznummer unterscheidet, die von
dem Servercomputer 104 beim Verbindungsverarbeiten (Schritt
S104 in 3) für den Servercomputer gemeldet
wird, das nach der Überprüfung durchgeführt wird,
kann, falls das Paket der angeforderten Daten ohne irgendeine Änderung übertragen
wird, keine Datenübertragung
durch Verwenden des TCP/IP-Protokolls durchgeführt werden. Aus diesem Grund
wird der Unterschied zwischen diesen Sequenznummern durch Verwenden
der Header-korrigierenden
Einheit 210 korrigiert und andere Header-Information (z.B.
eine Übertragungsziel-IP-Adresse
oder eine Ziel-IP-Adresse) wird für ein Abbilden wie benötigt korrigiert,
wodurch eine Kommunikation von dem Servercomputer 104 zu dem
Clientcomputer 101 erlaubt wird. 11 zeigt ein
Beispiel einer Korrektur eines Headers durch die Schutzvorrichtung 103.
-
Zum
Beispiel werden die folgenden Operationen (a) bis (c) von der Schutzvorrichtung 103 dieser Ausführungsform
für eine
Datenanforderung durchgeführt:
- (a) Überprüfen einer
Verbindungsanfrage von dem Clientcomputer 101 von einer
Datenanforderungs-empfangenden
Einheit 201, einer Datenanforderungs-überprüfenden Einheit 202 und
einer Datenanforderungs-Übertragungseinheit 203 und Aufbauen
einer Verbindung zwischen dem Clientcomputer 101 und dem
Servercomputer 104;
- (b) Korrigieren des Headers des Datenanforderungspaketes, das
von dem Clientcomputer 101 über diese Verbindung gesendet
wird, durch Verwenden der Header-korrigierenden Einheit 210 und
dann Übertragen
des Pakets an den Servercomputer 104; und
- (c) Korrigieren des Headers des Datenpakets, das von dem Servercomputer 104 über diese
Verbindung gesendet wird, durch Verwenden der Header-korrigierenden Einheit 210 und
dann Übertragen
des Pakets an den Clientcomputer 101.
-
Gemäß dieser
Ausführungsform
können, falls
die Schutzvorrichtung vermittelt, um Zugangsanfragepakete zu überprüfen, Kommunikationen,
die zwischen dem Servercomputer 104 und dem Clientcomputer 101 durchgeführt werden,
ohne Probleme aufgebaut werden.
-
(Fünfte
Ausführungsform)
-
12 ist
ein Blockdiagramm, das eine schematische Struktur einer Servercomputer-Schutzvorrichtung
gemäß der fünften Ausführung der
vorliegenden Erfindung darstellt. Eine Header-Korrektureinheit 210,
die die gleiche wie diejenige ist, die in der vierten Ausführungsform
beschrieben ist, wird zu der Anordnung der zweiten Ausführungsform
hinzugefügt.
-
Wie
oben beschrieben, schützt
die Schutzvorrichtung 103 der zweiten Ausführungsform
den Servercomputer 104 auf der Basis eines Datenlieferungszustandes
durch Detektieren nicht-ordnungsgemäßer Verbindungsanfragen,
die auf den Servercomputer 104 eine schwere Last auferlegen
können. Zu
diesem Zwecke sind ebenso eine zählende
Einheit für
gelieferte Daten 301 und eine Serverlast-überprüfende Einheit 302 in
der Schutzvorrichtung der fünften
Ausführungsform
bereitgestellt. Die Serverlast-überprüfende Einheit 302 überprüft, ob die
Last auf dem Server 104 übermäßig ist oder nicht, basierend
auf der Anzahl der gelieferten Daten, die von der zählenden
Einheit für
gelieferte Daten 301 gezählt werden und basierend auf
den Verbindungsanfragen, die von der Verbindungsanfrage-zählenden
Einheit 303 gezählt
werden. Insbesondere wird es zum Beispiel bestimmt, dass die Anzahl
von Verbindungsanfragen übermäßig ist
und daher der Servercomputer 104 einer schweren Last unterliegt,
falls die Anzahl von gelieferten Daten verhältnismäßig klein verglichen mit der
Anzahl der Verbindungsanfragepakete (SYN-Pakete) ist.
-
Die
Header-Korrektureinheit 210 korrigiert TCP/IP-Header derart,
dass die Paketsequenzsteuerung nach dem Verbindungsverarbeiten geeignet durchgeführt werden
kann, selbst falls die Schutzvorrichtung 103 zwischen dem
Clientcomputer 101 und dem Servercomputer 104 liegt,
um die Last auf dem Servercomputer 104 zu überprüfen.
-
13 zeigt
eine Anordnung der Verbindungsverwaltungseinheit, die verwendet
wird, wenn die Header-Korrektureinheit 210 die Verbindung
zwischen dem Clientcomputer 101 und dem Servercomputer 104 verwaltet.
Die Verbindungsverwaltungseinheit verwaltet die entsprechende Beziehung
(Verbindung) zwischen einer IP-Adresse des Clientcomputers 101,
einer IP-Adresse des Servercomputers 104 und einer Portnummer
durch Verwenden einer Hash-Funktion 601 und einer Hash-Tabelle 602.
-
Eine
derartige Verbindungsverwaltungseinheit kann zum Überprüfen der
Last auf dem Server verwendet werden, z.B. in Schritt S202, der
in 5 gezeigt ist. Insbesondere bestimmt
die Serverlast-überprüfende Einheit 302 in
Schritt 603, dass die Last auf dem Servercomputer 104 übermäßig ist, wenn
die Hash-Tabelle 602 überläuft.
-
Beachte,
dass die Verbindungsverwaltungseinheit, die in 13 gezeigt
ist, in der Anordnung der sechsten Ausführungsform umfasst sein kann.
-
(Sechste Ausführungsform)
-
14 ist
ein Blockdiagramm, das eine schematische Struktur einer Servercomputer-Schutzvorrichtung
gemäß der sechsten
Ausführung
der vorliegenden Erfindung darstellt. Eine Header-Korrektureinheit 210,
die die gleiche wie diejenige ist, die in der vierten Ausführung beschrieben
ist, wird zu der Anordnung der dritten Ausführung hinzugefügt. Wie
oben beschrieben, zählt
die Schutzvorrichtung 103 der dritten Ausführung die
Anzahl von gelieferten Daten für
Clientcomputer, um die Last auf den Servercomputer 104 zu überprüfen. Zu
diesem Zwecke wird ebenso eine große Anzahl von zählenden
Einheiten für
gelieferte Daten 301 und Serverlast-überprüfenden Einheiten 302 in
der Schutzvorrichtung in der sechsten Ausführungsform bereitgestellt.
Da für
eine zählende
Einheit für
gelieferte Daten 301 oder eine Serverlast-überprüfende Einheit 302 eine
einfache Berechnungsfunktionalität,
die ausreicht, bereitgestellt wird, verbraucht eine große Anzahl
von zählenden
Einheiten für
gelieferte Daten 301 oder Serverlast-überprüfende Einheiten 302 lediglich
eine kleine Menge von Ressourcen eines Speichers oder einer CPU
in der Schutzvorrichtung 103. Um demgemäß der Anzahl von 1,000 bis
10,000 Clientcomputern umzugehen, können genauso viele Sätze von
zählenden
Einheiten für
gelieferte Daten 301 und Serverlast-überprüfenden Einheiten 302 bereitgestellt
werden. Bemerke, dass für
einen spezifischen Clientcomputer für jede aus einer Anzahl von aufgebauten
Verbindungen die Sätze
von zählenden Einheiten
für gelieferte
Daten 301 und Serverlast-überprüfenden Einheiten 302 jeweils
verknüpft werden
können.
-
Die
Header-Korrektureinheit 210 korrigiert TCP/IP-Header derart,
dass die Paketsequenzsteuerung nach dem Verbindungsverarbeiten geeignet durchgeführt werden
kann, selbst falls die Schutzvorrichtung 103 zwischen dem
Clientcomputer 101 und dem Servercomputer 104 liegt
und die Schutzvorrichtung 103 überprüft die Last auf dem Servercomputer 104 hinsichtlich
einer großen
Anzahl von Clientcomputern.
-
15 ist
ein Blockdiagramm, das eine schematische Struktur einer Servercomputer-Schutzvorrichtung
gemäß einer
Modifikation der sechsten Ausführungsform
der vorliegenden Erfindung darstellt. Diese Modifikation umfasst
eine Serververbindungs-zählende
Einheit 401 zum Zählen der
Anzahl von Verbindungen zwischen der Servercomputer-Schutzvorrichtung 103 und
einem Servercomputer 104. Das Ausgabeergebnis der Serververbindungs-zählenden
Einheit 401 wird in eine Serverlast-überprüfende Einheit 302 eingegeben,
die für
jeden Clientcomputer bereitgestellt ist. Die Anzahl von Verbindungen
für jeden
Clientcomputer kann durch eine zählende
Einheit für
gelieferte Daten 301 gezählt werden, die für jeden
Clientcomputer bereitgestellt ist. Da jegliche Anzahlen von Verbindungen
einschließlich
der Anzahl von Verbindungen zwischen der Schutzvorrichtung 103 und
dem Servercomputer 104 und der Anzahl von Verbindungen
für jeden
Clientcomputer innerhalb der Servercomputer-Schutzvorrichtung 103 gezählt werden
kann, kann ein Serverlast-Überprüfungsverarbeiten
für jeden
Clientcomputer ermöglicht
werden.
-
(Siebte Ausführungsform)
-
16 ist
ein Blockdiagramm, das eine schematische Struktur einer Servercomputer-Schutzvorrichtung
gemäß der siebten
Ausführung der
vorliegenden Erfindung zeigt. 17 ist
ein Flussdiagramm, das einen Verarbeitungsbetrieb der Servercomputer-Schutzvorrichtung
gemäß der siebten
Ausführung
der vorliegenden Erfindung zeigt. Diese Ausführungsform kann mit anderen
Ausführungsformen
kombiniert werden und umfasst eine Proxy-Antworteinheit 501 (Proxy – Stellvertreter)
zum Antworten an den Clientcomputer 101 statt des Servercomputers 104.
Um es der Proxy-Antworteinheit 501 zu erlauben, den Servercomputer 104 zu
ersetzen, muss die Proxy-Antworteinheit 501 die
Header-korrigierende Einheit 210 aufweisen, die in 8 beschrieben
ist.
-
In 17 wird
eine Verbindung zwischen dem Clientcomputer 101 und der
Schutzvorrichtung 103 gemäß TCP/IP durch das gleiche
Verfahren (S401 bis S404) wie dasjenige aufgebaut, das oben beschrieben
ist. Danach, das heißt,
bevor eine Datenanforderung von dem Clientcomputer 101 gesendet
wird, antwortet die Proxy-Antworteinheit 501 an den Clientcomputer 101 statt
des Servercomputer 104 (S405).
-
Zu
Antworten bedeutet, eine Antwort in einem Protokoll einer höheren Schicht
als TCP/IP zurückzugeben,
z.B. einem Sitzungsprotokoll, das z.B. SMTP (Simple Mail Transfer
Protocol – Einfach-Mail-Übertragungsprotokoll)
oder POP (Post Office Protocol – Postamtprotokoll)
sein kann. In dem Fall von SMTP kann die Antwort eine Nachricht
sein, die einen Zustand anzeigt, in dem der Servercomputer 104 eine
E-Mail empfangen kann. Ebenso kann in dem Falle von POP die Antwort
eine Nachricht sein, die eine POP-Version (z.B. POP3) anzeigt. Im
Allgemeinen gibt die Proxy-Antworteinheit 501 eine Nachricht
mit den gleichen Inhalten wie diejenigen, die zu dem Client zurückgegeben
werden, wenn der Servercomputer 104 normal arbeitet, den
gleichen Inhalte wie diejenigen, die von dem Servercomputer 104 zurückgegeben
werden, durch eine Verbindungsoperation basierend auf einem oberen
Protokoll zurück, die
zwischen der Schutzvorrichtung 103 und dem Servercomputer 104 durchgeführt wird,
direkt vor dem Antwortbetrieb und Ähnlichem.
-
Der
Clientcomputer 101, von dem die Antwort empfangen wird,
bestimmt, dass der verbindende Betrieb mit dem Servercomputer 104 durch
das Protokoll einer oberen Schicht durchgeführt worden ist und schaltet
zu der nächsten
Operation um, wie zum Beispiel einer Erzeugung einer Datenübertragungsanforderung.
-
Die
Datenanforderungs-empfangende Einheit 201 empfängt eine
Datenanforderung von dem Clientcomputer 101. Die Datenanforderungs-überprüfende Einheit 202 überprüft die Inhalte
der Datenanforderung. Die Datenanforderung wird dann an den Servercomputer 104 übertragen.
Der Servercomputer 104 gibt vorbestimmte Daten an den Clientcomputer 101 auf
der Basis der übertragenen
Inhalte zurück.
Nachfolgend wird das Trennverfahren durchgeführt (S406 bis S417). Beispiele
dieser Überprüfung sind
es, zu überprüfen, ob
die Datenanfrage von einer vorbestimmten Anfrageform abweicht und
zu überprüfen, ob
unmögliche
Daten angefordert werden.
-
Falls
die Datenanforderung von dem Clientcomputer 101 wie oben
beschrieben, ordnungsgemäß ist, führt die
Schutzvorrichtung 103 einen verbindenden Betrieb in Bezug
auf den Servercomputer 104 durch und überträgt die Anforderung von dem Clientcomputer 101 an
den Servercomputer 104. Die Antwort, die von dem Servercomputer 104 nach
diesem verbindenden Betrieb zurückgegeben
wird, kann möglicherweise
falsch mit der Antwort laufen, die zuvor an den Servercomputer von
der Servercomputer-Schutzvorrichtung 103 zurückgegeben wird.
Aus diesem Grund wird die Antwort nicht an den Client übertragen,
solange kein Problem beim Verarbeiten für die Datenanforderung entsteht.
Falls es bestimmt wird, dass dort das Problem entsteht, sollte die
Schutzvorrichtung 103 die Verbindung zwischen dem Servercomputer 104 und
dem Clientcomputer 101 trennen.
-
Oben
beschriebene erste bis siebte Ausführungsformen können derart
modifiziert werden, dass die obige Servercomputer-Schutzvorrichtung
in dem Servercomputer umfasst ist. In diesem Fall ist es wünschenswert,
dass der Servercomputer eine Hardware, wie zum Beispiel einen Speicher
umfasst, der für
die Servercomputer-Schutzvorrichtung dediziert ist.
-
(Anwendung auf ein Aufzeichnungsmedium)
-
Das
Verarbeiten der obigen Ausführungsformen
kann von einem Programm implementiert werden, das von einem Computer
ausgeführt
wird und das Programm kann auf ein Computerlesbares Speichermedium
implementiert sein.
-
Beachte,
dass dieses Speichermedium jede Speicherform annehmen kann, z.B.
eine magnetische Diskette, eine flexible Diskette, eine Festplatte, eine
optische Diskette (CD-ROM, CD-R, DVD oder Ähnliches), eine Magneto-optische
Diskette (MO oder Ähnliches),
oder einen Halbleiterspeicher, so lange das Programm von einem Computer
gespeichert und ausgelesen werden kann.
-
Zusätzlich kann
ein OS (Operating System – Betriebssystem),
das auf dem Computer arbeitet, auf der Basis der Anweisungen eines
Programms, das von dem Speichermedium in den Computer installiert wird,
eine MW (Middle Ware – mittlere
Ware), wie zum Beispiel eine Datenbank-Verwaltungssoftware oder
ein Netzwerk oder Ähnliches
teilweise jedes Verarbeiten zum Implementieren dieser Ausführungsform
ausführen.
-
Dieses
Speichermedium ist nicht auf ein Speichermedium begrenzt, das unabhängig von
dem Computer ist und umfasst ein Speichermedium, bei dem ein Programm,
das durch ein LAN, das Internet oder Ähnliches gesendet wird, gespeichert
oder temporär
gespeichert wird. Darüber
hinaus ist die Anzahl von Speichermedien nicht auf ein Einziges
beschränkt.
Wenn das Verarbeiten in dieser Ausführungsform unter Verwendung
einer Vielzahl von Medien durchgeführt werden soll, sind diese
in dem Speichermedium der vorliegenden Erfindung eingeschlossen.
Das Medium kann jegliche Anordnung annehmen.
-
Bemerke,
dass der obige Computer jedes Verarbeiten in dieser Ausführungsform
auf der Basis des Programms durchführt, das in dem Speichermedium
gespeichert ist und jegliche Anordnung annehmen kann, z.B. ein einzelnes
Gerät,
wie zum Beispiel ein PC oder ein System, das aus einer Vielzahl
von Geräten
gebildet wird, die miteinander über
ein Netzwerk verbunden sind.
-
Zusätzlich umfasst
der obige Computer einen arithmetischen Prozessor, der in einem
Informations-verarbeitenden Gerät
eingeschlossen ist, einen Mikrocomputer und Ähnliches zusätzlich zu
einem Personal Computer und ist ein allgemeiner Begriff Geräte und Vorrichtungen,
die die Funktionen dieser Ausführungsform
durch Programme implementieren können.