Безопасность ботов в PoE: VPN

В прошлой статье мы рассмотрели подготовку виртуальной машины vmware для ботоводства PoE. Теперь следующий важный пункт: VPN.

Что это такое и зачем это нужно? VPN расшифровывается как Virtual Private Network, т.е. ваша личная частная сеть. Если вы отлично разбираетесь в сетевых технологиях, тогда моё объяснение вам не нужно. Поэтому попытаюсь объяснить для менее подкованных в сетевых технологиях читателей.

Грубо говоря, все сервера GGG в том числе их вебсайт знают, с какого IP-адреса вы с ними общаетесь. В зависимости от того, как всё организовал ваш интернет-провайдер, может быть три варианта:

  1. Вам присвоен постоянный выделенный/белый IP-адрес, таким образом адрес всегда уникален для вас. Некоторые провайдеры даже выделяют пул (несколько) адресов, чтобы вы могли установить уникальный адрес для каждого компьютера в домашней сети.
  2. Вам присваивается динамический белый IP-адрес. В каждый момент времени этот адрес принадлежит только вам, но затем вам могут выдать другой адрес, а ваш отдать другому пользователю.
  3. Вы “сидите за НАТом”. У вас есть лишь серый IP-адрес. Это значит, что сервера GGG видят и вас и всех остальных пользователей провайдера, будто у всех вас один и тот же адрес.

Стоит отметить, что часто провайдеры продают “выделенный белый IP-адрес” за дополнительную плату. Но не спешите покупать эту услугу. Белый ИП – достаточно опасная штука, хакеры и вирусы со всего интернета будут беспощадно стучаться к вам, если вы не предпримите соответствующие меры.

В европейских странах распространены модели “каждому пользователю – уникальный адрес”, на постсоветском пространстве чаще всего встречается модель под номером 3.

Таким образом, одним из сильных факторов вычисления ботов для ПоЕ является ИП-адрес. Поэтому во-первых нам стоит позаботиться о том, чтобы как минимум не засветить за ботоводством свой основной белый ИП-адрес, если у вас такой имеется. Затем, у вас может быть две тактики: “спрятать дерево в лесу” или же каждому боту использовать уникальный ИП-адрес. Последнее предпочтительнее, но стоит дороже.

ВПН делает именно то, о чём мы говорим: он как-будто бы создаёт виртуальный сетевой провод, который вставляется в виртуальный ВПН сервер. И теперь эффективно трафик до серверов GGG идёт не от вашего провайдера / с вашего IP-адреса, а с адреса VPN сервера.

Т.е. находясь всегда в одной и той же квартире, подключаясь к разным ВПН серверам, вы можете заставить GGG поверить в то, что вы подключаетесь к игре с разных точек планеты.

Теперь вы знаете, зачем нужен ВПН: чтобы если один бот и попался, все остальные, включая вашего мейна, избежали его участи. Ведь всех их ничего не связывает, IP-адреса были разные.

Непосредственно настройка VPN для Windows 8

Хватит теории, перейдём к практике. Сначала нам нужно решить важную задачу: если ВПН вдруг отвалится, нам нужно быть уверенными, что мы не раскроем свою маскировку, начав подключаться к серверам GGG на своём родном интернете.

Для этого существуют специальные программы, но лично мне они доверия не внушают. Я вижу несколько возможных узких мест в их функциональности. Поэтому для себя я выбрал следующий способ.

Я блокирую через стандартный Windows Firewall доступ в интернет не через VPN.

В виртуальной ОС создаю VPN соединение стандартными средствами виндоуса, сохраняю пароль. Соединение ВПН я назначаю “приватной сетью”, соединение с основным интернетом я назначаю “публичной сетью”.

Затем я иду в настройки файрвола, Advanced settings, Outbound rules, и создаю там три новых правила.

  1. Block all icmp (ping)
    Блокирую весь исходящий ICMP трафик для всех профилей кроме Private.
  2. Block all out tcp from port range
    Блокирую весь исходящий TCP трафик на порты в следующем диапазоне: 5, 46, 48-52, 54-1722, 1724-1772, 1724-65535 для всех профилей кроме Private.
  3. Block all out udp except dns and dhcp
    Блокирую весь исходящий UDP трафик на порты в следующем диапазоне: 1-52, 54-66, 68-65535 для всех профилей кроме Private.

