Вади фреймів HTML в Internet Explorer
Маловідомою особливістю броузера Internet Explorer є можливість використання доменної моделі забезпечення безпеки ("cross-domain security model"). Вичерпний опис цієї концепції можна знайти за адресою
http://www.microsoft.com/technet/security/bulletin/fq00-009.asp.
Коротко це означає наступне. Описувана модель приховано використовується і запобігає читанню, доступу і будь-яким іншим операціям з даними, відкритими у вікні одного вузла (проста форма домена IE), з боку вікна іншого вузла. При такому підході фрейми HTML, відкриті в якому-небудь вікні, мають бути доступні тільки з батьківського вікна за умови, що обидва вони відносяться до одного і тому ж домена.
Цікавою
особливістю цієї моделі є те, що локальна файлова система, вміст якої можна проглядати за допомогою Internet Explorer, теж розглядається як домен. Таким чином, при порушенні доменної безпеки у розпорядженні нечесних операторів Web-узлов опиниться багато можливостей проглядання даних не тільки інших вузлів, що відвідуються користувачем, але і файлів, які знаходяться на його власному жорсткому диску.
Використовуючи деякі з можливих підходів, досить написати лише декілька рядків коди і помістити його на Web-узле або відправити в електронному повідомленні. Нижче приведено декілька реалізацій цієї ідеї.
Читання інших доменів за допомогою дескриптора IFRAME і document.execCommand
Експерт
в області безпеки броузеров Георгій Гунінськи (Georgi Guninski) виявив декілька випадків порушення моделі доменної безпеки, що запобігає обміну даними між доменами.
При реалізації
коди Георгій часто використовував дескриптор iframe, який вже згадувався вищим. Цей дескриптор є розширенням стандарту HTML 4.0. На
відміну від стандартного дескриптора FRAME, i FRAME дозволяє створити плаваючий фрейм, який розташовується посередині звичайної Web-страницы, що не містить фреймів, подібно до вставленого в неї зображення. Це задоволено простою спосіб вставки вмісту інших вузлів (і навіть файлової системи) всередину Web-страницы, який чудово підходить для прихованого отримання доступу до даних інших доменів.
Описувана реалізація є чудовим прикладом. У початковому файлі дескриптор I FRAME служить для завдання локального файлу. Потім в I FRAME вставляється код Javascript, який виконується в домені файлової системи. Якщо нечесного оператора Web-узла знає ім'я файлу (або може про нього здогадатися) і його місцеположення, то за бажання він зможе проглянути файл будь-якого типу, який може бути відкритий у вікні броузера. Наприклад, файл winnt\repair\sam._ у такий спосіб прочитати не вдасться, оскільки при цьому на екран буде виведено діалогове вікно завантаження файлу IE. Георгій представив приклад коди, яка прочитує файл C:\test.txt (за умови, що він існує на диску користувача).
Контрзаходи
Встановите модуль оновлення, який можна знайти за адресою
http://www. microsoft.com/technet/security/bulletin/ms99-042.asp. Можна також
відключити режим використання активних сценаріїв за допомогою процедури, описаної в розділі "Розумне Використання Зон Безпеки: Загальне Вирішення Проблеми Елементів ACTIVEX".
Перевірка приналежності до доменів Internet Explorer
У червні 2000 року Ендрю Носенко (Andrew Nosenko) з компанії Mead & Company повідомив про те, що в Internet Explorer дві функції не виконують належну перевірку приналежності до домена. Це дозволяє створити таку сторінку HTML, яка відкривала б фрейм з локальним файлом і могла читати цей файл
. У прагненні бути неперевершеним, Георгій Гунінськи теж помістив на своєму вузлі повідомлення про подібну уразливість. Код Георгія вражає брехливою простотою.
<IFRAME Id="i1"x/iframe> <SCRIPT for=ii event=" Navigatecomplete2(b)
">
alert("Here is your file:
\n"+b.document.body.innerText);
</script>
<SCRIPT>
II.navigate ( "file://c:/test.txt");
settimeout('II.navigate
("file://c:/test.txt";',1000);
</script>
Як і у попередньому випадку, як мета був вибраний файл test. Але з таким же успіхом можна рахувати будь-який інший файл системи користувача, якого можна проглянути в броузере. Для цього потрібно внести відповідні зміни до рядка
file://с:/test.txt.
Контрзаходи
Застосуєте модуль оновлення, який можна знайти за адресою
http://www. microsoft.com/technet/security/bulletin/fq00-033.asp. Як і в попередніх випадках, альтернативною мірою є відключення активних сценаріїв. Ця обережність значно обмежить функціональні можливості Web-узлов, робота яких заснована на застосуванні сценаріїв (див. розділ, присвячений зонам безпеки).
|