Недавно у нас возникли проблемы с DOS-атакой на наш основной веб-сайт, которая запускается с использованием Apache httpd 2.2.9 и Drupal 6.35. Атака представляет собой сообщение в xmlrpc.php от Dupal, который представляет собой известный эксплойт, исправленный в последних версиях Drupal. Однако, поскольку это более старая версия, исправления для эксплойта нет в нашей установке Drupal - и не будет, потому что мы переходим на размещенную платформу в течение трех месяцев.
Сначала я пытался противодействовать DOS, переименовав xmlrpc.php, который возвращает 404, но этого все еще достаточно, чтобы создать поток apache для каждого сообщения. В результате несколько потоков вместе потребляют много памяти, так что проблема все еще существует.
Итак, основываясь на результатах поиска в Google, я только что изменил .htaccess следующим образом:
<Files "xmlrpc.php">
Order Allow,Deny
deny from all
</Files>
С этого момента, по-видимому, больше не будет создаваться поток httpd для каждого вызова.
Как вы думаете, этого достаточно? Я мог бы пойти еще дальше, включив возможность отслеживать трафик на VPC и находить и блокировать исходный IP-адрес / а, но я не знаю, будет ли это эффективно, потому что атаки могут исходить от группы захваченных системы. Хотя мне любопытно узнать. Есть предположения?
Блоку запрета по-прежнему требуется, чтобы apache обработал запрос на достаточной глубине, чтобы убедиться, что он соответствует запрету, и, скорее всего, его «стоимость» равна 404.
Вы говорите «DOS», но вы имеете в виду настоящую атаку или случайные сканеры? Случайные сканеры обычно не обеспечивают достаточного трафика, чтобы создавать проблемы с ошибками 404/403.
Это за ELB? В противном случае вы должны увидеть исходные адреса в журналах доступа. Вы можете посмотреть на реализацию такого инструмента, как Fail2Ban, чтобы следить за этим шаблоном и ввести временное правило iptables, чтобы заблокировать доступ к этому IP на определенный период времени.
Если он находится за ELB, вы можете сделать что-то подобное, кроме написания настраиваемой прокладки для работы с ACL подсети VPC, которые содержат ELB.