Привет, Хабр! Меня зовут Евгений Гущин, я — исполнительный директор Smartup. За 20 лет работы в IT у меня было несколько забавных случаев. Сегодня расскажу, как мы героически поймали «русских хакеров».
Был у нас проект — агрегатор различных поставщиков и магазинов автозапчастей и электронных компонентов. К нему ежедневно обращались тысячи пользователей.
История началась с того, как в нашей «Школе разработчиков» прошел выпускной. Мы наняли из потока несколько стажеров, и один из них попал на этот проект. Чтобы познакомиться с проектом и нанести пользу, тимлид выдал стажеру доступ к репозиторию. Вот сервер, вот инструкция. Понял? Понял! Дальше дал задачу — провести нагрузочное тестирование сервиса, чтобы выявить узкие места и потом думать над их улучшением.
Документация есть, значит, можно приступать к работе. В пятницу стажер подготовил все для тестирования. Вечером, в конце рабочего дня, на своем ноутбуке запустил нагрузочные тесты. Логика простая: тесты будут крутиться все выходные, чтобы к понедельнику накопилась хорошая статистика. План казался идеальным. Запустил тесты и ушел.
У нас наступила ночь, проснулись американские коллеги. И экстренно стали бомбардировать наш саппорт сообщениями о том, что их сервис кто-то ддосит. Он ложится, никакие запросы не проходят, клиенты не могут пользоваться, заказчик теряет деньги. Памагити!
Наш саппорт подключился, стал разбираться в проблеме — да, действительно сервер атакуют запросами, ему очень плохо. Обнаружили айпишник, откуда идет основная атака. Смотрят и думают: «Айпишник как-то странно знаком». Посмотрели внимательнее, оказалось, что это наш айпишник. Неловко вышло.
Пробежались по этажам, увидели открытый рабочий ноутбук. Закрыли его. И (барабанная дробь) атака закончилась.
Саппорт отрапортовал заказчику о том, что победили негодяев, «русские хакеры» повержены. Заказчик доволен, сказал: «Молодцы! Быстро справились».
А теперь, что было на самом деле.
Стажер запустил нагрузочные тесты, но по умолчанию переменная окружения стояла на продакшн сервер.
Не знаю, в чем точно была ошибка: то ли он с мастер-ветки считал, где по умолчанию стояло продакшн окружение, либо ему не сказали обратить на это внимание. Он молодец, все сделал хорошо. Ну, кроме того, что запустил тесты на продакшене)
Возможно, более опытный мидл подумал бы и заранее посмотрел, на каком окружении он запускает тесты. А стажеру это не пришло в голову.
Что ж, урок был усвоен: даже самых умных стажеров стоит проверять.
А наш саппорт получил ачивку — победители злобных «русских хакеров»)
Комментарии (14)
Skipy
21.08.2024 13:29+3Ну вообще-то есть хорошее правило - хранить конфигурацию отдельно от кода. Это позволит мастер-ветку раскатать на любой стенд. А в процессе дальнейшей настройки неизбежно будет шаг выбора конкретной конфигурации. И вот тут настроить на прод случайно становится сильно сложнее
Wesha
21.08.2024 13:29+3Что же это, прости господи, за продакшн, который может пололжить ОДИН ноутбук?
needsomedata
21.08.2024 13:29+1С хорошим каналом и из внутренней сети в обход антиддос да еще с жирными запросами можно много натворить)
OverThink
21.08.2024 13:29+1Есть очень тяжёлые операции на сервере. Достаточно Jmeter'а на обычном ноуте, чтобы положить практически любой сайт.
dev-priporov
21.08.2024 13:29Напоминает историю, как джуну дали доступ к продовской БД, он там что-то натворил и его уволили через день.
Возможно, более опытный мидл подумал бы и заранее посмотрел, на каком окружении он запускает тесты. А стажеру это не пришло в голову.
Возможно(Очевидно) что более опытный(тот кто ставил задачу) должен был об этом подумать.
Hasumutas
21.08.2024 13:29у нас так же в первой вылазке опытный чувак нечаянно дропнул продакшен базу )) Но мы были готовы к таким фокусам
trabl
21.08.2024 13:29Скучно как-то, мало экшена. Я думал будет хотя бы подобие детектива).
Evgeniy_Gushchin Автор
21.08.2024 13:29Весь экшн ночью был, когда саппорту телефон обрывали заказчики
zoto_ff
21.08.2024 13:29+2свою задачу стажёр выполнил. теперь думайте, как сделать так, чтобы прод не ложился из-за одного клиента
goldexer
21.08.2024 13:29Да уж, воистину стажер провел «нагрузочное тестирование» и, как вы правильно выразились, помог «выявить узкие места и потом думать над их улучшением.» - узкие места оказались не в тех местах)
All999
Я раньше думал, что дудос - это сначала набрать ботов, а уже они, отовсюду... Это же что за сервис, что ему от единственного бота поплохело? И как американе не рассмотрели, что всё исходит из одной точки?
Inojj
нагрузочное тестирование ведь проводят без кучи ботов)
mumamum
>> Это же что за сервис, что ему от единственного бота поплохело?
Не все же занимаются созданием Амазонов, есть проекты и помельче