20 августа 2020
Занимаясь много лет защитой от DDoS-атак, мы невольно стали задумываться, почему какие-то приложения обезопасить легче, чем другие, а какие-то сложнее, и почему так происходит.
Так мы придумали термин “защищаемость от DDoS” и исследовали факторы, которые на нее влияют, среди наших клиентов. Защищаемость – это способность интернет-сервиса быть эффективно защищенным от атак с минимальными затратами ресурсов.
На защищаемость интернет-сервиса влияют следующие основные группы параметров:
- Параметры, характеризующие возможности скрыть от злоумышленника ту информацию, которая поможет ему провести атаку и понять, что она оказалась успешной: спектр возможностей спрятать атакуемый интернет-сервис от тех, для кого он не предназначен; число путей проверки его работоспособности; безопасность (защищенность от взлома).
- Возможность для DDoS-защитника оценить эффективность защиты.
- Широта возможностей сервиса по распознаванию ботов, а также известность и понятность работы используемых в нем протоколов и механизмов, с точки зрения DDoS-защитника.
- Параметры, характеризующие надежность работы сервиса в условиях атаки: резервирование на уровне приложения; устойчивость к слабым атакам; выделение разных функций на разные IP-адреса для снижения числа векторов атак; зависимость компонентов системы друг от друга и их способность работать автономно.
В качестве плохого примера представим онлайн-игру, работающую по протоколу UDP. Ее сайт и игровой сервер находятся на одном IP-адресе. После каждого запроса сайт обращается в игровую базу для подсчета статистики. Игровой протокол позволяет потенциальному злоумышленнику подобрать последовательность пакетов, похожую на легитимную, и обеспечить таким образом существенную нагрузку на приложение, заметно снизив его производительность.
В качестве хорошего примера приведем сервис автоматизации службы такси. Ее веб-сайт расположен отдельно, служба авторизации клиентов с установленными на их смартфонах мобильными приложениями расположена отдельно и работает по протоколу HTTPS. Сам сервис, с которым соединяются мобильные приложения таксистов, развернут на основе пула IP-адресов, идущих не подряд из разных подсетей. Каждому таксисту в зависимости от его логина выдается свой набор IP-адресов. Приложение устанавливает TCP-соединение сразу с несколькими IP-адресами и в случае недоступности каких-то из них прозрачно переключается на другие. Кроме того, каждый раз при подключении клиента производится проверка токена авторизации и IP-адреса клиента, чтобы убедиться, в самом ли деле токен принадлежит именно ему. Такая схема окажется заведомо более устойчивой к DDoS-атакам, поскольку злоумышленнику будет крайне трудно такое воздействие на службу такси, чтобы сделать ее недоступной (или хотя бы труднодоступной) для ее клиентов.
Как видим, защищаемость от DDoS-атак можно и нужно закладывать в решение еще на стадии проектирования его архитектуры – хорошее проектирование позволит повысить доступность и снизить расходы на защиту от атак. Как на практике реализовать принципы хорошего проектирования и что еще нужно предусмотреть, чтобы выстроить эффективную защиту интернет-ресурса от DDoS-атак, поговорим в следующий раз.