Cookies

Олег Зайцев

Назначение cookies

Хранение cookies

Примеры web-программирования с применением cookies

SpyWare cookies и Tracking Cookies

Пути хищения хранящейся в cookies информации

Угрозы, связанные с cookies

Поиск cookies, содержащих конфиденциальную информацию

Настройка параметров работы с cookies для Internet Explorer 6

Настройка параметров работы с cookies для Mozilla Firefox

Заключение

 

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

Назначение cookies

Сookies — это текстовая информация небольшого объема, которая сохраняется на компьютере пользователя по запросу web-сервера и предается ему при повторных посещениях. Основным назначением cookies является:

  • организация сессий в ходе работы пользователя с online-магазинами, форумами и иными интерактивными системами с web-интерфейсом, например с системами документооборота или почтовыми сервисами. В этом случае в cookies хранятся некоторые параметры сессии, в частности ее уникальный идентификатор;
  • хранение различных параметров пользователя. Иногда в cookies хранятся не сами данные, а некий идентификатор, позволяющий программному обеспечению web-сервера опознать пользователя;
  • идентификация пользователя в рейтинговых системах, счетчиках, системах баннерного показа, online-голосованиях. Часто применяется как элемент защиты от так называемой накрутки счетчиков посещения.

Существуют три способа создания cookies:

1. При помощи поля в заголовке HTTP-ответа. В этом случае сервер передает в HTTP- ответе одно или несколько полей Set-Cookie: <определение cookies>. Пример заголовка HTTP-ответа сервера:

 

HTTP/1.0 200 OK

Date: Thu, 22 Dec 2005 06:41:30 GMT

Expires: Thu, 01 Jan 1970 00:00:01 GMT

Content-type: image/gif

Set-Cookie: ruid=AjkABppKqkPzAAAAAZEAnFyrv; path=/; domain=.rambler.ru; expires=Sun, 20-Dec-15 06:41:30 GMT

 

2. При помощи тэга META в заголовке HTML-страницы. Тэг имеет вид <META HTTP-EQUIV=”Set-Cookie” CONTENT=” определение cookies”>, причем на одной странице таких тэгов может быть несколько. Данный тэг эквивалентен полю Set-Cookie в заголовке HTTP-ответа.

3. При помощи скриптов HTML-страницы. В JavaScript, к примеру, для доступа к cookies предусмотрено свойство document.cookie.

Рассмотрим простейший скрипт, который выводит на странице текущее значение document.cookie, а затем создает cookie с именем «test-cookie-1»

 

<html>

<head>

<SCRIPT LANGUAGE=”JavaScript”>

document.write(“Cookie text = ‘“ + document.cookie+”’”);

document.cookie = “data=test-cookie-1-data; expires=Thursday, 14-Feb-2007 18:49:21 GMT”;

</script>

</head>

<body>

</body>

</html>

 

Первый запуск примера должен отобразить пустую строку, второй и последующие — строку «data=test-cookie-1-data». Файл с данным примером прилагается к статье, имя файла — cookie-1.htm. Этот пример пригодится для тестирования анализатора cookies, речь о котором пойдет далее.

При создании cookie может быть указано время ее хранения при помощи параметра expires, в котором указываются дата и время, до наступления которых браузеру рекомендуется хранить cookie. Важно отметить, что речь идет именно о рекомендации — браузер не обязан хранить cookie в течение всего заданного времени. Если в момент создания cookie выяснится, что в параметре expires задана дата меньше текущей, то cookie с таким именем удаляется. Кроме того, существуют так называемые сеансовые cookies, для которых вообще не задано время хранения и которые существуют только в течение сеанса работы. Сеансовые cookies часто применяются как средство поддержания сессии пользователя.

Передача cookie web-серверу производится в заголовке HTTP-запроса, в поле Cookie:.

Вот пример типового HTTP-запроса:

 

GET http://top100-images.rambler.ru/top100/banner-88x31-rambler-black2.gif HTTP/1.0

Accept: */*

Referer: http://virusinfo.info

Accept-Language: ru

Proxy-Connection: Keep-Alive

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)

Host: top100-images.rambler.ru

Pragma: no-cache

Cookie: ruid=yQAAAEBPWkIOagAAAawJAAA=

 

Подробную спецификацию cookies на английском языке можно найти по адресу http://wp.netscape.com/newsref/std/cookie_spec.html.

Хранение cookies

Методика хранения cookies зависит от браузера. Internet Explorer сохраняет данные cookies в виде отдельных текстовых файлов в особой папке Cookies, расположенной в профиле пользователя. Единственным средством защиты данной папки является наличие у нее атрибута «Системный», что делает ее невидимой для проводника. Сами файлы имеют расширение txt и могут быть просмотрены при помощи обычного блокнота.

Браузер Mozilla Firefox хранит cookies в профиле пользователя — в файле Application Data\Mozilla\Firefox\Profiles\<имя профиля>\cookies.txt. Этот файл имеет весьма простую структуру: комментарии начинаются с символа #, данные cookies идут по одной на каждую строку, а разделителем полей служит знак табуляции.

В начало В начало

Примеры web-программирования с применением cookies

Для иллюстрации базовых приемов работы с cookies на нашем компакт-диске помещены четыре простых примера CGI-программ на языке Delphi (в виде исходных текстов и откомпилированных программ). Откомпилированные программы необходимо разместить в каталоге web-сервера, для которого разрешено выполнение CGI-программ. В случае с Microsoft IIS для изучения примеров рекомендуется создать отдельную папку и в настройках для нее разрешить запуск сценариев и исполняемых файлов.

Пример № 1 (cookies1.exe) является примером простейшего CGI-приложения, создающего и считывающего cookies. Следующий пример несколько сложнее и демонстрирует возможность создания, получения и удаления cookies под управлением CGI-программы. Пример № 3 демонстрирует работу с сеансовыми cookie, имитируя механизм простейшей идентификации пользователя и поддержания сессии. Наконец, пример № 4 демонстрирует создание счетчика посещений с простейшей защитой от накрутки при помощи cookies. Все примеры снабжены подробными комментариями и могут быть откомпилированы при помощи любой версии Delphi начиная с 5.0.

В начало В начало

SpyWare cookies и Tracking Cookies

Оба этих типа cookies, как правило, идентичны и применяются разработчиками различных рейтинговых и баннерных систем для отслеживания посещений пользователем страниц, содержащих элементы этих систем. Cookie в данном случае используется для своеобразной «метки» пользователя, причем подобная «метка» обычно не может быть ассоциирована с конкретным пользователем и его персональными данными, так как является простым уникальным идентификатором. Схема работы подобной рейтинговой или баннерной системы показана на рис. 1.

 

Рис. 1

Рис. 1

Предположим, что пользователь посещает два сайта, содержащих на своих страницах счетчик одной и той же рейтинговой системы. Будем считать, что у браузера пользователя разрешены прием и передача cookies.

При посещении сайта A произойдут две операции — загрузка страницы с сайта A (шаг 1) и обращение к сайту рейтинговой системы (шаг 2) для получения рисунка с данными счетчика или логотипом рейтинговой системы. Если это первое обращение пользователя к сайту рейтинговой системы, то на его компьютере нет ее cookies. Не получив cookie, рейтинговая система присваивает пользователю уникальный идентификатор и в заголовке HTTP-ответа передает поле Set-Cookie, предписывающее браузеру сохранить cookie для сайта рейтинговой системы. Классическим примером может послужить рейтинг rambler.ru, который использует единственный cookie вида «ruid=<уникальный идентификатор, присвоенный пользователю>».

Затем пользователь посещает сайт B (шаг 3), и тогда происходит повторное обращение к сайту рейтинговой системы (шаг 4), в ходе которого передается cookie, сохраненный на шаге 2. Получив и проанализировав cookie, рейтинговая система узнает пользователя по его уникальному идентификатору. В результате рейтинговая система может не просто фиксировать факт посещения сайта, но и отслеживать траекторию переходов пользователя по сайтам (естественно, только по тем сайтам, страницы которых содержат счетчики этой рейтинговой системы).

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

Важно отметить, что при помощи cookies любой сайт может регистрировать лишь факт повторного посещения, но не может определить никаких персональных данных пользователя. Исключением является случай, когда пользователь сам передал какие-либо сведения, заполняя формы регистрации на сайте. Но даже тогда подобные данные очень редко хранятся непосредственно в cookies — обычно они заносятся в базу данных на стороне web-сервера. Однако здесь все зависит от web-программистов, создающих посещаемые пользователем сайты. Ниже мы опишем утилиту AVZ, позволяющую проверить cookies на своем компьютере.

В начало В начало

Пути хищения хранящейся в cookies информации

Рассмотрим несколько самых типичных способов, с помощью которых хранящаяся в cookies информация может быть получена злоумышленниками:

  1. Межсайтовый скриптинг. Этот наиболее простой и популярный метод похищения cookies основан на внедрении в легитимную web-страницу небольшого троянского скрипта, передающего доступные узлу cookie злоумышленнику. Кроме того, с его помощью можно похитить сеансовые cookies.
  2. Эксплуатация уязвимостей браузера.
  3. Внедрение на компьютер пользователя троянской программы, которая проанализирует содержащуюся в cookies информацию и передаст ее создателям. К тому же троянская программа может не только анализировать cookies, но и модифицировать их. Создать такую программу достаточно просто, так как Internet Explorer и Mozilla Firefox хранят cookies в открытом виде.
  4. Использование компьютера в публичных местах — в библиотеках Интернет-кафе и т.п. Дело в том, что многие пользователи не затрудняют себя удалением журналов работы и cookies по завершении работы.
  5. Перехват cookies при помощи средств анализа сетевого трафика.
  6. Регистрация данных cookie в протоколе прокси-сервера. В зависимости от своих настроек прокси-сервер может производить запись не только полного URL, но и заголовков HTTP-запроса и ответа.
В начало В начало

Угрозы, связанные с cookies

С cookies связано несколько основных видов угроз:

  1. Утечка конфиденциальной информации — может произойти в случае получения злоумышленником хранящихся в cookies данных любым способом.
  2. Несанкционированный доступ злоумышленника к некоторым web-сервисам от имени пользователя. Это в первую очередь касается получения хранящегося в cookies идентификатора сессии, а также хранимых в cookies имени и пароля пользователя или их эквивалента.
  3. Получение информации о том, какие узлы посещались пользователем в последнее время. В данном случае анализ cookies, наряду с журналами браузера и кэшем страниц, позволяет получить достаточно полную картину о предпочтениях пользователя. Подобный анализ обычно производится специалистами спецслужб или службы безопасности.
В начало В начало

Поиск cookies, содержащих конфиденциальную информацию

Для оперативного анализа содержимого cookies можно применить антивирусную утилиту AVZ, в которой имеется средство поиска заданных текстовых фрагментов в содержимом cookies, сохраняемых браузерами Internet Explorer и Mozilla Firefox. Окно системы поиска вызывается из меню «Сервис/Поиск cookies». Особенностью этого средства является то, что поиск может вестись одновременно по нескольким текстовым образцам (при этом образцы разделяются пробелом или «;»). Поиск ведется с учетом того, что данные в cookies могут быть представлены в формате Base64, UUE, url-encoding или quoted-printable. Анализируемые форматы можно выбрать на закладке «Настройки»; по умолчанию предпринимаются попытки поиска во всех форматах (рис. 2).

 

Рис. 2

Рис. 2

Для проведения анализа в строке «Образец» необходимо ввести фрагменты e-mail-адресов пользователя, применяемые для регистрации на Интернет-сайтах имена и пароли, фрагменты номеров кредитных карт или иную информацию, которая вводилась в web-формы и утечка которой, по мнению пользователя, представляет для него угрозу. При указании образцов поиска следует учитывать, что, по сути, здесь ведется поиск вхождения указанных образцов в данных cookies, поэтому часто для эффективного поиска достаточно указать уникальные фрагменты, например “newvirus” вместо “newvirus@z-oleg.com” или последние пять цифр номера кредитной карты вместо ее полного номера.

После задания образцов необходимо нажать кнопку «Пуск» для запуска поиска. Поиск занимает, как правило, не более 10-20 секунд. По завершении поиска формируется протокол, в котором указано, в каких cookies встречались указанные образцы. На закладке «Найденные cookies» можно просмотреть их список, а по нажатии кнопки «Просмотреть cookie» на экран выводится содержимое текущего cookie для детального анализа. Данный анализатор позволяет пользователю узнать, какие сайты сохраняют в cookies критичную для него информацию, а впоследствии для этих сайтов можно создать правила, блокирующие прием от них cookies.

Попробуйте проверить работу анализатора при помощи размещенного на нашем компакт-диске примера — после запуска test-cookie-1.htm можно провести поиск по образцу “test-cookie-1-data”.

В начало В начало

Настройка параметров работы с cookies для Internet Explorer 6

Настройка параметров работы с cookies в Internet Explorer производится на закладке «Конфиденциальность» в свойствах обозревателя. По умолчанию установлен средний уровень конфиденциальности — в данном режиме часть сторонних cookies (различные счетчики, рейтинги) блокируется. Максимальным уровнем является «Блокировать все cookies» — при этом блокируется и прием cookies, и передача уже существующих на компьютере. При установке минимального уровня разрешается прием cookies от всех узлов (рис. 3).

 

Рис. 3

Рис. 3

Кнопка «Узлы» позволяет задавать исключения, которые имеют приоритет над автоматическим анализом. Естественно, эта кнопка недоступна при выборе минимального и максимального уровня конфиденциальности, так как здесь она не имеет смысла. Нажатие данной кнопки вызывает окно, позволяющее ввести адрес узла и выбрать применяемое для него действие — «Блокировать» или «Разрешить», что позволяет вручную запретить или разрешить cookies для определенных узлов. В частности, можно установить высокий уровень конфиденциальности и затем разрешить прием cookie для определенных узлов.

Кнопка «Дополнительно» позволяет запретить автоматическую обработку файлов cookies и однозначно задать реакцию браузера на «основные» (создаваемые для узла, с которого открывается страница) и «сторонние» cookies (создаваемые элементами, размещенными на других узлах; в частности, это относится к баннерам и счетчикам; рис. 4). В этом случае рекомендуется запретить прием сторонних cookies и разрешить работу с сеансовыми, поскольку они хранятся только в течение сеанса и потому не представляют особой опасности.

 

Рис. 4

Рис. 4

Если в ходе просмотра web-страницы IE блокирует cookies, то в его строке статуса отображается значок, щелчком по которому выводится список заблокированных cookies (рис. 5). Контекстное меню списка позволяет задать политику работу с cookies для любого из отображенных в списке узлов — можно запретить прием cookies или разрешить его.

 

Рис. 5

Рис. 5

Удаление всех хранящихся cookies производится по нажатии кнопки «Удалить cookies» на закладке «Общие» в свойствах обозревателя.

Говоря о настройках конфиденциальности в IE, стоит упомянуть протокол P3P (Platform for Privacy Preferences, http://www.w3.org/P3P), который поддерживается в IE6. Идея P3P состоит в том, что создатели web-ресурса описывают «политику приватности» своего сайта в XML-формате и размещают ее в файле /w3c/p3p.xml. Этот файл может быть загружен браузером для анализа и сравнения с действующей политикой безопасности, что помогает принять решение о том, принимать cookies от данного узла или отклонить их. Пример P3P-описания можно посмотреть, загрузив такой файл с одного из крупных российских сайтов, например с http://www.rambler.ru/w3c/p3p.xml, http://top.mail.ru/w3c/p3p.xml. Анализируя P3P-файлы, следует обратить внимание на имеющуюся там ссылку на развернутое описание политики, размещаемое в отдельном файле, ссылка на который дается в тэге POLICY-REF (в Rambler — файл http://www.rambler.ru/w3c/p3p.rambler.xml).

В начало В начало

Настройка параметров работы с cookies для Mozilla Firefox

Настройка параметров работы с cookies для Firefox несколько отличается от настроек IE, поскольку все связанные с приватностью настройки (журналы, управление сохраненными данными форм и паролями, настройка работы с cookies) собраны в группе «Приватность» окна настроек (рис. 6).

 

Рис. 6

Рис. 6

Настройки Firefox позволяют включать/выключать прием cookies. При включенном приеме можно разрешить прием cookies только с того же сайта, что и открываемая страница (аналог блокировки сторонних cookies в IE). Кроме того, можно принудительно управлять сроком хранения cookies. По умолчанию они хранятся в соответствии с указанным при их создании временем действия, однако можно включить хранение cookies до закрытия окна Firefox. В настройке можно задать исключения (данная настройка аналогична настройке IE) и просмотреть имеющиеся cookies. Окно просмотра cookies вызывается нажатием на кнопку «Просмотр cookies» (рис. 7).

 

Рис. 7

Рис. 7

Наличие возможности просмотра принятых cookies является очень полезной функцией Firefox, так как для каждого cookie можно увидеть расшифровку всех его параметров, в частности срока действия и значения.

Кнопка «Удалить cookie» позволяет избирательно удалять любой cookie, кнопка «Удалить все cookies» производит удаление всех хранящихся на компьютере cookies.

Особое внимание стоит уделить переключателю внизу окна — его включение позволяет автоматически создавать правила блокировки для сайтов, которым принадлежат удаляемые cookies.

В начало В начало

Заключение

В данной статье описаны технология cookies и связанные с ней потенциальные угрозы. Анализ показывает, что при правильной настройке браузера cookies не представляют серьезной опасности.

В заключение можно сформулировать ряд советов для пользователей:

  1. Не следует уделять большого внимания сообщениям антишпионских программ, рапортующих об обнаружении на проверяемом компьютере множества «шпионских» cookies, ибо в большинстве случаев речь идет о cookies различных счетчиков, рейтингов и баннерных рулеток, наличие которых не является для пользователя существенной угрозой.
  2. Рекомендуется периодически анализировать хранящиеся на компьютере cookies на предмет наличия в них конфиденциальной информации. Сайты, которые создают такие cookies, стоит внести в черные списки, разрешив для них только сеансовые cookies.
  3. После завершения работы на компьютере в публичных местах доступа необходимо удалить все cookies.
  4. Настраивая браузер, можно запретить прием сторонних cookies. Это, как правило, не сказывается на просмотре web-сайтов, но значительно уменьшает количество сохраняемых cookies.

 

Дополнительные материалы к статье вы найдете на нашем CD-ROM.

КомпьютерПресс 3'2006


Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует