Як я можу запобігти атаці DDOS на Amazon EC2?


46

Один із серверів, якими я користуюся, розміщується на хмарі Amazon EC2. Кожні кілька місяців у нас виникає DDOS-атака на цю групу. Це неймовірно уповільнює роботу сервера. Через приблизно 30 хвилин, а іноді і перезавантаження пізніше, все повернеться до норми.

В Amazon є групи безпеки та брандмауер, але що мені ще потрібно встановити на сервері EC2, щоб пом’якшити або запобігти атаці?

З подібних питань я дізнався:

  • Обмежте швидкість запитів / хвилину (або секунди) від певної IP-адреси через щось на зразок IP-таблиць (або, можливо, UFW?)
  • Майте достатньо ресурсів, щоб пережити таку атаку - або -
  • Можливо, побудуйте веб-додаток таким чином, щоб він був еластичним / мав еластичний балансир навантаження і може швидко масштабуватись, щоб задовольнити такий високий попит)
  • Якщо ви використовуєте mySql, встановіть підключення mySql так, щоб вони працювали послідовно, щоб повільні запити не затухали систему

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

ps: Примітки щодо моніторингу DDOS також вітаються - можливо, з нагіосами? ;)


Запобігти це майже неможливо, але ви, безумовно, можете зменшити свою вразливість.
Белмін Фернандес

1
Дуже правильно. І я був би радий відповідям, які обговорюють зменшення вразливості :)
cwd

Для того, щоб знати, як запобігти, потрібно було б більше дізнатися про характер нападу. Це було син-потоп? Чи існувала дорога веб-сторінка, яку вдаряли? це була якась інша послуга?
тушковане

Я думаю, що це була веб-сторінка, але я не впевнений. Я також вітаю поради щодо моніторингу та дослідження цих. Деякі журнали доступу вже видалено - що ще я повинен шукати?
cwd

і насправді, якщо перезавантаження вирішує проблему, то я не знаю, що це могло бути, за винятком, можливо, у вашого сервера десь витік ресурсу. Перезавантаження, звичайно, не може зупинити DDoS самостійно. Звідки ти знаєш, що це взагалі DDoS?
тушковане

Відповіді:


36

DDOS (або навіть DOS), по суті, - це виснаження ресурсів. Ви ніколи не зможете усунути вузькі місця, оскільки ви можете лише відсунути їх далі.

У системі AWS вам пощастило, оскільки мережевий компонент дуже сильний - було б дуже дивно дізнатись, що висхідний зв’язок був насиченим. Однак процесор, а також дискові введення / виведення набагато простіше затопити.

Найкращим способом дій було б розпочати деякий моніторинг (локальний, такий як SAR, віддалений з Nagios та / або ScoutApp) та деякі засоби віддаленого ведення журналу (Syslog-ng). З такою установкою ви зможете визначити, які ресурси насичуються (мережевий сокет через повінь Syn; ЦП через погані запити SQL або сканери; таран через…). Не забудьте мати свій розділ журналу (якщо у вас немає можливості дистанційного ведення журналу) на томах EBS (щоб пізніше вивчити журнали).

Якщо атака надходить через веб-сторінки, журнал доступу (або еквівалент) може бути дуже корисним.


Ви можете перевірити розділ "на основі завантаження" сервера defaultfault.com/a/531942/87017
Pacerier

24

Ви також можете ізолювати свої екземпляри EC2, поставивши їх за пружний балансир навантаження та прийнявши лише трафік від екземпляра ELB. Це додає більшої сили на Amazon для управління DDOS-атаками.

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

Я також згадаю fail2ban, який може відслідковувати журнали та тимчасово змінювати ваші таблиці ip для блокування конкретних IP-адрес (наприклад, якщо було 6 невдалих спроб SSH у ваш хост з однієї IP-адреси, він може блокувати цю IP-адресу на 30 хвилин або близько того). Майте на увазі, що (як Йордан промовисто прокоментував) fail2ban, мабуть, не підходить для блокування проксі-трафіку (наприклад, від ELB), оскільки він блокує IP-адресу проксі, не обов'язково оригінального віддаленого IP-адреси.

Я не використовував його, але Apache mod_evasive також може бути вартим дослідження; однак він може мати таку ж слабкість, як і fail2ban, коли мова йде про блокування на основі IP-адреси.


+1 дякую. насправді у мене закрили ssh;)
cwd

1
Зауважте, що якщо ви стоїте за ELB, fail2ban не працюватиме - оскільки він, як правило, функціонує, блокуючи IP в iptables. Але IP завжди буде таким, як ваш ELB. Я зрозумів, що після спроби додати fail2ban до моєї установки. Це не працює, якщо користувач здійснює доступ лише через ELB.
Jordan Reiter

5

Якщо ви використовуєте Apache, пропоную використовувати mod_security . Основні правила, упаковані більшістю постачальників, роблять фантастичну роботу.

Ще один крок загартовування - обмеження запитів на рівні веб-сервера. Nginx ., Apache може стримувати та обмежувати вхідні запити.


приголомшливі - такі схожі на фантастичні варіанти дякую!
cwd

2

Рішення, яке я використовую для блокування IP-адреси поганої активності в режимі реального часу, що виходить з AWS та інших, це таке ... У моєму Брандмауері CSF у конфігурації блокових списків LFD я використовую список, знайдений тут - http://myip.ms/browse/blacklist/ Чорний список_IP_Blacklist_IP_Addresses_Live_Database_Real-time

Завантажте чорний список для брандмауера CSF » http://myip.ms/files/blacklist/csf/latest_blacklist.txt

Немає більше кричущо небезпечного трафіку AWS.


1
Це не дає відповіді на запитання.
kasperd

2

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

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

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

Тож атаки Ddos блокуються, коли трафік потрапляє у вузол як можна ближче до нападника. Це дозволяє вам пом'якшити атаки Ddos якнайдалі від активу, який ви намагаєтесь захистити.

Хороший cdn також може виконувати перевірки стану здоров’я та відмову від трафіку в інші місця, наприклад, інше его в попку, Azure, простір у стійці, м'який шар, фізичний постійний струм і т.д. RUDY, slowpost, slowloris, а також sqli, xss, rfi, lfi тощо

За замовчуванням cdn також блокує атаки мережевого рівня, такі як сльоза, атаки icmp, synfloods тощо. Cdn здатний пом'якшити атаки Ddos, оскільки trey має величезну кількість можливостей приймати запити, фільтрувати поганий трафік і передавати хороший трафік. Таким чином, посилюються атаки, такі як ntp, DNS, ssdp, chargen та snmp об'ємні атаки, можуть бути заблоковані.

Найбільша атака, яку я бачив на сьогодні, була 321 Гбіт / с у липні 2014 року. Під час цієї атаки була також атака протоколу DNS зі швидкістю 20 Гбіт / с. Тому вам потрібно буде переконатися, що інфраструктура DNS також є стійкою, щоб витримати величезну кількість запитів.

З опису, який ви надали, схоже, що ви зазнали атаки виснаження, коли зловмисник відкрив безліч потоків, так що всі потоки були використані на веб-сервері, сервері додатків або брандмауері. Це схоже на щось на кшталт повільного посту, slowloris або RUDY.

Щоб запобігти атакам виснаження шару додатків, вам потрібно отримати брандмауер веб-додатків (WAF). Типовий мережевий брандмауер (включаючи брандмауер амазонки та брандмауер нового покоління) не зможе його заблокувати. Надіслані робочі брандмауери в ці дні можуть заблокувати лише близько 30% усіх атак у ці дні (листопад 2014 р.).



0

Налаштування брандмауера сервера - найкраще, що я бачив для пом'якшення DDoS в програмному забезпеченні, заснованому на програмному забезпеченні, заснованому на програмі EC2. Якщо ви поєднаєте функцію syslog, вона може захистити від збалансованого навантаження середовища.

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


Ласкаво просимо до помилки сервера! Хоча це теоретично може відповісти на питання, бажано було б сюди включити істотні частини відповіді та надати посилання для довідки.
Скотт Пак
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.