Кроме того, я вообще отключаю файрвол для Private профиля.

Таким образом для VPNа не блокируется вообще ничего, потому что он относится к Private network. А вот для стандартного интернета, который относится к Public network, блокируется как можно больше. Всё кроме необходимого для того, чтобы подключиться к ВПНу.

Это не идеальный подход с той точки зрения, что GGG могут передавать информацию, например, по портам DNS. И хотя скорее всего они так делать не будут, всё-таки вы можете ограничить вообще весь исходящий трафик за исключением трафика к определённому IP адресу, если вы знаете адрес вашего ВПНа и он у вас постоянный.

Таким образом вы за каменной стеной. Точнее, за огненной стеной, встроенной в виндоус. Когда ВПН не подключен, трафик не идёт. Когда ВПН подключен, разрешается всё. Как раз то, что надо. Можете проверить это, например, через браузер. Или запустите PoE и убедитесь, что без VPNа он не запускается "не удаётся подключиться к серверу обновлений".

Скрипты автоматизации

Кроме того, для своего удобства я написал несколько AutoHotkey скриптов:

;vpn-on.ahk
run %comspec% /c "rasphone -d vvv",,hide
WinWait, Connect vvv ahk_class #32770
ControlClick, &Connect

;vpn-off.ahk
run %comspec% /c "rasphone -h vvv",,hide

;firewall-public-on.ahk
run %comspec% /c "netsh advfirewall set public state on",,hide

;firewall-public-off.ahk
InputBox, input, Are you sure you want firewall OFF?, type "yes" if you are sure
StringUpper, input, input
if(input == "YES")
    run %comspec% /c "netsh advfirewall set public state off",,hide
else
    msgbox,, Settings not changed, Firewall settings was NOT CHANGED.

;vpn-keep-up.ahk
while, 1
{
    if(!IsInternetLive())
    {
        WinClose, Connect vvv ahk_class #32770
        Sleep 1000
        WinClose, Error Connecting to ahk_class #32770
        Sleep 1000
        run %comspec% /c "rasphone -h vvv",,hide
        Sleep 5000
        WinClose, Error Connecting to ahk_class #32770
        Sleep 1000
        run %comspec% /c "rasphone -d vvv",,hide
        WinWait, Connect vvv ahk_class #32770,,30
        ControlClick, &Connect
    }

    while, 1
    {
        sleep 30000
        if(!IsInternetLive())
        {
            sleep 30000
            if(!IsInternetLive())
                break
        }
    }
}

IsInternetLive()
{
    Random, rnd
    file = tmpis-internet-live-%rnd%.txt
    RunWait %comspec% /c "ping ya.ru -n 1 > %file%",,hide
    FileReadLine, line, %file%, 3
    FileDelete, %file%
    return InStr(line, "Reply from")
}

Файрвол должен быть включён всегда. А vpn-keep-up.ahk можно положить в автозагрузку виндоуса.

Теперь у нас есть прочная основа для боттинга:

  • отлично настроенная виртуальная машина
  • надёжная и удобная маскировка за VPNом

Ещё немного, и мы сможем нажать одну кнопку – и всё остальное за нас будут делать роботы. В следующей статье мы будем настраивать Path of Exile и необходимые сторонние программы.

Обсуждение

avatar

Георгий
Георгий
23.11.2016 14:52

Что делать если у меня динамический IP, можешь объяснить для плохо разбирающегося человека, шаг за шагом? Заранее спасибо.

Георгий
Георгий
23.11.2016 15:37

Техническая поддержка провайдера сообщила мне что VPN тунель они не предоставляют, но и не мешают настраивать его самостоятельно, собственно, как его создать?

Георгий
Георгий
23.11.2016 16:22

Спасибо большое! Нашел пару популярных среди пользователей вариантов, буду ими пользоваться.

Георгий
Георгий
11.12.2016 19:44

Зародился ещё 1 вопрос: Нужно ли что бы у VPN был свой DNS? Поможет ли это защититься от бана лучше?

Георгий
Георгий
11.12.2016 22:56

Так же хотелось бы узнать сколько сессий нужно покупать у поставщика VPN услуг, хватит ли 1, что бы так же использовать ее на нескольких виртуальных машинах и нужно ли? Логика подсказывает что лучше всего иметь разные IP на каждом отдельном бот-аккаунте, не так ли?

