Курсовая работа




Скачать 249.76 Kb.
НазваниеКурсовая работа
страница2/3
Дата публикации02.08.2013
Размер249.76 Kb.
ТипКурсовая
lit-yaz.ru > Информатика > Курсовая
1   2   3

3. T2(Resp=Y%DF=N%W=0%ACK=S%Flags=AR%Ops=) - тест обработки NULL-пакета.

На открытый порт устройства отправляется "пустой" пакет с указанием TCP-опций, аналогичных предыдущему тесту.

Resp = Y - указатель, определяющий наличие или отсутствие ответа от устройства на подобный запрос. Данный указатель используется в том случае, когда конкретная ОС, для которой составлен отпечаток, может не ответить на запрос, используемый в тесте, тогда как другие ОС отвечают на подобный запрос (это и устанавливается указателем Resp=Y/N). В случае, если Resp не присутствует среди переменных, подразумевается, что на подобный запрос любая ОС пошлет ответ.

Ops = - набор TCP-опций в ответе на запрос. "Пустое" значение данной переменной означает отсутствие в ответе каких-либо опций.
4. T3(Resp=Y%DF=N%W=C000|EF2A%ACK=0%Flags=A%Ops=NNT) - тест обработки SYN|FIN|PSH|URG-пакета.

На открытый порт устройства посылается пакет с указанием соотв. набора флагов и без указания TCP-опций. Расшифровка ожидаемого ответа следующая: ответ на запрос должен быть получен, флаг DontFragment сброшен, поле Window=0, значение поля ACK содержит посланный хостом в запросе ISN, набор флагов - ACK и RST, TCP-опции в ответе должны отсутствовать.
5. T4(DF=N%W=0%ACK=0%Flags=R%Ops=) - тест обработки ACK-пакета.

На открытый порт устройства отправляется ACK-пакет (здесь и далее расшифровка результатов по аналогии с предыдущими тестами, за исключением переменных, смысл которых объяснен по тексту).
^ 6. T5(DF=N%W=0%ACK=S++%Flags=AR%Ops=) - тест обработки SYN-пакета.

На закрытый порт устройства отправляется SYN-пакет.
7. T6(DF=N%W=0%ACK=0%Flags=R%Ops=) - тест обработки ACK-пакета на закрытый порт.

На закрытый порт устройства отправляется ACK-пакет.
8. T7(DF=N%W=0%ACK=S%Flags=AR%Ops=) - тест обработки FIN|PSH|URG-пакета.

На закрытый порт устройства отправляется соответствующий пакет.
5. Прикладной

- список открытых портов

- время отклика

- версия сервиса(её определяет сканер Nmap)
Для передачи информации на уровень приложений, используется номер порта. Номера портов используются для отслеживания различных взаимодействий, одновременно ведущихся в сети. Номера ниже 1024 считаются зарезервированными, назначением которых руководит агентство по выделению имён и уникальных параметров протоколов Internet(IANA – Internet Assigned Numbers Authority). К примеру, при любом обмене, связанном с передачей данных по протоколу FTP должны использоваться стандартные порты 20(для данных) и 21(для управления). Сетевым взаимодействиям, не связанным с приложениями, имеющими известный номер порта, порт назначается динамически из диапазона 1024 – 32767. [5] Такая организация сетевого взаимодействия даёт нам возможность получить список открытых на удалённом хосте портов. Многие сервисы, в начале сессии, сразу после соединения, посылают баннер – символьную строку, содержащую некоторую информацию о сервисе(к примеру имя сервиса и его версия). Для тех номеров, что ниже 1024, мы можем воспользоваться стандартом протокола, реализованного в сервисе, работающем на данном порту, для получения каких-либо, предусмотренных протоколом, дополнительных данных об этом сервисе. Для стандартных портов, возможно также замерять время отклика сервиса. Для этого, после соединения, в сокет отправляется команда, и замеряется время через которое от устройства придёт ответ. Списки поддерживаемых команд для стандартных сервисов можно получить из RFC, описывающих соответствующие протоколы.
Для каждого сервиса получаем баннер(если он присутствует), просто подключаясь к заданному порту сканируемого хоста. Для стандартных сервисов возможно получение дополнительной информации:


  • HTTP-сервис:

