КАК клиент казино/покера узнает реальный IP


Перерыл весь форум, но так и не нашел ответов на конкретные вопросы
Допустим есть клиент на моем компе для игры в покер, я использую соксификацию этого клиента. Пров- локальная сеть через VPN.
1 Как клиент видит IP? пож-та[B] механизм поподроб[/B]( там через ipconfig или как?)
2 Мож ли его, использ эти знания обмануть, наприм. изменить чо-нить в этом файле или вообще запретить выполнение как- операций.
3 Или все бесполезно и нада ставить вирт машину- vmware/
Cпасибо, и если можно ссылочки, где есть об этом.

Комментарии
— SATtva (13/05/2008 13:17)   
Вы стенограмму ведёте что-ли? Зачем слова сокращать?

  1. Любая ОС поддерживает параметры действующих сетевых интерфейсов. Те или иные прикладные программы (в том числе и ipconfig) могут взять оттуда любые интересующие данные, включая и назначенные IP.
  2. Если Ваша ОС поддерживает средства принудительного контроля доступа, то можно. Исходя из того, что Вы упоминаете ipconfig, то у Вас Windows, и ответ на этот вопрос — нет.
  3. Это самый простой и действенный вариант: если ОС не будет знать назначенный внешний IP, то и сказать никому ничего при всём желании не сможет. Существуют уже готовые решения, JanusVM[link1] — пожалуй, самое известное.
Гость (13/05/2008 21:27, исправлен 13/05/2008 21:31)   
Спасибо SATtva за подробный ответ.
Т. е. клиент казино при запуске "смотрит" параметры действующих сетевых интерфейсов и видет мой реальный IP( даже если я под socks сижу), тогда, если я в нете через VPN, он видет мой IP в локальной сети или IP, который присваивает провайдер, при выходе в инет, или и то и др вместе?
P. S. А можно засечь когда он смотрит в параметры действующих сетевых интерфейсов ( через программу как-нить)?
Извиняйте за поддчерк, профессия накладывает свое.
— SATtva (13/05/2008 21:34)   
если я в нете через VPN, он видет мой IP в локальной сети или IP, который присваивает провайдер, при выходе в инет, или и то и др вместе?

Что он делает — не имею понятия. Но потенциально может видеть всё.

А можно засечь когда он смотрит в параметры действующих сетевых интерфейсов ( через программу как-нить)?

Для Windows мне такие средства неизвестны.
Гость (13/05/2008 21:35)   
Хорошая мысля приходит опосля...
Если я под голым соксом буду лазить в покер или казины- то могут просниффат мои пароли, правильно?
Подскажите плиз, доступные и надежные методы не допущения этого безобразия.
— SATtva (13/05/2008 21:53)   
Если соединение производится не по SSL-каналу, но риска прослушки на том или ином этапе не избежать.
Гость (14/05/2008 02:32)   
А можно засечь когда он смотрит в параметры действующих сетевых интерфейсов

ntldr[link2] мог бы ответить на этот вопрос :) Видимо, понадобится запуск вашего клиента в дизассемблере, и тогда будет видно кто к кому обращается. В общем, это уже явно не пользовательский уровень ;)
Гость (14/05/2008 19:18)   
Особенно интересует вопрос
если я в нете через VPN, он видет мой IP в локальной сети или IP, который присваивает провайдер, при выходе в инет, или и то и др вместе?
Тогда если я в вирт. машине, он видет только локальный IP? Вручную его моно изменить?
— SATtva (14/05/2008 21:06)   
если я в нете через VPN, он видет мой IP в локальной сети или IP, который присваивает провайдер, при выходе в инет, или и то и др вместе?

VPN, Ethernet, WiFi — это просто различные сетевые интерфейсы, каждый со своим IP, и программа потенциально может видеть их все.

Тогда если я в вирт. машине, он видет только локальный IP?

Если запускать программу из ВМ, то она будет видеть только внутренний сетевой интерфейс ВМ и его частный IP. JanusVM работает несколько иначе, но в результате, если Вы соединяетесь с провайдером через JanusVM, локальное приложение сможет получить только частный IP.
Гость (15/05/2008 08:33)   
если Вы соединяетесь с провайдером через JanusVM, локальное приложение сможет получить только частный IP.
Что помешает приложению обойти JanusVM, если это обычный локальный прокси, только зачем-то реализованный через виртуальную машину? Используя JanusVM вы запускаете приложение не из ВМ, а около ВМ!
— SATtva (15/05/2008 10:25)   
Да потому, что этот прокси обеспечивает подключение к провайдеру. Соединение с провайдером устанавливается из JanusVM, который действует в роли NAT'а, одновременно заворачивая весь трафик в Tor. Реальная система просто не может знать свой внешний IP.
Гость (15/05/2008 10:45)   
Что помешает приложению обойти JanusVM, если это обычный локальный прокси, только зачем-то реализованный через виртуальную машину?

