Сетевой экран — дополнительное средство безопасности, актуальность которого растет по мере ускорения темпов создания новых вредоносных программ. Использование сетевого экрана позволяет блокировать нежелательный сетевой трафик — как входящий, так и исходящий. Проверить надежность экрана с точки зрения контроля исходящего трафика и эффективности защиты от утечек информации с компьютера позволяют тесты на утечки — ликтесты, о которых и пойдет речь в этой статье.
Что такое сетевой экран
Одной из задач современной комплексной системы компьютерной безопасности является предоставление пользователю возможности контроля над сетевым трафиком, т.е. данными, передаваемыми и принимаемыми по сети работающими на пользовательском ПК приложениями.
Компонент, который реализует возможность такого контроля, называется сетевым экраном (англ. firewall — «огненная стена»; другое название — брандмауэр). Сетевые экраны бывают программными и аппаратными. В настоящей статье будут рассмотрены только программные сетевые экраны. Существует большое количество как коммерческих, так и свободно распространяемых программных сетевых экранов. Сетевой экран, установленный на шлюзе (сервере, передающем трафик между различными сетями), называется серверным или межсетевым экраном. Сетевой экран, установленный на машине пользователя, называется персональным, так как в этом случае он защищает только ее. В последнее время персональные сетевые экраны часто интегрируются в комплексные системы защиты персонального компьютера. Например, сетевой экран встроен в продукт Kaspersky Internet Security 7.0.
Рис. 1. Компонент «Сетевой экран» в KIS 7.0
Для выполнения своей основной функции — контроля сетевой активности — сетевые экраны используют списки правил, определяющие разрешенную или запрещенную сетевую активность для различных приложений. Кроме того, правило контроля сетевой активности может относиться ко всем приложениям в системе. В этом случае оно называется пакетным правилом. Каждое правило может содержать различные параметры, такие как направление передаваемых данных, протокол передачи данных (IP, TCP, UDP, ICMP и др.), IP-адреса и номера портов локального и удаленного компьютеров, участвующих в обмене информацией.
Рис. 2. Примеры правил для приложения
Microsoft Outlook в KIS 7.0
Современные сетевые экраны могут работать в двух режимах — без запросов пользователю и с запросами. В случае работы без запросов сетевой экран может:
- Разрешать любую активность, не запрещенную правилами.
- Запрещать любую активность, не разрешенную правилами.
- Запрещать любую сетевую активность.
Основным режимом работы сетевого экрана считается режим с запросами пользователю,так называемый режим обучения. В этом режиме при проявлении сетевой активности, которая не подпадает под действие ни одного из ранее заданных правил, сетевой экран показывает пользователю окно запроса действия, в котором можно либо однократно разрешить или запретить действие, либо создать правило для данного типа сетевой активности.
Рис. 3. Пример окна режима обучения
сетевого экрана KIS 7.0
Ввиду того, что на компьютере среднестатистического пользователя функционирует несколько десятков различных приложений, проявляющих различную сетевую активность, ручное наполнение списка правил, описывающих сетевую активность, представляет собой очень трудоемкую задачу. Поэтому все производители сетевых экранов поставляют предустановленную базу правил для известных сетевых приложений, таких как Internet Explorer (Generic Host Process for Win32 Services, исполняемый файл «svchost.exe»), Microsoft Outlook (Microsoft Application Error Reporting, файл «dwwin.exe») и многих других.
Рис. 4. Список предустановленных правил
сетевого экрана KIS 7.0
С точки зрения контроля исходящих данных и защиты от утечек информации с компьютера идею работы сетевого экрана можно проиллюстрировать следующим рисунком:
Рис. 5. Идея работы сетевого экрана
Сетевой экран организует «стену» между приложениями на компьютере пользователя и другими компьютерами в локальной сети и в Интернете. Для известных (доверенных) приложений существуют разрешающие правила («отверстия в стене»), что дает им возможность передавать данные через сетевой экран в просторы Сети. Остальные же приложения при попытке сетевой активности будут остановлены («упрутся в стену») и не смогут передавать информацию вовне (так же как не сумеют и принимать ее). При этом пользователь имеет возможность в любой момент задать новые разрешающие правила (сделать в «стене» дополнительные «отверстия»), после чего приложения смогут использовать их для внешних сетевых взаимодействий.
Стоит заметить, что в составе некоторых сетевых экранов присутствует также компонент защиты от вторжений (сетевых атак). Данный компонент анализирует входящий и исходящий сетевой трафик на предмет наличия сетевых пакетов, совпадающих с базой шаблонов известных атак. (Детально мы рассмотрим данный компонент в одной следующих статей.)
Как сетевой экран может помочь обеспечению безопасности
Сетевой экран организует дополнительный защитный «слой», который может помочь остановить работу вредоносной программы в случае, если она не детектируется антивирусной составляющей комплексной системы защиты. Подобная ситуация может возникнуть, если описание вредоносной программы еще не добавлено в антивирусные базы (не сработает традиционный сигнатурный подход) и если вредоносная программа не проявляет однозначно опасного или даже подозрительного поведения (не сработает компонент поведенческого анализа).
От каких же типов вредоносных программ может защитить сетевой экран? Практически от всех, распространенных в настоящее время. Этот ответ может показаться слишком смелым, но это действительно так: функции большинства вредоносных программ связаны с сетевой активностью и, следовательно, могут быть заблокированы при помощи сетевого экрана.
Так, сетевые черви распространяют свои копии по локальным и/или глобальным сетям. Троянские программы, которые на сегодняшний день составляют 91,4% от всех вредоносных программ, в процессе своей «жизнедеятельности» также используют сетевой обмен данными. К ним относятся троянцы следующих поведений:
- Backdoor — утилиты удаленного администрирования компьютеров в сети. Управление бэкдорами происходит удаленно, и сетевой экран может легко заблокировать всю функциональность вредоносных программ данного типа.
- Trojan-PSW — программы, ворующие различную информацию с зараженного компьютера. После кражи конфиденциальной информации троянцы-похитители должны каким-то образом передать ее злоумышленнику — на этом этапе сетевой экран может пресечь попытку отправки собранных троянцем данных.
- Trojan-Downloader — троянские программы, предназначенные для загрузки и установки на компьютер-жертву других троянцев, новых версий различных вредоносных программ, инсталляции систем показа рекламы. Вся работа вредоносных программ данной категории основана на сетевом обмене данными и потому легко блокируется с помощью сетевого экрана.
- Trojan-Proxy — программы, скрыто осуществляющие анонимный доступ к различным интернет-ресурсам. Обычно используются для рассылки спама. Аналогично предыдущему поведению, Trojan-Proxy легко блокируются по сетевой активности, которую они инициируют.
- Trojan-Spy — программы, осуществляющие электронный шпионаж за пользователем зараженного компьютера. Вводимая с клавиатуры информация, снимки экрана, список активных приложений и действия пользователя с ними сохраняются в какой-либо файл на диске и периодически отсылаются злоумышленнику. На этом этапе сетевой экран позволяет заблокировать попытку передачи данных от неизвестной ему программы. Таким образом, украденные данные пользователя не смогут попасть к автору вредоносной программы.
Отметим, что сетевые экраны не могут быть использованы для борьбы с классическими компьютерными вирусами, потому что, в отличие от червей, вирусы не используют сетевых сервисов для проникновения на другие компьютеры и им не надо получать команды либо передавать данные — в отличие от троянских программ.
Сетевой экран является труднообходимым средством защиты. Для обхода антивируса и поведенческого анализатора автор вредоносной программы может в «домашних» условиях провести ее тестирование и вносить в нее изменения до тех пор, пока оба указанных компонента защиты не перестанут детектировать вредоносный код. Обойти таким способом сетевой экран значительно сложнее, так как если червю/троянцу требуется какая-либо сетевая активность, то скрыть ее от «всевидящего ока» сетевого экрана очень и очень непросто. Единственным способом для этого является использование утечек.
Что такое утечки и тесты на утечки
Утечка (leak) — это технология обхода механизмов контроля сетевой активности в сетевом экране, позволяющая приложениям, не имеющим разрешающих правил в списке правил сетевого экрана, производить отправку данных вовне. При этом сетевой экран не блокирует их отправку и в режиме обучения не уведомляет пользователя о данной сетевой активности.
Правильно спроектированный сетевой экран не должен допускать никаких утечек и идентифицировать все попытки входящей и исходящей сетевой активности. Поэтому, говоря о качестве работы сетевого экрана, применяют два критерия: качество контроля входящих данных (inbound protection — защита от проникновения на компьютер снаружи) и качество контроля исходящих данных (outbound protection — защита от утечки информации с компьютера).
Для тестирования качества inbound protection сетевого экрана обычно применяются различные сканеры открытых портов (например, ShieldsUP!, Quick test и другие).
Для анализа качества защиты от утечек, предоставляемой сетевым экраном, используются тесты на утечки (ликтесты, от англ. leak tests) — небольшие не вредоносные программы, которые эксплуатируют одну или несколько утечек. Такие программы написаны в основном исследователями и экспертами в области сетевой безопасности. Очевидно, что единственная возможность для организации утечек — использование уже существующих «отверстий» (разрешающих правил) для известных приложений. Однако прежде требуется «убедить» сетевой экран, что данная сетевая активность инициирована именно доверенным приложением. Для этого существует ряд методов, перед рассмотрением которых вспомним базовые принципы исполнения приложений в современных операционных системах.
Рис. 6. Демонстрация утечки
Принципы исполнения приложений в современных ОС
Центральный процессор персонального компьютера умеет исполнять наборы инструкций, которые размещаются в оперативной памяти компьютера. Наборы инструкций сгруппированы в потоки исполнения, которые принадлежат определенным процессам, находящимся в данный момент в оперативной памяти.
Исполняемые файлы содержат наборы инструкций процессора, и именно их запуск приводит к появлению нового процесса в системе. Кроме того, процесс может быть порожден программно другим процессом. Операционная система поддерживает дерево процессов в оперативной памяти.
Следует отметить, что в адресном пространстве большинства процессов присутствует не только код исполняемого файла приложения, но также код множества динамически связываемых библиотек (dll — dynamic link library). Такие библиотеки используются для написания некоторых общих функций, необходимых нескольким приложениям, и разработчикам последних нет необходимости дублировать один и тот же программный код в различных исполняемых файлах. Одна и та же библиотека может быть загружена в адресные пространства различных процессов.
Рис. 7. Принцип исполнения приложений
Классификация технологий утечек
Базовые идеи организации утечек
Рассмотрим технологии, которые может применять вредоносное приложение для «обмана» сетевого экрана. В качестве исходной возьмем ситуацию, показанную на рисунке 8: в оперативной памяти находятся процессы известных сетевому экрану доверенных приложений и процесс неизвестного (вредоносного) приложения.
Рис. 8. Исходная ситуация для организации утечки
Попытка неизвестного приложения осуществить сетевую активность от своего имени будет заблокирована или приведет к появлению окна запроса действия сетевого экрана.
Существуют 3 базовые идеи, позволяющие обойти защиту сетевого экрана:
- Обмануть сетевой экран, «убедить» его, что сетевая активность инициирована одним из доверенных приложений — путем подмены исполняемого файла одного из доверенных приложений на диске или подмены данных неизвестного процесса на данные доверенного процесса в памяти компьютера.
- Исполнить код от имени доверенного приложения, внедрив dll или просто небольшую часть кода неизвестного приложения в адресное пространство доверенного процесса. Сетевой экран не сможет отличить сетевую активность таких внедренных элементов от обычной сетевой активности доверенного приложения.
- Использовать документированные интерфейсы, предоставляемые доверенными приложениями. При использовании таких интерфейсов сетевую активность будут проявлять доверенные приложения, однако вся она будет контролироваться неизвестным приложением. Это позволит последнему передать через интерфейсы данные вовне без предупреждений сетевого экрана.
Для реализации указанных идей существуют 6 технологий организации утечек:
№№ | Идея 1 (обман) |
Идея 2 (исполнение кода от лица доверенного приложения) |
Идея 3 (использование документированных интерфейсов) |
1 | Substitution | ||
2 | Launching | ||
3 | DLL injection | ||
4 | Code injection | ||
5 | Browser services | ||
6 | System services |
Табл. 1. Технологии организации утечек
Рассмотрим данные технологии и варианты их реализации подробнее.
Технологии организации утечек
Substitution
Подмена исполняемого файла одного из доверенных приложений на диске или подмена данных неизвестного процесса на данные доверенного процесса в памяти компьютера. Суть метода подмены сводится к тому, чтобы «убедить» сетевой экран в том, что сетевая активность инициирована доверенным процессом.
Можно выделить три метода подмены:
- подмена исполняемого файла одного из доверенных процессов на диске (реализована в ликтесте Runner — см. раздел «Тесты на утечки»);
- переименование имени файла неизвестного приложения на имя файла доверенного процесса (Leaktest);
- подмена в памяти компьютера данных неизвестного процесса на данные одного из доверенных процессов (Coat).
На рисунке ниже приведена схема первого варианта подмены:
Рис. 9. Метод подмены файла доверенного процесса на диске
Launching
Запуск доверенного приложения с параметрами командной строки. Идея метода основывается на том, что большинство браузеров могут принимать адрес веб-страницы, которую надо открыть, в виде параметра командной строки. Если на стороне сервера на данной странице расположен скрипт (например, с расширением «.cgi»), то в строке адреса можно также передать параметры, которые будут переданы на вход данного скрипта. В этих параметрах как раз и может быть передана какая-либо конфиденциальная информация (украденная, например, программой-шпионом). При этом вся сетевая активность производится браузером в его нормальном режиме, что всегда разрешено правилами сетевого экрана.
Для того чтобы пользователь не заметил неожиданного появления окна браузера, обычно браузер запускается в «скрытом» режиме (Ghost, TooLeaky, Wallbreaker [1]).
Кроме того, вредоносный код может запускать браузер не напрямую, а с использованием других приложений. Например:
- запуск браузера через процесс оболочки Windows «explorer.exe» (Wallbreaker [2]);
- запуск браузера через процесс оболочки Windows «explorer.exe», которой в свою очередь запущен через командный интерпретатор «cmd.exe» (Wallbreaker [3]);
- запуск браузера с использованием механизма запуска задач по расписанию Windows (Wallbreaker[4]); последовательность вызовов в таком случае выглядит следующим образом: «at.exe — svchost.exe — cmd.exe — explorer.exe — iexplore.exe».
На рисунке ниже приведена схема данного метода утечки:
Рис. 10. Метод запуска доверенного приложения
с параметрами командной строки
DLL injection
Внедрение динамической библиотеки в адресное пространство одного из доверенных процессов. Данный метод основан на загрузке в адресное пространство доверенного процесса динамической библиотеки, принадлежащей вредоносной программе. Для этого существует несколько способов, основными из которых являются два:
- установка глобальной ловушки (хука), код которой расположен в динамической библиотеке (CPILSuite [2, 3], FireHole, pcAudit, pcAudit [2]);
- прописывание в системном реестре dll, автоматически загружаемых системой в каждый новый процесс. Запись производится в ключ AppInit_DLLs (Jumper).
Заметим, что оба способа являются легальными и документированными.
На рисунке ниже приведена схема данного метода утечки:
Рис. 11. Метод внедрения динамической библиотеки
в доверенный процесс
Сode injection
Внедрение кода в адресное пространство одного из доверенных процессов без использования динамической библиотеки. Данный метод основан на внедрении в адресное пространство доверенного процесса исполняемого кода, который может проявлять любую сетевую активность — вся она будет видна сетевому экрану как сетевая активность доверенного приложения. В отличие от предыдущего метода, сама эта операция является достаточно подозрительной, хотя и существуют документированные способы внедрения кода в «чужой» процесс. Такое внедрение иногда применяется обычными программами (например, отладчиками), но в основном используется вредоносным программным обеспечением.
Способов внедрения кода в «чужой» процесс достаточно много, ниже приведен ряд примеров их использования:
- загрузка доверенного процесса в память и изменение памяти процесса (AWFT [1], CPIL, DNStest); при этом предварительно может быть произведена попытка защититься от детектирования этой операции сетевым экраном путем снятия хуков (CPILSuite [1]);
- поиск загруженного в память доверенного процесса и внедрение в него своего кода (Thermite);
- загрузка доверенного процесса в память и создание в нем удаленного потока (AWFT [2, 3]);
- загрузка доверенного процесса в память, создание в нем удаленного потока, загрузка из этого потока еще одного доверенного процесса и изменение его памяти перед выполнением (AWFT [4, 5, 6]);
- использование функции SetThreadContext для получения контроля над потоком в доверенном процессе (CopyCat).
Чаще всего атакуются процессы интернет-браузеров (Internet Explorer и др. — тесты AWFT [1, 2, 4], CopyCat, Thermite), оболочки операционной системы («explorer.exe» — тесты AWFT [3, 4], CPIL, CPILSuite [1]) и «svchost.exe» — главного процесса для служб Windows, загружающихся из динамических библиотек (тест DNStest).
На рисунке ниже приведена схема данного метода утечки:
Рис. 12. Метод внедрения вредоносного кода
в доверенный процесс
Browser services
Использование программных интерфейсов для управления браузером. Метод основан на использовании механизмов, реализованных в ОС Windows для межпроцессного взаимодействия различных компонентов/приложений. Эти механизмы включают:
- отправку сообщений Windows окну браузера — таким образом изменяется значение в адресной строке браузера и нажатием на соответствующую кнопку инициируется переход на вставленный адрес (Breakout);
- использование DDE-интерфейса браузера — механизм динамического обмена данными DDE (Dynamic Data Exchange). Библиотека DDE разработана для расширения возможностей системы сообщений Windows и позволяет двум приложениям динамически обмениваться данными во время исполнения (Surfer, ZAbypass, WB [1, 3, 4]; CPILSuite [3]). Поддержка DDE в различных версиях браузера Internet Explorer описана в статье «DDE Support in Internet Explorer Versions».
- использование браузера в качестве сервера автоматизации (механизм OLE automation, основанный на модели COM). OLE-автоматизация является расширением технологии DDE. Любой современный браузер предоставляет COM-интерфейс для использования в других программах в качестве сервера автоматизации. Существует два COM-компонента Microsoft Internet Explorer во внешних приложениях:
- WebBrowser Control, реализованный в файле «shdocvw.dll» (OSfwbypass);
- интерфейс MSHTML, реализованный в «mshtml.dll» (PCFlank).
На рисунке ниже приведена схема данного метода утечки:
Рис. 13. Метод использования программных интерфейсов
для управления браузером
System services
Использование программных интерфейсов, предоставляемых системными сервисами. Данный метод похож на предыдущий. Отличие состоит в том, что используются программные интерфейсы, предоставляемые компонентами операционной системы, а не браузером. В операционных системах Windows XP и Windows Vista существуют по крайней мере три подобных интерфейса:
- сервис BITS (Background Intelligent Transfer Service) — сервис интеллектуальной загрузки файлов, использующийся службами Windows Update и Windows Server Update Services. Он обеспечивает возможность загрузки патчей и обновлений в фоновом режиме без перегрузки каналов связи и автоматически возобновляет закачку в случае разрыва соединения (BITSTester);
- функции Windows DNS API — могут быть использованы для организации рекурсивного DNS-запроса к серверу имен в Интернете. В содержимом DNS-пакета могут быть переданы дополнительные данные, содержащие конфиденциальные данные пользователя. Злоумышленник, контролирующий один из серверов имен, обрабатывающих такие DNS-запросы, имеет возможность получить эту информацию, обработав такой специально сформированный пакет (DNStester);
- интерфейс управления элементами «Рабочего стола» Windows (IActiveDesktop) — позволяет после активации Windows Active Desktop задать в качестве «обоев» Windows html-страницу. Данная страница может содержать ссылки, по которым производится загрузка новых «обоев» для «Рабочего стола» (Breakout [2]).
Отличия существующих классификаций утечек
Отметим, что приведенная выше классификация немного отличается от классификаций технологий утечек, опубликованных на специальных сайтах.
Первым известным нам сайтом, на котором было опубликовано систематизированное исследование утечек, является www.firewallleaktester.com (классификация утечек приведена на странице http://www.firewallleaktester.com/categories.htm). В 2006 году появился второй сайт, www.matousec.com, одним из главных проектов которого является «Windows Personal Firewall Analysis» («Исследование персональных сетевых экранов Windows»). Классификация утечек в данном исследовании близка к классификации на www.firewallleaktester.com, однако имеется ряд отличий. Проясним их:
№№ | Метод на www.firewallleaktester.com |
Метод на www.matousec.com |
1 | Hidden rules (Скрытые правила) | Default Rules (Правила по умолчанию) |
2 | Direct network interface use (Прямое использование сетевого интерфейса) | Own Protocol Driver (Собственный протокольный драйвер) |
3 | Timing attack (Атака по времени) | |
4 | Recursive requests (Рекурсивные запросы) | |
5 | Registry injection (Внедрение в реестр) | |
6 | Набор методов Windows Messaging + OLE | Windows Messages и OLE Automation, DDE |
7 | Unhooking (Снятие перехватов) |
Табл. 2. Отличия между классификациями утечек
Причины, по которым указанные методы не включены в нашу классификацию, таковы:
- Метод «Скрытые правила» сам по себе не является утечкой (см. определение утечек выше), т.к. не реализует никакую технологию обхода механизмов контроля сетевой активности в сетевом экране. Суть его — в проверке набора пакетных (действующих для всех приложений в системе) правил, используемых сетевым экраном с настройками по умолчанию. Если один из сетевых портов открыт для всех приложений, то его может использовать в том числе вредоносное приложение для отправки данных вовне.
- Метод «Прямое использование сетевого интерфейса» основан на обходе механизмов фильтрации сетевого трафика «на низком уровне». Суть такого обхода заключается в написании альтернативного стека сетевых драйверов, который параллельно с системными стеками (TCP/IP и др.) обрабатывает пакеты, приходящие от сетевого адаптера. Данный метод не включен в нашу классификацию, так как в настоящее время не существует ни одной его реализации (ликтеста), работающего под современными ОС Windows XP и Windows Vista. Более того, появление новых ликтестов, а тем более вредоносных программ, использующих данный метод, маловероятно, так как он значительно более трудоемкий, чем любой другой метод организации утечек. Однако нужно помнить, что существует три ликтеста, использующих данный метод утечки и работающих под устаревшими ОС Windows версий 9x:
- MbTest (автор — Mbcx8nlp, 2003). Использует библиотеку Winpcap.
- Outbound (автор — HackBusters, 2001).
- YALTA [2] (автор — Soft4ever, 2001).
- Метод «Атака по времени» не выделен в нашей классификации в отдельную категорию, так как на данный момент используемая в нем технология (перезапуск собственного процесса для изменения PID — идентификатора процесса) не позволяет обойти практически ни один сетевой экран.
- Метод «Рекурсивные запросы» является в нашей классификации одним из методов группы System services.
- Метод «Внедрение в реестр» в нашей классификации представляет собой одну из разновидностей DLL injection, так как суть метода не в том, чтобы внедриться в реестр, а в том, чтобы внедрить динамическую библиотеку в доверенные процессы. Действительно, один из способов для этого — использование специального ключа системного реестра.
- Методы, сгруппированные под названием «Windows Messaging + OLE», попадают в нашей классификации в группы Browser services и System services. Данное разделение кажется нам более логичным, так как отражает не технические методы реализации (отправка сообщений и т.п.), а суть технологии утечки на более высоком уровне — использование программных интерфейсов управления браузером или сетевых сервисов операционной системы.
- Метод «Снятие перехватов». Идея метода основана на следующем: сетевые экраны для защиты от некоторых технологий организации утечек используют перехватчики системных функций (так называемые хуки). Если эти «ловушки» убрать (снять), то сетевой экран не сможет бороться с утечками. Из описания видно, что сам по себе метод не является утечкой как таковой, поэтому он не включен в основную классификацию утечек. Однако его использование совместно с любым из реальных методов утечек позволяет проверить защиту, обеспечиваемую сетевым экраном, в наиболее сложных условиях, имитирующих ситуацию, когда вредоносный код активно ему противодействует.
Использование утечек вредоносными программами
Несколько лет назад сетевой экран как средство защиты персональных компьютеров использовался довольно редко. Как следствие, лишь отдельные экземпляры вредоносных программ применяли утечки для обхода сетевого экрана. Однако в последнее время авторы вредоносного программного обеспечения используют средства автоматизации для быстрого получения новых экземпляров своих программ, в результате чего их поток в Сети растет все быстрее и быстрее. В связи с этим роль дополнительных средств защиты персональных компьютеров значительно возрастает, и повышается популярность сетевых экранов.
Видя все большее распространение сетевых экранов, авторы вредоносных программ начинают активнее применять утечки для их обхода. Ниже приведены примеры реальных вредоносных программ, использующих перечисленные 6 основных методов организации утечек:
№№ | Метод | Вредоносная программа | Дата детектирования | Описание |
1 | Подмена | Backdoor.Win32.Bifrose.aer | 26 марта 2007 г. | Копирует себя вместо программы MSN Messenger («C:Program FilesMSN Messengermsnmsgr.exe»). |
2 | Запуск с параметрами командной строки | Trojan-Spy.Win32.Agent.se | 26 июля 2007 г. | Запускает Internet Explorer с невидимым окном и передает в командной строке путь к HTML-файлу. |
3 | Внедрение динамической библиотеки | Trojan-Spy.Win32.Goldun.pq | 11 июня 2007 г. | Регистрирует DLL в ключе реестра AppInit_DLLs и с ее помощью перехватывает интернет-трафик. |
4 | Внедрение кода в доверенный процесс | Trojan-Spy.Win32.Delf.uc | 19 января 2007 г. | Создает поток в процессе «winlogon.exe» и в этом потоке отсылает данные в Интернет. |
5 | Управление интернет-браузером | Trojan-PSW.Win32.LdPinch.bix | 4 января 2007 г. | Использует для отправки собранной информации COM-интерфейс IWebBrowser2. |
6 | Использование системных сервисов | Trojan-Downloader.Win32.Nurech.br | 8 июня 2007 г. | С помощью системного сервиса BITS передает в Интернет данные, идентифицирующие пользователя (серийный номер диска). |
Табл. 3. Методы организации утечек
Заметим, что различные типы утечек подходят для разных задач и во вредоносных программах применяются для достижения различных целей. В частности:
- через параметры командной строки браузера можно передать только ограниченный набор данных, а при использовании технологии BITS вредоносная программа может выкачать с компьютера пользователя файл очень большого размера;
- методы внедрения динамической библиотеки или программного кода в доверенный процесс не являются специфическими методами обхода сетевых экранов, так как позволяют организовать не только скрытую отправку данных от лица доверенного процесса, но также выполнить множество других операций;
- использование интерфейсов для управления браузером (например, WebBrowser control) позволяет не только передавать данные от лица Internet Explorer, но также управлять запущенной копией браузера (например, закрыть все окна, где адрес страницы не отвечает заданным условиям), модифицировать загруженный в него документ, выводить окна с сообщениями в браузере и т.п.
Необходимо отметить, что сетевой экран является дополнительным средством защиты: в тех случаях, когда вредоносное приложение добавлено в антивирусные базы, до сетевого экрана дело не доходит.
Тесты на утечки
Ниже приведена таблица известных на настоящий момент ликтестов с указанием применяемых ими методов. Большинство указанных тестов можно скачать со следующих веб-страниц:
№№ | Название | Автор | Метод | Год |
1 | AWFT [6] | Jos Pascoa | Code injection | 2005 |
2 | BITSTester | Tim Fish | System services | 2006 |
3 | Breakout | Volker Birk | Browser services | [нет данных] |
4 | Breakout2 | Volker Birk | System services | [нет данных] |
5 | Coat | David Matousec | Substitution | 2006 |
6 | CopyCat | «Bugsbunny» | Code injection | [нет данных] |
7 | CPIL | Comodo | Code injection | 2006 |
8.1 | CPILSuite [1] | Comodo | Code injection + Launching | 2006 |
8.2 | CPILSuite [2] | Comodo | DLL injection + Launching | 2006 |
8.3 | CPILSuite [3] | Comodo | DLL injection + Browser services | 2006 |
9 | DNStest | Jarkko Turkulainen | Code injection | 2004 |
10 | DNStest | Jarkko Turkulainen | System services | 2004 |
11 | FireHole | Robin Keir | DLL injection | 2002 |
12 | FPR (38) | David Matousec | [unhooking] | [нет данных] |
13 | Ghost | Guillaume Kaddouch | Launching | [нет данных] |
14 | Jumper | Guillaume Kaddouch | DLL injection | 2006 |
15 | LeakTest | Steve Gibson | Substitution | 2002 |
16 | OSfwbypass | Debasis Mohanty | Browser services | 2005 |
17 | pcAudit | Internet Security Alliance | DLL injection | 2002 |
18 | pcAudit2 | Internet Security Alliance | DLL injection | [нет данных] |
19 | PCFlank | www.pcflank.com | Browser services | 2006 |
20 | Runner | David Matousec | Substitution | 2006 |
21 | Surfer | Jarkko Turkulainen | Browser services | 2004 |
22 | Thermite | Oliver Lavery | Code injection | 2003 |
23 | TooLeaky | Bob Sundling | Launching | 2001 |
24 | Wallbreaker [4] | Guillaume Kaddouch | Launching | 2004 |
25 | YALTA | Soft4ever | [default rules] | 2001 |
26 | ZAbypass | Debasis Mohanty | Browser services | 2005 |
Табл. 4. Известные в настоящий момент ликтесты
Распределение ликтестов согласно нашей классификации приведено в следующей таблице:
№№ | Технология | Ликтесты |
1 | Substitution | Coat, LeakTest, Runner |
2 | Launching | Ghost, TooLeaky, Wallbreaker |
3 | DLL injection | CPILSuite [2, 3], FireHole, Jumper, pcAudit, pcAudit2 |
4 | Code injection | AWFT, CopyCat, CPIL, CPILSuite [1], DNStest, Thermite |
5 | Browser services | Breakout, OSfwbypass, PCFlank, Surfer, ZAbypass |
6 | System services | BITSTester, Breakout2, DNStester |
Табл. 5. Распределение ликтестов согласно технологиям организации утечек
Значение результатов ликтестов
Какую же пользу можно извлечь из сравнительных тестов с использованием ликтестов? В первую очередь, это, конечно, определение интегрального качества системы защиты при выборе комплексной системы защиты компьютера пользователя.
В настоящее время при выборе системы антивирусной защиты пользователи часто смотрят только на такие характеристики, как уровень детектирования и время реакции продукта (например, по тестам av-comparatives.org, av-test.de). Но для анализа качества современных систем защиты этого недостаточно. Следует анализировать качество «проактивной» составляющей антивируса. Лечение зараженной машины, противодействие активному руткиту, качество самозащиты — примеры не менее важных характеристик, которым, к сожалению, авторы сравнительных тестов уделяют мало внимания. Кроме того, при выборе комплексного продукта для защиты следует проанализировать его дополнительные компоненты, такие как сетевой экран и спам-фильтр.
Если независимые тесты антиспам-систем персональных продуктов защиты нам не известны, то тесты для проверки качества работы сетевого экрана существуют. Как было сказано выше, качество его работы определяется двумя критериями: контроль входящих данных и контроль исходящих данных. Хорошие показатели в тестах контроля исходящих данных позволяют говорить о том, что сетевой экран является не просто «довеском» к антивирусу, а представляет собой дополнительный уровень защиты, способный предотвратить, например, отправку конфиденциальных данных пользователя злоумышленникам — даже в случае, если антивирусный компонент вдруг не остановил троянскую программу-похитителя.
На наш взгляд, продукты, получившие при тестировании matousec.com защиты от утечек оценку «Very good» или «Excellent», обеспечивают достойный уровень защиты пользователей. В тех случаях, когда продукт оценен как «Good», а тем более как «Poor» и «Very Poor», автор вредоносной программы может выбирать практически любой способ для обхода сетевого экрана данного продукта.
Заключение
В современных условиях сетевой экран становится неотъемлемым компонентом комплексной системы защиты персонального компьютера. Даже самые современные операционные системы, такие как Windows Vista, не могут самостоятельно блокировать все типы утечек (напомним, что в состав операционной системы Windows, начиная с Windows XP SP2, входит сетевой экран, функции которого были значительно расширены с выходом Windows Vista).
По результатам тестов, проведенных в марте 2007 года Guillaume Kaddouch, только 9 ликтестов были заблокированы операционной системой Windows Vista Ultimate 64-bit при установке по умолчанию (заблокированные ликтесты в таблице выделены жирным шрифтом):
№№ | Название | Примечание |
1 | Substitution | Coat, LeakTest, Runner |
2 | Launching | Ghost, TooLeaky, Wallbreaker |
3 | DLL injection | CPILSuite [2, 3], FireHole, Jumper, pcAudit, pcAudit2 |
4 | Code injection | AWFT, CopyCat, CPIL, CPILSuite [1], DNStest, Thermite |
5 | Browser services | Breakout, OSfwbypass, PCFlank, Surfer, ZAbypass |
6 | System services | BITSTester, Breakout2, DNStester |
Табл. 6. Ликтесты, заблокированные ОС Windows Vista Ultimate 64-bit
Несомненно, что новая операционная система является более защищенной за счет множества улучшений, таких как UAC, IE protected mode, Service hardening и Kernel Patch Protection (Vista x64). Однако для обеспечения достаточного уровня защиты от утечек даже Windows Vista все еще требуется использовать сторонние программы защиты.
В будущем во вредоносных программах будут использоваться новые методы обхода защитных механизмов как новой операционной системы, так и существующих систем защиты. Поэтому роль сетевого экрана как одного из дополнительных средств защиты компьютера будет только возрастать. В условиях более активного использования авторами вредоносных программ технологий утечек для обхода сетевых экранов применение ликтестов в качестве инструмента для проверки надежности защиты компьютера станет обязательным и необходимым.
Основные положения
- Сетевой экран является дополнительным средством защиты, которое может помочь в борьбе с вредоносными программами, еще не добавленными в антивирусные базы и не определяемыми модулями проактивной защиты.
- Для обхода сетевого экрана, отслеживающего сетевую активность приложений, вредоносные программы могут применять утечки. Утечки организовываются при помощи технологий обхода механизмов контроля сетевой активности в сетевом экране, позволяющих производить успешную отправку данных вовне приложениям, для которых в списке правил сетевого экрана не существует разрешающих правил.
- Существует 6 основных технологий утечек, реализующих 3 базовые идеи: обман сетевого экрана, исполнение кода от лица доверенного приложения, использование документированных интерфейсов, предоставляемых доверенными приложениями.
- В реальных вредоносных программах в прошлом утечки применялись редко, однако с ростом популярности комплексных средств защиты со встроенными сетевыми экранами намечается тенденция к увеличению числа вредоносных программ, использующих различные типы утечек.
- Для проверки способности сетевого экрана противостоять утечкам используются ликтесты — небольшие не вредоносные программы, написанные экспертами по компьютерной безопасности.
- Продукты, получившие в тестах оценки уровня защиты от утечек «Very good» и «Excellent», обеспечивают достойную защиту компьютеров пользователей. В тех случаях, когда продукт имеет оценку «Good», а тем более «Poor» и «Very Poor», автор вредоносной программы может выбирать практически любой способ для обхода сетевого экрана данного продукта.
- Новая операционная система Windows Vista за счет улучшений в системе безопасности позволяет блокировать ряд ликтестов (и, соответственно, утечек), но для блокирования большинства утечек все равно необходима установка стороннего комплекса защиты.
- Роль сетевого экрана как дополнительного средства защиты растет. Ликтесты являются необходимым инструментом для проверки надежности системы безопасности компьютера.
Ликтесты как средство оценки эффективности сетевого экрана