echo 'GET / HTTP/1.0\n' | nc hotboot.com 80 | egrep '^Server:'


  • FTP-сервис:

После подсоединения к 21-му порту, отправить команду SYST, в ответ на которую сервер выдаст дополнительную информацию о себе.


  • SMTP-сервис:

после подсоединения к 25-му порту, отправить команду ehlo somestr, на что сервер должен ответить строкой SERVERNAME hello somestr и выдать набор поддерживаемых опций.
Сетевой сканер Nmap, получая подобную информацию, определяет версию сервиса.
После такого структурирования становится ясно, что на каждом уровне возможно определять параметры независимо от других. Итоговый список удалённо доступных параметров при активном сканировании выглядит следующим образом:
^ 1. Физический уровень

Активных нет.
2. Канальный

- время отклика

- MAC
3. Сетевой

- список всех протоколов, поддерживаемых хостом, которые могут работать поверх IP и при этом подразумевают диалог(всего 138)

- время отклика для каждого из протоколов

- тест формата ICMP-сообщения Port Unreachable.
4. Транспортный

- время установления соединения для каждого из протоколов, его предусматривающих

- параметры TCP (можно получить при помощи сканера nmap):

  • закон изменения ISN хоста

  • определение TCP- опций(SYN пакет на открытый порт)

  • результат обработки NULL-пакета, посланного на открытый порт

  • тест обработки SYN|FIN|PSH|URG-пакета, посланного на открытый порт

  • тест обработки ACK-пакета, посланного на открытый порт

  • тест обработки SYN-пакета, посланного на закрытый порт

  • тест обработки ACK-пакета, посланного на закрытый порт

  • тест обработки FIN|PSH|URG-пакета, посланного на закрытый порт

- параметры UDP
5. Прикладной

- список открытых портов

- время отклика

- версия сервиса(её определяет сканер Nmap)
^ 7. Граничные условия применимости параметров
Среди всех удалённо доступных параметров нет таких, которые нельзя было бы изменить, либо которые сами не изменяются при изменении способа подключения к сети. К примеру, ip-адрес устройства меняется при переходе из одной сети в другую. Также, если подключить устройство к сети через другой интерфейс, то при сканировании у него будет другой mac-адрес. Если же у устройства несколько сетевых интерфейсов, то какой mac-адрес будет виден зависит от того, из какого сегмента сети происходит сканирование. Более того, от этого будет зависеть результат сканирования портов и реакция на различные tcp-пакеты, посылаемые при проведении тестирования nmap'ом. Это объясняется настройкой файрвола, который в соответствии с заданными администратором устройства отбрасывает определённые пакеты, адресуемые на определённый интерфейс. При постоянстве операционной системы (если не ставить сильно изменяющие её сервис-паки и обновления) и постоянстве настроек файрвола все TCP параметры на удалённой машине не изменяются.

В результате испытаний по изменению программной части устройства(включение/отключение файрвола, прокси, сервисов), проведённых на небольшом стенде(2 устройства), было установлено, что при включении/отключении файрвола устройство перестаёт отвечать на некоторые tcp-пакеты, а в ответах на другие пакеты в некоторых случаях устанавливается/сбрасывается флаг Don't Fragment(DF).

Список открытых портов меняется при включении\отключении сетевых сервисов на устройстве, т.е анализ сервисов возможен на устройствах, относительно постоянных в практическом применении.

Также было установлено, что время отклика сервисов сильно варьируется при каждом следующем замере, и отношение времён откликов сервисов, работающих на устройстве не является некоторой «постоянной» в каких-либо разумных пределах величиной. Следовательно, время отклика для анализа применять не представляется возможным.


^ 8. Набор параметров для пилотной реализации

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

    • нет



Канальный уровень

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


Сетевой уровень

    • только анализ ICMP сообщения «Port Unreachable», поскольку в сети ЛВК, в которой будут проводится испытания, известен наперёд список используемых протоколов уровня IP.


Транспортный уровень

    • параметры TCP:

  • Закон изменения ISN хоста

  • Определение TCP- опций(Syn пакет на открытый порт)

  • результат обработки NULL-пакета, посланного на открытый порт

  • тест обработки SYN|FIN|PSH|URG-пакета, посланного на открытый порт

  • тест обработки ACK-пакета, посланного на открытый порт

  • тест обработки SYN-пакета, посланного на закрытый порт

  • тест обработки ACK-пакета, посланного на закрытый порт

  • тест обработки FIN|PSH|URG-пакета, посланного на закрытый порт


Прикладной уровень

  • список открытых портов

  • время отклика сервисов

  • версия сервиса


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


Сервис

Порт

FTP [4]

21

SMTP [2]

25

HTTP [3]

80

DNS

23



^ 9.Архитектура и алгоритмы работы системы идентификации
Система идентификации представляет собой программное решение двух описанных в пункте 5(Формальная постановка задачи удалённой идентификации) подзадач задачи идентификации и состоит из следующих элементов:


  • База профилей

База профилей представляет собой набор файлов в директории base, находящейся на уровень выше директории с выполняемым файлом запуска системы идентификации. Каждый файл из базы содержит отдельный профиль.


  • Сканер

В качестве сканера использован сетевой сканер nmap. Используется для активного сканирования удалённого устройства с целью получения параметров для формирования профиля устройства.


  • Модуль анализа результатов сканирования и идентификации

Модуль анализа данных сканирования и идентификации представляет собой программный модуль, написанный в рамках курсовой работы на языке С++ для операционной системы Linux.
1. Решение первой подзадачи задачи удалённой идентификации, а именно следующей:

Дано: Сеть, то есть граф G=(V,E).

Необходимо: Для каждого v из V построить профиль.
представлено в виде режима работы пополнения базы профилей устройств.



На вход программе в виде параметра поступает имя(или ip-адрес) устройства v, после чего происходит сканирование указанного устройства, разбор результатов сканирования(формирование профиля P устройства) и вывод профиля в указанный отдельный файл. Эту операцию необходимо провести для каждого v из V.
2. Решение второй подзадачи задачи удалённой идентификации:

Дано: некоторый узел v'.

Необходимо: определить вектор параметров v' и определить, насколько v' соответствует каждому профилю из G.
представлено в виде режима идентификации устройства:



На вход программе в виде параметра поступает имя устройства(или его ip-адрес), после чего происходит сканирование указанного устройства, разбор результатов сканирования(формирование вектора параметров v'). После этого происходит сравнение полученного вектора параметров со всеми профилями из базы профилей. Сравнение представляет собой последовательное сравнение каждого параметра xi из v' c соответствующими параметрами профиля.

В данном случае профиль устройства и вектор параметров устройства – совпадающие понятия, поскольку профилем устройства является именно некоторая точка в пространстве параметров.

^ 10.Алгоритм построения профиля и идентификации устройства
Структура профиля
Профиль устройства в программной реализации представляет собой класс profile:

class profile {

public:

string name;

struct in_addr ip;

string mac_address;

map services;

os_fingerprint os_fp;
void print() {
}

};
Из названий полей классов видно, что сохраняемой информацией в экземпляре класса profile является имя устройства, его ip-адрес, mac-адрес. В ассоциативном списке services хранятся пары: номер порта – информация о сервисе. Также в нём содержится fingerprint операционной системы удалённого устройства, полученный при помощи сканера nmap.

В классе profile для описания его полей, используются классы os_fingerprint и service_info:
class os_fingerprint {

public:

map mSInfo;

map mTSeq;

map mT1;

map mT2;

map mT3;

map mT4;

map mT5;

map mT6;

map mT7;

map mPU;
void print() {

...

}

};
В экземпляре класса os_fingerprint содержатся результаты проведённых nmap'ом тестов, разобранные в ассоциативные списки для удобства последующего анализа.
class service_info {

public:

int port;

string protocol;

string name;

string state;

string version;

double response_time;
void print() {

...

}

};
Описания сервисов, содержащиеся в экземплярах класса service_info, представляют собой:

-номер порта

-имя протокола (tcp/udp)

-название сервиса(определяется по номеру порта и имени протокола)

-статус(open, closed, filtered,...)

-версия сервиса(если удалось получить)
Профиль устройства заполняется после проведения сканирования сканером nmap. Из результатов его работы выделяются интересуемые параметры и помещаются в соответсвующие поля объектов вышеописанных классов.
Идентификация
Идентификация просканированного устройства осуществляется посредством поиска похожего профиля в базе сохранённых профилей, то есть полученный профиль поочерёдно сравнивается с каждым профилем из базы. В процессе сравнения профилей сравниваются их соответствующие параметры, и результатом функции сравнения является процент совпавших параметров.
После окончания работы функции идентификации на экран выводится результат идентификации в следующем виде:
profile name(ip) in base = zigzag.lvk.cs.msu.su(158.250.17.23), probability 0.78

profile name(ip) in base = ghostwalk.lvk.cs.msu.su(158.250.17.87), probability 0.89

profile name(ip) in base = ka50.lvk.cs.msu.su(158.250.17.90), probability 0.78
Здесь отображаются успешные результаты поочерёдного сравнения профиля с профилями из базы. Для всех профилей в сравнении с которыми данного профиля совпали >= 75% параметров, печатается строка, содержащая имя устройства и ip-адрес, взятые из профиля. Также печатается вероятность того, что сканируемое устройство – это устройство, описываемое текущим профилем. Соответственно, при проведении эксперимента, выбираем(уже руками) профиль с наибольшей вероятностью совпадения, и думаем, определилось устройство, или нет.
В программе реализована, но не используется, в связи с невозможностью использования, функция замера времени отклика для нескольких типов сервисов. Включить её работу можно, откомментировав несколько строк кода.
1   2   3

Похожие:

Курсовая работа iconКурсовая работа
И овладения слушателями определенной медиа-специальностью в сфере деловой и политической журналистики. Являясь небольшой учебной...

Курсовая работа iconКурсовая работа по дисциплине «Информатика» на тему «Обмен данными в ms office»
Курсовая работа «Обмен данными в ms office» содержит 27 страниц печатного текста, 4 рисунка, 5 таблиц, использовано 5 источников

Курсовая работа iconКурсовая работа
Данная курсовая работа посвящена вопросу возможности удалённой идентификации сетевых объектов в сетях tcp/IP/Ethernet. Приведено...

Курсовая работа iconТеплотехника, курсовая работа
Количество часов по учебному плану – 38, в т ч аудиторная работа – 0, самостоятельная работа – 38

Курсовая работа iconТеплотехника, курсовая работа
Количество часов по учебному плану – 36, в т ч аудиторная работа – 0, самостоятельная работа – 36

Курсовая работа iconТеплотехника, курсовая работа
Количество часов по учебному плану – 36, в т ч аудиторная работа – 0, самостоятельная работа – 36

Курсовая работа icon«Организация эвм» Контрольно курсовая работа «Проектирование вычислительной системы»
Данная контрольно-курсовая работа выполняется с целью закрепления знаний по курсу «Организация ЭВМ и систем» и получения практических...

Курсовая работа iconКурсовая работа это важнейший компонент успешного овладения дисциплиной «Финансы»
Курсовая работа – это важнейший компонент успешного овладения дисциплиной «Финансы», а также этап в подготовке к предстоящему дипломному...

Курсовая работа iconНазвание организации
Заголовок «Дипломная работа» или «Курсовая работа»: Times New Roman, 14 (вопреки П. 113), по центру. Затем – 2 пустые строки

Курсовая работа iconКурсовая работа



Образовательный материал



При копировании материала укажите ссылку © 2013
контакты
lit-yaz.ru
главная страница