На главную страницу
 
 Главная 
 AVZ 
 APS 
 Статьи 
 Литература 
 Ссылки 
 Описания вирусов 
 Аппаратные системы 

RootKit - принципы и механизмы работы
Клавиатурные шпионы
Cookies
Шпионские программы - угроза безопасности вашего ПК
Методики обнаружения вредоносного ПО
Тестирование Firewall
Современные программные и аппаратные клавиатурные шпионы
Защита программ от взлома
Интернет магазины - как не стать жертвой мошенников

Поиск по сайту


Книга "Rootkits, SpyWare/AdWare, Keyloggers & BackDoors. Обнаружение и защита (+ CD-ROM)" Музыкальный проект антивирусных специалистов



Главная / Информационная безопасность / Статьи

Cookies


 

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

 

Назначение cookies

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

1.                      Организация сессий в ходе работы пользователя с On-Line магазинами, форумами и иными интерактивными системами с Web интерфейсом, например с системами документооборота или почтовыми сервисами с web интерфейсом. В этом случае в cookie хранятся некоторые параметры сессии, например ее уникальный идентификатор;

2.                      Хранение различных параметров пользователя. Часто в cookie хранятся не сами данные, а некий идентификатор, позволяющий программному обеспечению web сервера опознать пользователя;

3.                      Идентификация пользователя в рейтинговых системах, счетчиках, системах баннерного показа, on-line голосованиях. Часто применяется как элемент защиты от так называемой «накрутки» счетчиков посещения

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

  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

 

  1. При помощи META тега в заголовке HTML страницы. Тег имеет вид <META HTTP-EQUIV="Set-Cookie" CONTENT=" определение cookies", причем в одной странице таких тегов может быть несколько. Данный тег эквивалентен полю Set-Cookie в заголовке HTTP ответа;
  2. При помощи скриптов  HTML страницы. В JavaScript, к примеру, для доступа к  cookie предусмотрено свойство 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 с таким именем будет удален. Кроме того, существуют так называемые сеансовые cookie – у них не задано время хранения и они существуют только в течение сеанса работы. Сеансовые cookie часто применяются как средство поддержания сессии пользователя.

Передача 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=

 

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

 

Хранение cookies

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

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

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

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

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

Примеры подробно комментированы и могут быть откомпилированы на любой версии Delphi начиная с 5.0.

 

SpyWare cookies и Tracking Cookies

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

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

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

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

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

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

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

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

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

 

Основные угрозы, создаваемые cookie

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

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

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

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

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

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

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

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

 

Настройка параметров работы с Cookie для IE 6

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

Кнопка «Узлы» позволяет задавать исключения. Это очень полезная функция, так как исключения имеют приоритет над автоматическим анализом. Кнопка «Узлы» недоступна при выборе минимального и максимального уровня конфиденциальности, так как не имеет для них смысла.

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

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

Можно отметить, что в случае перекрытия автоматической обработки рекомендуется запретить прием сторонних cookie и разрешить работу с сеансовыми (они хранятся только в течении сеанса и поэтому не представляют особой опасности).

Если в ходе просмотра WEB страницы IE блокирует cookie, то в его строке статуса отображается значок, при щелчке по которому выводится список заблокированных cookie

Контекстное меню списка позволяет задать политику работу с cookie для любого из отображенных в списке узлов – можно запретить прием cookie или разрешить его.

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

Говоря про настройки конфиденциальности в IE стоит упомянуть про протокол P3P (Platform for Privacy Preferences, http://www.w3.org/P3P). Этот протокол поддерживается в IE6, идея P3P состоит в том, что создатели WEB ресурса описывают «политику приватности» своего сайта в XML формате и размещают в файле /w3c/p3p.xml. Этот файл может быть загружен браузером для анализа и сравнения с действующей политикой безопасности, что помогает принять решение о том, принимать cookie от данного узла или отклонить их. Пример 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).

 

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

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

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

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

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

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

Заключение

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

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

1. Не следует уделять большого внимания сообщениям антишпионских программ, рапортующих об обнаружении на проверяемом компьютере множества «шпионских» cookie – в большинстве случаев это cookie различных счетчиков, рейтингов и баннерных рулеток, и их наличие не представляет для пользователя существенной угрозы;

2. Рекомендуется периодически анализировать хранящиеся на компьютере cookie на предмет наличия в них конфиденциальной информации. Создающие такие cookie сайты стоит внести в черные списки, разрешив для них только сеансовые cookie;

3. После завершения работы на компьютере в местах публичного доступа рекомендуется удалить все cookie;

4. Настраивая браузер можно запретить прием сторонних cookie. Это, как правило, не сказывается на просмотре WEB сайтов, но существенно уменьшает количество сохраняемых cookie;

 





џндекс цитированиЯ
(С) Зайцев О.В.
2003-2016

При использовании любых материалов данного сайта необходимо указывать источник информации.