Диссертация Кочарян С.Г (1195361), страница 8
Текст из файла (страница 8)
В открывшемся окне мастера (рисунок 8.3) выбрать тип компонента служба и нажать кнопку «Добавить». Появится стандартное окно установки драйверов с заголовком «Выбор сетевой службы» (рисунок 8.4.1). Если драйвер не разу не устанавливался, то его не будет в списке сетевых служб, в таком случае необходимо нажать кнопку установить с диска. В открывшемся окне необходимо указать папку, в которой находятся следующие файлы: netsf.inf, netsf_m.inf, MyFireWall.dll, MyFireWall.sys. После этого опять появится окно «Выбор сетевой службы» в котором будут перечислены драйвера сетевых служб, находящихся в выбранной папке (рисунок 8.4.2).
Рисунок 8.3 – Окно мастера установки компонентов
Рисунок 8.4 – Окно установки драйверов сетевых служб, установленных в системе(1) и из выбранной папки (2)
Из них необходимо выбрать драйвер «MyFireWall driver». После этого система сама установит и пропишет драйверы, но при этом сообщит что драйвер не имеет цифровой подписи (рисунок 8.5), которую выдаёт только корпорация Microsoft, в открывшемся окне необходимо будет на жать «Все равно продолжить».
Рисунок 8.5 – Сообщение об отсутствии цифровой подписи у драйвера
После всех выполненных действий, система запустит драйвер. Который необходимо будет настроить с помощью мастера. Для запуска мастера необходимо будет запустить программу Master.exe. После настройки драйвер будет работать в полностью автономном режиме.
9 Проверка и тестирование межсетевого экрана
Как и любую другую программу, драйвер межсетевого экрана необходимо протестировать, прежде чем начинать работу с ним. Так как у драйвера невозможно использовать режим отладки, будет проводиться тестирование, те будут задаваться разные режимы и настройки драйвера, после этого будет анализироваться лог работы драйвера, на соответствие выбранному режиму.
Тестирование будет проводиться на компьютере, подключенном сразу к Интернету и локальной сети.
9.1 Взаимодействие с драйвером
Для взаимодействия с драйвером был разработан класс TFireWall, который и осуществляет доступ ко всем функциям драйвера. Такая организация позволяет достаточно просто взаимодействовать с драйвером.
При создании объекта класса используется конструктор, который в качестве параметров получает имя драйвера в системе, и указатель на объект класса TStrings, который используется в качестве лога работы класса. Для доступа получения доступа к драйверу используется функция API CreateFile которой в качестве параметра передаётся имя драйвера.
Для непосредственного доступ к функциям драйвера используется функция DeviceIOCTRL которая в качестве параметров принимает номер функции, указатель на буфер и максимальный передаваемый и получаемый размер буфера, а возвращает размер полученных данных в буфере/6/. DeviceIOCTRL использует функцию API DeviceIoControl для взаимодействия с драйвером.
Функции ReadLog, GetQueryPacket, GetQP_PacketDataSize, GetQP_PacketData, QP_PacketDel, WritePraviloTable, ReadPraviloTable, SetTableHTTPHost и SetTableHTTPURL функции, обращающиеся напрямую к соответствующим функциям драйвера IOCTRLGetLog, IOCTRLGetQueryPacket, IOCTRLGetQP_PacketDataSize, IOCTRLGetQP_PacketData, IOCTRLQP_PacketDel, IOCTRLWriteTablePravilo, IOCTRLReadTablePravilo, IOCTRLWriteTableHTTPHost и IOCTRLWriteTableHTTPURL.
9.2 Загрузка драйвера
Прежде чем начинать проверку драйвера необходимо проверить загружен ли сам драйвер и если загружен, то удостоверится, что версия загруженного драйвера является последней. Для того чтобы проверить, что программа получила доступ к драйверу необходимо просмотреть лог работы программы. В случае если программа получила доступ, то лог будет содержать следующие строки:
Device open
Version:
V0.5a
А если программа не смогла открыть драйвер, то лог будет содержать строку:
Error:device not open
Так что для проверки необходимо всего лишь просмотреть лог работы программ, который выводится в нижнюю часть основной формы. Также для повторного подключения можно использовать меню программы (ДрайверОткрыть). В появившемся окне надо будет указать имя драйвера.
С помощью утилиты DriverView (рисунок 9.1) можно убедиться что драйвер MyFirewall.sys действительно установился на рабочую станцию.
Рисунок 9.1 – Программа DriverView
Утилита DriverView (рисунок 9.1) отображает список всех драйверов устройств, загруженных в настоящий момент в вашу систему. Для каждого драйвера в списке отображается дополнительная полезная информация: адрес загрузки драйвера, описание, версия, название продукта, компания, создавшая драйвер, и многое другое.
Также, с помощью программы DebugView (рисунок 9.2) можно отследить вывод отладки драйвера в нашей системе.
Рисунок 9.2 – Результат программы DebugView
9.3 Результат работы драйвера
Все действия, которые выполняет драйвер с пакетами, отображаются в логе работы драйвера. Мастер настройки драйвера выводит данный лог в отдельном окне (Рисунок 9.3). В этот лог выводится информация об обработанных пакетах. Одна запись в логе означает один обработанный пакет. Для всех пакетов выводится следующая информация: IP адрес отправителя, IP адрес получателя, Направление, Действие, Размер пакета, Размер данных, время и правило которое было применено при обработке пакета.
Рисунок 9.3 – Окно «Результат работы драйвера»
В поле «Направление» может значение только «In» или «Out». «In» - пакет получаемый из сети, а «Out» - пакет отправляемый в сеть. Поле Протокол показывает, к какому протоколу из семейства протоколов TCP/IP, относится пакет, может иметь одно из следующих значений: IP, ICMP, IGMP, GGP, TCP, PUP, UDP, IDP, IPV6, ND, ICLFXBM, RAW. Поле «Действие» показывает действие, которое выполнил драйвер над пакетом. Драйвер выполняет всего два действия над пакетом: удаление(«Del»), пропуск пакета(«Skip»). Поле «Размер пакета» показывает полный размер пакета, а поле «Размер данных» показывает размер пакета за вычетом заголовков. Поле «Правило ID» показывает под какое правило попал пакет и выводит номер этого правила из таблицы правил, если данное поле содержит надпись «Default» значил пакет не подпал не под одно из правил. Поля «Локальный порт» и «Удалённый порт» выводятся только у протоколов TCP и UDP. Поле «Время» показывает, в какой момент произошла обработка пакета по системному времени. Используемый формат времени «DD.MM.YYYY hh:mm:ss.ms», где DD – день, MM – месяц, YYYY – год, hh – часы, mm – минуты, ss – секунды, ms – миллисекунды.
Обновление лога происходит примерно 3 раза в секунду. Что позволяет несильно загружать процессор и в тоже время достаточно быстро для восприятия человека.
9.4 Отладка брандмауэра
В общем случае, тесты для драйвера (предполагая, что аппаратное обеспечение тестируется дополнительно) можно разделить на следующие категории:
-
тесты на нормальную реакцию должны подтверждать полноту и точность функций драйвера. Откликается ли драйвер на команды, как это от него ожидается;
-
тесты на ошибочные воздействия должны удостовериться, правильно ли реагирует драйвер на воздействия, которые, вообще говоря, не должны к нему применяться. "Ошибочное" воздействие может также состоять в плохом наборе данных, поступившем в пользовательском запросе;
-
тесты граничных условий испытывают анонсированные пределы функционирования драйвера и устройства. Не исключено, что в силу работы драйвера в системе конечные предельные параметры окажутся хуже прогнозируемых;
-
тесты на предельную нагрузку проверяют драйвер и устройство при высоких уровнях активности;
-
тесты на функционирование в условиях ограниченности ресурсов, то есть работа при ограниченной доступности центрального процессора, ограниченность объемов доступной оперативной памяти;
Фирма Microsoft предлагает тесты на аппаратурную совместимость (HCT, Hardware Compatibility Tests), которые являются официальными тестами для аппаратуры по поводу возможности ее работы под Windows 2000/XP/2003. Набор включает следующие тесты:
-
общие системные тесты, которые экзаменуют центральный процессор, последовательные и параллельные порты материнской платы, клавиатуру и средства поддержки слоя аппаратный абстракций HAL;
-
тесты по проверке специфических типов аппаратного обеспечения, а именно – видеоадаптеров, мультимедийных устройств, сетевых интерфейсов, накопителей на магнитной ленте, SCSI устройств и т.п;
-
общие тесты по тестированию работы системы под действием высоких нагрузок на системные ресурсы и устройства ввода/вывода;
Тестирование проходит под управлением тест-менеджера с графическим интерфейсом, который автоматизирует прохождение тестов и сбор результатов. Даже если класс аппаратуры, для которой разрабатывается драйвер, не прошел серию испытаний HCT, то все равно этот набор тестов может послужить средством для выяснения того, как будет работать новый драйвер в условиях повышенной нагрузки на систему.
9.5 Цифровое подписание драйвера
Огромное количество драйверов сторонних поставщиков (третьей стороны, third-party companies) поставляется в составе CD дистрибутива Microsoft Windows. Для того чтобы участвовать в этой программе, поставщик драйвера должен выполнить некоторые требования, сформулированные Microsoft. B интересах Microsoft обеспечить достижение двух взаимоисключающих целей:
-
обеспечить работу под управлением Windows максимально разнообразной и многочисленной аппаратуры при обычном способе распространения дистрибутива;
-
обеспечить стабильность работы новых драйверов без нарушения каких-либо свойств или целостности системы.
Поскольку драйверы работают в режиме ядра, у них имеется возможность привести систему к краху. Так как нестабильность системы, скорее всего, будет отнесена пользователем на нестабильность самого ядра, очевидно, что в интересах Microsoft определить список сертифицированных поставщиков и сертифицированных драйверов для своей операционной системы.
Разумеется, совместимость Windows 2000/XP/2003 с большим количеством аппаратуры, нежели другие операционные системы, является сильным фактором стимулирования продаж. Следовательно, Microsoft непрерывно контактирует с производителями аппаратного обеспечения на предмет получения своевременных и протестированных конечных версий драйверов. Вплоть до того, что конфигурация Windows Server 2003 Datacenter Edition поставляется только OEM поставщиками совместно с компьютером.
Для достижения вышеописанных целей, в Microsoft была создана специальная группа, the Windows Hardware Quality Labs (WHQL), которая проводит сертификацию аппаратуры и драйверов устройств. Выгоды от участия в этой программе сертификации для производителей/поставщиков аппаратного обеспечения состоит в
-
использовании логотипа Windows как знака соответствующей ступени сертифицированности поставляемой аппаратуры и программного обеспечения к нему;
-
включении в официальный перечень поддерживаемого и сертифицированного оборудования для различных операционных систем разработки Microsoft (см. интернет-страницу microsoft.com/hcl);
-
автоматического распространение драйверного обеспечения вместе с будущими поставками новых под-версий Windows;
-
получении цифровой подписи.
Как часть результата участия в программе WHQL, драйвер получает цифровую подпись (digital signature), защищенную криптографическими методами, которая позволяет Windows 2000/XP/2003 осуществлять инсталляцию драйвера без выдачи обескураживающего предупреждения о "надвигающейся" опасности. Цифровая подпись является, по мнению Microsoft, средством отсеивания ненадежного кода и устройств и гарантией того, что устанавливаемый код является оригинальным драйверным кодом от поставщика. Применение собственно цифровой подписи касается двух моментов:
-
файла-каталога (с расширением CAT), который включается в распространяемый пакет драйверного программного обеспечения. Он и содержит цифровую подпись, предоставленную Microsoft;
-
запись в INF файле в составе секции [Version], где указывается ссылка на CAT файл.
Сама цифровая подпись ни в коей степени не производит модификацию кода драйверного программного обеспечения.
Брандмауэр установлен, настроен и активизирован, но функционирует не так, как хотелось. Даже если брандмауэр работает, рекомендуется сразу после установки и настройки произвести проверку правильности функционирования брандмауэра.
Приведем рекомендации, позволяющие облегчить отладку брандмауэра:
– по возможности производите добавление правил по одному. В этом случае гораздо проще выявить причину неисправности. Сразу после добавления правил рекомендуется проверить их работоспособность;
– обработка сетевого пакета определяется первым правилом, которому удовлетворяет этот сетевой пакет, поэтому порядок следования правил имеет большое значение;