Вы недопонимаете. Дело в двух моментах:
  • Для удобства взаимодействия приложений между собой каждое из них может выполнять какой-то код при необходимости с правами пользователя, включая считывание сетевых настроек, и даже детекцию внешнего IP. Даже если приложение специфично, и настроено так, чтобы не позволять читать сетевые настройки, то в случае обнаружения в нём уязвимости, оно всё же выполнит злоумышленный код и сообщит эти сетевые настройки.
  • Тем, что каждое из приложений может прочитать из настроек компьютера, управляет операционная система, а она может и запретить это делать (случай мандатных политик доступа – а-ля SeLinux). В случае виртуальной машины, сама "гостевая операционная система" (ОС) не знает сетевых настроек, но основная система – в которой запущена гостевая, знает. Итак, в случае виртуализатора ваше приложение крутится в гостевой ОС, которая, в свою очередь, крутится в основной ОС.

Теперь резюме того "что и отукда вылезает":
  • Качество кода самой ОС как праивло существенно выше чем качество кода конкретного приложения, потому обойти ограничения ОС существенно сложнее. Также, качество виртуализатора в среднем тоже лучше чем качество приложения типа браузер (да, браузер – одна из самых дырявых программ на PC).
  • Итак,
    • Если само приложение позволяет легально смотреть настройки, то достаточно сделать так, чтобы оно крутилось в гостевой ОС (JanusVM или что-то т.п.), либо чтобы сама ОС в котором приложение запущено не позволяло смотреть эти настройки (мандатные политики доступа типа SeLinux).
    • Рассмотрим также вдобавок к предыдущему случаю возможность существовании уязвимости в приложении, которая всё же заставит его выдать сетевые настройки. В этом случае, если оно запущено на обычной ОС без VM, то злоумышленнику достаточно сломать самое простое – само приложение. Если приложение запущено в SeLinux, ему прийёдтся внагрузку сломать ещё и SeLinux. Если приложение запущено в виртуальной машине, ему прийдётся сломать сначала приложение, потом гостевую ОС, потом виртуализатор, а потом уже основную ОС.

Итак, что мы видим? Сломать, естественно, можно всегда (теоретически), только сломать иногда едва ли возможно. Что же даёт JanusVM теперь вам должно быть поняитно (концептуально).

Кстати, был известный тред OpenBSDшников и самого TdR о том, что "зря люди увлеклись виртуализацией: едвали те, кто не могут написать наормальные приложения, смогут написать недырявый виртуализатор, а потому рассматривать виртуализатор как средство защиты – тупость" (в оригинале были красочные эпитеты в чисто их стиле, кажется что-то типа "где вы взяли такую траву"). Это к тому, что если глубоко копать то можно столкнуться с рядом философских проблем, но по крайней мере в этом случае (этого топика) речь идёт о защите приложения перекладыванием ответственности с него на саму ОС, что почти всегда увеличит ожидаемую защиту.

Как-то так :)
Гость (15/05/2008 10:47)   
Что помешает приложению обойти JanusVM, если это обычный локальный прокси, только зачем-то реализованный через виртуальную машину?

Вы недопонимаете. Дело в двух моментах:
  • Для удобства взаимодействия приложений между собой каждое из них может выполнять какой-то код при необходимости с правами пользователя, включая считывание сетевых настроек, и даже детекцию внешнего IP. Даже если приложение специфично, и настроено так, чтобы не позволять читать сетевые настройки, то в случае обнаружения в нём уязвимости, оно всё же выполнит злоумышленный код и сообщит эти сетевые настройки.
  • Тем, что каждое из приложений может прочитать из настроек компьютера, управляет операционная система, а она может и запретить это делать (случай мандатных политик доступа – а-ля SeLinux). В случае виртуальной машины, сама "гостевая операционная система" (ОС) не знает сетевых настроек, но основная система – в которой запущена гостевая, знает. Итак, в случае виртуализатора ваше приложение крутится в гостевой ОС, которая, в свою очередь, крутится в основной ОС.

Теперь резюме того "что и отукда вылезает":
  • Качество кода самой ОС как праивло существенно выше чем качество кода конкретного приложения, потому обойти ограничения ОС существенно сложнее. Также, качество виртуализатора в среднем тоже лучше чем качество приложения типа браузер (да, браузер – одна из самых дырявых программ на PC).
  • Итак,
    • Если само приложение позволяет легально смотреть настройки, то достаточно сделать так, чтобы оно крутилось в гостевой ОС (JanusVM или что-то т.п.), либо чтобы сама ОС в котором приложение запущено не позволяло смотреть эти настройки (мандатные политики доступа типа SeLinux).
    • Рассмотрим также вдобавок к предыдущему случаю возможность существовании уязвимости в приложении, которая всё же заставит его выдать сетевые настройки. В этом случае, если оно запущено на обычной ОС без VM, то злоумышленнику достаточно сломать самое простое – само приложение. Если приложение запущено в SeLinux, ему прийёдтся внагрузку сломать ещё и SeLinux. Если приложение запущено в виртуальной машине, ему прийдётся сломать сначала приложение, потом гостевую ОС, потом виртуализатор, а потом уже основную ОС.

