Всем привет! Мы - команда разработки ai-стартапа и это третья статья, посвященная нашему продукту.

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

Предыстория

Мы с командой работаем над ии-ассистентом для поиска работы, который забирает на себя всю рутину соискателя: ищет вакансии, делает отклики, пишет сопроводы, общается с рекрутерами. Один из главных принципов продукта - закрытый доступ, который мы открываем 1 раз в месяц. Такой подход помогает нам распределять нагрузку и равномерно расти. 

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


Начало: эйфория и первые звоночки

Всё началось штатно: с самого утра я напоминал подписчикам канала о скором старте продаж, ничего не предвещало беды. Мы с командой несколько раз проверили все процессы и все работало вполне нормально.

В 19:00 продажи были открыты - на тот момент это был наш крупнейший запуск - 150 мест. Так как продажи открываются редко и первые пользователи получают скидку, на старте все стараются успеть ухватить самый выгодный тариф. Спустя 4 минуты сайт начал падать..

Вот так мы чинили сайт в режиме реального времени
Вот так мы чинили сайт в режиме реального времени

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

Мы успокаивали пользователей в телеграм-канале и видели, как люди регистрируются, и все (как тогда казалось) было в порядке.

Полчаса спустя половина мест уже разобрана, почувствовалась настоящая, живая поддержка сообщества. Было весело и страшно одновременно. Но вскоре веселье сменилось напряженной работой. Сайт снова лег под нагрузкой. А потом снова встал. И снова упал.

Примерно так выглядел наш телеграм-канал в тот момент
Примерно так выглядел наш телеграм-канал в тот момент

Хьюстон, у нас проблема

Спустя еще полчаса, когда работа сайта так и не пришла в норму, мы узнали, что проблема была не только в живых пользователях. Нас дедосили в режиме реального времени. Это было похоже на сцену из кино: пока мы боролись с последствиями, на наш скромный стартап была организована целенаправленная DDoS-атака.

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

К концу дня мы были измотаны. Сайт то работал, то снова ложился. Казалось, мы отбили атаку, но стабильной работы добиться не могли. Было удивительно, что за те короткие 10-15 минут, когда сайт был доступен, пользователи успели разобрать 100 мест. Ближе к ночи сайт снова упал..

Так выглядела нагрузка
Так выглядела нагрузка

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


Новый день и новые приключения

Наступило утро и сайт снова лег. Выдавало ошибку 502 и мы пытались найти проблему. Здесь кто-то начал писать, что мы просто хайпимся и сами положили свой сайт. Но нам было совсем не смешно. Каждый релиз - это огромная работа и волнение, и мешать пользователям покупать свой же товар - весьма опрометчивый ход.

Внезапно посреди этого хаоса нам прилетело сообщение в бота поддержки. Но его автором был не пользователь, а наши дедосеры.

Первое сообщение от дедосеров
Первое сообщение от дедосеров

Атака на инфраструктуру дополнилась психологическим давлением. Нам начали писать в бота поддержки с угрозами. Дедосеры интересовались:

«Вопросик как будем решать, тихо мирно по телефону или мне своих ребят отправить?»

Это выглядело одновременно и смешно, и грустно. Мы лишь прокомментировали: «Мамкины ддосеры не хотят нас отпускать))». Вскоре после этого сайт снова пал, и мы с иронией констатировали: «2:0 Дедосер побеждает».

Угрозы были в лучших традициях кино
Угрозы были в лучших традициях кино

Как мы отбивались: техническая сторона атаки

К вечеру нам удалось не только стабилизировать систему, но и проанализировать, что же происходило. Вот так выглядела хроника атаки по пунктам:

1.  Сначала атака шла на наш домен. Злоумышленники закидывали нас запросами на специфический эндпоинт sofi/u-need-to-buy-my-guard. Первой реакцией был бан их IP-адреса.

2.  Затем они переключились на прямой API. Начав атаковать наш бэкенд напрямую, они снова попытались положить сервер. В этот момент мы подключили защиту от DDoS — ddos guard, и это ненадолго помогло. Но и тут прилетали угрозы))

3.  Третий этап был хитрее. Атакующие попытались подключиться к серверу через SSH, в обход защитных систем.

4.  Финальным решением стала смена IP-адреса. Мы подняли новый IP, закрыли его строгим фаерволом и настроили всю маршрутизацию исключительно через ddos guard.

Стоимость дальнейшего взлома для них резко возросла, и, судя по всему, они решили отступить.

Сражение было выиграно. Система, прошедшая через такое испытание, стала лишь прочнее. Мы с облегчением констатировали: «Атака отбита, все работает в штатном режиме». И пусть это было скорее стрессово, чем весело, мы вынесли из этой ситуации ценный опыт.

Здесь видно, как буквально за час они сделали почти 3 млн запросов
Здесь видно, как буквально за час они сделали почти 3 млн запросов

Мы поблагодарили сообщество за поддержку, а мамкиных дедосеров — за невольную помощь в укреплении нашей инфраструктуры. И, разумеется, мы сдержали слово: все, кто регистрировался в те сложные дни, получили от нас дополнительный день бесплатного триала.

Этот запуск мы запомним надолго. Он научил нас не только готовиться к высоким нагрузкам, но и всегда, всегда быть готовыми к тому, что в игру вступят те, кому просто «скучно».

Но как говорится - все хорошо, что хорошо кончается!)

Комментарии (7)


  1. Slonoed
    10.10.2025 11:41

    А на старом IP закрыть строгим файрволом не получилось?


    1. propell-ant
      10.10.2025 11:41

      А там, видать, мамкин дидосер поднагрузил и "не пущщал".


  1. polearnik
    10.10.2025 11:41

    По мойму должно стать стандартом при деплое сайта прятать его за клаудфларом или подобным. ддос прекратился бы не начавшись


  1. shibanovan
    10.10.2025 11:41

    >Третий этап был хитрее. Атакующие попытались подключиться к серверу через SSH, в обход защитных систем.

    Расскажите, пожалуйста что было тут? Какие были защитные системы SSH и как их обходили?


  1. vigfam
    10.10.2025 11:41

    3 миллиона запроcов в час - это всего лишь 833 rps.

    Что же за ресурс был у сервера, что он от такой смешной нагрузки лег ?


    1. lyric
      10.10.2025 11:41

      Они же на последних 15 минутах сконцентрировались - т.е. rps в 4 раза выше + риквест риквесту рознь. Есть подозрение, что пытались долбить наиболее тяжеловесные эндпоинты (но это не точно)


  1. DDoS-GUARD
    10.10.2025 11:41

    Благодарим, что доверили нам защиту!

    Перенос трафика на защищенный IP через сеть DDoS-Guard — отличное решение, которое сильно усложняет жизнь атакующим. Иногда они все же пробуют новые векторы, но мы оперативно адаптируем защиту и внедряем свежие технологии, чтобы вы оставались в безопасности.