Как вычисляют, скрывается ли пользователь под VPN или Proxy

Discussion in 'Анонимность' started by equal, 26 Jul 2015.

  1. equal

    equal Member

    Joined:
    26 Jul 2015
    Messages:
    54
    Likes Received:
    62
    Reputations:
    2
    На хабре появилась очень интересная статья о способах определения, скрывается пользователь во время серфинга в сети или нет, и о возможности узнать его реальный IP адрес ( https://habrahabr.ru/post/263557/ ). Местами банально, но, например, о проверке по разнице во временных зонах VPN и браузера я раньше не задумывался.
    Также упоминается ещё одна статья: https://habrahabr.ru/post/216295/ (Определяем пользователей VPN (и их настройки!) и прокси со стороны сайта), тоже советую ознакомиться (требует несколько большего знания матчасти).

    В статьях указываются и сервисы проверки:
    https://2ip.ru/privacy/
    http://witch.valdikss.org.ru/
    ***
    1. Заголовки HTTP proxy
    Некоторые прокси дописывают свои заголовки к запросу, который инициирует браузер пользователя. Нередко это реальный IP адрес пользователя. Убедитесь, что прокси сервер если и пишет что-то в заголовки указанные ниже, то хотя бы не ваш адрес: HTTP_VIA, HTTP_X_FORWARDED_FOR, HTTP_FORWARDED_FOR, HTTP_X_FORWARDED, HTTP_FORWARDED, HTTP_CLIENT_IP, HTTP_FORWARDED_FOR_IP, VIA, X_FORWARDED_FOR, FORWARDED_FOR, X_FORWARDED, FORWARDED, CLIENT_IP, FORWARDED_FOR_IP, HTTP_PROXY_CONNECTION

    2. Открытые порты HTTP proxy
    IP адрес, с которого пришел запрос к нашей страничке может сказать о многом. Можно например посмотреть какие на той стороне открыты порты? Самые интересные порты 3128, 1080, 8123. Если их не использовать, то вполне можно избежать необоснованных подозрений в использовании 3proxy, SOCKS 5 или Polipo.

    3. Открытые порты web proxy
    Как и в случае с HTTP, веб прокси можно повесить на любой порт, но мы хотели, чтобы тест работал очень быстро, поэтому ограничились обратным коннектом на порты 80 и 8080. Отдается веб страничка? Отлично! На данный момент мы умеем определять PHProxy, CGIProxy, Cohula и Glype. Нестандартные порты с авторизацией закрывают вопрос.

    4. Подозрительное название хоста
    Имея IP адрес можно попробовать отрезолвить хостнейм клиента. Стоп слова, которые могут намекать на туннель: vpn, hide, hidden, proxy. Не стоит привязывать доменные имена к личному VPN, а если и делать это, то стоит избегать «говорящих» имён.

    5. Разница во временных зонах (браузера и IP)
    Исходя из данных GeoIP можно узнать страну по IP пользователя, а следовательно и его временную зону. Дальше можно вычислить разницу во времени между браузером и временем соответствующим временной зоне VPN сервера. Разница есть? Значит пользователь наверняка скрывается. Для России точной базы latitude и longtitude для регионов нет, а так как временных зон много, то в конечном результате эти адреса мы не учитываем. С Европейскими странами всё наоборот, очень хорошо они палятся. При переключении на VPN нужно не забывать переводить системное время, менять время в браузере, либо работать с русскими прокси.

    6. Принадлежность IP к сети Tor
    Если ваш IP адрес это Tor нода из списка https://check.torproject.org/cgi-bin/TorBulkExitList.py, поздравляю, вы спалились. Ничего криминального, но уже факт раскрытия того, что вы скрываетесь, не очень радует.

    7. Режим браузера Turbo
    Собрав диапазоны IP адресов Google, Yandex и Opera, и сравнив с пользовательским адресом, можно предположить использование сервисов сжатия трафика в браузерах соответствующих компаний. Как правило такие сервисы ещё и сливают ваш реальный адрес в заголовках. Как на средство анонимизации, рассчитывать на сжатие трафика не следует.

    8. Определение web proxy (JS метод)
    Сравнив window.location.hostname с хостом запрошенной страницы, можно определить используется ли web proxy. Веб прокси в принципе не надёжны, поэтому лучше обходить такие способы анонимизации совсем.

    9. Утечка IP через Flash

    Adobe Flash очень хорошо работает мимо пользовательских прокси. Инициировав соединение к нашему серверу, можно узнать IP пользователя. Запустив специального демона, который логгирует все входящие соединения с ключами-метками, можно многое узнать. Лучший способ не раскрывать свой адрес — не использовать Adobe Flash вообще, или отключать в настройках браузера.

    10. Определение туннеля (двусторонний пинг)
    Запустив пинг к клиентскому IP, со стороны нашего сервера, можно узнать приблизительную длинну маршрута. То же самое можно сделать со стороны браузера, XMLHTTPRequest дёргает пустую страницу нашего nginx. Полученную разницу в петле более 30 мс можно интерпретировать как туннель. Конечно маршруты туда и обратно могут различаться, или веб сервер чуть притомозит, но в целом точность получается довольно хорошая. Единственный способ защититься — запретить ICMP трафик к своему VPN серверу.

    11. Утечка DNS
    Узнать какой DNS использует пользователь не проблема, мы написали свой DNS сервер, который записывает все обращения к нашим уникально сгенерированным поддоменам. Следующим шагом собрали статистику на несколько миллионов пользователей, кто и какой DNS использует. Сделали привязку к провайдерам, отбросили публичные DNS и получили список пар DNS/ISP. Теперь совсем не сложно узнать, если пользователь представился абонентом одной сети, а использует DNS совсем от другой. Частично проблему решает использование публичных DNS сервисов, если это можно назвать решением.

    12. Утечка через ВКонтакте
    Это не утечка IP адреса, но всё же мы считаем, что отдавая всем налево и направо имена авторизованных пользователей, VK сливает частные данные, которые подрывают на корню всё анонимность серфинга. Подробнее можно посмотреть документацию здесь https://vk.com/dev/openapi . Кнопка «Выход» после каждой сессии в общем то решает вопрос, но лучшая рекомендация — не входить.
     
    #1 equal, 26 Jul 2015
    Last edited: 26 Jul 2015
    grimnir likes this.
  2. Onechester

    Onechester New Member

    Joined:
    7 Jul 2010
    Messages:
    16
    Likes Received:
    0
    Reputations:
    0
    интересно, но на практике это уже не актуально. флэш легко выключается и легко ставится виртуалка с виндой хоть на тарабарском языке и с нужным часовым поясе.ну а на край можно заюзать деда.