Главная » Просмотр файлов » Диссертация Кочарян С.Г — копия

Диссертация Кочарян С.Г — копия (1195360), страница 7

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

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

В Windows 2000/XP/2003 для такойустановки необходимо наличие в inf-файле секций [DefaultInstall32.Xxx] и[DefaultInstall32.Xxx.Services], где "Ххх" обозначает суффиксы декорированияимен nt, ntx86, ntia64.Использование таких секций и усеченная установка из программыПроводник (то есть без вовлечения Мастера Установки) зачастую даютнеприемлемые результаты, поэтому рекомендуется при установке драйверов48использовать обычный способ установки через Мастера Установки новыхустройств.Установка драйвера при помощи inf-файлов является приемлемым иобщепринятым решением для проведения установки драйвера в системе,особенно если драйвер следует передать для использования другим людям,которые не могут и вовсе не обязаны быть в курсе тонкостей установкиразработанного драйвера.495 Фильтр пакетовОдной из основных функций драйвера является фильтрация пакетов.Проходящих через него пакетов.

Так как мой драйвер является Минипортомпромежуточного звена NDIS. Через него проходят все пакеты, направляемыена сетевые адаптеры, модемы и виртуальные соединения (VPN), а также всеполучаемые пакеты.Для передачи пакетов в NDIS используются специальные пакеты. Приполучении данных из сети драйвер сетевой карты выделяет ресурсы под NDISпакет и помещает в него полученные данные. Также работает и драйверпротокола.NDIS-пакет является структурой NDIS_PACKET которая содержитследующие поля:поле PhysicalCount содержит количество физических страниц впакете;поле TotalLength содержит длину данных в пакете;поля Head, Tail ууказывают на первый и последний буферы пакета;поле Flags – Флаги;закрытые данные для драйвера и минипорта.На рисунке 5.1 показана структура NDIS-пакета.Буферы являются структурой NDIS_BUFFER, которая в свою очередьявляется переименованной структурой MDL.

Структура MDL имеетследующие поля:поле Next указатель на следующий буфер;поля Size содержит размер буфера;поля MdlFlags содержит флаги;поле MappedSystemVa указывает начальный виртуальный адресстраници;поле StartVa указывает начальный виртуальный адрес буфера;50поле ByteCount содержит количество байт в буфере;поле ByteOffset содержит смещение от начала страници.Структура NDIS буфера также отображена на рисунке 5.1.NDIS-пакетPhysicalCountTotalLengthHeadTailFlags...NDIS-буфер 1NextSizeMdlFlagsMappedSystemVaStartVaByteCountByteOffset...NDIS-буфер 2NextSizeMdlFlagsMappedSystemVaStartVaByteCountByteOffset...Ethernet-пакетByteCountNDIS-буфер №1...NDIS-буфер NNextSizeMdlFlagsMappedSystemVaStartVaByteCountByteOffset...NULL...ByteCountNDIS-буфер №2ByteCountNDIS-буфер NРисунок 5.1 – Структура и взаимодействие NDIS пакета, NDIS буфера, исодержащегося в NDIS пакете Ethernet пакетаВ NDIS-пакете данные идут не подряд, а разбиваются кусочки.

За каждыйтакой кусочек отвечает свой буфер. Обычно разные заголовки вложенныхпакетов идут в отдельных буферах это связано с тем что данные заголовкизаполняются разными драйверами, так же весь пакет может быть в одномбуфере, обычно такую структуру имеет пакет, идущий от драйвера сетевойкарты к драйверу протокола.В связи с такой сложной организацией пакета для доступа к данным пакетапришлось разрабатывать специальные функции:51функция GetBufferSize определяет общий размер цепочки буферов;функция GetPacketDataSize определяет размер данных в пакете;функция CopyPacketData копирует весь Ethernet пакет в буфер.На рисунке 5.2 показан принцип заполнения буфера в NDIS-пакете.EthernetIPUDPEthernetIPUDPEthernetданныеданныеданныеARPEthernetIPTCPEthernetIPTCPданныеданныеданныеEthernetIPTCPEthernetIPTCPРисунок 5.2 – Заполнение буферов в NDIS-пакетеДля фильтрации в точках входа MiniportSendPackets и ProtocolReceiveвызывается функция фильтрации FilterIP, которая разрешает или запрещаетпакет в соответствии с действующими правилами.Функция FilterIP копирует содержимое в отдельный буфер, этонеобходимо из-за сложной организации данных в пакете.

