Докладчики: Кирилл Кулаков, Михаил Крышень, Андрей Ананьин Организация: Петрозаводский государственный университет, каф. Информатики и математического обеспечения Руководители проекта: Юрий Анатольевич Богоявленский (зав. каф., доцент, к.т.н.) Дмитрий Жоржевич Корзун (ст. преп., к.ф.-м.н., инструктор) Система идентификации событий работы протоколов при обмене данными между двумя сетевыми ЭВМ DaCoPAn Analyzer 1
Система DaCoPAn Analyzer: Идентификация событий работы протоколов при обмене данными между сетевыми ЭВМ. Представление данных в формате XML Разработана для совместного использования с системой DaCoPAn Animator ПО для разработки 2
tcpdump analyzer animator DaCoPAn Analyzer Проект DaCoPAn 3
Научные исследования: Удобное представление событий при работе сетевых протоколов Использование файла событий для обработки данных сетевого трафика Образование: Преподавание сетевых технологий Пробный трансграничный студенческий проект Технология производства ПО: Технология трансграничной разработки программного продукта Область применения 4
ПО для обучения и исследования Стандарты ТППО Коллективная работа Распределенная трансграничная разработка ПО (Хельсинкский университет) Кросс-платформенные и переносимые технологии Задачи 5
Проект по разработке реального ПО Консольное приложение Удобство использования Соответствие STD Интернет Работа с реальными данными Концепция 6
Предметная область Анализ взаимодействия двух сетевых ЭВМ Протоколы обмена данными Исходные данные в виде бинарных файлов утилиты tcpdump (WinDump) Анализ заголовков пакетов Поиск соответствующих событий для каждого пакета Обработка нестандартных ситуаций 7
tcpdump Message mapper Events calculator Log reader PEF writer PEF file Получение двух файлов tcpdump на двух компьютерах. Чтение каждого файла tcpdump. Поиск соответствующих пакетов протоколов и объединение пакетов в один список. Преобразование последовательности пакетов в последовательность событий, вычисление переменных протоколов и дополнительных событий. Запись последовательности сообщений в файл в формате PEF. Получен файл событий протоколов. Архитектура 8
Вывод tcpdump 17:13: iota.cs.prv.dcs > zeta.cs.karelia.ru.ftp: tcp 0 (DF) 17:13: zeta.cs.karelia.ru.ftp > iota.cs.prv.dcs: tcp 0 (DF) 17:13: iota.cs.prv.dcs > zeta.cs.karelia.ru.ftp: tcp 0 (DF) 17:13: zeta.cs.karelia.ru.ftp > iota.cs.prv.dcs: tcp 51 (DF) 17:13: iota.cs.prv.dcs > zeta.cs.karelia.ru.ftp: tcp 0 (DF) [tos 0x10] 17:13: iota.cs.prv.dcs > zeta.cs.karelia.ru.ftp: tcp 14 (DF) [tos 0x10] 17:13: zeta.cs.karelia.ru.ftp > iota.cs.prv.dcs: tcp 0 (DF) 17:13: zeta.cs.karelia.ru.ftp > iota.cs.prv.dcs: tcp 34 (DF) 17:13: iota.cs.prv.dcs > zeta.cs.karelia.ru.ftp: tcp 0 (DF) [tos 0x10] 17:13: iota.cs.prv.dcs > zeta.cs.karelia.ru.ftp: tcp 15 (DF) [tos 0x10] 17:13: zeta.cs.karelia.ru.ftp > iota.cs.prv.dcs: tcp 0 (DF) 17:13: zeta.cs.karelia.ru.ftp > iota.cs.prv.dcs: tcp 33 (DF) 17:13: iota.cs.prv.dcs > zeta.cs.karelia.ru.ftp: tcp 0 (DF) [tos 0x10] 17:13: iota.cs.prv.dcs > zeta.cs.karelia.ru.ftp: tcp 0 (DF) 17:13: zeta.cs.karelia.ru.ftp > iota.cs.prv.dcs: tcp 0 (DF) 17:13: iota.cs.prv.dcs > zeta.cs.karelia.ru.ftp: tcp 0 (DF) 17:13: zeta.cs.karelia.ru.ftp > iota.cs.prv.dcs: tcp 51 (DF) 17:13: iota.cs.prv.dcs > zeta.cs.karelia.ru.ftp: tcp 0 (DF) [tos 0x10] 17:13: iota.cs.prv.dcs > zeta.cs.karelia.ru.ftp: tcp 14 (DF) [tos 0x10] 17:13: zeta.cs.karelia.ru.ftp > iota.cs.prv.dcs: tcp 0 (DF) 17:13: zeta.cs.karelia.ru.ftp > iota.cs.prv.dcs: tcp 34 (DF) 17:13: iota.cs.prv.dcs > zeta.cs.karelia.ru.ftp: tcp 0 (DF) [tos 0x10] 17:13: iota.cs.prv.dcs > zeta.cs.karelia.ru.ftp: tcp 15 (DF) [tos 0x10] 17:13: zeta.cs.karelia.ru.ftp > iota.cs.prv.dcs: tcp 0 (DF) 17:13: zeta.cs.karelia.ru.ftp > iota.cs.prv.dcs: tcp 33 (DF) 17:13: iota.cs.prv.dcs > zeta.cs.karelia.ru.ftp: tcp 0 (DF) [tos 0x10] tcpdump log 1 tcpdump log 2 9
Файл событий протоколов
Расширяемый формат в стандарте XML, описанный DTD Информация о структуре сети, используемых протоколах (многоуровневая модель), данные сетевого трафика в виде списка событий Структура файла Список сетевых ЭВМ Список соединений Список потоков данных Список протоколов по уровням Список переменных протоколов (поля и вычисляемые переменные) Список событий протоколов (отправка, получение, потеря сообщения) Файл событий протоколов 11
Алгоритмы Поиск соответствующих друг другу пакетов в двух файлах tcpdump Определение потерянных пакетов Вычисление переменных протоколов Преобразование последовательности пакетов в последовательность событий: Дефрагментация Построение дерева инкапсуляции 12
Структуры данных Списковая структура для представления и обработки исходных tcpdump файлов Списковая структура для представления событий протоколов Элемент списка 13
Структуры данных Представление фрагментов в списке событий 14
Расписание проекта 15
Команда Заказчик: Маркку Койо Руководители проекта: Ю.А. Богоявленский Д. Ж. Корзун (инструктор) Разработчики: К.А. Кулаков, М.А. Крышень, А.Ю. Сало, А.В. Ананьин, В. А. Суриков 16
Инструменты Переносимость: ANSI C, и стандарт POSIX Microsoft Visual C++ Моделирование: UML – разработка модели прецедентов Командная работа: CVS репозиторий, Web-сайт проекта, форум, Метрики проекта: SCLC – подсчет количества строк исходного кода Gantt Project – расписание проекта Инструменты разработки: automake, autoconf, WinPcap, libpcap, WinDump, tcpdump Служебные программы и шаблоны документов, предоставленные университетом Хельсинки 17
27 модулей 111 подпрограмм Размер артефактов 18
Тестирование Тестирование блоков: Автоматизированная система тестирования (automake) Интеграционное тестирование: Тестирование программы Analyzer Совместное тестирование программ Analyzer и Animator Проверка требований: На основе сценариев tcpdump-файлы, предоставленные заказчиком и реальные данные Строки кода тестов:1416 Тесты блоков:18 Интеграционные тесты:78 Проверочные тесты:9 19
Возможности Поддержка двух сетевых ЭВМ Работа с реальными данными Поддержка протоколов ARP, IP, UDP, TCP, FTP, DNS, HTTP Восстановление данных прикладного уровня из сегментов транспортного уровня Возможность задания номеров портов для протоколов прикладного уровня Расширяемость при добавлении новых протоколов Проверка соответствия времени на двух сетевых ЭВМ и возможность задания поправки 20
Технологии Microsoft Переносимое приложение (Windows и UNIX) Реализация на языке С (ANSI, POSIX) Windows версия реализована на платформе Microsoft Visual С++ Соответствие стандартам STD Интернет 21
Заключение Система анализа трафика, соответствующая стандартам STD Интернет Расширяемый формат для представления данных трафика Аспекты образования и подготовки специалистов Международные стандарты ТППО 22