Выпущен модуль testcookie-nginx-module к веб-серверу nginx, который может использоваться для распознавания ботов и, соответственно, отражения DDoS-атак. Распознавание осуществляется по простому принципу — ботом признаётся любой клиент, который не умеет исполнять JavaScript (есть «белый список» для IP-адресов поисковых ботов). Конечно, можно сделать бота с JavaScript-движком, но на практике такие DDoS-атаки встречаются нечасто.
Разработчик Эльдар Заитов подробно рассказывает о возможностях нового модуля. Он объясняет, что JavaScript задействуется на последнем этапе обороны, а поначалу отсеиваются самые «тупые» боты, которые не понимают редиректов и cookies, то есть самый типичный случай DDoS-атаки методом HTTP-флуда, сообщает xakep.ru.
Модуль умеет ставить cookies стандартным способом через HTTP-заголовок Set-Cookie, после установки перенаправляет пользователя, используя код ответа 301 и заголовок Location или используя код ответа 200 и HTML тег Meta «refresh». Он также может считать количество попыток поставить cookies и отправлять пользователя по заданному URL после превышения максимального количества неудачных попыток.
Алгоритм работы модуля показан на схеме.
В случае, если боты понимают редиректы и cookies, то новый модуль nginx может использовать произвольные шаблоны для ответа фильтра, например, можно выставить cookies через JavaScript. А самое интересное, что против возможных автоматических парсеров со стороны бота используется шифрование переменных в шаблоне симметричным криптоалгоритмом с дальнейшей расшифровкой через JavaScript на стороне клиента (используя SlowAES).
В данном случае алгоритм работы выглядит так.