{"id":14268,"url":"\/distributions\/14268\/click?bit=1&hash=1e3309842e8b07895e75261917827295839cd5d4d57d48f0ca524f3f535a7946","title":"\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044c \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0430\u043c \u0438\u0433\u0440\u0430\u0442\u044c \u043d\u0430 \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u043c\u0435\u0441\u0442\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e?","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"f71e1caf-7964-5525-98be-104bb436cb54"}

Нашел на GitHub код, который проводит SMS-атаки

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

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

Как и любой компании по доставке еды, у моей «Царицы Роллов» (не спрашивайте о странном названии, долгая история) на сайте стоит авторизация через SMS. Сфера у нас очень конкурентная, каждый процент конверсии на счету, поэтому авторизация через SMS — наше всё.

Так вот буквально с недельку назад пишет мне в Telegram старший администратор о том, что пошли жалобы от клиентов о том, что не могут зарегистрироваться на сайте. А без регистрации не видать скидки как ушей, поэтому клиенты негодуют.

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

Догадки подтвердились. Я, дабы оперативно восстановить авторизацию, с карты закинул на баланс SMS-провайдера 5000 рублей и выкинул из головы.

На следующий день ситуация повторилась — снова звонки клиентов. Снова та же тема. Захожу в кабинет — вижу на счёте ноль.

Сразу заподозрил неладное. Мы не «Додо», и даже несмотря, что в наше время SMS — штука дорогая, у нас 5000 рублей ну если не на месяц, но на пару недель с запасом точно должно хватить. А тут суток не прошло. Полез ковырять отчёты по отправкам. Вижу, все SMS израсходованы на получение пароля. Очень странно.

Бегло пробежал глазами номера, и понял, что там отборная солянка из российских, казахстанских и украинских номеров. Стал догонять, что работает какой-то софт.

Первым делом, конечно, надо было остановить вакханалию, так как потерять 5000 рублей это не беда, а вот хапнуть клиентского негатива — вещь опасная. А голодный человек, который не может добраться до своих баллов в кабинете, спасибо точно не скажет.

Выключил отправку SMS, прикрутил Google-капчу на кнопку отправки (та бесячая штука, которая просит найти пожарный гидрант или автобус на картинках). Включил SMS обратно, закинул денег на баланс — расход прекратился. Не удивительно, Google-капчу как бы матом ни ругали, но обойти её большинство рукожопов не может, нейросеть такую на коленке не каждый набросает.

Ну а клиенты, естественно, пусть и с небольшим теперь геморроем, но доступ к функциональности получили. В принципе капча в таких делах вещь нужная, но, как повелось на рынке, — она снижает конверсию, а чтобы кто-то бомбил зачем-то отправку SMS, с таким я еще не встречался. Но мне так это было бессмысленно, особенно для такой небольшой даже по тюменским меркам компании, как моя ЦР.

Какой тут может быть смысл? Только один. Вредить. Ладно, копнём дальше. График нагрузки на сервер показал, что запросов идёт много и начались они несколько дней как, постепенно нарастая.

Рост нагрузки на сайт

Как я понял, софт отправляет аналогичные форме на сайте POST-запросы, поэтому повесил на этот запрос скрипт, который чекает IP-адрес запроса и записывает в базу. Список в базе стал быстро расти. Поначалу на глаз показалось, что запросы идут с десятка проксей, но когда счёт пошел на десятки тысяч, понял, что дело серьёзнее.

Написал небольшой анализатор, который считает количество запросов с каждого IP, и если их набирается больше 12 в сутки (вряд ли нормальный человек по 12 раз в сутки пароль меняет), заносит IP адрес в таблицу заблокированных и при следующем обращении к сайту наглухо блокирует доступ.

Естественно, без косяков не обошлось, и поначалу скрипт написал косячно, из-за чего заблокировал API телефонии и банка. Но быстро довёл до ума.

Список заблокированных IP стал также быстро расти.

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

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

Причем, судя по темпам запросов, задачи провести DDoS-атаку не было, а задача стояла именно в скрутке SMS на левые номера, так как запросы отправлялись достаточно медленно и размеренно.

И это логично, поскольку устрой они DDoS, на неё внимание обратят сразу, а тут фактически незаметно до тех пор, пока не улетит SMS-бюджет. А некоторые крупные компании закидывают на баланс сотни тысяч и вряд ли каждый день заходят и проверяют состояние счёта. Как правило, делается это достаточно редко.

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

Но неожиданное открытие сделал «Яндекс.Вебмастер». Нужно было поработать по SEO-шке и сделать уже, наконец, турбо-страницы на «Яндексе», чтобы позиции приподнять. Так вот, по старой дедовской привычке захожу во входящие ссылки посмотреть и вижу входящую ссылку с GitHub.

Ссылка с GitHub на сайт доставки суши в Тюмени. Странно?

Оказалось, что ссылка это ведёт на гитхабовский репозиторий, в котором в вопросах размещен длинный список компаний.

Как видно из списка, кто-то заморочился и пробежался по суши- и пицца-сайтам рунета и собрал списки, многие из сайтов которых наверняка обладают огромными SMS-бюджетами (тот же «Суши-мастер» с сетью в несколько сотен заведений, «Авто.ру», Fix Price, «Суши-вок», и много кто ещё) .

Как оказалось, в репозитории лежит написанный на Python SMS-бомбер, который и занимается этой вредоносной деятельностью.

Так что, друзья, обязательно хорошо защищайте свои веб-ресурсы.

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

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

Если кто-то из знакомых управляет какими-то компаниями из списков, напишите, пожалуйста, им, чтобы обратили внимание.

Держите ухо востро! Ну и репостните по возможности.

0
147 комментариев
Написать комментарий...
Саша Толстых

Добро пожаловать в Интернет.
Ваша Царица Роллов работает в Тюмени, вот и фильтруйте номера по региональной принадлежности. Или проверяйте номера через HLR-запрос.

Например, на скриншоте фигурирует номер 9177527601. Согласно выгрузке из базы Россвязи (https://rossvyaz.ru/deyatelnost/resurs-numeracii/vypiska-iz-reestra-sistemy-i-plana-numeracii?searched=true&code=917&number=7527601&operator=), номер закреплен за МТС, регион - Башкортостан. Вы работаете в этом регионе?

Ответить
Развернуть ветку
Make Luv

Плохой вариант. Живу с питерским мтсовским номером, уведенным в йоту в вечном роуминге. 

Ответить
Развернуть ветку
Arthur N

«Йота» давно региональные тарифы давно отменила, я в Москве плачу 280 рублей за 350 минут и безлимитный интернет.

Ответить
Развернуть ветку
Юрий Б.

Как вы это смогли? См.скриншот

Ответить
Развернуть ветку
Arthur N

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

Ответить
Развернуть ветку
Юрий Б.

Ну тогда классно быть вами, достаточно всего лишь пропутешествовать обратно во времени и перейти на старый тариф Yota заранее. @Yota @Yota — официально @Yota Admin можете дать пояснения? У меня тариф для смартфона, если это важно.

Ответить
Развернуть ветку
Yota

Юрий, друзья, всем привет! Пояснительная бригада на месте.

Сперва отметим про региональные условия: сейчас их действительно уже нет, и по всей России остается один-единственный пакет - тот, который был подключен в домашнем регионе сим-карты.

Из-за технических особенностей не удалось автоматически переключить все-все сим-карты с региональных условий на обычные, поэтому если условия всё еще региональные - мы можем помочь с переходом. Для этого нужно прислать нам в ВК (vk.me/yota) описание ситуации, а также свой номер.

Что касается конкретно вопроса Юрия про разные условия. Наша последняя тарифная линейка подразумевает конструктор - гибкую настройку минут и трафика с точностью до единицы. Именно это и видно на скриншоте Юрия. Ознакомиться с актуальной ценовой политикой этой линейки всегда можно на нашем сайте: yota.ru/voice

На скриншоте Arthur N видим архивные условия, которые настраивались не так гибко: 350, 600 минут и т.д. Увы, такие пакеты сейчас недоступны для подключения, ими продолжают пользоваться те, у кого они уже были подключены. Так что без машины времени тут, к сожалению, действительно не обойтись :(

Ответить
Развернуть ветку
Илья Посаженников

Это тариф для смартфона или планшета?

Ответить
Развернуть ветку
Arthur N

Смартфона.

Ответить
Развернуть ветку
Ruslan Mirsalikhov

КАК? Москва, старый тариф с безлимитным интернетом, 480р. @Yota @Yota — официально @Yota Admin говорят, что разница может быть из за регионов. Где была куплена ваша ? 

Ответить
Развернуть ветку
Arthur N

Да, это точно из-за региона. Моя куплена в Башкортостане.

Ответить
Развернуть ветку
Make Luv

Да причем тут роуминг, я про то, что банить/ограничивать по региональной привязке номера плохая идея.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Yota

Привет! Роуминг сейчас отменен, так что не такой он уж и вечный. Пришлите, пожалуйста, нам в VK (vk.me/yota) свой номер и описание ситуации. Поможем с переходом на актуальные домашние условия 👌🏻

Ответить
Развернуть ветку
144 комментария
Раскрывать всегда