Большинство из рассмотренных методов браузера Internet explorer (IE) можно реализовать в модели документов, поддерживаемой другими браузерами. Но почему не нравится, когда IE обслуживает более 90 % сети Web? Изменчивость - фактически одна из основных возможностей противостоять сетевым атакам. Идея состоит в том, что если злоумышленнику легко предсказать, что пользователь привык видеть на экране монитора, то у него появляется хорошая возможность подстроиться под ожидания пользователя. Достаточно интересно, что поддерживаемая Windows ХР оболочка является фактически позитивным шагом, направленным на защиту против подобных способов атак. Если нельзя выдать удаленный запрос для определения используемой пользователем оболочки, то нельзя удаленно имитировать ее.

С другой стороны, Internet Explorer 6 обладает странной забывчивостью сохранять активную строку состояния, что сильно облегчает задачу злоумышленнику, переводя тем самым задачу фальсификации в разряд почти ненужных (хотя по-прежнему злоумышленник должен угадать, стоит ли что-нибудь фальсифицировать или нет).

На этот раз классическое возражение почти точно: «Это не ошибка, это - особенность».

Блокировка: фальсификация строки состояний в HTML. Наиболее известным признаком обеспечения безопасности при помощи протокола SSL является появление значка блокировки в виде замка в нижнем правом углу экрана. Ожидаемая последовательность действий злоумышленника, бросающего вызов системе безопасности, может быть следующей. Для того чтобы подделать ключ SSL, злоумышленник должен пройти весь внутренний процесс аутентификации браузера. Только после этого у него появится возможность выдать пользователю фальсифицированное уведомление о безопасной работе. Поскольку с точки зрения криптографии подобный ключ сгенерировать невозможно, то предполагалось, что блокировку нельзя фальсифицировать. Но злоумышленник может сделать проще: отключить строку состояния пользователя и вручную пересоздать ее, используя простой способ изменения пикселей в правом углу. Первоначально отключение строки состояния не рассматривалось как угроза безопасности, возможно потому, что Web-страницы защищены от изменения установок собственной строки состояния. Но разработчики, льстящие рекламным дизайнерам, создали очередной класс объекта -всплывающее окно с совершенно новым набором свойств. Если читатель обратил внимание, в функцию popupQ включена возможность задания не только адреса, но и высоты, ширины и других нечисловых свойств создаваемого окна, включая возможность установки параметра statusbar в 0 (statusbar=0). Вот эта возможность и используется для преодоления защиты протокола SSL.

Для замены содержимого строки состояния необходимо что-то поместить в ее позицию после открытия окна без строки состояния. Для этого используется фрейм, самостоятельно подсоединяющий себя к нижней границе всплывающего окна так, как это показано ниже: [root@fire xlO]# cat webcache.html <html>

<head>
<title>You think that’s SSL you’re parsing?</title>
</head>
<frameset rows=“*,20” frameborder=“0” framespacing=“0” topmargin=“0”
leftmargin=“0” rightmargin=“0” marginwidth=“0”
marginheight=“0”
framespacing=“0”>
<frame src=“encap.html”>
<frame src=“bottom.html” height=20 scrolling=“no” frameborder=“0”
marginwidth=“0” marginheight=“0” noresize=“yes”>
</frameset>
<body>
</body>
</html>

Видно, что высота строки состояния равна точно 20 пикселям, а в присоединенном фрейме нет ни одной из стандартных причуд разработчика (они все отключены). Поэтому содержимое файла bottom.html будет размещено точно на место оригинальной строки состояния. Посмотрите на содержимое файла bottom.html:

[root@fire xlO]# cat bottom.html <HTML>
<body bgcolor=#3267CD topmargin=“0” leftmargin=“0”>
<TABLE CELLSPACING=“0” CELLPADDING=“0” VALIGN=“bottom”>
<TR ALIGN=center>
<TD><IMG hspace=“0” vspace=“0” ALIGN=“left”
SRC=“left.gif’></TD>
<TD WIDTH=90%><IMG hspace=“0” vspace=“0” VALIGN=“bottom”
WIDTH=500
HEIGHT=20 SRC=“midsmall.gif’></TD>
<TD><IMG hspace=“0” vspace=“0” ALIGN=“right”
SRC=“right.gif’x/TD>
</TR>
</TABLE>
</BODY>
</HTML>

