- Закон: площадка для торгов должна обеспечить доступ любому аккредитованному участнику.
- Практика: один из участников регистрирует какое-нибудь ООО «Ромашка», получает электронную подпись и начинает флудить тяжёлыми запросами площадку. Запросы включают криптографию, причём не самую быструю.
- Стандартное противодействие: отключить его или временно заблокировать.
Как видите, пункты 1 и 3 — взаимоисключающие.
А мы так живём.
Итак, если аккредитованному участнику приходит блокирование доступа — при жалобе возникает большой штраф. Один запрос из миллиона заблокируем — сразу штраф за работу файрвола. Если это был пакет с юридически значимым действием.
Это логично, но идёт вразрез с вопросами защиты информации. Все существующие средства работают по принципу определения вредоносной составляющей трафика и её блокирования. Когда участники приходят на площадку и участвуют в аукционах — нельзя доверять системе фильтрацию, кого пустить, кого — нет. Все должны попасть на торги. Никакие алгоритмы не имеют права решить, кого не допускать на площадку. Подпись — это огромная криптограмма на 10 килобайт. По меркам веб-трафика — это одно из самых тяжёлых входящих сообщений (кроме закачки файлов). Используются стойкие алгоритмы, прожорливые на производительность.
Есть правила площадки. И если пользователи используют клиент-серверное приложение, и если они это делают в рамках регламента, то всё хорошо. Система может обрабатывать много торгов сразу.
Мы имеем право блокировать работу небраузерных клиентов. Они не соответствуют регламенту площадки. Находятся умельцы, которые создают альтернативное ПО, которое имитирует работу живого пользователя с помощью браузера, — и оно может создавать серию высокочастотных запросов серверу.
Анонимные запросы можно отбрасывать.
Подписанные надо обрабатывать.
Если они подписаны — это подача ценовых предложений, например. Первая идея — давать сессионные ключи, чтобы каждый раз не обрабатывать сложную аутентификацию. Пережили волну, борьба эскалировалась.
Имели место случаи, когда все уже не DoS, а DDoS-запросы содержали легитимную электронную подпись. При этом применялись технологии сокрытия источника (размывание): под одним и тем же пользователем запросы шли с десятков разных подсетей. Они сложны тем, что сливаются с потоком легитимных запросов. Даже отделив, их нельзя блокировать.
Вторая идея: блокировать таким товарищам подпись. Есть подписи, выданные удостоверяющими центрами с быстрой связью, есть такими, которые сотрудничать не захотят. Но даже если удостоверяющий центр заблокирует подпись, это будет проблемой, потому что дальше ляжет жалоба в ФАС. А они вас за блокировку без технической экспертизы сильно накажут. Аккредитация на площадке тоже не может быть приостановлена — она по закону на три года, и нельзя её приостановить никак. Просто нет процедуры.
Теперь — почему надо с трудом обрабатывать каждый запрос. Дело в том, что запросы на цену или мониторинг ставятся в очередь обработки на горячую базу. Из-за одной десятитысячной секунды может возникнуть спор до суда. Запрос расшифровывается, дальше идёт исключительная блокировка, потом изменение в нескольких таблицах, потом обработка следующего запроса. Если ценовое предложение принять нельзя, то идёт процедура откатывания изменений (например, если предложение было больше текущей цены аукциона). Каждое решение имеет юридический статус.
Надо иметь полноценные логи каждого ценового предложения. Это накладывает ограничения на инфраструктуру, в частности — на возможность дробления базы и инкапсуляции её отдельных участков.
От классических DDoS нас защищает комплекс системы фильтрации на базе «Арбор» и «Куратор». Они работают в тяжёлых случаях по белому списку. У нас все участники процедур в белом списке. Привлекали одну антивирусную лабораторию по договору, и по их рекомендациям приняли некоторые изменения. Они на какое-то время дадут положительный эффект, но это тактическая мера.
Анализируемый при помощи машинного обучения трафик
Атаки организуют те, кто хотят выиграть аукцион. Например, один участник ставит цену ниже, а потом забивает площадку, чтобы другие не могли её перебить. Есть и более сложные схемы и их комбинации. Есть типы процедур, где законодательно выигрывает первый, кто подал определённое ценовое предложение. Это немного неактуально в цифровом мире уже, но таково законодательство со времён бумаги.
Иногда непонятно, кто стоит за подписью. Оформлено на одного, но по факту другой участвует. Ещё нет статьи за сам DDoS. Есть 274 — нарушение правил работы системы. Предполагается, что просто DDoS — это нормально, если не написали в правилах. Мы написали.
Появилась практика ловить злоумышленников и жестоко их наказывать. Эти меры пока купируют проблему, но не решают её.
А ещё у нас отличные диалоги с поставщиками DDoS-решений. Сначала приходит менеджер и говорит, что всё будет работать. Потом, ещё до заключения договора, приходит уже не продажник, у которого всё в ажуре, а техспециалист. Будет в глаза смотреть и говорить, что у него и как сработало. Они до покупки уже начинают заднюю: «Оно шалить может начать. Но чуть-чуть. Может, не гарантируем. Чуть-чуть». А потом как-то плавно оно переходит в «может, и не чуть-чуть».
Ещё мы используем элементы машинного обучения. Делаем профили — слепок нормального поведения обычного пользователя. Система опирается на эти слепки добросовестного поведения и при отклонении начинает блокировать автоматически. Стараемся делать сами руками. Причём выводим команды «советской автоматики» заранее. Знаем, что если во вторник будут большие важные торги — их попытаются положить. Люди хотят помешать ходу торгов. У нас не одна сотня атак в год (сейчас стало чуть меньше). Часто мы можем просто ждать нарастания нагрузки: 5–10 тысяч ботов — не очень большая проблема. Когда уже прямо ситуация критическая — начинаем выборочные блокировки. При этом мы блокируем топовых (самых активных) ботов, потому что у нас нет задачи прекратить атаку полностью, а есть потребность снизить нагрузку до выдерживаемого уровня, не отрубая ничего юридически значимого.
Вторая часть атак — это атаки, связанные с каналом, прямо на ЦОД. Был случай, когда ЦОД ложился целиком. Были проблемы с каналом провайдера. Мы заблаговременно определили формат сотрудничества с провайдером. В частности, управляем всем сегментом IP, не позволяем делать правила фильтрации на нашу группу IP. Любой контракт с системой очистки трафика означает, что мы будем терять людей и получать штрафы. Атакующим достаточно положить систему на секунду, чтобы зафиксировать факт непрохождения транзакции: это не совсем привычные атаки, задача которых ограничить доступ к ресурсу или сделать его полностью неработоспособным.
Используем Elastic Search для сохранения данных матчинга по профилям пользователей. Важно не просто отследить, что кто-то начал делать потенциально аномальное. Потому что есть ещё очень похожие на DDoS активности, когда кто-то из активистов или журналистов скидывает ссылку на закупку, а люди идут толпой на неё смотреть.
Нужно минуты две-три, чтобы алгоритм начал сравнивать, и тем самым произойдёт детектирование отклонения. В это время точно инфраструктура должна выдерживать весь трафик. Каким бы он ни был. У нас запас 15-кратной бизнес-нагрузки.
Атаки предсказуемы по большим закупкам. Из-за компьютера вставать опасно. Отошёл куда-нибудь — SMS и телеграм-мониторинг. Есть полуминутный лаг, чтобы добежать обратно. Битва за секунды. Стараются положить на 10–15 минут в утренний период. На сутки атаковали только пару раз. В целом опоздал с реакцией на 5 минут — процедуре конец.
Что нам нужно — это либо дать законодательное право защищаться от вредоносного трафика (когда площадка это фиксирует: что, в какой момент и почему отклонено), либо поменять процедуру аккредитации (приостанавливать аккредитацию и юридически инициировать разбирательство с нарушителями).
Мы сейчас над этим работаем, а вам пока предлагаем полюбоваться на пример проблемы, которая возникает при адаптации законодательства, созданного для бумажных процедур, к электронному миру.
Ссылки:
- Экосистема цифрового мира закупок (чтобы воровали меньше)
- Электронная подпись для участия в закупках
- Для чего нужны закупки, и как это выглядит с точки зрения ИТ
- Модель атак: где в основном злоупотребляют на конкурсных закупках и как с этим борются
- Какие бывают процедуры закупок (простыми словами)
- Краткая история электронных госзакупок на Руси
- Как мы открывали офисы разработки
Автор: Максим Кудряшов