Хабрахабр

DoS-атака, от которой нельзя закрыться: в закупках своя атмосфера

  1. Закон: площадка для торгов должна обеспечить доступ любому аккредитованному участнику.
  2. Практика: один из участников регистрирует какое-нибудь ООО «Ромашка», получает электронную подпись и начинает флудить тяжёлыми запросами площадку. Запросы включают криптографию, причём не самую быструю.
  3. Стандартное противодействие: отключить его или временно заблокировать.

Как видите, пункты 1 и 3 — взаимоисключающие.

Один запрос из миллиона заблокируем — сразу штраф за работу файрвола. А мы так живём.
Итак, если аккредитованному участнику приходит блокирование доступа — при жалобе возникает большой штраф. Если это был пакет с юридически значимым действием.

Все существующие средства работают по принципу определения вредоносной составляющей трафика и её блокирования. Это логично, но идёт вразрез с вопросами защиты информации. Все должны попасть на торги. Когда участники приходят на площадку и участвуют в аукционах — нельзя доверять системе фильтрацию, кого пустить, кого — нет. Подпись — это огромная криптограмма на 10 килобайт. Никакие алгоритмы не имеют права решить, кого не допускать на площадку. Используются стойкие алгоритмы, прожорливые на производительность. По меркам веб-трафика — это одно из самых тяжёлых входящих сообщений (кроме закачки файлов).

И если пользователи используют клиент-серверное приложение, и если они это делают в рамках регламента, то всё хорошо. Есть правила площадки. Система может обрабатывать много торгов сразу.

Они не соответствуют регламенту площадки. Мы имеем право блокировать работу небраузерных клиентов. Находятся умельцы, которые создают альтернативное ПО, которое имитирует работу живого пользователя с помощью браузера, — и оно может создавать серию высокочастотных запросов серверу.

Анонимные запросы можно отбрасывать.

Подписанные надо обрабатывать.

Первая идея — давать сессионные ключи, чтобы каждый раз не обрабатывать сложную аутентификацию. Если они подписаны — это подача ценовых предложений, например. Пережили волну, борьба эскалировалась.

При этом применялись технологии сокрытия источника (размывание): под одним и тем же пользователем запросы шли с десятков разных подсетей. Имели место случаи, когда все уже не DoS, а DDoS-запросы содержали легитимную электронную подпись. Даже отделив, их нельзя блокировать. Они сложны тем, что сливаются с потоком легитимных запросов.

Есть подписи, выданные удостоверяющими центрами с быстрой связью, есть такими, которые сотрудничать не захотят. Вторая идея: блокировать таким товарищам подпись. А они вас за блокировку без технической экспертизы сильно накажут. Но даже если удостоверяющий центр заблокирует подпись, это будет проблемой, потому что дальше ляжет жалоба в ФАС. Просто нет процедуры. Аккредитация на площадке тоже не может быть приостановлена — она по закону на три года, и нельзя её приостановить никак.

Дело в том, что запросы на цену или мониторинг ставятся в очередь обработки на горячую базу. Теперь — почему надо с трудом обрабатывать каждый запрос. Запрос расшифровывается, дальше идёт исключительная блокировка, потом изменение в нескольких таблицах, потом обработка следующего запроса. Из-за одной десятитысячной секунды может возникнуть спор до суда. Каждое решение имеет юридический статус. Если ценовое предложение принять нельзя, то идёт процедура откатывания изменений (например, если предложение было больше текущей цены аукциона).

Это накладывает ограничения на инфраструктуру, в частности — на возможность дробления базы и инкапсуляции её отдельных участков. Надо иметь полноценные логи каждого ценового предложения.

Они работают в тяжёлых случаях по белому списку. От классических DDoS нас защищает комплекс системы фильтрации на базе «Арбор» и «Куратор». Привлекали одну антивирусную лабораторию по договору, и по их рекомендациям приняли некоторые изменения. У нас все участники процедур в белом списке. Они на какое-то время дадут положительный эффект, но это тактическая мера.


Анализируемый при помощи машинного обучения трафик

