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




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

Лаборатория вычислительных комплексов

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

Исследование возможности удаленной идентификации сетевых устройств.

студента 322 группы

Студеникина Р.В.
Научный руководитель:

Гамаюнов Д.Ю.

Москва, 2005

2. Аннотация
Данная курсовая работа посвящена вопросу возможности удалённой идентификации сетевых устройств в сетях TCP/IP/Ethernet. Приведено описание разработанного метода идентификации на ограниченном наборе параметров и результаты применения метода на компьютерах сети Лаборатории Вычислительных Комплексов.

2. Содержание
1. Аннотация............................................................................................................2
2. Содержание..........................................................................................................2
3. Введение...............................................................................................................3
4. Постановка задачи...............................................................................................4
5. Формальная постановка задачи удалённой идентификации...........................4
6. Набор параметров для удаленной идентификации..........................................5
7. Граничные условия применимости параметров.............................................10

8. Набор параметров для пилотной реализации.................................................10
9. Архитектура и алгоритмы работы системы идентификации........................11

10. Алгоритм построение профиля и идентификации устройства...................13
11. Описание и результаты экспериментов........................................................15
12. Заключение......................................................................................................17
13. Литература.......................................................................................................18


3. Введение
Значительную часть компьютерных сетей составляет пользовательское оборудование и сервера. Пользовательское оборудование – это обычно рабочие станции, ноутбуки, наладонники. Разумеется есть и другие устройства. А все устройства в сети содержат большое количество идентифицирующей их информации – различные имена, адреса разных уровней и так далее. Тем не менее, большинство этих характеристик легко изменить, подделать и ни одна из них не может на 100% идентифицировать устройство. Поэтому возник вопрос, возможно ли удалённо отличать друг от друга сетевые устройства. То есть можно ли, получив эти параметры от нескольких машин, и сохранив их, к примеру, в отдельные файлы, после повторного сканирования одной из них, указать среди сохранённых файлов тот, в котором содержатся параметры этой же машины.
Задача удаленной идентификации сетевых устройств представляет интерес во многих областях. Например, это задача отслеживания перемещения пользовательских компьютеров в пределах корпоративной сети. В ряде случаев у администраторов частных сетей нет возможности устанавливать программные "метки" на пользовательские компьютеры (понятно, что можно было бы однозначно идентифицировать узел, установив на него специальную прошивку в область BIOS или некий специализированный сетевой сервис, хотя в этом случае метод неустойчив к изменению программной или аппаратной конфигурации соответственно. Т.е. даже использование меток не всегда может помочь однозначно идентифицировать узел). Такой сетью может являться сеть университета, университетского кампуса, сети "домового" провайдера доступа в Интернет.

Другая область применения - дополнительная проверка аутентичности пользователей при удаленном доступе к некоторым сервисам корпоративной сети. Например, есть сервер терминального доступа, на который пользователи могут получить терминал с использованием SSH. При этом можно использовать стандартные способы аутентификации – пароль, публичный ключ (тем или иным способом - аппаратные ключи, файлы на диске), одноразовые пароли и т.д. (то, что например предоставляет PAM в unix-like системах). Но всегда есть опасность, что паролем или ключом завладеет кто-то, кроме законного владельца. В таких случаях может оказаться полезным отслеживать идентичность тех физических компьютеров, с которых происходит терминальный доступ и, например, оповещать администратора сервера в тех случаях, когда пользователь пытается зайти с ранее неизвестного компьютера. Также следует учитывать, что в таких условиях тот же IP-адрес или доменное имя узла не могут служить его однозначным идентификатором, т.к. могут быть подделаны злоумышленником.

Ещё один пример (возможно, не очень юридически корректный) - слежка за мобильными пользователями в масштабах глобальной или региональной сети. Здесь важно учитывать, что интерес для слежки могут предоставлять узлы, которые долгое время находятся в пользовании конкретных людей и можно сопоставить устройство его пользователю - мобильные телефоны, ноутбуки, коммуникаторы и т.п. Во всех таких случаях задача сводится к вопросу - можно ли по активности устройства в сети однозначно его опознать. При этом мы имеем существенные ограничения на возможности наблюдателя: наблюдатель может только взаимодействовать с устройством в рамках поддерживаемых этим устройством сетевых протоколов, либо прослушивать сетевой трафик, генерируемый устройством (и трафик в обратном направлении - от различных

узлов сети к устройству).

В данной работе проведено исследование возможности удаленной идентификации методом удаленного сканирования - то есть при помощи активных сканирующих "проб" - запросов к сетевым устройствам и анализу получаемых ответов. В работе не рассматривается возможность построения модели поведения устройства на основе пассивного анализа трафика, но такая возможность учитывается при определении границ применимости активных сканирующих проб.
Частично эта задача решена в сетевом сканере nmap. Но он ориентирован на решение более узкой задачи, а именно, определение операционной системы на удалённой машине. Nmap производит сканирование портов, определяя какие из них открыты, а какие закрыты, получает возможную информацию от работающих на открытых портах сервисов, определяя их версии, после чего проводит некоторые тесты для определения операционной системы. Тесты, на основе результатов которых определяется ОС удалённого устройства используют тот факт, что реализация протокола TCP/IP немного отличается в различных операционных системах (об этой разнице далее в тексте). Каждый тест проводится следующим образом: на удалённое устройства отправляются tcp-пакеты с различными комбинациями установленных флагов и анализируется ответ на них, либо фиксируется, что ответ не пришёл. Результаты тестов(os-fingerprint) сравниваются с fingerprint'ами из уже имеющейся базы. На основе сравнения выдвигается предположение об установленной на удалённой машине операционной системе.

Но, даже определение операционной системы не является тривиальной задачей: на поведение операционной системы большое влияние оказывают такие системные утилиты как firewall, proxy-server и т.п. Поэтому, во время разработки метода идентификации следует учитывать тот факт, что на удалённом устройстве со временем могут меняться настройки системы и устанавливаться новое программное обеспечение, не говоря уж о том, что могут меняться некоторые аппаратные части удалённой машины.

Реализация пилотной версии системы идентификации рассчитана на сети TCP/IP на каналах Ethernet, с узлами общего назначения – серверы, рабочие станции, мобильные устройства прикладного уровня стека TCP/IP.

4. Постановка задачи
1. Формализовать задачу удаленной идентификации сетевых устройств с помощью активного сканирования.

2. Построить набор параметров для сетей TCP/IP, построенных на базе Ethernet и определить границы применимости (значимости) каждого из параметров.

3. Разработать и реализовать метод удаленной идентификации сетевых устройств на сокращенном наборе параметров.

4. Провести экспериментальное исследование применимости данного метода на примере локальной сети ЛВК.

^ 5. Формальная постановка задачи
Модель TCP/IP имеет 5 уровней:

1. Физический

2. Канальный

3. Сетевой

4. Транспортный

5. Прикладной
Сеть представляет собой граф G=(V,E), где V- множество вершин (сетевых устройств), E- множество связей между ними. Каждое сетевое устройство V представляет собой структуру вида: {x1(t), x2(t), ... , xN(t)} , где xi(t) - параметр некоторого уровня модели TCP/IP, который определен для узла в момент времени t и может быть замерен удаленно. V может меняться с течением времени.

Определим для каждого устройства его профиль: профилем устройства называется некоторая область P в пространстве параметров {(x1', x1''), (x2', x2''), ...., (xN', xN'')}. Набор профилей всех v из V назовём базой B профилей сети G. Будем говорить о точной идентификации устройства, если в некоторый момент времени, когда производится идентификация, наблюдаемые параметры устройства полностью попадают в профиль устройства.

Для каждого из параметров возможно сопоставить некоторые весовые коэффициенты(в пилотной версии системы идентификации все они равны единице), которые будут использованы для вычисления функции вероятности F(v, P) принадлежности устройства профилю. При наличии такой функции мы имеем возможность определить неточную идентификацию при «частичном» попадании устройства в профиль, как ситуацию когда F(v,P) > A, F(v, Pi) < A, где A – некоторое пороговое значение вероятности, Pi – любой профиль из имеющейся базы профилей.
Задача идентификации разбивается на две подзадачи:
1) Дано: Сеть, то есть граф G=(V,E).

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

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

^ 6. Набор параметров для удалённой идентификации.
Информацию об удалённом устройстве можно получить двумя способами: при помощи активного и пассивного сканирования. При активном сканировании, на устройство отправляются запросы, ответы на которые анализируются. При пассивном сканировании, слушается траффик, генерируемый интересуемым сетевым устройством, из которого выбирается ценная информация, после чего ана анализируется. В данной курсовой работе рассмотрен только метод активного сканирования.

В соответствии с моделью TCP/IP, можно выделить для каждого уровня набор параметров, получаемых удаленно.
^ 1. Физический уровень

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

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

- MAC
На уровне доступа к сети работают сетевые адаптеры(Network Interface Card – NIC) и модемы. Если сканируемое устройство находится в том же сегменте сети, что и сканирующий хост, то от сетевого адаптера устройства можно получить его уникальный номер – MAC-адрес при помощи RARP запроса. Другой идентифицирующей информации на данном уровне не содержится.


3. Сетевой

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

1. TCP

2. UDP

3. ICMP

4. SNMP

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

- тест формата ICMP-сообщения Port Unreachable.
На этом уровне можно получить список поддерживаемых устройством протоколов, работающих поверх протокола IP. Это возможно сделать, посылая на устройство пакеты соответсвующего формата и получая от него ответ в соответствии с RFC, описывающем протокол. Если такой протокол не поддерживается, то в ответ придёт ICMP пакет с сообщением об ошибке в поле «Type Of Service» (т.е. со следующими значениями полей: Type 12, Code 0, Pointer 1) [1]. Для каждого протокола, в соответствии со спецификацией, возможно реализовать получение некоторой дополнительной информации.
Анализ прибывшего с устройства ICMP сообщения “Port Unreachable”(используется сетевой сканер Nmap) [9]:

На закрытый порт устройства с большим номером отправляется запрос (TCP и UDP-пакет), и анализируется прибывшее в ответ ICMP-сообщение Port Unreachable (порт недоступен).
PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E)

DF = N - состояние флага DontFragment в IP-заголовке ICMP-сообщения (не установлен)

TOS = 0 - значение поля TypeOfService в прибывшем ICMP-сообщении (равно 0)

IPLEN = 38 - шестнадцатеричное значение поля TotalLength в IP-заголовке прибывшего ICMP-сообщения (составляет 38h)

RIPTL = 148 - значение поля TotalLength в IP-заголовке эха ICMP-сообщения (составляет 148h)

RID = E - проверка значения поля ID в IP-заголовке эха ICMP-сообщения (E-совпадает с посланным значением, F-не совпадает)

RIPCK = E - проверка значения поля CheckSum в IP-заголовке эха ICMP-сообщения (E-совпадает с посланным значением, F-не совпадает)

UCK = E - проверка значения поля CheckSum в UDP-заголовке (при отправлении на сервер UDP-пакета) UDP-эха ICMP-сообщения (E-совпадает с посланным значением, F-не совпадает)

ULEN = 134 - проверка значения поля CheckSum в UDP-заголовке UDP-эха ICMP-сообщения (составляет 134h)

DAT = E - проверка данных UDP-эха ICMP-сообщения (E-совпадает с посланным значением, F-не совпадает). В общем случае, совокупность значений переменных UCK=E, ULEN=0x134h (для IRIX) и DAT=E означает, что данные эхо-UDP были приняты верно. Поскольку большинство ОС не отправляют посланные в UDP-пакете данные в качестве эха, решение о его "верности" принимается ни основании значений UCK и ULEN, а в поле DAT устанавливается значение по умолчанию (т.е. DAT = E).

4. Транспортный

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

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

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

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

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

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

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

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

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

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

- параметры UDP
Для получения информации о реализации траспортного уровня стека протоколов TCP/IP на удалённом устройстве использован сетевой сканер nmap версии 3.9.3. Для достижения требуемой функциональности он был немного доработан, в частности были внесены изменения, приводящие к выводу результатов проведения нижеописанных тестов(изначально эти результаты выводились только в том случае, если версию операционной системы определить не удалось). В результате эксплуатации nmap'а было обнаружено, что для некоторых неопознанных сервисов выводится service fingerprint, в следствие чего была предпринята попытка получения таких фингерпринтов для всех работающих на хосте сервисов. Но из-за сложности программного кода, сделать этого не удалось.
Nmap проводит несколько тестов. Результатом каждого теста является набор интересных для нас параметров. Далее подробно рассмотрены все тесты [9].
1. Tseq ( Class = i800 ) - тест определения закона изменения ISN хоста.

Указатель Tseq определяет закон изменения ISN устройства. Описание закона изменения ISN хранится в переменной Class. В данном случае закон изменения ISN описан как i800 (Increment 800). Это означает, что каждое последующее значение ISN на 800 больше, чем предыдущее.
2. T1(DF=N%W=C000|EF2A%ACK=S++%Flags=AS%Ops=MNWNNT) - тест определения TCP-опций.

В данном тесте на открытый порт устройства посылается SYN-пакет с набором TCP-опций. В скобках записаны параметры, возвращаемые в ответе на посланный SYN-пакет:

DF = N - состояние флага DontFragment в IP-заголовке ответа (N, т.е. 0)

W = C000|EF2A - значение поля Window в TCP-заголовке ответа (C000 либо EF2A)

ACK = S++ - значение поля ACK в TCP-заголовке ответа (S++, т.е. посланный хостом ISN+1)

Flags = AS - состояние флагов в TCP-заголовке ответа (должны быть установлены флаги ACK (A) и SYN (S))

Ops = MNWNNT - набор TCP-опций (учитывается наличие опций и порядок их следования), указанных в TCP-заголовке ответа:

  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
главная страница