После этого онвызывает функцию GetPacketTCPIPInfoEX, которая расшифровывает данныев пакете для TCPIP протокола, если пакет не является TCPIP пакетом, тофункция GetPacketTCPIPInfoEX возвращает false и в результате пакетразрешается для передачи, после чего при помощи функции GetPraviloIDопределяется правило под которое под подает пакет. Если пакет не подпадает,под какое-либо правило, то пакет разрешается для передачи. Также ведётсялогвсехобработанныхпакетов,дляэтоговызываетсяфункцияAddFirewallLog.В функции GetPacketTCPIPInfoEX в начале расшифровывается Ethernetзаголовок, что изображено на рисунке 5.3. Ethernet заголовок на аппаратном и52программном уровне имеет разную структуру из-за того, что часть полей такихрак Преамбула, начальный разделитель и контрольная сумма генерируютсячипом сетевой карты.Ethernet заголовок на аппаратном уровне62 бита2 бита6 байт6 байт2 байтаот 46 до 1500 байт4 байтаПреамбулаНачальныйразделительMAC Адрес назначенияMAC Адрес источникаТип илиразмерДанныеКонтрольнаясуммаEthernet заголовок на программном уровне6 байт6 байт2 байтаот 46 до 1500 байтMAC Адрес назначенияMAC Адрес источникаТип илиразмерДанныеРисунок 5.3 – Ethernet заголовок на програмном и аппаратном уронеДля определения содержимого пакета используется поле тип пакета.

Дляпротокола TCP/IP тип равен 0x0800. IP заголовок начинается сразу после полятип в Ethernet заголовке, то есть со смещение 14 от начала пакета.На рисунке 5.4 изображен IP-заголовок.03Версия7Длина в 32-хбитовых словах15Тип сервисаИдентификацияВремя жизни31Общий размерФлагиПротоколСмещение фрагментаКонтрольная суммаIP Адрес отправителяIP Адрес получателяОпции и заполнеияДанныеРисунок 5.4 – IP заголовокВ IP заголовке для проверки в начале, определяю версию протокола, онадолжна быть равна четырем. После этого из поля iph_verlen получает размерзаголовка в 32-х битовых словах.

Если пакет является TCP пакетом, тоопределяю TCP заголовок и данные в нём. Аналогично поступаю, если пакет53является UDP пакетом. Вся информация об анализе пакета помещается вструктуру TPacketTCPIPInfo.Функция GetPraviloID просматривает таблицу правил и ищет правило, подкоторое подпадает пакет. Если правило чётко указывает что пакет надозапретить или разрешить, то функция возвращает номер правила. А если вправиле указан фильтр, то пакет передаётся в фильтр, который определяет,запретить пакет или нет, если нет, то просматриваются следующие правила.546 Фильтр HTTP трафикаФильтр HTTP трафика простаивает, пакеты и выискивает заголовки HTTPзапросов, после этого расшифровывает их.

Определяет Host и URL после чегопросматривает на совпадение со списками, если фрагмент Host или URLсовпал со списком то пакет содержащий данный запрос удаляется.HTTP основывается на парадигме запросов/ответов. Запрашивающаяпрограмма (обычно она называется клиент) устанавливает связь собслуживающей программой-получателем (обычно называется сервер) ипосылает запрос серверу в следующей форме: метод запроса, URI, версияпротокола, за которой следует MIME-подобное сообщение, содержащееуправляющую информацию запроса, информацию о клиенте и, может быть,тело сообщения. Сервер отвечает сообщением, содержащим строку статуса(включая версию протокола и код статуса - успех или ошибка), за которойследует MIME-подобное сообщение, включающее в себя информацию осервере, метаинформацию о содержании ответа, и, вероятно, само тело ответа.Следует отметить, что одна программа может быть одновременно и клиентоми сервером.

Использование этих терминов в данном тексте относится только кроли, выполняемой программой в течение данного конкретного сеанса связи,а не к общим функциям программы.В Интернет коммуникации обычно основываются на TCP/IP протоколах.Для WWW номер порта по умолчанию – TCP 80, но также могут бытьиспользованы и другие номера портов – это не исключает возможностииспользовать HTTP в качестве протокола верхнего уровня.

Поэтому присоздании фильтра HTTP пакетов должен определять является ли пакет HTTPзапросом или нет в независимости от порта на который или с которого идутпакеты.Для большинства приложений сеанс связи открывается клиентом длякаждого запроса и закрывается сервером после окончания ответа на запрос.55Тем не менее, это не является особенностью протокола. И клиент, и сервердолжны иметь возможность закрывать сеанс связи, например, в результатекакого-нибудь действия пользователя. В любом случае, разрыв связи,инициированный любой стороной, прерывает текущий запрос, независимо отего статуса.Фильтр HTTP трафика фильтрует только запросы так, как в HTTPпротоколе сервер не может передать какие либо данные без запроса.Запрос–этосообщение,посылаемоеклиентомсерверу.Первая строка этого сообщения включает в себя метод, который должен бытьприменен к запрашиваемому ресурсу, идентификатор ресурса и используемуюверсию протокола.

Для совместимости с протоколом HTTP/0.9, существуетдва формата HTTP запроса:простой запрос: «GET» SP Запрашиваемый-URI CRLF;полный запрос: Строка-Статус;*(Общий-Заголовок | Заголовок-Запроса | Заголовок-Содержания) CRLF[Содержание-Запроса ]Если HTTP/1.0 сервер получает Простой-Запрос, он должен отвечатьПростым-Ответом HTTP/0.9. HTTP/1.0 клиент, способный обрабатыватьПолный-Ответ, никогда не должен посылать Простой-Запрос.Запрашиваемый-URI может быть двух типов: абсолютный-URL иотносительный-URL. Абсолютный-URL допускается только при обращении кproxy серверу.

Строка запроса, например, может иметь такой вид:« GET http://www.w3.org/pub/WWW/TheProject.html HTTP/1.0 »Относительный-URL используется при прямом соединении. Например,для « http://www.w3.org/pub/WWW/TheProject.html » необходимо соединится ссерверов www.w3.org, через TCP соединение на 80 порт и послать запрос:« GET /pub/WWW/TheProject.html HTTP/1.0 »На одном сервере может быть несколько обслуживаемы хостов. В запросдобавляется параметр Host который записывается следующим образом:Host: SP Имя_хоста CRLF56Заголовок полного запроса состоит из строк заканчивающихся символамиCRLF и заканчивается пустой строкой то есть символами CRLFCRLF.Для анализа HTTP запросов используется функция FilterHTTP котораяанализирует данные в пакете и если он является HTTP запросом то извлекаетиз него такие данные как URL и Host. Для этого она делит пакет на строкидотех пор пока не поподётся пустая строка или не закончатся данные в пакете.После этого происходит анализ первой строки запроса.Первая строка запроса является простым запросом или Статус строкойполного запроса.Строка Статус начинается со строки с названием метода, за которымследует URI-Запроса и использующаяся версия протокола.

Строка Статусзаканчивается символами CRLF. Элементы строки разделяются пробелами(SP). В Строке Статус не допускаются символы LF и CR, за исключениемзаключающей последовательности CRLF.Строка-Статус: Метод SP URI-Запроса SP «Версия-HTTP» CRLFСледует отметить, что отличие Строки Статус Полного-Запроса от СтрокиСтатус Простого- Запроса заключается в присутствии поля «Версия-HTTP».Для определения является ли первое слова в стороке методом HTTPзапросов вызывается функция IsHTTPMetod. Которая которая вкачествепараметря получает первую строку запроса. В в HTTP запросе могут бытьсдующие методы: GET, HEAD, PUT, POST, DELETE, LINK, UNLINKМетодGETслужитдляполучениялюбойинформации,идентифицированной URI-Запроса. Если URI- Запроса ссылается на процесс,выдающийданные,вкачествеответабудутвыступатьданные,сгенерированные данным процессом, а не код самого процесса (если толькоэто не является выходными данными процесса).Метод GET изменяется на «условный GET», если сообщение запросавключает в себя поле заголовка «If-Modified-Since».

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

Тип файла
PDF-файл
Размер
1,14 Mb
Высшее учебное заведение

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

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6673
Авторов
на СтудИзбе
291
Средний доход
с одного платного файла
Обучение Подробнее