Привет! Меня зовут Евгений Гущин, я — исполнительный директор Smartup. За 20 лет работы в IT у меня было несколько забавных случаев. Сегодня расскажу, как мы героически поймали «русских хакеров».
Был у нас проект — агрегатор различных поставщиков и магазинов автозапчастей и электронных компонентов. К нему ежедневно обращались тысячи пользователей.
История началась с того, как в нашей «Школе разработчиков» прошел выпускной. Мы наняли из потока несколько стажеров, и один из них попал на этот проект. Чтобы познакомиться с проектом и нанести пользу, тимлид выдал стажеру доступ к репозиторию. Вот сервер, вот инструкция. Понял? Понял! Дальше дал задачу — провести нагрузочное тестирование сервиса, чтобы выявить узкие места и потом думать над их улучшением.
Документация есть, значит, можно приступать к работе. В пятницу стажер подготовил все для тестирования. Вечером, в конце рабочего дня, на своем ноутбуке запустил нагрузочные тесты. Логика простая: тесты будут крутиться все выходные, чтобы к понедельнику накопилась хорошая статистика. План казался идеальным. Запустил тесты и ушел.
У нас наступила ночь, проснулись американские коллеги. И экстренно стали бомбардировать наш саппорт сообщениями о том, что их сервис кто-то ддосит. Он ложится, никакие запросы не проходят, клиенты не могут пользоваться, заказчик теряет деньги. Памагити!
Наш саппорт подключился, стал разбираться в проблеме — да, действительно сервер атакуют запросами, ему очень плохо. Обнаружили айпишник, откуда идет основная атака. Смотрят и думают: «Айпишник как-то странно знаком». Посмотрели внимательнее, оказалось, что это наш айпишник. Неловко вышло.
Пробежались по этажам, увидели открытый рабочий ноутбук. Закрыли его. И (барабанная дробь) атака закончилась.
Саппорт отрапортовал заказчику о том, что победили негодяев, «русские хакеры» повержены. Заказчик доволен, сказал: «Молодцы! Быстро справились».
А теперь, что было на самом деле.
Стажер запустил нагрузочные тесты, но по умолчанию переменная окружения стояла на продакшн сервер.
Не знаю, в чем точно была ошибка: то ли он с мастер-ветки считал, где по умолчанию стояло продакшн окружение, либо ему не сказали обратить на это внимание. Он молодец, все сделал хорошо. Ну, кроме того, что запустил тесты на продакшене)
Возможно, более опытный мидл подумал бы и заранее посмотрел, на каком окружении он запускает тесты. А стажеру это не пришло в голову.
Что ж, урок был усвоен: даже самых умных стажеров стоит проверять.
А наш саппорт получил ачивку — победители злобных «русских хакеров»)
Автор: Evgeniy_Gushchin