Сегодня компания «Ростелеком» сообщила об отражении атаки ботнета «интернета вещей» на пять крупнейших российских банков. Атака проводилась 5 декабря с использованием TCP SYN Flood. По информации «Ростелекома» пиковая нагрузка составляла 3,2 миллиона пакетов в секунду.
Каких-либо деталей, кроме того, что часть трафика генерировалась с IoT-устройств, провайдер не предоставил. Также была предоставлена общая информация об опасности DDoS-атак и о том, кто уже пострадал от действия злоумышленников, управляющих ботнетами из «интернета вещей». В целом, пресс-релиз «Ростелекома» вызывает больше вопросов, чем ответов.
Первое, компания умолчала об интенсивности атаки. Цифра в 3,2 миллиона пакетов из «Пятерочки» выглядит внушительно, тем более, SYN-flood атаки на самом деле измеряются в количестве пакетов.
При атаке SYN-flood с подставных IP-адресов рассылается TCP-запрос на установку соединения. Атакуемый сервер отправляет ответ SYN/ACK и переходит в состояние SYN-RECEIVED, которое без ответа с запрашиваемой стороны снимается только через 75 секунд. При этом максимальный размер пакета SYN составляет 64 Кб, но стандартом является его меньшая версия на 16 Кб. Путем нехитрых подсчетов получаем наиболее вероятную интенсивность атаки в 51,2 Гбайт/с.
При этом в пресс-релизе «Ростелекома» открыто нагнетается ситуация с атаками на европейские структуры и организации мощностью до 1 Тбит/c (125 Гбайт/c).
Атака типа SYN Flood известна давно (еще с начала 2000-х) и используется злоумышленниками с переменным успехом. При этом эффективность подобных методов спустя полтора десятилетия вызывает сомнения.
Известный ботнет Mirai, который положил DNS-провайдера Dyn в октябре этого года (и которому приписываются упомянутые «Ростелекомом» атаки в Европе), использовал UDP-атаку, также известную как DNS retry.
При этом один из специалистов по информационной безопасности на условиях анонимности так прокомментировал пресс-релиз «Ростелекома» и проведенную атаку для Хабра:
После релиза linux 4.7 вышло два патча:
Add SOCK_RCU_FREE socket flag that UDP sockets and TCP listeners can set so that their lookup can use traditional RCU rules, without refcount changes. The UDP stack is instructed to not use SLAB_DESTROY_BY_RCU, in order to speedup rx processing for traffic encapsulated in UDP; performance for a single UDP socket receiving flood traffic from many RX queues/cpus is increased. TCP listeners are changed to use SOCK_RCU_FREE as well to avoid touching sk_refcnt under synflood. Peak performance under SYNFLOOD is increased by ~33%.
Add rate limiting on ACK sent on behalf of SYN_RECV to better resist to SYNFLOOD targeting one or few flows.
Они решают проблему параллельной обработки syn/udp flood, то есть даже для обычного linux server на современном ядре это не представляет никакой проблемы.
Исходя из вышесказанного можно прийти к выводу, что «Ростелеком» пытается выдать победу надуманную за победу реальную и заработать «очков» в глазах корпоративных клиентов как надежный провайдер.
Почему победа надуманная? Одно из двух: либо «Ростелеком» выдает желаемое за действительное и просто зафиксировал попытку SYN Flood-атаки, с которой Linux Server справился без особого труда и посторонней помощи, либо же компания предоставляет своим клиентам (банкам!) устаревшие технологические решения, в том числе и в плане ПО. Из-за чего и пришлось «героически превозмогать» SYN flood, проблема которого была решена на уровне ядра Linux еще полгода назад.
Автор: ragequit