Самописная защита от бот-атак

BestKVanT

Активный участник
Пользователь
Баллы
76
Здравствуйте, уважаемые форумчане.
Хочу написать свою защиту от бот-атак. Какие есть лучшие методы защиты от ботов?
Помимо капчи, конечно.
И можно-ли проверять инвентарь для защиты от ботов?
 
Капча один из наилучших вариантов.
Игроки вводят ее на изи, проблем нет.
Подумайте что-то, что будет сложно повторить на автомате с помощью умной боталки.
И еще оптимизируйте это под нагрузку 10+к ботов.
 
Для начала сообщи нам, на что ты собрался ставить защиту - на Bungee/Lily или обычное серверное ядро?

В общем и целом:
1) Ограничение подключений с одного IP (лучше делать на уровне фаервола)
2) Проверка наличия IP в твоей базе подозрительных адресов
3) Проверка наличия IP в публичных спам-базах, базах проксей и прочего дерьма
4) Анализ получаемых от игроков пакетов. Посмотри, что конкретно передают обычные клиенты, а что боталки. Но не исключаю, что в 2016 все публичные софтинки научились "не палиться"
5) Проверка географического положения. Если уверен, что к тебе заходят только из СНГ, то будет полезно. А так не рекомендую..

Если результат проверки хотя бы по одному из пунктов тебя не устраивает, то помещай подозрительный айпишник в свою БД. В конце концов школьники обычно не тратятся на прокси, поэтому сможешь даже вручную банить весь мусор (если вдруг баг какой, или сбой системы проверки). Кстати, можно ещё белый список IP подключить: человек прошёл капчу - заносим в белый список и больше не проверяем по критериям. Даже если ботер решит капчу вручную, он не сможет запустить большое количество ботов благодаря пункту 1.

И можно-ли проверять инвентарь для защиты от ботов?
А вот это я вообще не понял. Инвентарь игрока хранится на сервере, а не на клиенте.
 
А вот это я вообще не понял. Инвентарь игрока хранится на сервере, а не на клиенте.
А клиент должен отвечать при изменении инвентаря? И при загрузке чанков? И при падении?
 
А клиент должен отвечать при изменении инвентаря? И при загрузке чанков? И при падении?
Не должен. Только если его специально заставить что-то нажимать. Даже чанки сервер сам отдаёт (хотя почему даже?). Про падения вообще молчу.
Опять же, кому очень надо, тот в боталку вошьёт ещё и нажатие в инвентаре по нужному слоту...
 
Не должен. Только если его специально заставить что-то нажимать. Даже чанки сервер сам отдаёт (хотя почему даже?). Про падения вообще молчу.
Опять же, кому очень надо, тот в боталку вошьёт ещё и нажатие в инвентаре по нужному слоту...
Тогда боталка будет есть больше ресурсов и выдавать меньше ботов в секунду, только на руку. Интересно, зачем в ГГ сделали эти проверки? Что-то в них есть, но я не в курсе как клиент работает.
 
Тогда боталка будет есть больше ресурсов и выдавать меньше ботов в секунду, только на руку. Интересно, зачем в ГГ сделали эти проверки? Что-то в них есть, но я не в курсе как клиент работает.
Может речь о переключении активного слота? Сейчас гляну...
 
Интересует принцип работы GameGuard.
 
Почему бы не сделать что-то новое, что-то свое?
ГеймГуард выдерживает атаки ГравиБота и DeathBot со своей защитой.
Но и под нее сделали обход)0
Под любую "чистую" защиту несложно сделать обход, ведь обычный игрок (не бот) также посылает пакеты, значит и бот их может вполне себе посылать.
Делайте рандомно генерируемую защиту, чтобы атакующему сложно было подстроиться под нее.
 
Почему бы не сделать что-то новое, что-то свое?
ГеймГуард выдерживает атаки ГравиБота и DeathBot со своей защитой.
Но и под нее сделали обход)0
Под любую "чистую" защиту несложно сделать обход, ведь обычный игрок (не бот) также посылает пакеты, значит и бот их может вполне себе посылать.
Делайте рандомно генерируемую защиту, чтобы атакующему сложно было подстроиться под нее.
лучше помогите ему улучшить плагин Kolia1512
 
В общем я так и не понял, по какому принципу работает GG...
 
В общем я так и не понял, по какому принципу работает GG...
Может боты ломаются когда у них инвентарь начинает меняться и они перестают слать keepAlive или как там пакет называется?
 
Тупые боты - да.
Достаточно посылать нужные пакеты и бота никак не отличить от игрока.
Также выставьте правильный пакет рейт.
Подробнее: http://wiki.vg/Protocol_FAQ
 
Короче понятно, всё упирается в кривых ботов. Честно говоря, у меня нет желания обходить защиту ГГ, чтобы выяснить, что же там за система такая. Против школоботеров вполне помогут и те способы, о которых выше велась речь. Да и срач опять может начаться.
Если уж совсем мощная защита нужна, то можно смотреть, что передают на сервер реальные игроки. И при отклонении от общей системы кикать/банить/расстреливать ботов.
 
Последнее редактирование:
Вот частичный список того что обычно забывают имплементировать авторы тупых боталок:

1. Мусор вместо hostname в hadshake пакете, и вместо порта соответственно тоже. (http://wiki.vg/Protocol#Handshake)
2. Не шлют пакет clientsettings после соединения (http://wiki.vg/Protocol#Client_Settings)
3. Не шлют custom payload mc|brand после соединения
4. Не отвечают на keepalive (http://wiki.vg/Protocol#Keep_Alive_.28serverbound.29)
5. Не отвечают на confirm transaction (http://wiki.vg/Protocol#Confirm_Transaction_.28serverbound.29)
6. Не высылают flying каждую секунду (http://wiki.vg/Protocol#Player)
 
Последнее редактирование:
Вот частичный список того что обычно забывают имплементировать авторы тупых боталок:

1. Мусор вместо hostname в hadshake пакете, и вместо порта соответственно тоже. (http://wiki.vg/Protocol#Handshake)
2. Не шлют пакет clientsettings после соединения (http://wiki.vg/Protocol#Client_Settings)
3. Не отвечают на keepalive (http://wiki.vg/Protocol#Keep_Alive_.28serverbound.29)
4. Не отвечают на confirm transaction (http://wiki.vg/Protocol#Confirm_Transaction_.28serverbound.29)
5. Не высылают flying каждую секунду (http://wiki.vg/Protocol#Player)
#Shevchikpishetobhodnagg
 
Назад
Верх Низ