Разговорчивый осел

Докучаев Дмитрий aka Forb

Хакер, номер #080, стр. 080-048-1

(forb@real.xakep.ru)

Узнай, что ты рассказываешь о себе, работая в Сети

Проблема анонимности возникла вместе с появлением Сети и год от года становиться все более актуальной. Куча людей платят увесистые суммы за свежие прокси-листы, доступ к VPN-шлюзам и очень сильно запариваются над собственной анонимностью. Однако они даже и не догадываются, что существует множество несложных приемов, позволяющих получить доступ к информации, которую они так тщательно скрывают. Узнать реальный IP, параметры компьютера, месторасположение пользователя, используемый proxy, — никаких проблем! Сейчас я научу тебя основам электронного шпионажа.

[большой брат]

Методы защиты от посторонних глаз бывают разными. Самый примитивный способ – использовать при работе в Сети proxy-сервера. Однако ни для кого не секрет, что не все проксики обеспечивают своим клиентам анонимность. Некоторые из них светят реальный IP в директиве X_FORWARDED_FOR, другие пишут подробные логи, которые по первому запросу из МВД попадут на стол к Петру Васильевичу с тремя звездочками на погонах. На практике оказывается, что все сервера, информация о которых публично доступна, — настоящее палево и пользоваться ими не следует. Конечно, вместо левого проксика можно заюзать быстрый сокс, поднять туннель или VPN. Однако даже сидя под тремя VPN-соединениями, взломщика можно вычислить. Делается это с применением технологий web-шпионажа. Ты никогда не посещал ресурсы, где тебе предлагают провериться на анонимность? Уверен, что посещал. Подобные технологии позволят узнать, насколько совершенна твоя безопасность. И обычно после тестирования пользователь видит большие изъяны в анонимности. Настало время поговорить о работе подобных скриптов тестирования.

[коварные переменные]

Почти все браузеры при обращении к web-сервису передают в запросе массу любопытной информации о клиенте, которая имеет посредственное отношение к запрашиваемому документу. В самом деле, абсолютно все современные обозреватели, помимо обязательных полей, определяемых спецификацией HTTP, передают кучу необязательных данных в полях вроде REMOTE_ADDR и HTTP_USER_AGENT. Разумеется, если для web-серфинга ты используешь telnet.exe, то никаких проблем перед тобой не стоит: GET /file.html и никакого палева. А вот если ты предпочитаешь IE, то стоит задуматься над проблемой. Ведь передаваемая web-серверу информация может быть проигнорирована, а может быть и записана в лог-файл, генерируемый специальным сценарием. Скрипт может вызываться как через SSI, так и любым другим способом. В шпионском сценарии не будет замороченного кода, он просто запишет важные сведения о клиенте. Например, таким образом:

[шпионский код для создания логов]

#!/usr/bin/perl

print "Content-type: text/htmlnn";

open(LOG, ">>/var/log/clients");

print LOG "Client: $ENV{REMOTE_ADDR}, $ENV{HTTP_USER_AGENT}, $ENV{HTTP_REFERER}n";

print LOG "Proxy: $ENV{HTTP_FORWARDED_FOR} $ENV{HTTP_VIA}n";

close(LOG);

Что делает этот сценарий? В первой его части происходит логирование базовых переменных окружения: IP-адреса клиента, информации о браузере, а также URL’а, откуда посетитель пришел на данную страницу. Казалось бы, что тут такого? На самом деле, с помощью подобного журналирования можно узнать массу полезной информации о пользователе. В частности, по такому логу можно легко определить, из какой страны юзер и какая у него операционная система. Не веришь? Зря, приятель. При составлении запроса твой браузер записывает в поле User-Agent строку следующего вида:

Содержание  Вперед на стр. 080-048-2
ttfb: 3.4070014953613 ms