Методы получения дополнительных сведений при анализе протоколов и журналов. Методические указания к выполнению лабораторных работ
.pdf
МЕТОДЫ ПОЛУЧЕНИЯ ДОПОЛНИТЕЛЬНЫХ СВЕДЕНИЙ ПРИ АНАЛИЗЕ ПРОТОКОЛОВ И ЖУРНАЛОВ
Методические указания к выполнению лабораторных работ
Йошкар-Ола ПГТУ
2015
1
УДК 004.4 ББК 32.973.202
М 54
Рецензент:
доцент кафедры радиотехники и связи А. В. Зуев
Печатается по решению редакционно-издательского центра ПГТУ
Методы получения дополнительных сведений при анализе
М54 протоколов и журналов: методические указания к выполнению лабораторных работ / сост. А. А. Кречетов. – Йошкар-Ола: Поволжский государственный технологический университет, 2015.
– 36 с.
Предложены лабораторные работы, целью которых является углубленное изучение особенностей работы протоколов ftp, http и ssl. Представлены материалы, необходимые для освоения курса «Методы получения дополнительных сведений при анализе протоколов и журналов».
Для студентов специальностей 230101, 230105, 090105, а также для тех, кто интересуется вопросами информационной безопасности.
УДК 004.4 ББК 32.973.202
© Поволжский государственный технологический университет, 2015
2
|
СОДЕРЖАНИЕ |
|
ВВЕДЕНИЕ ................................................................................................... |
4 |
|
1. |
Изучение утилит стека TCP/IP................................................................. |
5 |
2. |
Написание простейшей программы клиент-сервер ............................... |
7 |
3. |
Написание программы для получения файла по протоколу FTP ......... |
8 |
4. |
Написание простейшей программы клиент-сервер ssl.......................... |
9 |
5. |
Написание программы для получения файла по протоколу HTTP ..... |
10 |
ПРИЛОЖЕНИЕ 1. Описание выражний фильтров tcpdump .................... |
11 |
|
ПРИЛОЖЕНИЕ 2. Основы работы с OpenSSL ......................................... |
16 |
|
СПИСОК ЛИТЕРАТУРЫ ............................................................................ |
33 |
|
3
ВВЕДЕНИЕ
Представленные в этом методическом пособии лабораторные работы предлагается выполнять в UNIX-подобной среде для Microsoft Windws - cygwin.
Cygwin – свободно распространяемое программное обеспечение остоит из двух частей: динамически подключаемая библиотека (DLL) cygwin1.dll, которая обеспечивает совместимость API и реализует значительную часть стандарта POSIX, и огромная коллекция приложений, которые обеспечивают привычную среду UNIX, включая Unix shell. Использование этих средств позволяет изучать кроссплатформенные методы использования вычислительных систем. В настоящее время Cygwin разрабатывается сотрудниками Red Hat, NetApp и множеством добровольцев (родоночальником проекта является Стив Чемберлен, программист Cygnus Solutions).
В качестве языка программрования для выполнения лабораторных работ рекомендуется язык C/C++.
Документы, содержащие описания сетевых протоколов – rfc (Request for Comments), доступны на www.ietf.org (англоязычная версия), наиболее поулярные документы имеют руский перевод и находятся на сайте rfc2.ru.
Разработчик openssl – www.openssl.org. В приложении 1
использутся материалы из статьии Всеволода Стахова «Основы работы с OpenSSL», расположенной на сайте www.nixp.ru.
При сдаче лабораторной работы, предусматривающей написание программы, необходимо сдать исходные тексты программ, отчет в формате Microsoft Word.
4
1. Изучение утилит стека TCP/IP
Цель работы
Изучение методов диагностики сети базовыми средствами стека протоколов TCP/IP операционной системы Windows. Ознакомление с работой утилит Wireshark (прилоение 1) и netcat.
Краткие теоретические сведения
В1984 году фирма «IBM» создала простой программный интерфейс (API) для сетей, названный (Network Basic Input/Output System) NetBIOS или Сетевая Базовая Система Ввода/Вывода. API NetBIOS предоставлял простой метод доступа и обмена данными различным приложениям, работающим в сети. В BIOS каждый вызов низкого уровня поступает к конкретному устройству, установленному на данном компьютере, и не нуждается в каких-либо особых инструкциях по методу доступа к данному устройству. Необходим транспортный протокол низкого уровня для передачи запросов от одного компьютера к другому.
В1985 году IBM реализовала протокол данного типа, в который был включен NetBIOS API под названием NetBIO Extended User Interface (NetBEUI). NetBEUI был разработан для малых локальных сетей (LANs)
ипозволял отдельному компьютеру иметь имя не более чем 15 символов при условии, что оно не занято. Под понятием малая сеть мы понимаем сеть с числом компьютеров, не превышающих 255, что считалось достаточным в 1985 г.
Протокол приобрел большую популярность при работе с сетевыми приложениями, включая те, которые использовались в Windows. Позже появился NetBIOS поверх протокола IPX фирмы Novell. Тем не менее, главными сетевыми протоколами развивающегося сообщества Internet стали TCP/IP UDP/IP, поэтому возникла потребность в реализации NetBEUI поверх этих протоколов [1].
Вскоре после этого Microsoft и Intel создали первый вариант протокола разделения файлов SMB/CIFS, названный Core Protocol. Microsoft и Intel выбрали NetBIOS API для доставки пакетов высшего уровня CIFS. Так CIFS, использующий NetBIOS поверх TCP, стал стандартным механизмом разделения файлов по сети. К первоначальному протоколу Core Protocol было добавлено множество возможностей.
Кроме CIFS операционные системы Windows содержат и стандартные средства для работы с TCP/IP. Поэтому набор сетевых
5
утилит содержит как утилиты для работы с NetBIOS (net, nbtstat), так и утилиты для работы со стеком протоколов TCP/IP (arp, route, netstat и т.д.), являющиеся аналогами утилит ОС Unix.
Подготовка и порядок выполнения работы
Внимательно прочитать описания утилит netstat, nbtstat, net, arp, route, ping, tracert, telnet, ipconfig. (в справке Windows).
Ознакомиться с описанием утилит Wireshark и netcat.
Порядок сдачи работы
1.Начать сбор пакетов программой Wireshark, если запрашиваемая утилита осуществляет обмен по сети, с установкой фильтра для отсева лишних.
2.Для демонстрации работы утилиты telnet запустить программу netcat (nc) на прослушивание порта на другом компьютере.
3.Продемонстрировать работу одной из утилит ping, tracrt, arp, netstat, nbtstat, telnet, ipconfig.
Содержание отчета
Отчѐт должен содержать протокол работы утилиты и отредактированный протокол анализатора пакетов.
Контрольные вопросы
1.Обоснуйте выбор вашей утилиты.
2.Осуществляет данная утилита какой-либо обмен по сети?
Если да, то показать пакеты посылаемые или принимаемые ею в протоколе анализатора пакетов.
3. Какие ошибки в работе сети можно обнаружить с помощью данной утилиты?
6
2. Написание простейшей программы клиент-сервер
Написать консольные программу-клиент и программу-сервер, осуществляющую обмен по соединению TCP/IP данными.
Цель работы
Ознакомление с процедурами установки и завершения соединения
TCP/IP.
Подготовка и порядок выполнения работы
Ознакомиться с основными системными вызовами стека TCP/IP: socket, bind, listen, accept, connect, send, recv, gethostbyname и системным вызовом select, используемом в данной работе для сихронизации ввода/вывода и обмена по соединению TCP [2].
При выполнении работы рекомендуется использовать утилиту netcat, которая может выступать как в роли клиента, так и в роли сервера. Набор системных вызовов клиента socket->connect->select-
>recv/send, сервера –socket->bind->listen->accept->select->recv/send.
Содержание отчета
Краткие теоретические сведения, исходные тексты программ, протокол работы (допускаются скриншоты) и отредактированный (для наглядности и кратости) протокол анализатора пакетов.
Контрольные вопросы
1.Опишите назначение и синтаксис системных вызовов.
2.Расскажите соответствие пакетов в протоколе анализатора системным вызовам.
3.Какие RFC вы использовали для написания программ?
4.Какие библиотеки были использованы?
7
3. Написание программы
для получения файла по протоколу FTP
Цель работы
Ознакомление с работой протокола FTP. Дополнительная задача: ознакомление с использованием регулярных выражений в программах (в частности на языке C). Программа должна запускаться с командной строки. Количество параметров – от одного до трѐх:
<имя-программы> URL [name [password]]
Режим работы сервера – пассивный или обычный – по выбору преподавателя. Протокол обмена по управляющему каналу должен выводиться на stdout.
Подготовка и порядок выполнения работы
Прочитать описание протокола [3]. Допускается просмотреть протокол анализатора при работе стандартного клиента. При отладке регулярных выражений рекомендуется использовать программу pcretest.exe. Написать программу.
Содержание отчета
Краткие теоретические сведения, исходные тексты программ, протокол работы программы (выводящийся на экран).
Контрольные вопросы
1.Опишите синтаксис и назначение команд протокола.
2.Опишите синтаксис используемых регулярных выражений.
3.Объясните диаграммы состояний протокола.
4.Назовите документ, в котором описан протокол FTP.
5.Дайте определение регулярному выражению.
6.Поясните, для чего в вашей программе использовались регулярные выражения.
8
4. Написание простейшей программы клиент-сервер ssl
Цель работы
Ознакомление с использованием библиотек защиты и сертификации данных ssl и программой обслуживания сертификатов и шифрования/дешифрования OpenSSL. Реализовать программу «клиент» и программу «сервер» (как в лабораторной работе № 2), но в качестве транспорта использовать ssl.
Подготовка и порядок выполнения работы
1.Прочитать описание программирования ssl сокетов (приложение 2) и описание openssl (www.openssl.org).
2.Сгенерировать ключ и самоподписанный CACertifacate.
3.Создать подписанные этим сертификатом сертификаты клиента
исервера. Должна быть предусмотрена взаимная проверка сертификатов клиентом и сервером.
4.Проверить работу на командах s_client и s_server.
5.Заменить тестовые средства s_client и s_server на собственные программы.
6.Оформить отчѐт (в отчѐте должны присутствовать распечатки сертификатов по команде x509).
Содержание отчета
Краткие теоретические сведения, исходные тексты программ, протокол работы программ (допускается скриншоты), распечатки сертификатов (командой x509).
Контрольные вопросы
1.В каких случаях необходимо использовать OpenSSL?
2.Какие сертификаты необходимо создать для работы программы?
3.Опишите процедуру создания сертификатов.
4.Опишите схему построения центра выдачи сертификатов.
9
5. Написание программы для получения файла по протоколу HTTP
Цель работы
Ознакомление с протоколом HTTP и методами аутентификации, используемыми в HTTP. Написание программы, являющейся простым недиалоговым HTTP-агентом. Программа должна запускаться с командной строки. Количество параметров – от одного до четырѐх:
<имя-программы> URL [name [password [realm]]]
Метод аутентификации (конфигурируется на сервере) – basic, digest или отсутствие (анонимный доступ) – выбираются преподавателем при демонстрации работы. При задании параметра realm (область) проверять его совпадение с параметром из WWW-Authenticate.
Подготовка и порядок выполнения работы
Прочитать описание протокола [4]. Написать программу.
Содержание отчета
Краткие теоретические сведения, исходные тексты программ, протокол работы программы (выводящийся на экран).
Контрольные вопросы
1.Опишите синтаксис и назначение команд программы.
2.Назовите документ, в котором описан протокол HTTP.
3.Расскажите об используемом в вашей программе методе аутентификации.
10
