Борьба с DDoS-атаками: реальный опыт IT-компании
В этом кейсе расскажем, как крупнейший конструктор квизов справился с DDoS-атаками и причём здесь хостинг-провайдер.
DDoS-атаки — проблема любого бизнеса. Из-за них сайт будет постоянно падать, компания будет терять деньги, а хакеры продолжат пользоваться уязвимостями. В статье крупнейший конструктор квизов поделился реальными стратегиями по защите от DDoS-атак.
Архитектура проектов
Сейчас команда использует 16 различных VDS и файловые хранилища для обеспечения работы сервисов. Архитектура между проектами распределена так:
Matomba — конструктор квизов
Это один из крупнейших конструкторов квизов в России, который позволяет собирать заявки и управлять ими. Для команды конструктор — основной и самый высоконагруженный сервис. Посещаемость доходит до нескольких сотен тысяч визитов в день по всем аккаунтам клиентов.
Архитектура: Matomba размещена на нескольких VDS, связанных между собой по локальной сети. Это позволяет распределять нагрузку и быть устойчивым к перегрузкам. Несмотря на высокую посещаемость, нагрузка на серверы редко превышает 10-20%, поэтому балансировщик нагрузки пока не используется.
SandyApp — конструктор мобильных приложений
Сервис позволяет создавать кастомизируемые мобильные приложения, которые легко интегрировать с системами учета в ресторанах. Основная аудитория — ресторанный бизнес. Проект запустился недавно, сейчас проводят первые стресс-тесты.
Архитектура: используется несколько VDS для обеспечения быстрой обработки и хранения данных. Файловые хранилища играют ключевую роль, поскольку ожидается большое количество обращений к фотоматериалам.
Diappo — конструктор сайтов в формате сторис
Инструмент позволяет создавать сайты с элементами сторис, аналогичными. А ещё даёт возможность добавлять формы обратной связи и интеграцию с AmoCRM и Bitrix. Это наименее загруженный сервис, который находится на стадии тестирования и оптимизации.
Архитектура: размещен на нескольких VDS, связанных локальной сетью для быстрой и эффективной коммуникации между компонентами системы.
Опыт борьбы с DDoS-атаками
Кейс 1: аномальная нагрузка на диск
Изначально все три сервиса находились на одном VDS. Пока трафик был небольшой, всё было в порядке. Но потом сервер начал падать. Определить причину было непросто — показатели были стабильны, но все равно что-то было не так.
Оказалось, что проблема была глубже. На сайте был файл со скриптом, позволяющим клиентам добавлять квиз на свой сайт. На этот скрипт надстроили около 20 DDoS-компонентов — они начали забивать диск, он начал глючить, из-за этого сайт падал.
Команда постоянно увеличивала ресурсы: память, процессоры. Проблема решалась за 5 минут, а через 4 дня подключали еще несколько DDoS-компонентов, и сайт падал.
Как решили проблему:
Разработчики быстро поняли, что нужно разделить инфраструктуру на несколько VDS: сайт с техподдержкой и кабинетом пользователей разместить на одном виртуальном сервере, базу данных — на другом, а фоновые процессы — на третьем. Это позволило быстро масштабироваться и улучшить устойчивость системы. Это решение получилось намного дешевле, чем если брать выделенный сервер.
Кейс 2: устаревшие версии ПО
Один из серверов VDS достаточно старый — на нём лежит база данных. Проблема была в том, что на нем стоит debian 10, которая уже устарела. В ней была уязвимость почтового сервиса, через которую можно получить доступ к управлению сервисом с прав администратора. В новой версии debian 12 уже все решено, а вот в debian 10 проблема была.
Как решили проблему:
Кажется, что все просто: обновляете ПО, уязвимость закрывается. Но нюанс был в том, что команда не могла останавливать работу сервисов даже на время. Сейчас эта проблема решается через переход на DBaaS. Там есть возможность клонировать сервер, переустановить на него обновление и удалить клон.
Кейс 3: анализатор DDoS-уязвимостей
Здесь проблема была с анализатором DDoS-уязвимостей. На сайте было настроено около 20-30 штук, и этот файл дергали постоянно. Из-за высокой частоты запросов забивался канал на диске. При этом оперативная память не была нагружена выше 20%, а процессор не выше 10%. Однако сервер сильно зависал.
Как решили проблему:
Перенесли скрипт-генератор на отдельную VDS. И поставили DDoS-защиту: теперь, если больше 5 обращений, сразу в бан. Эта мера значительно снизила нагрузку на серверы и улучшила их стабильность.
«Сейчас мы переносим наши ресурсы в DBaaS от SpaceWeb. Это должно помочь избавиться от тех проблем, с которыми мы сталкивались раньше. Например, обновлять ПО можно будет без остановки сервера. Достаточно будет сделать клон и переустановить на него обновление.
Недавно в DBaaS мы создали инстанс, всё работает корректно: через локальную сеть всё подключается, PHP устанавливается. Хотим посмотреть, как система справится со стрессовой ситуацией, а ещё проверить, как хранятся и бэкапятся данные».
А как вы защищаете свои ресурсы от DDoS-атак?