Вопрос: Как я могу предотвратить атаку DDOS на Amazon EC2?


Один из серверов, которые я использую, размещен на облаке Amazon EC2. Каждые несколько месяцев у нас появляется DDOS-атака на этом сервере. Это невероятно замедляет работу сервера. Примерно через 30 минут, а иногда и перезагрузка, все возвращается к норме.

У Amazon есть группы безопасности и брандмауэр, но что еще я должен иметь на сервере EC2 для смягчения или предотвращения атаки?

Из подобных вопросов я узнал:

  • Ограничить скорость запросов / минут (или секунд) с определенного IP-адреса через что-то вроде IP-таблиц (или, может быть, UFW?)
  • У вас достаточно ресурсов для выживания такой атаки - или -
  • Возможно, создайте веб-приложение, чтобы оно было эластичным / имело эластичную балансировку нагрузки и может быстро масштабироваться для удовлетворения такого высокого спроса)
  • Если вы используете mySql, настройте соединения mySql так, чтобы они запускались последовательно, чтобы медленные запросы не загромождали систему

Что еще мне не хватает? Мне бы хотелось получить информацию о конкретных инструментах и ​​настройках (опять же, используя Linux здесь) и / или что-то, что характерно для Amazon EC2.

ps: Заметки о мониторинге DDOS также будут приветствоваться - возможно, с nagios? ;)


46
2017-12-13 01:08


Источник


Предотвращение этого почти невозможно, но вы, безусловно, можете уменьшить свою уязвимость. - Belmin Fernandez
Очень верно. И я был бы доволен ответами, которые обсуждают снижение уязвимости :) - cwd
Чтобы знать, как предотвратить это, нужно знать больше о характере атаки. Это был син-поток? Был ли сайт, который был дорогим, который попал? это была какая-то другая услуга? - stew
Я думаю, что это была веб-страница, но я не уверен. Я также приветствую советы по мониторингу и их расследованию. Некоторые журналы доступа уже удалены - что еще я должен искать? - cwd
и фактически, если перезагрузка устраняет проблему, тогда я не знаю, что это может быть, кроме, возможно, у вашего сервера есть утечка ресурсов где-то. Перезагрузка, конечно же, не может остановить DDoS самостоятельно. Откуда вы знаете, что это DDoS? - stew


Ответы:


DDOS (или даже DOS), по сути, является исчерпанием ресурсов. Вы никогда не сможете устранить узкие места, так как вы можете только оттолкнуть их дальше.

На AWS вам повезло, потому что сетевой компонент очень сильный - было бы очень удивительно узнать, что восходящая ссылка была насыщенной. Тем не менее, ЦП, а также ввода / вывода дисков легче использовать.

Лучшим способом действий было бы начать мониторинг (локальный, например SAR, удаленный с Nagios и / или ScoutApp) и некоторые удаленные средства ведения журнала (Syslog-ng). С такой настройкой вы сможете определить, какие ресурсы будут насыщены (сетевой сокет из-за Syn flood, CPU из-за плохих SQL-запросов или сканеров, из-за ...). Не забудьте оставить свой раздел журнала (если у вас нет удаленного ведения журнала) на томах EBS (для более позднего изучения журналов).

Если атака проходит через веб-страницы, журнал доступа (или эквивалент) может быть очень полезным.


36
2017-12-13 02:20



Вы можете проверить раздел «на основе нагрузки» serverfault.com/a/531942/87017 - Pacerier


Вы также можете дополнительно изолировать свои экземпляры EC2, поставив их за балансировщик эластичной нагрузки и только принимая трафик с экземпляра ELB. Это увеличивает нагрузку на Amazon для управления атаками DDOS.

Я предполагаю, что у вас все равно будет SSH для всех, так что, скорее всего, вы по-прежнему будете видеть, что туда попадает какой-то изгоев, если вы не можете заблокировать этот порт для некоторых статических IP-адресов. Вы можете изменить порт SSHd на что-то более неясное (например, что-то другое, чем 22), чтобы еще больше уменьшить DDOS-атаки (большинство ботов проверяют только известные порты).

Я также упомянул fail2ban, который может отслеживать журналы и временно изменять ваши IP-таблицы для блокировки определенных IP-адресов (например, если в ваш хост было шесть неудачных попыток SSH на вашем хосте с одного IP-адреса, он может блокировать этот IP для 30 минут или около того). Имейте в виду, что (как серьезно прокомментировал Иордания) fail2ban, вероятно, не подходит для блокирования прокси-трафика (например, от ELB), поскольку он блокирует IP-адрес прокси-сервера, не обязательно оригинальный удаленный IP-адрес.

Я не использовал его, но Apache mod_evasive также может стоить исследовать; однако он может иметь такую ​​же слабость, как fail2ban, когда речь идет о блокировке на основе IP.


24
2017-12-13 19:52



+1 спасибо. на самом деле у меня было закрыто ssh;) - cwd
Обратите внимание: если вы находитесь за ELB, fail2ban не будет работать, потому что он обычно работает, блокируя IP-адрес в iptables. Но IP всегда будет принадлежать вашему ELB. Я понял, что после попытки добавить fail2ban в мою настройку. Он не работает, если пользователь получает доступ только через ELB. - Jordan Reiter


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

Еще один шаг упрощения - это ограничение запросов на уровне веб-сервера. Nginx., апаш может дросселировать и ограничивать входящие запросы.


5
2018-03-07 19:57



удивительный - они выглядят как фантастические варианты спасибо! - cwd


Решение, которое я использую для блокирования IP-адресов в реальном времени с плохой активностью, выходящих из AWS и других, - это ... В моем CSF-брандмауэре в конфигурации для списков LFD я использую список, найденный здесь - http://myip.ms/browse/blacklist/Blacklist_IP_Blacklist_IP_Addresses_Live_Database_Real-time

Загрузить черный список для CSF Firewall » http://myip.ms/files/blacklist/csf/latest_blacklist.txt

Нет более возмутительно неприятного трафика AWS.


2
2017-08-14 06:05



Это не отвечает на вопрос. - kasperd


Я предвзятый, поскольку я работаю в сети доставки контента в качестве инженера Presales безопасности.

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

Хороший cdn позволит вам скрывать происхождение с помощью белого списка, который вы устанавливаете на брандмауэре aws. Поэтому, когда злоумышленники выполняют свою разведку на Amazon, ваш IP-адрес будет пустым, поскольку все будет заблокировано.

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

Хороший cdn также может выполнять проверки работоспособности и отказоустойчивый трафик в других местах, например, другое эго в заднице, Azure, место в стойке, мягкий слой, физический dc и т. Д. У этого также должен быть WAF, чтобы вы могли блокировать атаки уровня приложения, такие как RUDY, slowpost, slowloris, а также sqli, xss, rfi, lfi и т. Д.

По умолчанию cdn также блокирует атаки сетевого уровня, такие как teardrop, icmp attack, synfloods и т. Д. Cdn способен смягчать атаки Ddos, потому что trey имеет огромные возможности принимать запросы, фильтровать плохой трафик и передавать хороший трафик. Таким образом, можно блокировать атаки, такие как ntp, DNS, ssdp, chargen и snmp volumetric.

Самая большая атака, которую я видел на сегодняшний день, составила 321 Гбит / с в июле 2014 года. Во время этой атаки также была атака протокола DNS со скоростью 20 Гбит / с. Таким образом, вам нужно будет обеспечить, чтобы DNS-инфраструктура также была устойчивой, чтобы выдерживать огромное количество запросов.

Из описания, которое вы указали, похоже, что вы подверглись усталостной атаке, где thr атакующий открыл множество потоков, так что все потоки были уничтожены на веб-сервере, сервере приложений или брандмауэре. Это похоже на что-то вроде slowpost, slowloris или RUDY.

Чтобы блокировать атаки уровня приложения, вам необходимо получить брандмауэр веб-приложений (WAF). Типичный сетевой брандмауэр (включая брандмауэр амазонок и брандмауэры следующего поколения) не сможет заблокировать его. Отправленные рабочие брандмауэры в эти дни могут блокировать около 30% всех атак в эти дни (ноябрь 2014 года).


2
2017-11-12 12:12





Вот инструмент, который я сделал для тех, кто хочет использовать Fail2Ban для aws с apache, ELB и ACL: https://github.com/anthonymartin/aws-acl-fail2ban

Это полезно для обнаружения и предотвращения DoS-атак и злоупотребления экземплярами ec2.


1
2017-09-19 16:20





Брандмауэр конфигурации сервера - лучшее, что я видел для смягчения DDoS в программных VM в EC2. Если вы комбинируете функцию syslog, она может защитить среду балансировки нагрузки.

http://configserver.com/cp/csf.html


0
2017-10-10 16:27



Добро пожаловать в Server Fault! Хотя это теоретически может ответить на вопрос, было бы предпочтительнее чтобы включить здесь основные части ответа и предоставить ссылку для справки. - Scott Pack