pro100chel
@pro100chel
Senior Pomidor Developer | CEO of GOVNOKOD LTD.

Как защитить сайт от запроса смс атакующих?

Сайт можно сказать "ддосят". На регистрации стоит подтверждение по номеру телефона. Так вот. Атакующие бесконечно запрашивают смс. Наш баланс на шлюзах отправки смс закончился. Запросы идут с разных IP, user-agent.
Как защититься от такой атаки? Как защищаются другие сайты?
  • Вопрос задан
  • 2110 просмотров
Решения вопроса 3
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
1. После подтверждения почты, отправка КАЖДОГО! запроса на получение SMS через новую задачу капчи.
2. Интервал между возможностями запросов SMS - 5,10,15,30,60 минут и, затем, блокировка акка.

DDoS-защита и безопасность веб-сервера
Простая и бесплатная замена CloudeFlare от большинства видов атак: здесь.

Просить юзера отправить сообщение на наш виртуальный номер с кодом, который был выведен на экран. Это и есть основной способ борьбы.
Борьбы с конверсией, на которую потрачены собственные силы и средства. Конкуренты скажут: "ОГРОМНОЕ СПАСИБО!"
БЛИН! Да-я лучше авторизацию/верификацию акков через соц.сети подключу: через тот же Google!
Чем буду терять своих потенциальных клиентов, за которых я плачу рекламой!

PS:-------------
Хочется открыть свой сервис защиты от DDoS атак
TOALL: если кто готов помочь автору вопроса - Welcome!
Защита от DDoS recaptcha v2?
Как сделать максимально отказоустойчивое веб приложение (сайт, бд) без BGP?
Свой сервис защиты от DDoS?
Как работает защита от дудоса?
Ответ написан
pro100chel
@pro100chel Автор вопроса
Senior Pomidor Developer | CEO of GOVNOKOD LTD.
К сожалению, опыта сидящих на этом форуме людей не хватает чтобы отвечать хотя бы на вопросы средней сложности, не говоря уже о сложных.
Решением данной проблемы (борьба с атакующими) оказались довольно несложные меры.
1) Вводить recaptcha v2 везде для незарегистрированных пользователей, чтобы юзер и пернуть без прохождения капчи не смог.
2) Просить юзера отправить сообщение на наш виртуальный номер с кодом, который был выведен на экран. Это и есть основной способ борьбы. Тем более сейчас смс для юзера - копеечное дело. Сейчас в 2k20 году уже все сидят на безлимитах.
3) Ставить все на CloudFlare. Платный тариф. За 20$. Ставим правила в файрволе на вход только с нужных нам стран (для отсекания забугорных ботнетов), блочим вход с Tor (в самом CloudFlare есть такая опция). И конечно же врубаем вафлю (WAF) от самого же CloudFlare. Врубаем режим Under Attack чтобы боты отсеивались сразу. Конечно врубать такой режим не желательно, но это почти с 95% вероятностью останавливает нубские атаки и атаки большинства ддосеров.
4) Стоим за CloudFlare, не палим IP. Чтобы напремиг не заддосили. Если сначало сайт работал не на клаудфлаере а потом вы им просто закрылись, то будут бить по старому IP. Так что меняем IP, а лучше хостера и ДЦ. Т.к. если вы серьезный бизнес, то могут ложить целые аплинки и дата-центры.
5) Клаудфлаер клаудфлаером, но ддос по расписанию. Могут как-то прочухать IP и ударить по нему. Поэтому покупайте сервер или хостинг у нормальных хостеров в крупных ДЦ (желательно в Европе). Хороший тому пример OVH, Voxility и т.д.
Итог: соблюдая эти правила вы ограничитесь от многих атак и будете спать спокойно. Но если вас захотят слить, то придется капитально потратиться на покупку защиты у нескольких провайдеров защиты и сделать балансировку.
Ответ написан
@haveacess
Джун не диагноз. Хотя, могло быть иначе
Установите лимит не более 1 Сообщения в минуту для одного IP. Причём лимиты увеличатся - больше сообщений - больше лимит, увеличение кратно - 1/2/5 и тд.
Наиболее оптимальный вариант - использование капчи.
Начните с гугла, за счет того что анализируется много поведенческих факторов - обходить ее будет не так легко, но тем не менее реально.
Второй этап - ввод капчи которую тяжело будет обойти.
Если знать внутреннюю кухню сервисов по обходу капч - то можно придти к выводу, что надо придумать свою капчу которая не распространена и будет только у вас.
Первое что приходит на ум -

1. задание для юзера отдается не текстом, а картинкой(но для начала можно и текстом).
2. Если это текст или картинка - тяжело ее достать из html. Например, если это картинка - я не могу получить просто так ссылку на изображение что бы передать в сервис распознавания капч.
-
Если это текст - сделайте некоторые блоки скрытыми при выводе, а юзеру отображайте только нужные. Причём каждый раз скрываем рандомные блоки.
Да это можно обойти путём проверки на display: none каждого из элементов в родительском блоке. Но это еще нужно обойти.
—-
3. Сделать некое действие на сайте, которое нужно будет сделать юзеру. Естественно добавить вариативности. Например: передвинуть какие-то блоки, что бы числа были друг за другом, т е расположены в порядке возрастания. Текст отдаем не голый, а засовываем рядом с ним пробелы/буквы. Да достать число будет более чем реально, но это дополнительные усилия для злоумышленника. А вот если брать некое число из блока, тогда это уже куда сложнее. Например: имеется 3 блока на сайте. Задача: введите последовательно ПЕРВЫЕ числа из первого, третьего и пятого блока. Числа вводите последовательно/через пробелы/через запятые. В Части текста, некоторые буквы замените на английские, но чтобы это смотрелось читаемо и не вырвиглазно - это усложнит парсинг в разы. Капче присылаем некий токен, а ответ в базу - при отправке Формы токен сравним и проверим ответ.

Куда копать, думаю вы поняли. Только не переусердствуйте - пользователи не боты, не нужно их раздражать лишний раз.
Еще как вариант - уйти от SMS, и для начала пользователя проверять по почте. Если это уместно/реально. А sms использовать как дополнительную функцию для проверки пользователя
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
Самое простое - подключить CloudFlare и включить агрессивный режим.
CF делает проверку, является ли юзер ботом.
Ответ написан
Andrew_Pinkerton
@Andrew_Pinkerton
Backend-разработчик
Тут уже достаточно вариантов предложили, но
как вариант делать дозвон на номер телефона юзера (естественно пул номеров должен быть достаточным),
сбрасывать после нескольких секунд и просить пользователя ввести последние четыре цифры со звонившего номера.

Естественно капча и увеличивающаяся задержка между звонками
Ответ написан
paran0id
@paran0id
Красноглазых дел мастер
Капча стоит?
Ответ написан
Captain
@Captain
Делаем сложный функционал под Joomla и не только
А номера все реальные? При отправке смс они на существование проверяются вашим шлюзом?
Ну и как вариант, изменить стратегию с "мы пришлем вам смс" на "пришлите смс на наш номер", тогда мы его зарегистрируем.
Ответ написан
@Kirill-Gorelov
С ума с IT
А может зайти с другой стороны??
Поставить двухфакторную авторизацию? И можно отказаться от смс.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы