Am Samstag, 14. Oktober 2006 01:01 schrieb Stefan Berthold:
Hej!
Oi!
Mir leuchtet noch nicht alles ein. Der Angreifer ist im Szenario erfolg- reich, wenn er die Verfügbarkeit eines Servers durch verhältnismäßig große Auslastung merkbar reduzieren kann. Welche Idee steckt dann hinter dem »Portknocking«? Meinem Verständnis nach, ist sowas ein permanent zu- gänglicher Dienst, der deshalb prinzipiell ebenfalls durch DoS-Attacken bedroht ist.
Man kann aber durch die 2^16 möglichen Ports (gemäß RFC 768/793), von denen vielleicht 2^15 auf einem Unix-System praktikabel dafür verwendbar sind, eine Verzögerung der Belastung erreichen - und zwar statistisch gesehen dann mit einem Faktor von ((2^15)/2)!. Sprich, damit ein Dienst die nächste Anfrage bekommt, muss der Angreifer erstmal den für das nächste Paket gültigen Port gefunden haben. Im Mittel muss er dafür die Hälfte aller Ports durchprobieren, Stichwort Erwartungswert (*).
(Natürlich müssen auch Anfragen auf Ports, auf denen nichts läuft, vom Kern behandelt werden, aber eben nur dort mit entsprechend niedriger Latenz. Wenn man das nicht möchte, ist wie gesagt die Kooperation des Netzbetreibers notwendig, sei es durch entsprechende Policies oder vorgeschaltete teure Geräte.)
Josef
(*) Anmerkung an die Kryptofraktion: wir gehen von einem perfekten Zufallsgenerator aus. Zum Zwecke einer akademischen Übung dürfen wir das mal tun :-)