InfoCity
InfoCity - виртуальный город компьютерной документации
Реклама на сайте







Размещение сквозной ссылки

 

Мне в логах видно все...


Алексей Павленко, www.softerra.ru


Убедившись недавно в иллюзорности защиты и легкости взлома паролей в операционных системах и корпоративных сетях ("Шпионы как мы"), рассмотрим теперь вопросы конфиденциальности и безопасности в Сети с большой буквы.

Отчего оной конфиденциальности столь плохо лишиться и почему на нее все так посягают? Все просто: скажите, вам нравится, когда особенно любопытная соседка сует свой нос туда, куда не надо? А вот нравится ли самому это делать? Вот... А если быть серьезнее, масса организаций мечтают заполучить сколь можно более подробную информацию о пользователе/посетителе/покупателе, дабы в дальнейшем подстроить ассортимент предлагаемой продукции или услуг под пользующиеся максимальным спросом, а, значит, продать их большему числу людей. Например, есть какая-то газета X. Оказывается, что статьями про спорт интересуется лишь 1% ее читателей, а про светскую жизнь - аж 50%. Стоит свести к минимуму спорт и увеличить процент светской хроники, и число читателей если не удвоится, то хотя бы увеличится. Понятно, что издатель газеты не знает всей статистики, приходится рисковать, опубликовывая материалы, проводить анкетирование, устраивать опросы и прочее.

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

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

Примерный код для этого следующий:

<a href="index.html" target=_top>
<script language="JavaScript"></script>
<script language="JavaScript1.1"><!--
a+='&j='+navigator.javaEnabled();js=1.1
//--></script>
<script language="JavaScript1.2"><!--
s=screen;a+='&s='+s.width+'*'+s.height;
a+='&d='+(s.colorDepth?s.colorDepth:s.pixelDepth);js=1.2
//--></script>
<script language="JavaScript1.3"><!--
js=1.3
//--></script>
<script language="JavaScript"><!--
d.write('<img src="cgi-bin/stat.pl'+
'?id=1&js='+js+a+'" alt="Главная страница" '+
'border=0 height=30 width=30>')
if(js>1.1)d.write('<'+'!-- ')
//--></script>
<noscript>
<img src="cgi-bin/stat.pl?js=na&id=1" border=0 height=30 
width=30 alt="Главная страница">
</noscript>
<script language="JavaScript"><!--
if(js>1.1)d.write('--'+'>')
//--></script>
</a>

После выполнения этого скрипта броузер обратится к CGI-программе сервера с параметрами, например:
id=1&js=1.3&r=http%3A//www.kulichki.com/castle/test.html&j=true&s=800*600&d=16

Это значит, что у пользователь зашел на активную страницу с test.html, у него включена Java, версия JavaScript 1.3, экранное разрешение 800*600 с 16-битным цветом.

Ну а на сервере CGI-программа (в данном случае на Perl) сообщит время захода, адрес посетителя, страницу, с которой обратились и броузер:
# время захода в секундах
print time();
# IP посетителя или его хост
print $ENV{'REMOTE_HOST'};
# на какой странице показывалась статистика
print $ENV{'HTTP_REFERER'};
# броузер
print $ENV{'HTTP_USER_AGENT'};

Результат:
985191556
127.0.0.1
http://www.kulichki.com/castle/main.html
Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)

А вот общий результат:

statistic

Буквально за день можно разработать приличную программу для обработки всей статистики по вашему сайту. Ну а владельцы ресурсов типа счетчиков посещений или баннерообменных служб вообще могут проследить практически каждый шаг пользователя. Как? Да с помощью IP-адреса посетителя, который являет собой уникальный идентификатор человека, поскольку во время сеанса подключения к Интернету он не меняется [1]. Кто мешает по имеющимся лог-файлам составить полную картину перемещений посетителя с сайта на сайт, проанализировать маршруты, подсчитать, сколько времени он задерживался на каждой странице и так далее? [2] Понятно, что это будет не абсолютно достоверная и надежная информация, но по ней уже вполне можно делать выводы. Ко всему прочему по IP-адресу можно определить страну, город и провайдера посетителя, а если вы кому-то особенно насолили, то и ваш телефон с адресом. Так что будьте культурнее, не хамите и не делайте гадостей людям - вас могут и наказать, поверьте.

Посмотрев на браузер пользователя, можно ничего не показывать владельцам, скажем, Netscape, или запретить закачку страниц различными роботами или программами для выкачивания типа Net Vampire, Reget. Последнее на моей памяти практиковали GeoCities. И еще: я сам не сталкивался, но говорят, что некоторые сайты - например, новостные - по адресу посетителя определяют страну проживания (это возможно сделать, как писалось выше) и по ней генерируют содержимое. Кстати, легко узнать часовой пояс пользователя, вставив в код обращения к скрипту (как это делали с получением разрешения экрана) текущее время.

Хочу еще раз обратить внимание на то, что информацией, полученной серверным скриптом, владеет любой сайт, с которого вы загрузили хоть что-то - страницу, картинку, mp3, видео, архив, и лежит она в логах сервера. А если добавить немного кода на странице, то можно получить и того больше... Отсюда напрашивается вывод о том, что прогулки по реальному мир получаются несколько анонимнее, чем по виртуальному.

