Kann die TCP-Keepalive-Technik zum Verhindern von DDOS verwendet werden?

Kann die TCP-Keepalive-Technik zum Verhindern von DDOS verwendet werden?

Ich lerne etwas über DDOS und die Techniken, um es einzudämmen. TCP Keepalive wird verwendet, um zu prüfen, ob der andere Host noch aktiv ist, und wenn der Host die TCP-Keep-Alive-Nachricht nicht bestätigt, wird die Verbindung beendet.

Ich frage mich, ob diese Nachrichten verwendet werden können, um DDOS-Angriffe abzuschwächen. Der angegriffene Server kann die Zeit verkürzen, in der er den Client kontaktiert, unabhängig davon, ob er noch aktiv ist oder nicht. Der Server kann Unicast Reverse Path Forwarding verwenden, um IP-Spoofing zu verhindern, und wenn der Angriff von legitimen Hosts über Botnetze ausgeht, kann der Server dann die Keepalive-Nachrichtentechnik von TCP irgendwie verwenden, um die toten Verbindungen zu schließen und sich vor DDOS-Angriffen zu schützen? Gibt es eine Möglichkeit, halboffene TCP-Verbindungen zu erkennen und sie mithilfe von TCP Keepalive zu schließen?

Antwort1

DDOS ist ein sehr weit gefasster Begriff und umfasst eine Vielzahl von Angriffen. TCP Keep Alive ist nur für bereits bestehende TCP-Verbindungen relevant, was Angriffe mit IP-Spoofing normalerweise von vornherein ausschließt. Dies bedeutet, dass es für die Mehrheit der DDOS-Angriffe nicht relevant ist, bei denen es sich um Angriffe mit hoher Bandbreite (wie Amplification-Angriffe mit gefälschten IP-Adressen) oder SYN-Flooding handelt.

Damit bleiben Angriffe wieSlowlorisdie versuchen, Ressourcen auf den Servern zu binden, indem sie viele Verbindungen offen halten, oder Angriffe, die einen ordnungsgemäßen TCP-Handshake von einer Anwendung im Benutzerbereich aus durchführen und dann die Verbindung abbrechen, ohne sie zu schließen. TCP-Keep-Alive würde gegen das Erste nicht funktionieren, da es einen ordnungsgemäßen Client gibt, der wie erwartet auf TCP-Keep-Alive antwortet. Im zweiten Fall könnte eine naive Implementierung helfen, aber dies könnte geändert werden, um auch TCP-Keep-Alive zu handhaben, ohne mehr Speicher zu verwenden.

Kurz gesagt: Es könnte bei sehr spezifischen und seltenen DDOS-Arten helfen. Aber selbst bei diesen DDOS-Arten könnte es effektiver sein, stattdessen ein Leerlauf-Timeout für die Verbindungen zu verwenden und das Timeout dynamisch anzupassen, je nach Anzahl der offenen Verbindungen und dem spezifischen Status der Verbindung. Dies würde wahrscheinlich mehr Arten von Angriffen abdecken.

Antwort2

Ihr Computer kann nicht feststellen, ob die Quell-IP-Adresse eines Pakets gefälscht wurde. In erster Näherung gilt RPF nur für Router. Wenn Sie mehrere Schnittstellen zu mehreren Upstream-Anbietern haben, wird der Datenverkehr um den Faktor N reduziert, wobei N natürlich die Anzahl der Schnittstellen ist; wie viele UpstreamsTundu hast?

TCP KEEPALIVE hat damit nichts zu tun. Du denkst vielleicht an TCP-Syn-Cookies, die du mit einer entsprechenden Sysctl-Option aktivieren kannst.

All dies ist ohnehin größtenteils irrelevant, außer wenn Ihr Bedrohungsmodell aus ein paar Kindern besteht, die nichts anderes zu tun haben. DDOS-Angriffe verstopfen schon seit sehr langer Zeit einfach Ihre eingehende Leitung. Es spielt keine Rolle, ob Ihre Maschinen in Betrieb bleiben können, wenn keine Verbindungskapazität mehr vorhanden ist, um nützlichen Datenverkehr zu empfangen!

Wenn Sie wirklich Angst vor einem entschlossenen Angreifer haben, benötigen Sie Schutz durch Ihren Upstream-Provider und in schwerwiegenderen Fällen durch einen speziellen Anti-DDoS-Dienst (leicht zu finden, ich möchte keinen bestimmten bewerben).

Hoffe das hilft.

verwandte Informationen