Наиболее эффективный способ защиты от DDoS-атак на сайт — это фильтрация подозрительной сетевой активности на уровне хостинг или интернет-провайдера. Причем выполняться это может как средствами сетевых маршрутизаторов, так и с помощью специального оборудования.
Владелец же сайта, веб-сервиса или другого сетевого проекта, со своей стороны, для минимизации рисков и потерь от DDoS должен:
- Тщательно обследовать логику своего продукта: еще на этапе разработки и тестирования можно исключить ошибки и уязвимости.
- Вести контроль версий ПО и сетевых служб: необходимо своевременно обновлять программное обеспечение сетевых служб (СУБД, PHP и пр.). Также нужно поддерживать код самого продукта в актуальном и стабильном состоянии. Рекомендуется даже разворачивать проект на нескольких серверах — продуктовом (боевом), тестовом (для обкатки нового функционала) и бэкап-сервере (для хранения резервных копий и архивов исходников). Также рекомендуется использовать системы контроля версий (Git) для возможности отката проекта к предыдущей стабильной сборке.
- Следить за доступом к сетевым службам: делегирование прав на операции требует проработки. Необходимо обеспечить несколько уровней доступа (мастер, гостевой и пр.) к сетевым службам сервера и архиву версий проекта. Список лиц, имеющих доступ к ресурсам сервера, необходимо поддерживать в актуальном состоянии — например, своевременно отключать доступ уволившимся сотрудникам. Также нужно сбрасывать пароли и учетные записи при любом подозрении на компрометацию.
- Контролировать панель администратора: рекомендуется ограничить доступ к панели внутренней, либо VPN-сетью.
- Сканировать систему на наличие уязвимостей: в этом помогут публичные рейтинги (например, OWASP Top 10), либо инструменты разработчика.
- Использовать брандмауэр приложений: автоматизируйте проверку сетевого трафика и валидации запросов к портам и службам сервера.
- Распределять трафик с помощью CDN: за счет распределенного хранения контента нагрузка на ресурсы сервера оптимизируется, что ускоряет обработку трафика и запросов.
- Вести списки контроля доступа (ACL): для персонального ограничения доступа к сетевым узлам.
- Очищать кэш DNS: для защиты от спуфинга.
- Использовать защиту от спама: один из источников уязвимостей — формы обратной связи. Злоумышленники могут направить своих ботов массово заполнять их отправлять однотипные данные на сервер. Для фильтрации такого трафика формы нужно переводить на JS-компоненты или оснащать их капчами и другими инструментами проверки;
- Использовать контратаку: вредоносный трафик можно перенаправить на сеть атакующего. В результате это не только сохранит доступность Вашего сервера, но и временно выведет злоумышленника из игры.
- Использовать распределенное хранение и бэкапирование: в случае отказа одного или нескольких серверов Вашей сети Вы сможете возобновить работу ресурса на другой машине. К этому времени там уже будет развернута функциональная копия Вашего проекта.
- Использовать аппаратные средства защиты: Impletec iCore, DefensePro и пр.
- Тщательно выбирать хостинг-провайдера: необходимо выбирать поставщика, дающего гарантии защиты от всех современных угроз. Также немаловажно иметь круглосуточную линию поддержки, панель администратора с необходимыми инструментами аналитики по конкурентным условиям.