Однако есть все же выход: если вы хотите, чтобы никто не знал вашего реального адреса, можно воспользоваться специальными "анонимизирующими" серверами. Принцип их работы заключается в том, что вы заходите на чью-то страницу не напрямую, а через подобный сервер. В итоге в логах конечного сайта оседает, что к нему зашел некто с адреса xxx.com (не путать с другим популярным сайтом), а не с ваш_провайдер.ru. Кроме скрытия адреса, сервер-посредник хранит и cookies, предназначенные для вас.

Я рекомендую воспользоваться бесплатной службой Rewebber. Надо к ним зайти и вписать URL, на который хотите попасть. После этого загрузится страница, содержащая 2 главных фрейма: верхний маленький рекламный, а в другой будет грузиться желаемый сайт. Все совершенно бесплатно, но есть небольшие ограничения. Стоит заметить, я сталкивался с тем, что иногда не мог попасть на какую-то страницу из-за загруженности серверов в том направлении. Однако когда кидал URL в Rewebber, все грузилось на ура.

Кроме него, похожие услуги предлагает и Anonymizer. Ну и, конечно, можно просто прописать в настройках браузера анонимный прокси-сервер . Только не думайте, что если вы воспользуетесь этими услугами, то вас нельзя будет вычислить. Не забывайте, ваш адрес все-таки доступен посреднику!


[1] - Не говоря уж о пользователях, имеющих фиксированный IP
[обратно к тексту]

[2] - Так делает, например, одна отечественная баннерная служба, имени которой мы, пожалуй, называть не станем.
[обратно к тексту]


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

Уже не раз писали, что люди пользуются всего несколькими паролями для всех мест, где они заводились - так удобнее для запоминания, а серверам, где пароли хранятся, это все равно, равно как и программам, их использующим. Также неоднократно писали, что пароли должны состоять не из слов, а бессмысленной комбинации типа kJ4,#$Md= длиной более 6 символов, иначе их легко можно подобрать атакой по словарю или полным перебором. Но сейчас речь не об этом. Суть именно в том, что мы пользуемся несколькими уникальными паролями. Я сам считал себя продвинутым пользователем, однако на днях на глаза мне попал листик c идентификационными данными и адресами сайтов, где я регистрировался - очень четко прослеживается повторяемость...

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

Конечно же, никаких призов практически наверняка не будет, и, если честно, вы и сами ожидали такого результата, но подумали: "А вдруг?". Что-то доказать или проверить без затрат времени и средств невозможно, через день вы уже и забыли про конкурс, а потом удивляетесь приходу очередного спама по электронной почте. Это был пример специально задуманного способа сбора адресов. А что делать, если вы зарегистрировались на сайте своего приятеля, а он любопытен (как я, например)? Он же может не пожалеть лишней минутки и попробовать ваш пароль на вашем же электронном ящике, просто ради любопытства и желания показать какой он "крутой" хакер. Кстати, если задуматься, то выходит, что получить доступ к той же электронной почте легче всего вашим друзьям. Вы пользовались когда-нибудь возможностью восстановить забытый пароль в бесплатной службе типа mail.ru? Для начала вас спросят имя, потом адрес, дату рождения и, наконец, попросят ответить на секретный вопрос, на который вы даете ответ при регистрации. Обычно он намного проще пароля и по умолчанию представляет собой что-то вроде вопроса "Какая фамилия была у вашей жены до замужества?" Человек, хорошо с вами знакомый, может ответить на все вопросы. Я раз пробовал эту возможность на своей подружке, брак вышел только на последнем секретном вопросе - она ввела свой :-)

Еще один способ узнать адрес электронной почты посетителя - голосование, построенное с использованием функции mailto. Допустим, предлагается выбрать вариант ответа из выпадающего списка и нажать на кнопку "Отправить". После этого запустится ваш почтовый клиент и пошлет информацию по адресу, указанному в форме, причем, естественно, с адреса проголосовавшего то есть с вашего. Современные браузеры предупреждают пользователя об использовании почтового клиента, но кто обращает внимание на все эти предупреждения?

Вот пример подобного голосования:

<script LANGUAGE="JavaScript"><!--
function SendMail(){
document.forms[0].action="mailto:name@company.com?body=Vote="+
document.forms[0].menu.options[document.forms[0].menu.selectedIndex].value;
}
//--></script>

<form method="post" name="form" onsubmit="SendMail()">
<SELECT name="menu" size="1">
<option value="1">1
<option value="2">2
<option value="3">3
<option value="4">4
<option value="5">5
</select>
<input type="submit" value="Отправить">
</form>

Я использовал подобные приемы не ради сбора e-mail'ов, а для того, чтобы получить возможность хоть какой-то обратной связи с посетителями, потому что не было возможности использования CGI-скриптов. Потом выяснилось, что такой же принцип гораздо раньше меня использовал Мошков (только вот посещаемость у него несколько выше, чем у меня :-)



Реклама на InfoCity

Яндекс цитирования



Финансы: форекс для тебя








1999-2009 © InfoCity.kiev.ua