Георгий
Георгий
21.12.2016 15:42

Привет, снова я, не дает мне покоя эта команда arp -a которая показывает одинаковые ip и одинаковые mac адреса что на вм, что на моем основном ip, ip провайдера с которого я сижу и на моем основном компе, если ты говоришь что GGG могут на это посмотреть, то как можно изменить эти параметры? Это не похоже на то, что я делал до этого, да и не видел на форуме бота об этом никаких разговоров, похоже никто не задумывается настолько сильно (паранойно сильно) о безопасности и связи одного бота с другим как мы с тобой, делают все поверхностно (то, что делал для защиты по твоим советам можно вынести в одну большую отдельную статью, учитывая то, что я сделал ещё не все).
Я уже сам хочу начать как можно скорее, но разве имеет смысл все, что было сделано до этого мною для того что бы не было связи между ботом и мейном если через эту команду эта связь проглядывается (одинаковые ip и мак адреса окружения у бота и у мейна – прямая связь)?

Георгий
Георгий
21.12.2016 18:05

Первое что я сделал когда прочитал это сообщение так это полез в википедию смотреть что делает NAT и узнал что он вроде как перешифровывает пакеты (понял лишь, при помощи дальнейшего поиска что это позволяет выходить несколькими компами через 1 IP, но как это поможет решить задачу не знаю, расскажешь?). Но что мне с этим делать? Поставлю я NAT в настройках вмваре, что дальше? Понимаешь, я бы подумал и додумал бы с твоей информации, если бы разбирался лучше, но я же 0 абсолютный во всей этой сфере и даже относительно легкие задачи (для специалиста) мне даются с трудом, потому что в первый раз, потому что много новой информации поступает в мозг и он начинает перегружаться и утомляться как и должно быть. Я рад узнавать больше, но без практики для меня она практически бесполезна да и обучаться лучше получается на практике (конкретно у меня).

Георгий
Георгий
21.12.2016 18:27

Кажется когда я просто запустил вмварю в режиме NAT вместо Bridget ничего не поменялось, какие действия нужно проводить далее?

Георгий
Георгий
21.12.2016 18:43

А по поводу сбора информации, вот скрин с их ТОСа, я английский знаю хорошо, но можешь подтвердить что нужно делать что бы по этим параметрам защититься?
http://radikal.ru/lfp/s016.radikal.ru/i337/1612/ba/9efd978dc962.png/htm

Георгий
Георгий
21.12.2016 18:57

Там есть такая интересная строчка: И любая другая информация, которую вы можете случайно предоставить во время пользования продуктом. Могу ли я обронить случайно совершенно маки и айпишники окружающего меня оборудования? Я думаю нет, но поясни пожалуйста по этому пункту поподробнее, спасибо.

Георгий
Георгий
21.12.2016 20:42
Георгий
Георгий
21.12.2016 20:24

Не факт конечно, но мне уже, если честно, надоело, если они сильно захотят – пропалят в любом случае (ты сам сказал что от всего не убережешься). Главное сделать так, что бы не за что было под тебя копать, вот с этим я и хочу разобраться. Все ли я сделал для этого? Судя по их ТОСу – все наверное.

Георгий
Георгий
21.12.2016 21:43

Но я судить не могу верно, так как я нуб в этом вопросе, поэтому спрошу у тебя. Действительно ли я сделал все, что бы под меня не стали копать?

Взяв во внимание их Условия Использования.

Георгий
Георгий
21.12.2016 23:11

А что бы сделать вопрос более направленным, ясным, спрошу ещё кое-что. Что определяет человека как ботера? Будь я ГГГ, какой фактор привлек бы мое внимание к человеку?

Как я думаю так это самые обычные статистические данные: количество часов проведенных в игре в сутки, разные ip (тригер сообщения ” У вас другое айпи, впишите в эту рамочку код который пришел вам на почту”), фарм одной и той же зоны,общий патерн движений (это должно собираться какое-то время что бы иметь вес, а если бот живет хотя бы месяц это уже отличный результат), мало социальной активности игрока тоже имеет, хоть и малый, но вес в принятии решения о бане аккаунта. Перечислять можно долго.
Если же быть похожим на других в техническом плане и в игровом поведении, то и расследование проводить не станут на твой счет. А по поводу автоматического сбора информации, для которого не нужен повод, у моего ВПНа свой днс и свой айпи, так же у них есть право отслеживать твое время, проведенное в игре и время когда ты входишь в игру (если систематический какой-то паттерн обнаружится, то это уже флаг как минимум), телеметрия это и есть статистические данные, о которых я уже говорил выше, если они и делают что-то свыше этого, то нам не скажут, можно лишь гадать, а так – смотреть сколько будут жить боты и, как ты и говорил, шаг за шагом решать проблемы и сверять сколько после каждого шага стали жить боты: так же или больше.

