ПЗ (1195114), страница 4

Файл №1195114 ПЗ (Модернизация программного комплекса для защиты информации в ОС Windows) 4 страницаПЗ (1195114) страница 42020-10-01СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 4)

if (Lines[0][i]!=' ') return FWA_Skip;

i++;

for(;i<LinesLen[0]&&Lines[0][i]&&Lines[0][i]!='\r'&&HTTPSize<32;i++)

HTTP[HTTPSize++]=Lines[0][i];

HTTP[HTTPSize]=0;

for(l=1;l<NumLine;l++)

if (strncmp(Lines[l],"Host: ",6)==0)

{

int j; for(j=6;j<LinesLen[l]&&Lines[l][j]&&Lines[l][j]!='\r'&&HOSTSize<128;j++)

HOST[HOSTSize++]=Lines[l][j];

HOST[HOSTSize]=0;

}

if (HOSTSize==0) return FWA_Skip;

if (URLSize==0) return FWA_Skip;

HostN = GetHostTable(HOST);

if (HostN!=-1) return FWA_Block;

URLN = GetURLTable(URL);

if (URLN!=-1) return FWA_Block;

return FWA_Skip;

}

}

return FWA_Skip;

}

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

3.6 Установка драйвера

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

Мой драйвер является NDIS Miniport драйвером, для таких драйверов в системе есть встроенные средства установки и настройки драйверов. Чтобы запустить мастер установки необходимо в открыть свойства любого сетевого соединения в окне «Сетевые подключения»(Рисунок 3.8).

Рисунок 3.8 – Окно сетевые подключения.

В открывшихся свойствах на закладке «Общие» (Рисунок 3.9а ) или «Сеть»( Рисунок 3.9б), в зависимости от типа сетевого подключения, необходимо нажать кнопку «Установить» для запуска мастера установки сетевых компонентов.

а)

б)

Рисунок 3.9 – Закладка «Общие» для сетевой карты(а) и Закладка «Сеть» для виртуальных соединений и модемов(б).

В открывшемся окне мастера (Рисунок 3.10) выбрать тип компонента служба и нажать кнопку «Добавить». Появится стандартное окно установки драйверов с заголовком «Выбор сетевой службы»(Рисунок 3.11а). Если драйвер не разу не устанавливался, то его не будет в списке сетевых служб, в таком случае необходимо нажать кнопку установить с диска. В открывшемся окне необходимо указать папку, в которой находятся следующие файлы: netsf.inf, netsf_m.inf, MyFireWall.dll, MyFireWall.sys. После этого опять появится окно «Выбор сетевой службы» в котором будут перечислены драйвера сетевых служб находящихся в выбранной папке(Рисунок 3.11б).

Рисунок 3.10 – Окно мастера установки компонентов.

а)

б)

Рисунок 3.11 – Окно установки драйверов сетевых служб установленных в системе(а) и из выбранной папки (б).

Из них необходимо выбрать драйвер «MyFireWall driver». После этого система сама установит и пропишет драйверы, но при этом сообщит что драйвер не имеет цифровой подписи(Рисунок 3.12), которую выдаёт только корпорация Microsoft, в открывшемся окне необходимо будет на жать «Все равно продолжить».

Рисунок 3.12 – Сообщение об отсутствии цифровой подписи у драйвера.

После всех выполненных действий, система запустит драйвер. Который необходимо будет настроить с помощью мастера. Для запуска мастера необходимо будет запустить программу Master.exe. После настройки драйвер будет работать в полностью автономном режиме.

Разработанный код драйвера находится в приложении А. он представлен в двух файлах «FireWall.h»(Листинг А.1) и «FireWall.с» (Листинг А.1) остальной код взят из примера DDK Passthru.

4 ПРОВЕРКА И ТЕСТИРОВАНИЕ МЕЖСЕТЕВОГО ЭКРАНА

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

Тестирование будет проводиться на компьютере, подключенном сразу к Интернету и локальной сети.

4.1 Взаимодействие с драйвером

Для взаимодействия с драйвером был разработан класс TFireWall(Листинг 4.1), который и осуществляет доступ ко всем функциям драйвера. Такая организация позволяет достаточно просто взаимодействовать с драйвером.

При создании объекта класса используется конструктор, который в качестве параметров получает имя драйвера в системе, и указатель на объект класса TStrings, который используется в качестве лога работы класса. Для доступа получения доступа к драйверу используется функция API CreateFile которой в качестве параметра передаётся имя драйвера/2/.

Для непосредственного доступ к функциям драйвера используется функция DeviceIOCTRL которая в качестве параметров принимает номер функции, указатель на буфер и максимальный передаваемый и получаемый размер буфера, а возвращает размер полученных данных в буфере/6/. DeviceIOCTRL использует функцию API DeviceIoControl для взаимодействия с драйвером/8/.

Функции ReadLog, GetQueryPacket, GetQP_PacketDataSize, GetQP_PacketData, QP_PacketDel, WritePraviloTable, ReadPraviloTable, SetTableHTTPHost и SetTableHTTPURL функции, обращающиеся напрямую к соответствующим функциям драйвера IOCTRLGetLog, IOCTRLGetQueryPacket, IOCTRLGetQP_PacketDataSize, IOCTRLGetQP_PacketData, IOCTRLQP_PacketDel, IOCTRLWriteTablePravilo, IOCTRLReadTablePravilo, IOCTRLWriteTableHTTPHost и IOCTRLWriteTableHTTPURL.

Листинг 4.1 – Описание класса TFireWall

class TFireWall

