Лучшие практики для обнаружения атак DOS (отказ в обслуживании)?
Я ищу лучшие практики для обнаружения и предотвращения DOS в реализации службы (не мониторинг внешней сети). Служба обрабатывает запросы на информацию о пользователях, группах и атрибутах.
Какой ваш любимый источник информации о работе с DOS?
3 ответа
Это метод, который я нашел очень полезным..
Предотвращение атак типа "отказ в обслуживании" (DOS) в вашем веб-приложении
Что бы вы ни делали против DoS-атак, подумайте, может ли то, что вы делаете, увеличить нагрузку, необходимую для обработки вредоносных или нежелательных запросов!
Если вы используете Linux, вы должны прочитать эту статью:
Сценарий оболочки для предотвращения DoS-атак на основе правил (из Linux Gazette). Содержит следующие темы:
- Как обнаружить DoS-атаки из файла / var / log / secure
- Как уменьшить избыточные обнаруженные IP-адреса из временного файла
- Как активировать / sbin / iptables
- Как установить предложенный скрипт оболочки
Применение этого без надлежащего ограничения количества заблокированных IP-адресов в iptables может привести к уязвимости DoS, увеличивая требуемые ресурсы для обработки нежелательных запросов. Чтобы снизить этот риск, используйте ipset для сопоставления IP-адресов в iptables.
Также читайте о предотвращении атак по словарю ssh с помощью iptables. (Включение iptables с сохранением состояния межсетевого экрана, как предложено здесь, не защищает от большинства DoS-атак против, но может фактически ослабить DoS-атаки, которые загрязняют вашу оперативную память бесполезной информацией о состоянии.)
Новое в Linux? Прочитайте план Windows-to-Linux: Часть 5. Регистрация Linux в IBM.
Удачи!
В моей первой попытке устранить уязвимость DoS использовался подход, предложенный Gulzar, который в основном заключается в ограничении количества вызовов, разрешенных с одного и того же IP-адреса. Я думаю, что это хороший подход, но, к сожалению, мой код не прошел тест производительности.
Поскольку я не смог заставить группу тестирования производительности изменить свой тест (политическая, а не техническая проблема), я переключился на ограничение количества вызовов, разрешенных в течение настраиваемого интервала. Я сделал как максимальное количество звонков, так и временной интервал, который можно настроить. Я также позволил установить значение 0 или отрицательное число, которое отключает ограничения.
Код, который необходимо защитить, используется внутри нескольких продуктов. Итак, я заставил каждую группу продуктов выполнить свои тесты QA и наборы тестов производительности и придумал значения по умолчанию, которые были как можно меньше, чтобы ограничить реальную DoS-атаку, но все же проходили все тесты.
FWIW, временной интервал составлял 30 секунд, а максимальное количество вызовов составляло 100. Это не совсем удовлетворительный подход, но он прост и практичен и был одобрен группой корпоративной безопасности (еще одно политическое соображение).