P.S. Это лично мое мнение, оно может быть не правильным, но так мне подсказывает логика, если я упускаю что-то поправь меня.

Георгий
Георгий
22.12.2016 12:42

Тогда, что бы не забанили других если один попадет под расстрел, подскажи как сделать каждый вм ВОИСТИНУ отдельной средой, нечем не связанной с другими вм пожалуйста. Я понял что нужно что-то сделать с NAT, но что? Я даже понятия не имею как это гуглить, такие комплексные вопросы гораздо проще решать со специалистами чем с поисковиком, ибо чем сложнее задача – тем сложнее уместить ее в парочку ключевых слов на которые поисковик может дать ссылку с подробным ответом, заранее благодарен.

P.S. Из-за того что EBuddy пишет в память игру, а не управляет персонажем курсором я и выбрал альтернативу, ну и финансовая часть тоже повлияла на решение, так как у ЕБ совсем уж наглые цены.

Георгий
Георгий
22.12.2016 13:28

Думаешь если просто переставить с bridged на NAT получится то, что нужно?
Что я воспринимаю за “да, получилось” ? Когда в arp -a я вижу на каждой вме уникальные ip и mac адреса?

Георгий
Георгий
22.12.2016 13:59

Подойдет ли эта статья для настройки уникальной сети каждой вм? http://www.ixbt.com/cm/virtualization-vmware-network.shtml

Георгий
Георгий
22.12.2016 14:42

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

Георгий
Георгий
22.12.2016 21:46

Я все сделал по той статье, использую NAT адаптер настроенный, так же поменял IP и Маску подсети, но это повлияло лишь (на удивление) на IP, показываемые в arp -a, с мак адресами ничего не случилось, но помимо неудачи, я заметил что-то полезное: При прописывании arp -a в командной строке 6 маков идентичных на моем компьютере и на первом вм , 5 из них на втором вм совпадают (6-ой мак (не совпадающий на 2 вм) это мак выдачи DHCP, но что самое удивительное что этот айпи выходит за рамки выдачи (например starting ip address xxx-xxx-xxx-70 ending ip address xxx-xxx-xxx-110, а этот айпи 111)). Теперь перечислю их для понимания:
1. Первый мак это мак, явно указывающий что он от VMWare своим OUI 00-50-56, он повторяется на основном компе и двух вм, это мак моего Gateway IP
2. Мак последнего адреса (на текущий момент) выдачи DHCP, имеет явные намеки на то, что он от вм, 00-50-56-xx-xx-xx
3. Как раз выходящий за рамки выдачи DHCP айпишник имеет MAC ff-ff-ff-ff-ff-ff (не настроенный или сломанный мак и/или широковещательный адрес, если я правильно понял из гугления)
4, 5. Оба с маком 01-00-5e, из гугления понял что один из них IGMP (managing multicasting membership, что бы это не значило), а другой Link-Local Multicast Name Resolution (LLMNR) “is a new protocol that provides an additional method to resolve the names of neighboring computers. LLMNR is especially useful for networks that do not have a Domain Name System (DNS) server”, источник https://technet.microsoft.com/en-us/library/bb878128.aspx.
6. для IPv4-сетей маска /32 (255.255.255.255) позволяет указать единичный узел сети, имеет уже привычный MAC: ff-ff-ff-ff-ff-ff
Все эти маки я не знаю как изменить, уже везде посмотрел, все обгуглил, надеюсь ты поможешь, спасибо.

Георгий
Георгий
22.12.2016 23:23

Номер №1 в этом списке я могу мак поменять, это самое простое, ошибся занеся его в этот список.

Павел
Павел
03.01.2017 14:00

ребят вот Вы мне скажи сколько у Вас после всех манипуляций боты продержались?

wpDiscuz