Если читатель хоть раз задумывался о строке состояния, по крайней мере во время работы с Internet Explorer, то он мог заметить, что она состоит из уникальной небольшой полоски слева, обычно небольшого пустого места посередине и нескольких полей справа. Поэтому для отображения строки состояния нужно скопировать подходящий шаблон пикселов в нужное место экрана. В языке разметки HTML предусмотрены стандартные средства растяжения строки состояния по левой и правой границам окна, но в данном случае в этом нет необходимости. Имитируя окружающую среду, можно обмануть пользователя, подсунув ему строку состояния из неожиданного для него источника. Пользователь думает, что пикселы строки состояний формирует система, а на самом деле это просто другая часть Web-страницы. Совершено новый вид переполнения буфера: опасность выравнивания к правой границе. Все это ужасно. Возможно, читатель обратил внимание на слишком большое число случайных переменных в адресе URL при вызове popup ie.html. На самом деле никто не пытается перейти по адресу http://www.doxpara.com/xlO/webcache.html. Вместо этого указан адрес

http: //www. doxpara. сот/х 10/webcache. html? site =https://www.xl 0. com/hotnewsale/webaccessid=x

yqxl412&netlocation=241&block=121&pid=81122&&sid=l . Браузер игнорирует лишние параметры, посылая их Web-cepeepy как вспомогательную информацию для регистрации в журнале. Беды в этом нет, потому что никакой вспомогательной информации для статической Web-страницы, предназначенной только для привлечения внимания, не требуется. Но клиент не знает истинного предназначения вспомогательной информации, а оно состоит в следующем. При помещении новых символов на место старых данных, которые могла содержать адресная строка, в текстовое поле с левой стороны записываются адреса потерянных символов. Размер адресной строки устанавливается косвенно при определении в файле popup ie.html размера окна, а используемый для отображения адреса шрифт практически фиксирован (исключая странные браузеры, которые можно выделить по их способности постоянно вносить мусор в исходящие заголовки HTTP). Это позволяет вполне правильно определить точное число и стиль символов, которые следует удалить из адресной строки. В данном случае http://www.doxpara.com/xlO?. Достаточно было разместить замаскированные под мусор переменные и удостовериться, что это выглядит как еще одна страница со слишком большим числом внешних параметров.

В отдельности каждая из этих проблем не опасность, а всего лишь небольшая неприятность. Но когда они сливаются воедино - это смертельная угроза. Рисунок 12.2 показывает то, что видит пользователь, а рис. 12.3 - то, что произошло на самом деле.

Фальсифицированное всплывающее окно Абсолютный контроль

Рис. 12.3. Фальсифицированное всплывающее окно Абсолютный контроль: фальсификация всего окна. Одной из интересных возможностей обеспечения безопасности, встроенной в ранние виртуальные машины Java отличных от Microsoft компаний, было то, что все окна, которые не получили статус доверенного окна, должны были иметь строку состояния, уведомляющую пользователя о том, что данное диалоговое окно запущено удаленным сервером и фактически не отражает локальную систему. Отсутствие этой возможности обеспечения защиты информации было одним из наиболее значимых упущений для среды Microsoft Java.

Некоторые системы предусматривают настройку, позволяющую при переходе к безопасному сайту отображать в диалоговом окне краткое уведомление. Пример подобного уведомления показан на рис. 12.4.

Окно уведомления о работе протокола SSL К несчастью, это окно - всего лишь массив пикселов, которые легко фальсифицировать при использовании реализованной в браузере Internet Explorer возможности отображения бесцветных всплывающих окон (chromelesspopup)

Рис. 12.4. Окно уведомления о работе протокола SSL К несчастью, это окно - всего лишь массив пикселов, которые легко фальсифицировать при использовании реализованной в браузере Internet Explorer возможности отображения бесцветных всплывающих окон (chromelesspopup). Пример такого всплывающего окна

представлен на рис. 12.5.

