2014-01-18 3 views
6

Не могли бы вы перечислить некоторые стратегии или даже те подходы, которые вы уже применяли для предотвращения/защиты/минимизации DDOS-атак на Restful Web Services?DDOS Attacks - Restful Web Services

Спасибо.

ответ

8

Поместите HTTP-кеш, например Squid или Varnish, перед вашим API и поместите небольшой заголовок максимального возраста на любой ресурс, который вас беспокоит. Даже с максимальным возрастом 1 секунда, чтобы ваш API не попадал более одного раза в секунду для этого ресурса.

+3

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

4

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

Вместо этого убедитесь, что вы уверены, что будете своевременно знать, что ваша система находится под атакой (путем мониторинга процессора/памяти/запросов в секунду).

Если вы считаете, что находитесь под атакой, спросите у кого бы то ни было хозяев ваших серверов, чтобы помочь.

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

5

Включение веб-кэширования может уменьшить атаку DoS на запрос GET. Но другой распространенный тип DoS-атаки - отправка огромных объемов данных в HTTP POST-метод. Чтобы уменьшить этот тип DoS, считается наилучшей практикой устанавливать параметры PostTimeoutSecs, MaxPostTimeSecs, MaxPostSize на вашем веб-сервере или сервере приложений. Имена параметров различаются для разных серверов.

Это, как говорится, добавление кеша веб-страниц и ограничение по запросу POST-запроса являются очень рудиментарными способами предотвращения DoS-атаки. Чтобы более эффективно противодействовать DoS-атаке, вы можете рассмотреть такие решения, как брандмауэр веб-приложений. Посетите сайт OWASP для просмотра продуктов WAF на рынке, включая некоторые варианты с открытым исходным кодом.

0

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

перспективного развития/кодирования

  • случаи использования профиля приложений на наличие утечек памяти, особенно в негативных сценариев тестовых примеров, как исключения. Чем дольше ресурсы находятся в памяти, тем выше влияние. Выпустите ресурсы как можно раньше.
  • Ответьте на отрицательные сценарии на самом начале запроса, например. проверка атрибутов или полезной нагрузки должна произойти задолго до того, как мы выполним любую бизнес-логику вызовов базы данных. В приложении java, основанном на весне, перехватчик будет подходящим.
  • Внедрение структурированных журналов для аудита запросов, которые могут помочь в анализе шаблонов в случае любых атак
  • Для отправки/удаления/удаления действий, которые могут быть возможны только от назначенных клиентов (веб-приложений/мобильных приложений и т. Д.) реализовать captcha (например, google Iam не робот) и проверить маркер captcha на уровне REST API перед обработкой запроса. перспективный

    • Настройка мониторинга и оповещения

    Операции на месте для процессора, памяти, сети трафика, внутренних контейнеров приложений, таких как использование кучи и т.д.

Инфраструктура перспективном

  • Добавить брандмауэр веб-приложений, который может идентифицировать фальшивый трафик, исходящий от ботов, и применять некоторый уровень контроля скорости запросов.
  • Настройка кэширования, если это возможно, для получения запросов с использованием систем CDN для объектов, которые могут не изменяться часто.
  • Настройка автоматической масштабирования инфраструктуры по отношению к сетевому трафику, серверному процессору, памяти и т. Д., Так что всплеск трафика не сможет сбить любые узлы приложения. Выбор облачной инфраструктуры поможет.
Смежные вопросы