Вчера в блоге Rawdare появилась заметка, в которой коллеги пишут о новом виде DDoS-атаки SYN-пакетами большого размера. Этот тип атаки они назвали Цунами (потому что сама атака очень похожа на наводнение, которое заливает весь канал сервера посторонними данными). Давайте разберемся подробнее, как эту атаку организовать и как ей противодействовать.
Любителям технических деталей я рекомендую обратиться к детальному описанию процедуры SYN-ACK и структуре TCP-пакета. Для тех, кто не хочет вдаваться в технические подробности, я предложу рассмотреть следующую ситуацию:
Когда мы начинаем общение друг с другом, то обычно здороваемся (Привет — Привет — Как дела?). Уже при ответе на последний вопрос мы начинаем конструктивное общение, считая, что процедура приветствия пройдена (она, как и в случае с SYN-ACK, тоже насчитывает три действия: «Привет» с инициирующей стороны, «Привет» с отвечающей стороны и «Как дела?» с одной из сторон). Теперь представим, что мы находимся на восточном базаре и вместо «Привет» от незнакомца мы получаем полный прайс-лист его лавки («Таких сладостей больше нигде не найдешь!»), описание наших национальных особенностей («Купи здесь, Май Рашн френд») в дополнение к особенностям личной жизни торговца. Можно либо постоянно обращать внимание на эти обращения (так работает атака Цунами на значительное увеличение первого, SYN, пакета), либо полностью их игнорировать (запрет приема TCP-пакетов от незнакомых адресов).
По спецификации SYN-пакеты могут быть размера до 64 Кб (хотя ограничение почти сразу накладывает TCP congestion window, размер «оптимального» пакета для передачи данных от сервера клиенту или обратно — обычно пакеты не больше 16 Кб), и ничто не запрещает прямо в первом же TCP-пакете (который по спецификации должен иметь флаг SYN) передать этот объем «мусорных» данных. Есть, однако, более низкоуровневое ограничение на размер пакета сети, 1500 байтов (примерно так работают наши уши: как только мы слышим начало «мусорной» фразы, то сразу отсекаем говорящего от своего внимания). Но даже размер в 1500 байтов может быть значительным (обычно размер SYN пакета — 40-60 байтов), если атакующая сеть производит миллионы и миллиарды пакетов в секунду.
Особую опасность данный тип атаки представляет только в случае хорошо настроенной и очень большой сети ботов, способных атаковать цель (заполнять канал сервера) указанным образом. Для успешного проведения атаки на незащищенный сервер с обычными настройками сети (не более 1000 запросов в минуту с 1 IP-адреса) потребуется порядка 5000 ботов. Это верхний предел для «обычной» DDoS-атаки, и с таким размером атакующей сети более эффективно исчерпание канала и ресурсов сервера проводить просто загружая главную (или случайную) страницу сайта без сжатия со всеми ресурсами (в этом случае «полезная» нагрузка составит в несколько или даже в десятки раз больше — 10-20 Мб против 1,5 Мб в минуту — для 1 IP адреса).
Самое опасное в данном типе атаки то, что распознать ее и эффективно противодействовать сложно. Только зная заранее логику работы защищаемой ИТ-инфраструктуру, возможно блокировать определенные типы пакетов или распознавать подозрительное поведение клиентов.
Сеть Айри из безупречно настроенных серверов с хорошими каналами доступа в Интернет может успешно блокировать и отражать данный тип атаки. Ваш сайт, подключенный к Айри, будет максимально защищен от различных типов DDoS-атак.