syn flood атака на сервер

syn flood атака представляет собой отправку SYN пакетов в таком количестве, что ресурсы сервера, которому они адресованы истощаются. Запросы от пользователей сервер обрабатывать оказывается не в состоянии.

 

SYN flood атака, выявление и защита

SYN — пакет, которым начинается TCP-handshake. Инициатор атаки не рассчитывает на установление соединения, просто направляет пакеты с большой частотой расходуя ресурсы. Сеть позволяет обрабатывать ограниченное количество запросов. Если ACK не получен, «слот» остается занят.

Для отправки, как правило, задействуются скомпрометированные сервера.

 

 

Симптомы SYN flood

Если рассматривать веб-сервер, то будет сильно замедляться время ответа. Сайт будет тормозить или не открываться совсем.

При этом нагрузки практически не создается, CPU и память потребляются как обычно.

 

 

Если потребления ресурсов при первичном анализе не замечено (например, в top) следует проверить скорость ответа. Можно использовать time wget. Команда выполняется с локального компьютера или другого сервера

 

time wget -O /dev/null example.com

[…skipped…]

real 2m0,603s
user 2m0,001s
sys 2m0,023s

 

Ключ -O указывает куда скачивается файл. /dev/null — это псевдоустройство для подавления вывода.

В нормальной ситуации все зависит от настройки сервера, но ответ составляет миллисекунды.

 

При атаке для обработки запроса будет происходить ожидание открытия сетевого сокета и результата time wget можно ждать несколько секунд или минут. 2 секунды уже не являются нормой.

 

Далее стоит просмотреть активные соединения типа SYN_RECV

О DDOS атаке типа SYN-flood будет говорить такая картина:

 

netstat -tuna | grep :80 | grep SYN_RECV

tcp 0 0 123.123.123.123:80 149.56.154.193:12990 SYN_RECV
tcp 0 0 123.123.123.123:80 149.56.154.193:15506 SYN_RECV
tcp 0 0 123.123.123.123:80 149.56.154.193:45138 SYN_RECV
tcp 0 0 123.123.123.123:80 149.56.154.193:3871 SYN_RECV
tcp 0 0 123.123.123.123:80 149.56.154.193:26572 SYN_RECV
tcp 0 0 123.123.123.123:80 35.201.183.114:58173 SYN_RECV
tcp 0 0 123.123.123.123:80 149.56.154.193:26997 SYN_RECV
tcp 0 0 123.123.123.123:80 35.201.183.114:46059 SYN_RECV
tcp 0 0 123.123.123.123:80 35.201.183.114:63003 SYN_RECV

[…skipped…]

 

 

При атаке с одного адреса его можно заблокировать на уровне сетевого фильтра, но если атака происходит из ботнета, включающего тысячи машин такое решение не поможет.

 

Что можно сделать при syn flood атаке

Чтобы противостоять атакам на сервере или балансере фильтрующей трафик компании включается SYN cookies. Это механизм, при активации которого сервер будет отвечать на SYN пакет отправляя ACK. SYN при этом будет отбрасываться. Пакеты при этом не скапливаются образуя очередь.

В netstat запросы по прежнему будут видны, но негативное влияние минимизируется.

 

Активация tcp_syncookies для текущего сеанса

sysctl -w net.ipv4.tcp_syncookies=1

 

Чтобы изменения сохранялись после перезагрузки параметр добавляется в /etc/sysctl.conf

echo «net.ipv4.tcp_syncookies = 1» >> /etc/sysctl.conf

 

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