Рис. 12.5. Пример произвольного сетевого диалогового окна уведомления На самом деле это не окно. Об этом свидетельствуют некоторые признаки, например изображение текста без зубцеобразного дефекта (antialiased) в строке заголовка с плавным изменением цвета. Этого достаточно, чтобы понять, что показано графическое изображение. HTML, Java и особенно Flash предоставляют вполне богатые инструментальные средства для фальсификации интерфейса компьютерной графики CGI, по крайней мере по одному окну за раз. Пользователь доверяет пикселам, а сеть их предоставляет. В рассмотренном случае пользователь ожидает появления дополнительных пикселов, для того чтобы отличить данные, предоставляемые сетью, от данных своей системы. Благодаря ошибке или алгоритму работы системы существуют методы удаления пикселов, что в результате позволяет сетевым средствам делать все, что они пожелают. Все, что потребовалось сделать в примере, - это установить в функции popup две противоречащие друг другу опции. Сначала переменная fullscreen была установлена в 1, увеличивая окно и удаляя его границы. А затем переменная resizable была установлена в 0 (resizahle=0), что привело к отмене полноэкранного режима. Заметьте, что к этому времени границы окна были уже удалены. Из-за ошибки или из-за того, что так было предусмотрено при проектировании, но в результате бесцветное окно оказалось подготовленным к какой угодно фальсификации цвета. Замаскированные под неустойчивые отказы атаки на протокол SSL. Иногда, когда пользователь теряет бдительность, можно внушить ему неверную мысль о нахождении его на безопасном сайте. Для этого нет необходимости делать что-то сверхъестественное. Что, если в одном случае из тысячи кто-то пытался подключиться к своему банку или биржевому маклеру через свою Web-страницу, которая в этот момент не была защищена протоколом SSL?

Было ли это ошибкой? В некотором смысле, потому что в адресной строке был пропущен символ s после названия протокола http, а значок замка внизу экрана размером 16 х 16 пикселов был удален. Но это одноразовая ошибка. Очередная перезагрузка восстановит работу протокола https.

Эту ошибку кто-нибудь когда-нибудь обрабатывал?

Возможно, что кто-нибудь когда-нибудь звонил в службу технической поддержки и спрашивал совета по поводу возникшей ситуации. Скорее всего, ему советовали перезагрузить страницу и посмотреть, не исчезла ли проблема.

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

Примечание

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

Мы верим в пиксели: это чистая правда «Веблен (УеЫеп) предложил, чтобы психология престижа управлялась тремя „покупаемыми за деньги канонами вкуса“: выставленный напоказ досуг, выставленные напоказ расходы и выставленное напоказ расточительство. Символы положения в обществе выставлены напоказ. Их не обязательно страстно желают только потому, что они полезны или привлекательны (галька, маргаритки и голуби кажутся красивыми, когда их открывают заново или когда они восхищают малышей). Они выставлены напоказ лишь потому, что настолько редки, расточительны или бессмысленны, что только богатый может их себе позволить. К символам положения в обществе относятся слишком тонкая, большая, узкая или пачкающая, не приспособленная для работы одежда, слишком хрупкие для повседневного использования или сделанные из недоступных материалов вещи, бесполезные предметы, для изготовления которых потребовались потрясающие усилия, энергия и украшения, бледная кожа в странах, где плебеи работают в поле, и загар, если они работают в закрытом помещении. Логика перечисленного заключается в том, что хотя нельзя увидеть все богатство и имущественное положение богача (его счет в банке, земли, союзников и лакеев), тем не менее в его ванной можно увидеть золотую сантехнику. Этого не может себе позволить тот, кто вынужден на всем экономить. Таким образом, все знают, что он богат».

Стивен Линкер (Steven Pinker). «Работа мнения» («How The Mind Works»)

Давайте будем честными. Мы доверяем не крошечным изображениям замков в правом нижнем углу. Есть сайты, которые выглядят вполне профессионально. И есть сайты, которые кажутся так, будто они были сделаны 13-летним ребенком, вооруженным старой пиратской версией программы Photoshop. Объяснения насчет предположений о том, что люди в своих делах руководствуются чувствами, имеют тенденцию игнорировать полукриптографическую аргументированность человеческой деятельности. В этих предположениях присутствует бесспорная асимметрия между элегантностью и мастерством. Признать это намного проще, чем попробовать устранить. Но при рассмотрении дизайна и безопасности сайтов аналогия с реальным миром терпит крах. Трудно создать изящный сайт, особенно сайт со значительным количеством фоновых программируемых событий (да, именно поэтому динамическое содержание впечатляет), но достаточно просто скопировать для сайта любое ограниченное количество функциональных возможностей и эффектов. На самом деле доверяют не пикселам на границе окна, сообщающим о его безопасности. В действительности внимание обращается на само по себе окно, хотя любой может позаимствовать (в том числе и незаконно) понравившееся ему проектирование сайта и применить его к доступному домену. Конечно, доступ к доменам требует отдельных пояснений по поводу проблем войны имен домена.

Автоматическое обновление - благо или вред? | Защита от хакеров корпоративных сетей | Малоизвестные подробности: разработка систем спуфинга


Защита от хакеров корпоративных сетей



Новости за месяц

  • Октябрь
    2019
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс