Блог Александра Моргана

Очередной блог General IT

Anti-proxy: как определить IP адрес человека, использующего анонимный proxy?

Июнь7

Как Вы уже знаете, существуют анонимные proxy, используя которые Вы можете анонимно путешествовать по Internet. А существуют ли способы «вычислить» посетителя, пользующегося анонимными proxy серверами?
Да, существуют. Имеются средства, позволяющие как определить посетителя, который пользуется разными анонимными proxy, так и определить Ваш IP адрес, даже если Вы используете анонимный proxy сервер.

Cookies

На первый взгляд, cookies не имеют никакого отношения к proxy. Cookie – это небольшая порция информации, которую сервер может передавать клиенту в дополнение к запрошенной web-странице. Эту дополнительную информацию браузер клиента сохраняет у себя и выдает по запросу сервера. Cookies могут быть как на время одной сессии (после чего они удаляются), так и постоянно храниться на компьютере клиента.
Для чего нужны cookies? К примеру, при входе на сайт у Вас запрашивается пароль (скажем, на почте). После ввода пароль сохраняется в cookies и при переходе со страницы на страницу (когда Вы читаете сообщения) вместо того чтобы каждый раз спрашивать у Вас пароль, сервер берет его из cookies.

Что дает cookie для определения proxy? IP адрес с помощью cookie не определить. Однако, при первом входе на web сайт, IP адрес клиента (определенный сервером, т.е. IP proxy) сервер может сохранить в cookies. А когда Вы в следующий раз входите на сайт, сервер вновь определяет Ваш IP и сравнивает его с сохраненным в cookies. И если IP адреса (старый и новый) различаются, сервер «может сделать выводы». И если Вы не запретите у себя cookies, никакой proxy Вам не поможет (анонимайзеры могут запретить cookies прямо у себя, не пропуская их к Вашему компьютеру).

JavaScript / VBScript

Это специальные подпрограммы (скрипты), которые выполняются на компьютере пользователя. Поэтому как Вы ни настраивайте браузер (если только Вы не запретите выполнение активных сценариев – этих скриптов), Ваш реальный IP адрес скрыть не удастся. Эти скрипты являются простыми программами и обладают довольно ограниченным набором функций, однако теоретически они могут определить Ваш IP и множество различных настроек Вашего браузера. Кроме того, они (в принципе) могут даже изменить настройки Вашего браузера!

Защита от этих скриптов является многоступенчатой, Вы можете ограничивать доступ скриптов к тем или иным возможностям браузера. Однако наиболее надежным вариантом защиты является полный запрет выполнения активных сценариев. Запретить скрипты Вы можете и прямо в анонимайзерах.

Java

В отличие от JavaScript, Java является полноценным языком программирования и (как следствие) программы на Java обладают значительно более широкими возможностями (в частности, это касается определения настроек Вашего браузера и различных функций для работы с Internet). То есть программы на Java могут легко определить Ваш IP и практически любые настройки браузера.

Что касается защиты от определения Вашего IP адреса с помощью Java, то тут все сложнее: самым надежным (и вероятно практически единственным) способом является полный запрет Java, поскольку Java имеет очень много различных сетевых функций и проблематично запретить их все.

ActiveX и plug-ins

ActiveX и plug-ins – это подключаемые к браузеру модули и различные дополнения для браузера. Эти модули являются на самом деле полноценными программами, которые выполняются на компьютере пользователя. Поэтому они обладают гораздо более широкими возможностями, чем Java и JavaScript. Они могут легко определить любые настройки браузера, «вычислить» Ваш реальный IP адрес, и даже легко изменить настройки proxy!

Защитой от них является полный запрет ActiveX и запрет автоматической установки plug-ins.

RBL

Существует еще один довольно эффективный способ «вычислить» proxy сервер. Он не дает 100% гарантии (не все прокси можно определить таким образом), однако от него нельзя защититься, меняя любые настройки на своем компьютере.
В чем суть проверки proxy по RBL? В Intenet существуют так называемые «черные списки» («блеклисты», RBL – Realtime Blackhole List), которые изначально были предназначены для борьбы со спамом (достаточно сделать поиск в Яндексе по фразе «что такое RBL», чтобы узнать об этом подробнее). В настоящее время в эти RBL вносятся не только SMTP сервера (через которые можно рассылать спам), но и многие прокси сервера (через которые также можно рассылать спам). Эти списки являются (как следует из названия: RBL – realtime) постоянно обновляемыми и наиболее оперативными (прокси сервер может попасть в них в течение нескольких часов после того, как через него был разослан спам).
Как узнать, находится ли прокси в этих списках? Очень просто: надо определить IP адрес прокси, а потом сделать поиск в каждом из RBL (этих списков очень много, так же, как, например, поисковых систем). Примеры RBL: www.spamcop.net , www.mail-abuse.com , opm.blitzed.org , dsbl.org и т.д.
Как сайт узнает, что конкретный прокси сервер – в одном из RBL? Это довольно просто. Прежде всего: когда Вы открываете сайт, сайту становится известен IP адрес клиента. Клиент (в случае, если Вы подключаетесь через прокси) – это прокси сервер. Зная IP адрес прокси (для любопытных: это переменная REMOTE_ADDR), сайт посылает запрос на каждый RBL, чтобы узнать, находится ли этот IP в данном «черном списке». Какой запрос посылается? Читайте тут: www.spamcop.net

Борьба «брони и снаряда»

Противостояние желающих быть анонимными в Internet с желающими знать все о своих клиентах будет вечным. Будут появляться новые средства для сокрытия информации о своих перемещениях по Сети и будут новые средства, «пробивающие» или «обходящие» эту защиту.

Защититься от определения Вашего IP можно несколькими способами:
запреты
1.запретить cookies
2.запретить выполнение активных сценариев
3.запретить Java
4.запретить ActiveX
использовать соксификацию браузера. При этом вся информация, которую отправляет и принимает Ваш браузер (или другая программа), «перехватывается» и направляется на proxy сервер.
Использовать «чистые» (т.е. еще не попавшие в RBL, non-RBL) прокси серверы. То есть каждый прокси перед использованием нужно проверить хотя бы в 1-2 (лучше в 10-20) наиболее популярных RBL. Есть специальные программы, которые позволяют проверять прокси на наличие в RBL.

В 1-м случае «пробить» такую защиту очень просто: достаточно построить сайт на основе Java / JavaScript / Cookies (например динамические меню и т.д.). В этом случае при отключении активных сценариев сайт станет просто «нерабочим» (а на web почту с отключенными cookies могут просто не пустить).

Во втором случае нет 100% гарантии, что Ваш IP будет действительно «спрятан». Объясняем подробнее: для определения Вашего IP есть 2 метода:
1.Java программа обращается напрямую в Internet, минуя proxy (она это может, даже если Ваш браузер настроен на работу через proxy) и сервер «сообщает» программе, какой у Вас реальный IP адрес
2.анализируются настройки Windows и IP адрес выявляется из настроек

Так вот, соксификация может защитить от 1-го способа определения IP, но не от 2-го!

В третьем случае, если IP адрес все-таки имеется в RBL (и сайт проверяет наличие IP клиента в различных RBL), то не поможет никакая анонимность прокси (даже high anonymous / socks4 / socks5), запрет ActiveX / Java / …. Главное – чтобы IP адрес прокси сервера был «чистым» («не засветившимся» в «черных списках»). На данный момент (начало 2005 года) очень немногие сайты проверяют наличие IP адреса в RBL.

Так что же делать, если очень нужно и анонимным быть и чтобы Java / JavaScript / ActiveX были?

Давайте рассмотрим, в чем именно состоит суть задачи: чтобы, с одной стороны, анализируя настройки компьютера, нельзя было узнать реальный внешний IP адрес, и, в то же время, чтобы нельзя было подключиться в Internet напрямую (минуя анонимный proxy сервер).

Возможны 2 варианта решения этой проблемы:
1.Вам нужно организовать корпоративную сеть, со внутренними IP адресами (192.168.1.x или что-то в этом роде). Корпоративный proxy сервер (это другой компьютер и он имеет 2 IP адреса: внутренний и внешний) переадресует все запросы на анонимный бесплатный прокси (для того, чтобы это сделать, Вам нужны полномочия (и знания) системного администратора). Минуя корпоративный прокси, в Internet подключиться невозможно (поскольку у компьютера нет внешнего IP адреса), анализируя настройки компьютера – тоже. Если даже Java / ActiveX скрипт определит (и «выдаст» web серверу) Ваш внутренний IP адрес (192.168.1.x), это не раскроет Вашу анонимность. В общем, можно считать это 100% анонимностью.
2.Вам необходимо установить на своем компьютере Firewall, в котором запретить все соединения с Internet из браузера (кроме как с тем прокси сервером, который Вам нужен). При этом желательно сделать port mapping на этот бесплатный прокси сервер, а в браузере прописать «прокси» 127.0.0.1 и локальный порт из port mapping. Но тут возможна проблема – поскольку у Вас реальный и внешний IP адрес, он может быть передан серверу (скрипт проанализирует настройки Windows и «выдаст» Ваш IP).

И последнее: любой proxy сервер (а тем более бесплатный) ведет лог-файл (протокол своей работы), в котором подробно расписано, какой IP адрес в какое время куда обращается. И человек (или организация), который располагает соответствующими полномочиями (доступом к любой информации) и запасом времени, всегда сможет выяснить, куда Вы ходили и что Вы делали, даже если Вы будете использовать цепочки из 10 анонимных proxy серверов в разных концах планеты.

Related Posts

posted under Статьи
1 звезда2 звезды3 звезды4 звезды5 звезд (Еще не оценили)
Loading ... Loading ...
Метки: , , , , , , , , ,

Email will not be published

Website example

Your Comment: