БЕЗОПАСНОСТЬ

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

Наиболее визуально и функционально привлекательные Web-серверы построены с использованием технологий, позволяющих динамически изменять содержание сайта. Большинство специалистов по защите информации считают необходимым ограничить возможности современных Web-технологий в пользу информационной безопасности и анонимности. Рассмотрим причины таких рекомендаций на примере Java и JavaScript.

Java

Выполняемые в браузере Java-аплеты представляют собой серьезную угрозу конфиденциальности сведений об Интернет-пользователе. Важно отметить, что язык Java разрабатывался с учетом высоких требований к обеспечению информационной безопасности. Тем не менее угрозы нарушению анонимности доступа в Интернет возникают не только из-за наличия уязвимостей в браузерах, но и по причине принципиальной невозможности обеспечения анонимности при использовании Java.

Об этом свидетельствуют сообщения об ошибках в реализациях браузеров, периодически публикуемые в Интернете. Например, 4 марта 2002 г. компания Sun Microsystems в бюллетене по информационной безопасности № 00216 заявила об уязвимости, обнаруженной в ряде реализаций Java Runtime Environment, работающих в новых версиях браузеров. Используя ее, зловредный Java-аплет может контролировать передачу запросов и ответов между браузером и HTTP-прокси-сервером. Это позволяет злоумышленнику в ряде случаев наблюдать за активностью пользователя.

Иллюстрацией к тому, что при использовании Java обеспечить анонимность невозможно в принципе, является способ обхода одного из ограничений, налагаемого механизмом безопасности Java. В общем случае аплет, загружаемый из Интернета, не может стандартными средствами определить локальный IP-адрес пользовательского компьютера, но может установить локальный адрес соединения с сервером, с которого загружен. Очевидно, что локальные адреса соединения и пользовательского компьютера совпадают. Пример использования этой особенности языка Java доступен в Интернете по адресу: www.jguru.com.

Интересный способ выявления факта обращения пользователя к Web-сайту описан в статье Э. Фелтена и М. Шнейдера “Timing Attacks on Web Privacy” *1. Предполагается, что зловредный аплет будет измерять время загрузки с сайта некоего небольшого объекта. Этим объектом может быть изображение, которое передается любому посетителю. В том случае, если тестовому запросу, выполненному зловредным аплетом, предшествовал реальный запрос пользователя, то получение контролируемого объекта займет значительно меньше времени, чем получение редко запрашиваемых объектов. Это произойдет потому, что загрузка объекта будет выполнена из кэша браузера. Описанный метод может быть использован для нарушения анонимности доступа в Интернет и анализа фактов активности пользователя. Отключение кэширования позволит устранить описанную угрозу, но значительно снизит производительность доступа в сеть. Данный факт может рассматриваться как пример уже упомянутого конфликта между удобством и безопасностью.

_____

*1. “Timing Attacks on Web Privacy”, Edward W. Felten, Michael A. Schneider. Proc. of 7th ACM Conference on Computer and Communications Securiny. Nov. 2000.

JavaScript

В последние годы неоднократно обнаруживались уязвимости подсистем безопасности браузеров при использовании языка JavaScript. Зачастую эти уязвимости предоставляли возможность доступа к хранящимся в ПК данным, в том числе содержащим информацию о пользователе и его активности в Интернете, и позволяли злоумышленнику определить список URL-обращений браузера в текущей сессии, получить содержание HTML-форм, которые заполнял пользователь при доступе к различным Web-серверам, прочитать файлы cookies. Другой вариант - открытие окна браузера и принуждение к применению этого открытого окна для доступа в Интернет с одновременной передачей злоумышленнику информации об активности.

Одним из последних примеров существующих угроз анонимности доступа в Интернет при использовании JavaScript является уязвимость, обнаруженная в Microsoft Internet Explorer 6.0 и описанная, например, на сайте компании Internet Security Systems (www.iss.net/security_center/static/8844.php). Этот браузер позволяет сохранять в истории посещений сайтов URL-адреса, содержащие код JavaScript-программы. Данная программа при обращении к ней по адресу, получаемому из истории посещений Интернета, выполняется с правами, которыми обладает браузер при просмотре текущей страницы.

Пример использования упомянутой “дыры” приводился в списке рассылки BugTraq (online.securityfocus.com/archive/1/267561). Естественным поведением пользователя Интернета при ошибке загрузки страницы из Интернета является нажатие кнопки браузера “Назад” (“Back”). Тогда, если в URL страницы, с которой осуществлен переход по ошибочной ссылке, содержался зловредный JavaScript-код, он будет выполнен с правами, достаточными для чтения файлов на компьютере пользователя. Это происходит потому, что уведомление об ошибке получения страницы из Интернета создает сам браузер, функционируя с правами, достаточными для чтения локальных файлов и запуска программ на выполнение.

Заключение

Сегодня неизвестно о каких-либо способах, позволяющих с высокой степенью надежности обеспечивать анонимность доступа в Интернет в условиях применения технологий динамического изменения содержания Web-сайта. Поэтому пользователи, заинтересованные в надежном сокрытии авторства, должны запретить обработку браузером JavaScript-программ, Java-аплетов, ActiveX, VBScript и файлов cookies, на опасность которых косвенно указывает возможность отключения их в браузерах (например, “Security Zones” в Internet Explorer).

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

С автором статьи, ведущим специалистом отдела защиты информации Банка Москвы, можно связаться по адресу: lyubeznov_LN@Mmbank.ru.