{ private:

HANDLE hDevice; TStrings* Log;

public:

void Print(char* Text){if (Log) Log->Add(Text);};

DWORD DeviceIOCTRL(DWORD Function,void* Buffer,

unsigned int dInput,unsigned int dOutput);

void GetFD(FD* fd);

void DeviceConnect(char* DeviceName);

void DeviceDisconnect();

TFireWall(char* DeviceName,TStrings* Log);

~TFireWall();

bool IsCreate(){return (hDevice!=INVALID_HANDLE_VALUE);};

bool ReadLog(PFirewall_Log Log){return DeviceIOCTRL(FunctionGetLog,Log,0,sizeof(Firewall_Log))==sizeof(Firewall_Log);}

bool GetQueryPacket(LPQueryPacket Packet);

INT GetQP_PacketDataSize(INT ID);

void GetQP_PacketData(INT ID,void* Data,int Size);

void QP_PacketOK(INT ID);

void QP_PacketDel(INT ID);

bool GetTypesSize(LPTypesSize TS);

void SetTableHTTPHost(char* Strings,int Size);

void SetTableHTTPURL(char* Strings,int Size);

};

4.2 Загрузка драйвера

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

Device open

Version:

V0.5a

А если программа не смогла открыть драйвер то лог будет содержать строку:

Error:device not open

Так что для проверки необходимо всего лишь просмотреть лог работы программ, который выводится в нижнюю часть основной формы. Также для повторного подключения можно использовать меню программы (ДрайверОткрыть). В появившемся окне надо будет указать имя драйвера.

4.3 Результат работы драйвера

Все действия, которые выполняет драйвер с пакетами, отображаются в логе работы драйвера. Мастер настройки драйвера выводит данный лог в отдельном окне(Рисунок 4.1). В этот лог выводится информация об обработанных пакетах. Одна запись в логе означает один обработанный пакет. Для всех пакетов выводится следующая информация:IP адрес отправителя, IP адрес получателя, Направление, Действие, Размер пакета, Размер данных, Время и Правило которое было применено при обработке пакета.

Рисунок 4.1 – Окно «Результат работы драйвера».

В поле «Направление» может значение только «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 раза в секунду. Что позволяет несильно загружать процессор и в тоже время достаточно быстро для восприятия человека.

4.4 Фильтр пакетов

Фильтр пакетов выполняет фильтрацию по полям пакета и в мастере настроек имеется Менеджер TCP/IP фильтров(Рисунок 4.2), который может добавлять и удалять фильтры. Для создания фильтров используется небольшая панель, с левой стороны окна, на которой поля подсвечивается разными цветами. Темные цвета означают, что данное поля не выбрано, а светлые на обор, если поле имеет красный оттенок то значит в этом поле допущена ошибка, если зеленый то значит что поле введено правильно, а если поле имеет серый цвет то оно будет просто проигнорировано.

Рисунок 4.2 – Окно «Менеджер TCP/IP фильтров».

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

Для отправки пакетов по сети будет использовано несколько программ:Ping, HiperTerminal, Интернет браузер.

Для начала стоит проверить запрещение и разрешение пакетов. Для этого надо провести два теста, в первом тесте создать правило для разрешения всех пакетов, а во втором для запрещения всех пакетов. Для проверки в логе необходимо будет проверить, что все пакеты по полю «Правило ID» имеют значение 00000000, так как в обоих тестах использовано всего одно правило, также необходимо просмотреть «Поле действие» в первом случае все записи должны иметь значение «Skip» а во втором «Del».

В первом случае для проверки используется программа Ping которая отправила четыре запроса и должна получить четыре ответа. Как видно из лога программы(Таблица 4.1) и результата работы программы Ping(Рисунок 4.3)пакеты действительно прошли и драйвер сработал нормально.

Рисунок 4.3 – Результат работы программы Ping при проверке разрешения пакетов.

Таблица 4.1 – Результат работы драйвера для проверки разрешения пакетов.

IP Отправителя

IP Получателя

Направление

Протокол

Действие

Правило ID

192.168.1.2

192.168.1.4

In

ICMP

Skip

00000000

192.168.1.4

192.168.1.2

Out

ICMP

Skip

00000000

192.168.1.2

192.168.1.4

In

ICMP

Skip

00000000

192.168.1.4

192.168.1.2

Out

ICMP

Skip

00000000

192.168.1.2

192.168.1.4

In

ICMP

Skip

00000000

192.168.1.4

192.168.1.2

Out

ICMP

Skip

00000000

192.168.1.2

192.168.1.4

In

ICMP

Skip

00000000

192.168.1.4

192.168.1.2

Out

ICMP

Skip

00000000

Во втором случае при проверке используется также программа Ping, которая отправляет четыре запроса и не должна получить ни одного ответа, так как все отправленные пакеты будут удаленны. Как видно из лога программы(Таблица 4.2) все четыре пакета отправленных программой были удалены, вследствие чего программа Ping выдала, что всё четыре запроса потеряны(Рисунок 4.4).

Характеристики

Список файлов ВКР

Модернизация программного комплекса для защиты информации в ОС Windows
Source
Source
Master.bpr
Master.cbproj
Master.cbproj.local
Master.cpp
Master.res
Master.sdf
obj
FireWall.d
FireWall.o
FireWall.obj
HTTPFilter.d
HTTPFilter.o
HTTPFilter.obj
LogFormEx.d
LogFormEx.o
LogFormEx.obj
LogReader.d
LogReader.o
LogReader.obj
Master.d
Master.o
Master.obj
TCPIPFilterUnit.d
TCPIPFilterUnit.o
TCPIPFilterUnit.obj
Table.d
Table.o
Table.obj
Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7026
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее