Можно ли использовать технологию TCP Keepalive для предотвращения DDOS?

Можно ли использовать технологию TCP Keepalive для предотвращения DDOS?

Я изучаю DDOS и методы его смягчения. TCP Keepalive используется для проверки того, работает ли еще другой хост, и если хост не подтверждает сообщение tcp keep alive, соединение разрывается.

Мне интересно, можно ли использовать эти сообщения для смягчения DDOS-атак. Атакуемый сервер может сократить время, в течение которого он связывается с клиентом, независимо от того, работает он или нет. Сервер может использовать Unicast Reverse Path Forwarding для предотвращения подмены IP-адресов, и если атака осуществляется с легитимных хостов с использованием ботнетов, может ли сервер каким-либо образом использовать технику сообщений KeepAlive TCP для закрытия мертвых соединений и предотвращения DDOS-атак на себя? Есть ли способ обнаружить полуоткрытые соединения TCP и закрыть их с помощью tcp KeepAlive?

решение1

DDOS — это очень широкий термин, включающий в себя множество атак. TCP keep alive имеет значение только для уже установленных TCP-соединений, что обычно исключает атаки с использованием подмены IP-адресов. Это означает, что он не имеет значения для большинства атак DDOS, которые представляют собой атаки с использованием высокой пропускной способности (например, атаки с усилением с использованием поддельных IP-адресов) или SYN-флуд.

Это оставляет такие атаки, какСлоулорискоторые пытаются связать ресурсы на серверах, оставляя открытыми много соединений, или атаки, которые выполняют надлежащее TCP-рукопожатие из приложения пользовательского пространства, а затем разрывают соединение без закрытия. TCP keep alive не будет работать против первого, поскольку есть надлежащий клиент, который отвечает, как и ожидалось, на TCP keep alive. Это может помочь с наивной реализацией во втором случае, но это можно изменить, чтобы обрабатывать TCP keep alive тоже без использования дополнительной памяти.

Короче говоря: это может помочь для очень специфических и редких видов DDOS. Но даже для этого DDOS может быть более эффективным использовать вместо этого тайм-аут простоя на соединениях и адаптировать тайм-аут динамически в зависимости от количества открытых соединений и конкретного состояния соединения. Это, вероятно, охватит больше видов атак.

решение2

Ваша машина не может узнать, был ли подделан исходный IP-адрес пакета. В первом приближении RPF применим только к маршрутизаторам. Если у вас есть несколько интерфейсов к нескольким вышестоящим провайдерам, он сократит трафик в N раз, где N — это количество интерфейсов, конечно; сколько вышестоящихделатьу вас есть?

TCP KEEPALIVE не имеет к этому никакого отношения. Вы можете подумать о куки-файлах TCP Syn, которые можно включить с помощью соответствующей опции sysctl.

Все это в основном не имеет значения, если только ваша модель угрозы не представляет собой пару детей, которым больше нечего делать. DDOS-атаки уже очень давно просто засоряют ваш входящий канал. Неважно, смогут ли ваши машины работать, если для них не осталось никакой пропускной способности для получения полезного трафика!

Если вы действительно обеспокоены решительным злоумышленником, вам понадобится защита от вашего вышестоящего провайдера, а в более серьезных случаях — от специализированной службы защиты от DDoS (ее легко найти, я не хочу рекламировать какую-то определенную).

Надеюсь это поможет.

Связанный контент