Столкнулся с ддосом через HEAD запросы. Это запросы, когда сервер возвращает только заголовки. То есть страница так же генерируется, как и при GET запросе, но канал при этом не забивается. В том числе и входящий у ддосера.
Пример лога.
HEAD-запросы не используются поисковыми ботами и пользователями, поэтому их можно полностью заблокировать.
Как запретить HEAD запросы на сервере?
Настройки для nginx:
Настройки для .htaccess (Apache):
Можно запретить сразу все нестандартные запросы: GET, PUT, PATCH, TRACE, CONNECT, OPTIONS.
Либо:
Как запретить HEAD запросы в Cloudflare?
Добавляем соответствующее правило в Security->WAF
Как работают ддос атаки через HEAD запросы?
Для отправки запроса HTTP HEAD клиент устанавливает TCP-соединение. Перед отправкой HTTP-запроса HEAD устанавливается TCP-соединение между клиентом и сервером с использованием трехэтапного соединения (SYN, SYN-ACK, ACK), показанного в пакетах 94,107,108 на изображении 1. HTTP-запрос будет в PSH, пакет АСК.
Злоумышленник (IP 10.128.0.2) отправляет запросы HTTP/1.1 HEAD, а цель отвечает HTTP/1.1 200 OK, как показано на изображении 2.
В этом потоке мы видим ответ HTTP/1.1 200 OK, который может измениться в зависимости от настроек веб-сервера.
Изображение 2 — пример обмена HTTP-пакетами между злоумышленником и целью :
Проанализированный захват длится около 3 секунд, при этом он содержит в среднем 79 PPS (пакетов в секунду) со средней скоростью трафика 0,06 Мбит/с (считается низкой, анализируемая вами атака может быть значительно выше).
Пример лога.
Код:
185.105.91.246 - - [11/Oct/2022:00:01:42 +0300] "HEAD / HTTP/1.0" 500 - "-" "ApacheBench/2.3"
185.105.91.246 - - [11/Oct/2022:00:01:43 +0300] "HEAD / HTTP/1.0" 500 - "-" "ApacheBench/2.3"
185.105.91.246 - - [11/Oct/2022:00:01:42 +0300] "HEAD / HTTP/1.0" 500 - "-" "ApacheBench/2.3"
Как запретить HEAD запросы на сервере?
Настройки для nginx:
Код:
if ($request_method = HEAD) {
return 403;
}
Код:
<Limit HEAD>
Order deny,allow
Deny from all
</Limit>
Код:
<Limit HEAD PUT PATCH TRACE CONNECT OPTIONS>
Order deny,allow
Deny from all
</Limit>
Код:
RewriteEngine On
RewriteCond %{REQUEST_METHOD} HEAD
RewriteRule .* - [F]
Как запретить HEAD запросы в Cloudflare?
Добавляем соответствующее правило в Security->WAF
Как работают ддос атаки через HEAD запросы?
Для отправки запроса HTTP HEAD клиент устанавливает TCP-соединение. Перед отправкой HTTP-запроса HEAD устанавливается TCP-соединение между клиентом и сервером с использованием трехэтапного соединения (SYN, SYN-ACK, ACK), показанного в пакетах 94,107,108 на изображении 1. HTTP-запрос будет в PSH, пакет АСК.
Злоумышленник (IP 10.128.0.2) отправляет запросы HTTP/1.1 HEAD, а цель отвечает HTTP/1.1 200 OK, как показано на изображении 2.
В этом потоке мы видим ответ HTTP/1.1 200 OK, который может измениться в зависимости от настроек веб-сервера.
Изображение 2 — пример обмена HTTP-пакетами между злоумышленником и целью :
Проанализированный захват длится около 3 секунд, при этом он содержит в среднем 79 PPS (пакетов в секунду) со средней скоростью трафика 0,06 Мбит/с (считается низкой, анализируемая вами атака может быть значительно выше).
Последнее редактирование: