Нашел на 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-бомбер, который и занимается этой вредоносной деятельностью.
Так что, друзья, обязательно хорошо защищайте свои веб-ресурсы.
В мире есть люди, которым не дано понять, что, пытаясь опустить других, сам выше не станешь. Мелкие пакостники, которые тем не менее могут нанести пусть не смертельный, но неприятный ущерб.
Не знаю, под какую статью УК попадает это злодеяние, состава кражи или мошенничества тут нет, вероятно, хулиганство какое-то нибудь.
Если кто-то из знакомых управляет какими-то компаниями из списков, напишите, пожалуйста, им, чтобы обратили внимание.
Держите ухо востро! Ну и репостните по возможности.
Комментарий недоступен
ошибка выжившего :). Он переживает за "постоянных" клиентов, у которых кабинет со скидками. Сколько людей просто плюнет, видя дурацкие заборы и пойдет к другим - об этом он не знает, они же не стали его клиентами.
Согласен, странный подход. Во-первых, вместо капчи для начала надо открыть для себя мир CDN-frontend-экранов, которые знают "мирные эндпоинты" это отсеит нагрузку и прмитивный бот трафик на 99%
Далее, зачем давать "восстановление пароля" на номера, которые не зареганы в юзербейс?
Дайте смс на произвольный номер только при регистрации и через cdn, все что валидацию по cdn не прошло, через капчу (вообще это сценарий из коробки).
А recovery делайте по почте или на номер из юзербейс.
Клиентам ничего не мешает делать заказ без регистрации во-первых, все данные также фиксируются по номеру телефону. Но если человек получает пароль и авторизуется на сайте, ему доступна ещё история заказов, хранение адресов доставки, бонусная система и плюс раньше была еще реферальная система по типу приведи друга и получай проценты с его заказов.
Тоже такая мысля пришла. В нашей деревне (1млн жителей) заказываю в двух пиццериях, НИКАКИХ смс не требуют, при этом личный кабинет есть))) Программисты наверное посмышленнее...
У Санрайза я бы личный кабинет всё же сделал, чтобы помнить адрес и историю заказов.
Может это сам смс шлюз так свой доход увеличивает или тот кто вас по рефералке привел?)) Кем пользуетесь?
Берите выше - мобильные операторы! На скриншоте подозрительно много номеров МТС... Это МТС! Точно МТС!
Просто очень настойчивый пользователь
Так делать ни в коем случае нельзя. Во-первых, у вас несколько клиентов могут сидеть под одним IP за натом (например в организации или в некоторых интернет-провайдеров так) - если вы так одного заблокируете, то заблокируете всех. Еще есть серые IP. Сегодня злоумышленник воспользовался симкой мегафона, вы его IP забанили. Теперь сегодня у меня IP вчерашнего злоумышленника - но я то хороший человек, ничего такого не делал, почему я доступа не смогу получить к вашему сайту?
Гугл каптчи было бы достаточно.
Причем невидимой капчи, которая отображалась бы только при доступе из тора или других подозрительных действиях
У нас чувствительная отрасль, база клиентов постоянная, если не смогут зайти на сайт - будет отклик. Пока ни одного обращения не было. Так что норм.
еще как можно.
смотрите в локатор.
видите папуа-новая гвинея.
баните всю подсеть.
доброе утро
однако...
Добро пожаловать в Интернет.
Ваша Царица Роллов работает в Тюмени, вот и фильтруйте номера по региональной принадлежности. Или проверяйте номера через HLR-запрос.
Например, на скриншоте фигурирует номер 9177527601. Согласно выгрузке из базы Россвязи (https://rossvyaz.ru/deyatelnost/resurs-numeracii/vypiska-iz-reestra-sistemy-i-plana-numeracii?searched=true&code=917&number=7527601&operator=), номер закреплен за МТС, регион - Башкортостан. Вы работаете в этом регионе?
Комментарий недоступен
Лучше модифицировать схему. Тем, кто из не родного региона, показывать капчу, а кто из родного региона не показывать. Будет и нашим и вашим))
Живу в Москве с Томской симкой. В интернет выхожу через Нидерландский ВПН. Как быть?:)
Кейс рабочий, однако не во всех случаях)
У меня например номер московский, а живу в Питере.
Просто в Москве тарифы были ооочень выгодные и пребывая в командировке успел приобресть)
Это Теле2, они на тот момент только на рынок заходили супер активно
Плохой вариант. Живу с питерским мтсовским номером, уведенным в йоту в вечном роуминге.
Пфф, комментаторы.
Не надо искать заговора или тайного смысла там, где его нет. Здесь налицо просто малолетние долбоёбы. Погуглите "смс бомбер", а ещё лучше "site:pikabu.ru смс бомбер". Улюлюкающее быдло даже не задумывается о том, что каждая смс стоит под 2 рубля, ведь платят в конечном счёте не они. Если их ткнуть носом, ответом будет: "Чего, блядь? Не обеднеют!", я пробовал.
Под раздачу попадают никак не защищённые API отправки СМС (капчей, CSRF или иным способом).
я на пикабу не бываю увы или ах
Кстати капча третьей версии тихо-мирно показывается в уголочке... А иногда даже и это можно скрыть. Но запросы, между тем, ей верифицируются. И если это нелюдь, то в запросе это видно и такой запрос к серверу можно исключить. Сам пользуюсь этим механизмом.
Да, я в курсе. Делал наскоряк т.к. с этой знаком, а с новой тихой капчей надо разбираться ещё что там на дак
А почему не сделать CSRF и на этом успокоится? Добавьте в скрипт Get запрос кода для авторизации POST запроса - если Вас ломают массово как одного из списка - то такой фильтр уберет на 100 процентов проблему
Еще две строчки кода в бомбере и 100% превращаются в 0%
На первой стадии можно просто сделать доп. поле и ключ
Как версия - как раз жертва не вы , а получатели.
Цель этого По - недорого "достать" жертв, присылая им СМС из разнообразных источников.
Поэтому авторы и ищут недозакрытые сервисы, через которых их и можно делать.
Похоже на то.
Ссылку на тот проект на гитхаб дайте - лень искать.
Сам себе минус поставь... Лень нажимать...
Найдено https://github.com/crinny/b0mb3r
Очень правильно на картинках рисовать баттоны и не делать их кликабельными ;)
бывает всякое ) такая лайф
После такой развязки не нахожу слов - офигеть)
Комментарий недоступен
есть такая, висит на морде
Сказ о том, как бюджеты отрабатывать. Вопрос, как всегда один: кому выгодно?(;
Точно выгодно смс-провайдеру, но сомневаюсь, что это они будут заниматься такой деятельностью.
это разработка школотронов для спама смс хозяевам номеров. причем, бомбер ничего не расходует.
ну и на сео ты решил плюнуть после всего?
Не, сеошка в процессе переделки, так что пока вылетают всякие нюансы
Добро пожаловать в клуб: очень хорошо что вы так легко отделались, некоторым не повезло куда больше - были попадания на куда большие суммы.
Что с этим делать?
1. Привязка к сессии - обязательно https only cookie, без этого - рубим
2. Обязательно несколько шагов и форм, плавающих: вставьте банальное 'мы вас любим' с кнопкой 'продолжить' для каждого 5-10го клиента - отсечете сразу половину таких колхозных скриптов, без всякой капчи
3. CSRF-токен на каждую форму, генеренные id управляющих элементов - не должно быть способа дернуть отправку заказа или восстановление пароля через один единственный POST-запрос или каким-то очевидным разбором html
Вообщем не должно быть простого способа вас попользовать, если натянуть вашу систему доставки будет стоить 5 000 долларов - все, вы защищены.
все это обходится питоном. scraper и готово.
золотые слова. Пока всё проще, но! Друг, свяжись со мной в телеге @amspb , буду рад общению.
Обычно в любом действии есть какой то мотив. Например, всплеск кликов на рекламу диванов был вызван флешмобом, некоторые сайты страдают, т.к. попали как пример в курсы по веб-скраппингу и т.п.
Предположим, что мотивов здесь минимум два. Первый - заказ конкурентов, а скрипт просто содержит список таких же "заказанных" у этого "исполнителя", который даже не справился сделать репозиторий приватным для такого кода.
Второй мотив может быть у того, кому платите за смс. Не хотите провести анализ "коллег" в списке в скрипте? Возможно все вы используете один смс-шлюз, который таким простым способом обеспечивает накрутку?
Молодца, хорошо капнул и других предупредил
Сделай авторизацию через чат-бота. И скликивать нечего и дополнительный бесплатный канал для рассылок клиентам.
Что-то типа: http://supertest.servicebot.online/
гемор
Не понял, а что пишут про схему авторизации по номеру смс типо зло?
Все каршеринги - на такой. Все доставки еды, деливери, яндекс еда, самокат, хз что ещё - на такой. Вк, ок, куча соцсетей, вб, озон и прочего - на авторизации по смс. Да, для получения скидки новорегам по еде как защита это уже не ахти как работает, хитропопые арендуют смс активацию в сервисах на 15 минут. Но тем не менее, в чем зло то по существу?
сам не пойму. номер телефона - самый ясный ID сегодня. уникальный, конструктивный, рабочий. тут все ссат на чипирование - но каждый живет под номером уже сейчас.
Авторизация по телефону — единственное правильное решение. Юзеру не нужно помнишь ни логин, ни пароль — ввёл телефон и зарегистрировался/авторизовался.
Автор явно с головой подошёл к решению, но можно было сделать проще — отправлять запросы к смс-оператору с сервера. Юзер на клиенте вводит номер телефона, жмёт получить код — сервер обрабатывает номер и делает запрос. А запросы вашего сервера скрыты от глаз. Таким образом, вы героически решили проблему, которая вытекает из другой — не нужно слать запросы к другим сервисам с клиента.
+
Кто-то из сотовых операторов похоже сделал))
вряд ли, не их уровень
Комментарий недоступен
СМС-бомбер в последнее время разрекламировали на пикабу.
Реальный кейс - народ читает пост про "плохого" человека, кто-то в комментах предлагает использовать на нем смс-бомбер, вот вам и "скрутка" получилась из тысячи хомячков которые пытаются кому-то насолить.
зумеры в питончик пытаются
пикаду аудитория малая нынча
Жалобу на репозиторий наверное стоит послать.
я послал
Довольно популярный вид баловства, во многих сайтах, API запросы голыми отсылаются на сервер.
Плюсую, что гугл капчи более чем хватило бы для защиты.
Согласен, но сначала было непонятно - по каким запросам атака, надо было кикнуть всех сверхактивных. Пока от клиентов ни одной жалобы не было.
зачем вам сдалась эта гуглкапча - и передавать ей номера пользователей.. поставьте альтернативную капчу с тонкой настройкой сложности, сейчас развивается, там автобусы, велосипеды, зонтики ))) ее Privacy Pass от cloudflare поддерживает..
Спасибо. Буду знать. +++
1. За публикацию скрина с номерами (кто бы и по какой причине за ними не прятался) Роскомнадзор "грохнет" Вашу "сушильню", ибо у Вас наверняка есть соглашение о нераспространении персональных данных.
2. Вы на 100% уверены, что среди этих номеров, нет реального клиента, который прочтет эту статью и засудит ваши суши к чертовой бабушке?
3. Кто мешает восстанавливать пароль только для зарегистрированных клиентов.
4. Нафига вообще этот гемор с регистрацией и восстановлением пароля по смс.
как только меня на левом сайте просят ввести номер, я ухожу с него, т.к статистика показывает, что после таких регистраций увеличивается поток спама. Позвонив как-то с совершено нового номера в известную и раскрученную пиццерию в нашем регионе, я начал получать спам с указанием моего имени, что на 100% доказывает причастность таких контор в распространении персональной информации. Еще раз позвонил, но в тех поддержку, сказал что подам заяву в суд и в ФАС ибо задрали,
и как ни странно, спам прекратился, надо же, какое совпадение.
Даже Вы не постеснялись выложить номера, что уж говорить про тех, кто ими торгует.
Кто его знает, может даже это и ваша "сушильня" тоже страдает такой фигней, ведь зачем то кровь из носу вам нужны номера клиентов.
5. Почитайте, что такое серый IP у мобильных операторов, есть внешний IP- белый, на котором может просидеть десяток, а то и сотня абонентов за сутки, есть внутренний - серый.
И на каком основании Вы заблокировали всех остальных абонентов сидящих на одном и том же внешнем IP?
И это всë, из за отсутствия желания найти более оптимальное и простое решение.
"Как и любой компании по доставке еды, у моей «Царицы Роллов» (не спрашивайте о странном названии, долгая история) "
Так почему «Царица Роллов»?
Был другой проект, который умер в войне с роспотребнадзором из-за неправильно установленной вытяжки ( рпн про из-за нарушение выключает компанию, после 3х раз ликвидирует). После войны с юрлицом умер товарный знак, надо было выкручиватья, родилось вот это. Вариантов других не было.
В далекие нулевые у меня на одном из сайтов стояла регистрация по смс в другом формате.
На сайте выходил цифровой код из 6 цифр
Клиент отправлял его через смс на мой номер.
Бот обрабатывал входящие смс через обычный юсб модем билайна. Там все писалось в базу данных в модеме, и нужно было просто ее читать.
Спамили номер мой конечно крепко. чего только не отправляли ... Один даже чел частушки матерные отправлял.
Раньше были времена, а теперь мгновения =) таким знакомствам рад, есть что со мной связь в телеге @amspb, всегда рад общению с птеродактилями ( к коим и себя отношу )
А сэйлфи с паспортом через MMS не нужно было отправить на этот номер?
Смысл SMS-бомбера в том, чтобы насолить какому-то конкретному номеру бесконечным потоком SMS. Бороться с этим тяжело потому что SMS - технология 80х годов, когда слово "спам" даже не было в ходу. Ещё пару лет этого вала "предложений" и "акций", и SMS будет просто заблокирована по умолчанию, как функция.
Как клиент всяких онлайн-магазинов, я вижу, что многие идут другим путём. Вместо бесящих гидрантов, вводят номер в базы вайбера, и если он там есть, то присылают свои авторизации туда.
С точки зрения владельца бизнеса, дело только в том, что через его API происходит несанкционированная рассылка сообщений. Технически массовость этого явления пресечь не проблема - вешай капчу и дело с концом. Да только для рядовой сушильни это значит отсечь часть народу, которая эти капчи в гробу вертела, и заказы будут уходить.
СМС или вайбер - дело десятое, и в любом случае такие шалости стоят денег, на которые попадает владелец.
cloudflare вам в помощь, да всякий fail2ban. описанные проблемы давно решены в том числе бесплатными сервисами
Комментарий недоступен
ну хто из ауд знает такие стращные слова ? нихто
@Serious Mann добавьте, пожалуйста, ссылку на репозиторий
https://github.com/crinny/b0mb3r
Напоминает вот на такую схему (не реклама, специально сохранил ссылку после прочтения): https://gexr.ru/news.php?id=19
Скорее всего вместо скликивания в задании указывают оставить заявку со своего номера телефона исполнителя.
эта схема до сих пор актуальна? вроде яндекс возвращает деньги за говённые клики из буксов
API доступен из интернета, авторизации нет никакой (то есть любой черт может делать запросы на использование платного ресурса - смс), так сделано у кучи сайтов... В индустрии так принято что ли?
Как и везде, SMS с сайта мы отправляем через API стороннего сервисаМожно поподробнее про архитектуру данного решения? А то этот кейс надо описывать всё же не как «какие злые дети-хакеры, как жесток мир», а «мы продолбали, но быстро исправились вот смотрите», потому что это провал архитектуры, по моему мнению.
PS статью не мешало бы вычитать перед отправкой.
Да, любой чёрт может ( мог ) сделать запрос из интернета на восстановление пароля. Хотел было туда поставить капчу, но сам терпеть её не могу, поэтому сколько мог не ставил. И так благополучно года 2 отработал сайт в открытую.
Какую авторизацию вы будете вешать на регистрацию, оло? Вдумались бы лучше в суть, прежде, чем умничать)
Пост не читал, но где ссылка не репозиторий?
Лан, нашёл.
:)
Комментарий удален модератором
Считаю довольно таки ироничным факт того, что сайт на доставку не работает по причине "спам-рассылки по айпи" :D
UPD: по впн работает :3
Что за смс-сервис то? Небось по 5 копеек за смс?)))
Пользуюсь тремя широко-известными, по 50копеек за смс, там всегда ДЛИИИНННЫЙ список заблокированных попыток, если немного отбросить толерастию, то скажем честно, половина айпишников - амстердам, половина жофто-блокитных, вы уж извините, если тут кто есть оттуда...
Вы просто не поставили галочку "Отсеивать спам")))
Тут данные просто в форму на сайте вставляют и вперед. Даже за 100 рублей смс сервис вам не поможет.
5 копеек? Потерялись вы во времени. Смс нынче в районе 2-3 рубля за шт.
Опять эти ваши хакеры устроили СМС-атаку
Старая история. Куча таких репозиториев на гитхабе уже давно валяется.
Ну весь гитхаб никто не знает, ну вот в лоб ударился, написал. Возможно, кому-то пригодится.
Спасибо, добрый человек. Запостил новость для покупателей. СМС Аэро фильтр добавили после этого. Больше атака не повторялась
Вц не перестает удивлять качеством статей. Серьезно, смс бомберы открытие? Любой разработчик с смс с этим сталкивался, это типа вообще не новость. Я годами кидал ранее на эти репы в гитхабе жалобы, как видите они только живут и этим молодым реверс инженерам ниче не будет.
Рекомендую установить перед сайтом WAF (Web application firewall). Есть спец. сервисы. Забанит сразу ваших 8000+ IP.
I bind conducts SMS attacks with FUD crypter. It runs around 420 PC so SMS attacks on 2500 numbers. you can buy crypter and bind files.
А что делать если нацелено бомбят номер с помощью этой дичи?
Комментарий удален модератором