Привет, Хабр! Меня зовут Евгений Гущин, я — исполнительный директор Smartup. За 20 лет работы в IT у меня было несколько забавных случаев. Сегодня расскажу, как мы героически поймали «русских хакеров».

Был у нас проект — агрегатор различных поставщиков и магазинов автозапчастей и электронных компонентов. К нему ежедневно обращались тысячи пользователей. 

История началась с того, как в нашей «Школе разработчиков» прошел выпускной. Мы наняли из потока несколько стажеров, и один из них попал на этот проект. Чтобы познакомиться с проектом и нанести пользу, тимлид выдал стажеру доступ к репозиторию. Вот сервер, вот инструкция. Понял? Понял! Дальше дал задачу — провести нагрузочное тестирование сервиса, чтобы выявить узкие места и потом думать над их улучшением.

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

У нас наступила ночь, проснулись американские коллеги. И экстренно стали бомбардировать наш саппорт сообщениями о том, что их сервис кто-то ддосит. Он ложится, никакие запросы не проходят, клиенты не могут пользоваться, заказчик теряет деньги. Памагити!

Наш саппорт подключился, стал разбираться в проблеме — да, действительно сервер атакуют запросами, ему очень плохо. Обнаружили айпишник, откуда идет основная атака. Смотрят и думают: «Айпишник как-то странно знаком». Посмотрели внимательнее, оказалось, что это наш айпишник. Неловко вышло.

Пробежались по этажам, увидели открытый рабочий ноутбук. Закрыли его. И (барабанная дробь) атака закончилась.

Саппорт отрапортовал заказчику о том, что победили негодяев, «русские хакеры» повержены. Заказчик доволен, сказал: «Молодцы! Быстро справились».

А теперь, что было на самом деле.

Стажер запустил нагрузочные тесты, но по умолчанию переменная окружения стояла на продакшн сервер. 

Не знаю, в чем точно была ошибка: то ли он с мастер-ветки считал, где по умолчанию стояло продакшн окружение, либо ему не сказали обратить на это внимание. Он молодец, все сделал хорошо. Ну, кроме того, что запустил тесты на продакшене)

Возможно, более опытный мидл подумал бы и заранее посмотрел, на каком окружении он запускает тесты. А стажеру это не пришло в голову.

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

А наш саппорт получил ачивку — победители злобных «русских хакеров»)

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


  1. All999
    21.08.2024 13:29
    +4

    Я раньше думал, что дудос - это сначала набрать ботов, а уже они, отовсюду... Это же что за сервис, что ему от единственного бота поплохело? И как американе не рассмотрели, что всё исходит из одной точки?


    1. Inojj
      21.08.2024 13:29

      нагрузочное тестирование ведь проводят без кучи ботов)


    1. mumamum
      21.08.2024 13:29

      >> Это же что за сервис, что ему от единственного бота поплохело?

      Не все же занимаются созданием Амазонов, есть проекты и помельче


  1. Skipy
    21.08.2024 13:29
    +3

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


  1. Wesha
    21.08.2024 13:29
    +3

    Что же это, прости господи, за продакшн, который может пололжить ОДИН ноутбук?


    1. needsomedata
      21.08.2024 13:29
      +1

      С хорошим каналом и из внутренней сети в обход антиддос да еще с жирными запросами можно много натворить)


    1. OverThink
      21.08.2024 13:29
      +1

      Есть очень тяжёлые операции на сервере. Достаточно Jmeter'а на обычном ноуте, чтобы положить практически любой сайт.


  1. dev-priporov
    21.08.2024 13:29

    Напоминает историю, как джуну дали доступ к продовской БД, он там что-то натворил и его уволили через день.

    Возможно, более опытный мидл подумал бы и заранее посмотрел, на каком окружении он запускает тесты. А стажеру это не пришло в голову.

    Возможно(Очевидно) что более опытный(тот кто ставил задачу) должен был об этом подумать.


    1. Evgeniy_Gushchin Автор
      21.08.2024 13:29

      Да, тимлид тоже получил "незабываемый" опыт.


  1. Hasumutas
    21.08.2024 13:29

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


  1. trabl
    21.08.2024 13:29

    Скучно как-то, мало экшена. Я думал будет хотя бы подобие детектива).


    1. Evgeniy_Gushchin Автор
      21.08.2024 13:29

      Весь экшн ночью был, когда саппорту телефон обрывали заказчики


  1. zoto_ff
    21.08.2024 13:29
    +2

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


  1. goldexer
    21.08.2024 13:29

    Да уж, воистину стажер провел «нагрузочное тестирование» и, как вы правильно выразились, помог «выявить узкие места и потом думать над их улучшением.» - узкие места оказались не в тех местах)