Например, один участник ставит цену ниже, а потом забивает площадку, чтобы другие не могли её перебить. Атаки организуют те, кто хотят выиграть аукцион. Есть типы процедур, где законодательно выигрывает первый, кто подал определённое ценовое предложение. Есть и более сложные схемы и их комбинации. Это немного неактуально в цифровом мире уже, но таково законодательство со времён бумаги.

Оформлено на одного, но по факту другой участвует. Иногда непонятно, кто стоит за подписью. Есть 274 — нарушение правил работы системы. Ещё нет статьи за сам DDoS. Мы написали. Предполагается, что просто DDoS — это нормально, если не написали в правилах.

Эти меры пока купируют проблему, но не решают её. Появилась практика ловить злоумышленников и жестоко их наказывать.

Сначала приходит менеджер и говорит, что всё будет работать. А ещё у нас отличные диалоги с поставщиками DDoS-решений. Будет в глаза смотреть и говорить, что у него и как сработало. Потом, ещё до заключения договора, приходит уже не продажник, у которого всё в ажуре, а техспециалист. Но чуть-чуть. Они до покупки уже начинают заднюю: «Оно шалить может начать. Чуть-чуть». Может, не гарантируем. А потом как-то плавно оно переходит в «может, и не чуть-чуть».

Делаем профили — слепок нормального поведения обычного пользователя. Ещё мы используем элементы машинного обучения. Стараемся делать сами руками. Система опирается на эти слепки добросовестного поведения и при отклонении начинает блокировать автоматически. Знаем, что если во вторник будут большие важные торги — их попытаются положить. Причём выводим команды «советской автоматики» заранее. У нас не одна сотня атак в год (сейчас стало чуть меньше). Люди хотят помешать ходу торгов. Когда уже прямо ситуация критическая — начинаем выборочные блокировки. Часто мы можем просто ждать нарастания нагрузки: 5–10 тысяч ботов — не очень большая проблема. При этом мы блокируем топовых (самых активных) ботов, потому что у нас нет задачи прекратить атаку полностью, а есть потребность снизить нагрузку до выдерживаемого уровня, не отрубая ничего юридически значимого.

Был случай, когда ЦОД ложился целиком. Вторая часть атак — это атаки, связанные с каналом, прямо на ЦОД. Мы заблаговременно определили формат сотрудничества с провайдером. Были проблемы с каналом провайдера. Любой контракт с системой очистки трафика означает, что мы будем терять людей и получать штрафы. В частности, управляем всем сегментом IP, не позволяем делать правила фильтрации на нашу группу IP. Атакующим достаточно положить систему на секунду, чтобы зафиксировать факт непрохождения транзакции: это не совсем привычные атаки, задача которых ограничить доступ к ресурсу или сделать его полностью неработоспособным.

Важно не просто отследить, что кто-то начал делать потенциально аномальное. Используем Elastic Search для сохранения данных матчинга по профилям пользователей. Потому что есть ещё очень похожие на DDoS активности, когда кто-то из активистов или журналистов скидывает ссылку на закупку, а люди идут толпой на неё смотреть.

В это время точно инфраструктура должна выдерживать весь трафик. Нужно минуты две-три, чтобы алгоритм начал сравнивать, и тем самым произойдёт детектирование отклонения. У нас запас 15-кратной бизнес-нагрузки. Каким бы он ни был.

Из-за компьютера вставать опасно. Атаки предсказуемы по большим закупкам. Есть полуминутный лаг, чтобы добежать обратно. Отошёл куда-нибудь — SMS и телеграм-мониторинг. Стараются положить на 10–15 минут в утренний период. Битва за секунды. В целом опоздал с реакцией на 5 минут — процедуре конец. На сутки атаковали только пару раз.

Что нам нужно — это либо дать законодательное право защищаться от вредоносного трафика (когда площадка это фиксирует: что, в какой момент и почему отклонено), либо поменять процедуру аккредитации (приостанавливать аккредитацию и юридически инициировать разбирательство с нарушителями).

Мы сейчас над этим работаем, а вам пока предлагаем полюбоваться на пример проблемы, которая возникает при адаптации законодательства, созданного для бумажных процедур, к электронному миру.

Ссылки:

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть