17 сентября 2020
Как обеспечить защищаемость ресурса от DDoS-атак? Задача №3
На прошлой неделе мы обсудили, как предоставить как можно больше информации DDoS-защитнику.
Многие клиенты глубоко заблуждаются, полагая, что подключение сервиса anti-DDoS навсегда избавит их от забот по обеспечению защиты от атак на интернет-ресурс.
Давайте представим ситуацию
Есть интернет-сервис, который работает посредством UDP, никакой процедуры подключения к нему, по сути, нет — последовательность пакетов, которые должен пройти хост при подключении, не определена. Производительность сервиса при этом мала, и если начнется атака, он точно «захлебнется».
Ну и вопрос, что называется, «на засыпку»: как DDoS-защитник сможет такой сервис обезопасить? Возможности отфильтровать пакеты по какой-либо сигнатуре нет, поскольку сигнатуры в данном случае могут быть произвольные. Адреса источников пакетов также могут быть любые, поэтому и по ним ограничить поток невозможно. Да, конечно, можно использовать стандартные методы проверки — они позволят защитить сервис от атак стандартных типов. Но что если злоумышленник воспользуется необычным, например, каким-то собственным способом атаки, разработанным специально для этого сервиса?
Что же делать
О подобных аспектах необходимо думать заблаговременно, еще на стадии разработки сервиса. В частности, нужно обеспечить защитнику возможность отсекать взаимодействие с ботами. В первую очередь эта возможность должна предоставляться на уровне протокола. Отметим, что реализовать ее с TCP гораздо проще, чем с UDP. Если же по каким-то причинам необходимо использовать именно UDP, то нужно, по крайней мере, предоставить защитнику документацию по этому сервису, в которой подробно описаны процедуры установки соединения и аутентификации. Некоторые популярные протоколы на основе UDP (например, SIP, SAMP, TeamSpeak) можно отфильтровать достаточно легко, в том числе благодаря тому, что для них имеются подробные описания. Если протокол, на котором основан сервис, не содержит механизмов фильтрации, то защитить такой сервис оказывается очень непросто.
Фиксируем рекомендации
- По возможности используйте TCP.
- Если вынуждены использовать UDP, продумайте, как вы будете отличать легитимного клиента от нелегитимного.
- Убедитесь, что DDoS-защитник знает, как фильтровать атаку и имеет метод фильтрации.
Помните, что само по себе подключение сервиса защиты — не панацея, особенно если сервис работает на основе UDP.