Datum: 28. März 2009 Autor: Frank Dreßler, frank.dressler@rub.de Netzwerkeinstellung: Begrenzung der Anzahl halboffener TCP-Verbindungen (Windows XP SP2/SP3) -------------------------------------------------------------------------------------------- Seit dem Service Pack 2 von Windows XP gibt es eine Beschränkung der Anzahl der gleichzeitig vorhandenen nicht vollständig auf- gebauten TCP-Verbindungen (siehe Verweis (a)). Dies hat die Auswirkung, das ein System, das gleichzeitig zu vielen Zielen eine Verbindung aufbauen möchte, dies nicht zu allen kann, obwohl die Datendurchsatz- rate und alle Notwendigkeiten gegeben sind. Dies trifft besonders dann zu, wenn Gegenstellen, zu denen man verbinden will, langsam oder garnicht reagieren, denn dann verweilt die TCP-Verbindung für einige Zeit in diesem halb-offenen Zustand und wartet auf eine Antwort dieser möglicherweise nicht vorhandenen Gegenstelle und verbraucht damit einen der nur 10 erlaubten halb-offenen TCP-Verbindungen. Betroffen sind davon also Benutzer, die zum Beispiel Dateien über P2P-Netze wie BitTorrent austauschen möchten. Es gibt daher in vielen BitTorrent-Programmen eine Einstellung, mit der man die Anzahl der halb-offenen TCP-Verbindungen absichtlich unter 10 hält, damit nicht TCP-Verbindungsversuche, die eigentlich hätten erfolgreich stattfinden können, erfolglos bleiben, weil sie aufgrund der Beschränkung fehlschlagen. Es dauert dann allerdings länger alle Verbindungen aufzubauen. Ein anderes Gebiet, in dem dies störend ist, sind sogenannte Portscans, bei denen man, um schnell zu scannen, zu möglichst vielen Zielen, deren Existenz man noch nicht kennt, eine Verbindung versucht aufzubauen, um zu sehen, ob diese Ziele vorhanden sind. Da Würmer eben dieses Portscanning benutzen, um Ziele zu finden, in die sie eindringen können, wurde die Beschränkung von Microsoft zum Schutz von vernetzwerkten Infrastrukturen eingeführt. Eine Möglichkeit, diese Begrenzung von 10 halb-offenen Verbindungen zu entfernen, ist die Veränderung der Datei tcpip.sys. Öffnet man die Datei mit einem Hexeditor, kann man die Stelle, an der diese Beschränkung festgeschrieben ist, finden, indem man nach der Bytefolge 0x0A 0x00 0x00 0x00 sucht, die eine 32-bit-Zahl mit dem Wert 10 darstellt. Es gibt diese Bytefolge mehrmals, aber nicht jede hat das gleiche zu bedeuten. Außerdem ist das patchen der Datei per Hexeditor nicht sehr komfortabel. Es gibt jedoch im Internet ein Programm, das einem das Anpassen der Datei tcpip.sys erleichtert. Wer sich sicher ist, dass die Verwendung des Programms in seinem Staat für seinen Zweck legal ist, der kann das Programm auf eigene Verantwortung auf http://www.lvllord.de/?lang=de&url=downloads erhalten. Es ist selbsterklärend und funktioniert, wie man hört, auf Windows XP SP2 und auch auf Windows XP SP3. Ob diese Grenze der 10 halb-offenen Verbindungen jemals erreicht wurde, lässt sich festellen indem man bei Start->Ausführen:eventvwr.msc im Bereich System nach Ereignissen der Kennung 4226 sucht, die von der Quelle Tcpip stammen und einen Text wie "TCP/IP hat das Sicherheitslimit erreicht, das für die Anzahl gleichzeitiger TCP-Verbindungsversuche festgelegt wurde." enthalten. (a) http://www.microsoft.com/downloads/details.aspx?familyid=7bd948d7-b791-40b6-8364-685b84158c78&displaylang=en 02_CIF_Network_Protection.DOC Auszug: "The TCP/IP stack now limits the number of simultaneous incomplete outbound TCP connection attempts. After the limit has been reached, subsequent connection attempts are put in a queue and will be resolved at a fixed rate. Under normal operation, when applications are connecting to available hosts at valid IP addresses, no connection rate-limiting will occur. When it does occur, a new event, with ID 4226, appears in the system’s event log." "This change helps to limit the speed at which malicious programs, such as viruses and worms, spread to uninfected computers. Malicious programs often attempt to reach un- infected computers by opening simultaneous connections to random IP addresses. Most of these random addresses result in a failed connection, so a burst of such activity on a computer is a signal that it may have been infected by a malicious program."