Итак, что мы видим? Сломать, естественно, можно всегда (теоретически), только сломать иногда едва ли возможно. Что же даёт JanusVM теперь вам должно быть поняитно (концептуально).

Кстати, был известный тред OpenBSDшников и самого TdR о том, что "зря люди увлеклись виртуализацией: едвали те, кто не могут написать наормальные приложения, смогут написать недырявый виртуализатор, а потому рассматривать виртуализатор как средство защиты – тупость" (в оригинале были красочные эпитеты в чисто их стиле, кажется что-то типа "где вы взяли такую траву"). Это к тому, что если глубоко копать то можно столкнуться с рядом философских проблем, но по крайней мере в этом случае (этого топика) речь идёт о защите приложения перекладыванием ответственности с него на саму ОС, что почти всегда увеличит ожидаемую защиту.

Как-то так :)
Гость (15/05/2008 10:51)   
ему прийдётся сломать сначала приложение, потом гостевую ОС, потом виртуализатор, а потом уже основную ОС.

ему прийдётся сломать сначала приложение, потом гостевую ОС, потом виртуализатор. а потом уже основную ОС.
Гость (15/05/2008 14:30)   
в случае виртуализатора ваше приложение крутится в гостевой ОС, которая, в свою очередь, крутится в основной ОС
В случае виртуализатора моего приложения (браузера) да, но в случае JanusVM виртуализируется не моё прилоржение! Виртуализируется линукс прокси-сервер, а моё приложение работает не внутри (под виртуализатором), а рядом с ним, в основной ОС! И совсем не очевидно, что моё приложение не сможет подключится к интернету напрямую, в обход прокси, тем же путём, что это делает JanusVM. Во всяком случае виртуальность тут ни при чём.
Гость (15/05/2008 14:39)   
тем же путём, что как это делает сам JanusVM.
— SATtva (15/05/2008 16:38)   
И совсем не очевидно, что моё приложение не сможет подключится к интернету напрямую, в обход прокси, тем же путём, что это делает JanusVM.

Вам картинку нарисовать что-ли? JanusVM сам никуда не подключается, Вы это делает вручную из него, после чего он практически становится сетевым провайдером для основной ОС. То, что Вы говорите, равносильно тому, как если бы Вы подключались к интернету минуя своего интернет-провайдера.
Гость (15/05/2008 19:56)   
Виртуализируется линукс прокси-сервер, а моё приложение работает не внутри (под виртуализатором), а рядом с ним, в основной ОС!


Вы это делает вручную из него, после чего он практически становится сетевым провайдером для основной ОС.


Мне кажется что роль основной ОС здесь играет JanusVM, а гостевой – ваша обычная... Хотя с Janus не разбирался... м.б. я не прав.
Гость (15/05/2008 20:29)   
JanusVM сам никуда не подключается
Вы ведь не хотите сказать, что с помощью JanusVM я могу выходить в интернет без провайдера (и бесплатно! :) То есть, JanusVM, будучи Линуксом под WMware, подключается к интернету через интерфейс, предоставляемый провайдером.

То, что Вы говорите, равносильно тому, как если бы Вы подключались к интернету минуя своего интернет-провайдера.
То, что я говорю, равносильно тому, как если бы я подключился к интернет-провайдеру минуя JanusVM :)
Я всего лишь хотел обратить внимание на то, что JanusVM не виртуализирует пользовательское приложение, как это может показаться на первый взгляд, а всего лишь является виртуальным сетевым адаптером, который подключается к интернету через реальный сетевой адаптер, никак не блокируя доступ к нему для пользовательского приложения.
Гость (15/05/2008 20:33)   
Мне кажется что роль основной ОС здесь играет JanusVM, а гостевой – ваша обычная...
А вот мне как раз кажется, что наоборот :)
— SATtva (15/05/2008 20:39)   
Я всего лишь хотел обратить внимание на то, что JanusVM не виртуализирует пользовательское приложение, как это может показаться на первый взгляд

Речи об этом нигде не было. Теоретически, я допускаю, что противник может заставить уязвимое приложение выполнить комплекс настроек нового сетевого соединения в ОС (правда, для этого может понадобиться ещё и повысить привилегии в системе; и как он провернёт весь трюк в отсутствие пользовательского пароля для подключения к прову, тоже представляю слабо) и вывести соединение напрямую. Но это уже совершенно иная категория сложности атаки, исключительно целенаправленной.
Гость (15/05/2008 21:24)   
заставить уязвимое приложение выполнить комплекс настроек нового сетевого соединения в ОС
В конце видеоролика[link3], объясняющего установку и работу с JanusVM в Windows, ясно видно (в правом нижнем углу), что наряду с новым сетевым соединением присутствует и прежнее. Да это и понятно – JanusVM выходит через него в интернет! Вряд ли очень сложно научить этому и пользовательское приложение, даже и без паролей и повышения приоритета.

Ссылки
[link1] https://www.pgpru.com/soft/tor

[link2] https://www.pgpru.com/proekt/poljzovateli?profile=ntldr

[link3] http://janusvm.com/JanusVM_How_To.asx