Облака против тесака, или Хроника DDoS-атак на cvk2012.org

в 14:50, , рубрики: ddos-атака, qrator, Блог компании Highload Lab., информационная безопасность, системное администрирование, метки: ,

Облака против тесака, или Хроника DDoS атак на cvk2012.org Блог Highload Lab на Хабрахабре обновляется нечасто — интересных DDoS-атак, на примере которых каждый может чему-то научиться, мало, а раздражать читателей бесконечными историями успеха не хочется. Тем ценнее действительно занимательные прецеденты, к числу которых, несомненно, относится нападение на сайты Центрального Выборного Комитета Координационного Совета оппозиции.

В предыдущих выпусках бортового журнала сети фильтрации трафика Qrator (обязательная рекламная ссылка — http://qrator.net/) мы выяснили, что в преддверии серьёзных мероприятий в Рунете лучше заранее озаботиться защитой от атак. Сегодня я расскажу вам, как можно, даже выполнив это требование, заработать себе пару бессонных ночей на рабочем админском месте.

Предыстория

Сотрудники ЦВК подошли к проблеме отказоустойчивости фронтенда системы голосования со всей академической серьёзностью и не стали складывать все яйца в одну корзину. «Морда» системы голосования была размещена в облаке Microsoft Azure, рекомендуемом для приложений на платформе Windows. Параллельно домен election.cvk2012.org был зарегистрирован в Qrator практически за месяц до описываемых событий и всё это время находился под профилактической защитой, что позволило накопить необходимую базу для обучения. Всё это позволяло рассчитывать, что выборный уик-энд в плане работоспособности сайтов оппозиции пройдёт так же спокойно и беспроблемно, как и несколько предыдущих митингов.

18 октября

Первый звоночек прозвучал в четверг. К этому времени маломощная атака на сайт регистрации избирателей шла уже 3 дня, однако в тот момент она впервые создала проблемы. Схема атаки — типичный JS LOIC: на предположительно устойчивом хостинге размещается страница с ECMAScript-кодом, который раз в 200 мс обновляет псевдоизображение с URL атакуемого сервиса. Аналогичную схему в апреле использовал сервис Вконтакте для «предупреждения» сайта antigate.com. Пикантность нынешней ситуации — в том, что вначале атакующий скрипт располагался на сайте hellotesak.narod.ru, фактически — на серверах Яндекса (позднее он был оттуда убран).

Облака против тесака, или Хроника DDoS атак на cvk2012.org

Выяснилось, что при некоторых условиях атакующий код создаёт серьёзные проблемы для базы данных. Так как времени на оптимизацию общения фронтенда с СУБД уже не оставалось, а запаса производительности у сайта для анализа истории всех входящих запросов не было, после консультации с техподдержкой Qrator заказчик решил тесно проинтегрировать приложение с системой фильтрации, предоставив ей обратную связь относительно трудоёмкости запроса к БД.

Облака против тесака, или Хроника DDoS атак на cvk2012.org

Таким образом, сайт был защищён от напастей до субботы.

20 октября

В субботу вечером злоумышленники переключили своё внимание на расположенный в Microsoft Azure сайт голосования — election.democratia2.ru. Само по себе облако продолжало работать, однако расположенный в другом месте сервер голосований был успешно убит таргетированной LOIC-атакой — на этот раз с сайта cvkhello.do.am. Вначале команда разработчиков попыталась побороть беду изменением архитектуры, потом ввела капчу, однако в полночь сайт голосования всё же был поставлен под защиту Qrator… без HTTPS — про него впопыхах забыли. Когда Qrator получил доступ к SSL, вдобавок сказалось отсутствие накопленной истории поведения легитимных пользователей.

Работа election.democratia2.ru/ была восстановлена к часу ночи воскресенья, 21 октября, после обучения системы фильтрации.

Облака против тесака, или Хроника DDoS атак на cvk2012.org

21 октября

Само собой, срочный отказ от Azure и масштабные изменения в коде не могли не повлиять негативно на общую производительность сайта. А в воскресенье злоумышленники наконец-то пришли к использованию, наряду с LOIC, полноценного ботнета с IP-адресами из азиатских и европейских стран. Суммарное число ботов, участвовавших в атаке, составило немногим более 130 тыс. без учёта NAT. Всё это вкупе привело к необходимости превентивно блокировать ряд потенциально подозрительных IP-адресов, допуская их на сайт поодиночке и анализируя историю поведения каждого из них в отдельности. Ближе к вечеру, когда самые узкие места в производительности защищаемого сайта были ликвидированы, доступ к сайту был предоставлен всем легитимным пользователям.

Облака против тесака, или Хроника DDoS атак на cvk2012.org

Сухие технические подробности атаки

  • Тип атаки: комбинированная, SYN-флуд + атака прикладного уровня (ботнет + LOIC)
  • Пиковая мощность SYN-флуда: 150 тыс. пакетов/с
  • Пиковая мощность атаки прикладного уровня: 3,8 тыс. HTTP-запросов/с
  • Число IP-адресов, участвовавших в атаке: ориентировочно 135 тыс.

Мораль?

  • Облачная архитектура приложения не есть панацея от всех бед. Даже при благоприятном стечении обстоятельств вам грозит многозначный счёт за ресурсы, израсходованные облаком на полноценную обработку паразитного трафика. Менее оптимистичный прогноз — серьёзные проблемы с устойчивостью и производительностью и, в результате, даунтайм в самый ответственный момент.
  • Никакое высоконагруженное приложение не может быть избавлено от нагрузочного тестирования. Ни размещение в облаке, ни репутация серверной платформы и фреймворка, ни предварительно закупленный гигабитный канал не гарантируют отсутствия узких мест в скриптах, в схеме базы данных, в логике обработки запросов. Нагруженное приложение должно иметь запас в производительности и выдерживать, по крайней мере, нагрузку в 115% от расчётной или штатной — только это позволит обеспечить качественную фильтрацию при минимуме ложных срабатываний.
  • К слову, о производительности. Если ваш сервер часто думает над ответом больше секунды, крайне вероятно, что у вас большие проблемы, которые нужно решать до вывода системы на продакшн!
  • Если сайт уже недоступен извне, сохраняйте спокойствие и трезво оценивайте свои возможности. Hot patching сайта прямо на продакшене, возможно, закроет одну дыру, но откроет три новые и отрежет вам путь назад. Рассмотрите все имеющиеся в наличии возможности к спасению и выберите из них оптимальный по соотношению цены и качества.
  • Повторюсь: чем раньше ваше приложение окажется под защитой, тем больше свободного времени останется у вас и ваших системных администраторов для работы, отдыха и борьбы за свои идеалы.

Автор: ximaera


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js