РАЗРАБОТКА ПРОГРАММЫ ДЛЯ ВЫЯВЛЕНИЯ P2P – ТРАФИКА - Студенческий научный форум

IX Международная студенческая научная конференция Студенческий научный форум - 2017

РАЗРАБОТКА ПРОГРАММЫ ДЛЯ ВЫЯВЛЕНИЯ P2P – ТРАФИКА

Пескова О.Ю. 1, Брилевский И.В. 1
1ИТА ЮФУ
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
Введение

На сегодняшний день доля p2p трафика в глобальных сетях превысила показатель в 70%. Данный вид подключений обеспечивает достаточно высокую анонимность и защиту подключения, в связи с чем часто используется в противоправных действиях, что может потребовать его обнаружения или же блокировки.

Постановка задачи

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

  1. Найти или определить способы обнаружения данного вида трафика.

  2. Проанализировать имеющиеся способы.

  3. Изучить преимущества и недостатки каждого способа.

  4. Выбрать наиболее подходящий способ или же составить свой, на основе изученных.

  5. Подробно изучить выбранный способ обнаружения p2p трафика.

  6. Составить список технологий, необходимых для осуществления данного метода.

  7. Сделать алгоритм работы программы.

  8. Написание программы.

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

Обзор технологии P2P

P2P – одноранговая сеть это вид компьютерной сети, которая строится на равноправии участников соединения. Как правило, в таких сетях нет центрального узла, который использовался бы для передачи сообщений или обмена данными между клиентами. В таком случае одновременно каждый узел является и клиентом и сервером, а организация сети подомным образом позволяет сохранить её работоспособность при любом количестве доступных узлов. Типовая топология P2P сети представлена на рисунке 1. Участников сети называют пирами от англ. (peer).

Архитектура P2P является распределённой и децентрализованной. Однако, это не отменяет того факта, что к ней не могут быть подключены некоторые серверы, например сервер, выполняющий функции авторизации клиентов, а значит реальные возможности узлов сети могут сильно отличаться. В таком случае, сеть называют частично децентрализованной.

Рисунок 1 – Типовая топология p2p.

Области применения технологии p2p

  1. Пиринговая файлообменная сеть. Процесс обмена файлами при этом происходит следующим образом. Пусть у нас есть 4 пользователя Алиса, Боб, Синди и Мэлори. Участники сети загружают на своих компьютерах файлы в специальную папку, доступную другим пользователям. После чего Алиса хочет скачать фильм, с помощью специальной программы она делает запрос на скачивание этого файла, программы ищет этот файл на компьютерах других участников сети и находит его у Боба и Мэлори, после чего производится скачивание частей этого файла одновременно у обоих источников, а целостность этих частей проверяется по контрольным суммам. В этом способе применения можно столкнуться с такой особенностью p2p сети, что чем больше участников будет в сети, тем качественнее и быстрее будет соединение между её участниками во время загрузки, поскольку данная сеть децентрализованная и пользователи жертвуют часть своих вычислительных ресурсов на поддержание работы сети.

  2. Пиринговая сеть распределённых вычислений. Пиринговые вычислительные сети применяются во многих областях деятельности, начиная от научных вычислений, заканчивая добычей криптовалют. Суть этого метода сводится к распараллеливанию задачи вычисления между всеми клиентами сети, что в конечном итоге позволяет добится вычислений даже более быстрых, чем на суперкомпьютерах.

  3. Пиринговые платёжные системы. Относительно новый способ применения пиринговых сетей, позволяющий устроить обмен валют на основе пиринговых соединений. В данном случае валютой является её цифровой эквивалент, а его обмен происходит по пиринговой сети с высоким уровнем шифрования.

  4. Обмен сообщениями. Наряду с обменом файлами пиринговые сети позволяют обмениваться мгновенными сообщениями по различным каналам связи вплоть до радиоканалов (wifi). Как правило такие сети децентрализованы и участники обмениваются сообщениями в соответствии с присвоенными каждому участнику идентификационному номеру.

  5. Интернет телефония. Ещё один пример популярной службы построенной на основе p2p подключений. Известная служба Skype охватывает более 100 млн. пользователей по всему миру построена в архитектуре p2p.

  6. Групповая работа. Способ применения p2p отдалённо похожий на файлообменную сеть и сеть обмена сообщений, сочетающий в себе их функционал. Такие сети предоставляются пользователям в качестве интернет туннелей, которые создают защищённые пространства для обмена сообщениями, документами, ссылками, а также помогают осуществлять поиск информации.

Особенности p2p сетей:

  1. Высокая отказоустойчивость. Децентрализованность узлов сети позволяет сети поддерживать функционирование даже при потере нескольких узлов. Иными словами, сеть может функционировать до тех пор, пока заданному узлу будет куда отправлять сообщения.

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

  3. Увеличение скорости передачи данных. Эта особенность проистекает из предыдущей, так как увеличивается число пиров, то и растёт количество возможных маршрутов доставки пакета, а также количество источников, откуда можно взять искомый файл, а значит увеличивается скорость передачи данных.

  4. Сложность в защите. Защитить большую масштабируемую p2p сеть гораздо сложнее, чем аналогичную, но с сервером, в следствие чего приходится использовать такие ресурсоёмкие методы, как криптография.

Отслеживание и блокировка p2p.

Предоставленные выше области применения, а также особенности пиринговых сетей позволяют сделать предположение, что p2p сети могут использоваться повсеместно, начиная от научных исследований, заканчивая незаконной деятельностью.

Так например, всемирно известная сеть туннелей Tor, используется торговцами запрещёнными веществами, оружием, а также другими людьми, ведущими незаконную деятельность. Файлообменные пиринговые сети используются для обмена нелицензионной музыкой, фильмами и другой интеллектуальной собственностью. Всё это приводит к искам со стороны властей, правообладателей и других жертв, людей, использующих p2p сети для незаконной деятельности и вынуждает специальные органы искать методы борьбы с интернет деятельностью этих людей.

Как правило, уничтожить p2p сеть практически невозможно, так как это потребует уничтожение абсолютно всех узлов, входящих в эту сеть и данных, хранящихся на них. Поэтому целесообразнее будет использовать блокировку p2p соединений, а для этого необходимо отследить использование данного способа подключения кем-либо из пользователей сети.

Методы идентификации пользователей P2P

Рассмотрим несколько известных на сегодняшний момент способов идентификации пользователей P2P сетей:

  1. Метод анализа портов.

Это самый простой способ, основанный на отслеживании приложений, использующих, стандартные для P2P приложений порты транспортного уровня. Суть метода сводится к тому, что нам требуется анализировать на какой порт идёт перехваченный пакет, если его номер соответствует номеру порта из базы, то можно считать всю коммуникацию этих адресов p2p трафиком.

Для примера, приведём список распространённых пиринговых приложений и портов, используемых ими:

  • Limewire: 6346 TCP/UDP

  • Ares: 32285 TCP/UDP

  • Edonkey: 4661 TCP/UDP, 4662 TCP

  • Emule: 4662 TCP, 4672 UDP

  1. Анализ протоколов.

Особенность этого метода состоит в том, что мы рассматриваем перехваченные пакеты трафика и ищем в них определённые паттерны p2p соединения. После чего делаем вывод, является ли данный трафик пиринговым или нет.

Существует несколько паттернов, которые доказаны и выведены из [9], они определяются на основе эвристических алгоритмов, рассмотрим их:

  1.  
    1. Анализ пар IP источник – цель.

Суть в том, что мы перехватываем пакеты в течение некоторого промежутка времени, а затем начинаем исследовать. Если пара IP использует оба протокола и TCP и UDP для обмена данными на протяжении всего времени общения, то их трафик можно пометить как p2p.

  1.  
    1. Анализ пар IP, Port.

Мы проверяем все IP адреса и порты источника и цели. Если количество подключенных адресов равно или примерно равно количеству используемых портов, то мы помечаем это соединение как p2p. В противовес этому можно сказать, что для тех пар в которых разница между числом используемых портов и числом используемых адресов больше 10ти, то мы можем пометить это соединение, как не P2P. Стоит отметить, что для большей эффективности можно использовать оба эти метода одновременно.

  1. Анализ сигнатур пакетов уровня приложений.

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

  1. Анализ поведения трафика.

Данный метод является расширенным анализом потенциального p2p трафика из предыдущей части и является набором трёх эвристических алгоритмов, взятых из [11]. Суть метода в том, что мы рассматриваем перехваченный трафик с трёх сторон: социальной, функциональной и стороны приложений. Для каждой стороны мы делаем соответствующие выводы при анализе имеющегося трафика.

Так для социальной стороны мы исследуем популярность хостов, а именно, количество их целевых IP. Если наш исследуемый адрес имеет несколько различных IP адресов назначения и чем больше их число, тем выше вероятность, что это p2p соединение.

Для функциональной стороны мы исследуем, какую роль исполняет исследуемый хост: является ли он только сервером, только клиентом или и тем и другим. В сущности, мы смотрим на количество используемых портов в соединении. Если Источник использует два или чуть более портов, то скорее всего он является сервером. Если он использует один порт источника, то скорее всего, если используется TCP, то это веб сервер или сервер чата. Если используется UDP, то это может быть один из серверов управления сетью. В иных случаях, то есть, когда в подключении используется множество портов источника, мы делаем вывод что это клиент, так как информацию они получают от большого числа других пиров.

Сторона уровня приложений. Здесь мы рассматриваем два способа: рекурсивное обнаружение и подключения без полезной нагрузки. Оба метода используются одновременно, для обнаружения p2p подключений. В первом способе мы используем особенность функционирования некоторых узлов. Так например почтовый или dns серверы используют для коммуникации одинаковые номера портов, как для источника, так и для целевого адреса, для многих подключений. Или например факт того, что специальные вредоносные приложения вроде SpamAssassin подключаются только к почтовым серверам. Во втором способе мы отталкиваемся от особенности p2p в том, что чем больше подключений без полезной нагрузки делается, тем больше шанс что это пиринговое соединение. Так как именно в этом типе соединений клиент может покинуть сеть, не отправляя служебное сообщение об этом. В то время как другие клиенты безуспешно пытаются к нему подключиться.

Сравнение методов

Каждый метод с определённой долей вероятности позволяет обнаружить факт p2p соединения. Метод анализа портов является наименее ресурсоёмким, так как не требует никакого сложного анализа, а только сравнение в соответствии с заданными данными, но в то же время он является наименее точным, поскольку номера портов могут быть использованы абсолютно разные. Метод анализа поведения траффика достаточно сложен как в реализации, так и в использовании, требуются большие мощности, чтобы позволять исследовать пакеты, не снижая скорость потока, а кроме того, его алгоритмы требуют использования вкупе с другими методами, для обеспечения высшей вероятности обнаружения p2p трафика. Метод анализа протоколов, представляет из себя золотую середину, он обеспечивает достаточную вероятность обнаружения p2p трафика, кроме того позволяет обнаружить «неизвестный» p2p траффик и не является столь сложным в реализации, не требует высоких вычислительных мощностей. Помимо этого данный способ можно углубить, используя более современные паттерны для обнаружения p2p трафика. Достаточно хорошим является метод анализа сигнатур пакетов уровня приложений. Он не требует сильных вычислительных мощностей, а вместе с этим обеспечивает высокую степень обнаружения p2p траффика, но он позволяет обнаружить только «известный» траффик, который уже внесён в базу паттернов.

Заключение

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

Список использованных источников
  •  
    1. Securitylab обнаружение P2P трафика [Электронный ресурс] – Электрон. Текстовые дан. - Режим доступа: URL: http://www.securitylab.ru/analytics/240496.php (дата доступа: 29.12.2016г.)

    2. Symantec identifying P2P users using traffic analysis [Электронный ресурс] – Электрон. Текстовые дан. - Режим доступа: URL: https://www.symantec.com/connect/articles/identifying-p2p-users-using-traffic-analysis (дата доступа: 29.12.2016г.)

    3. Stackexchange how to identify P2P [Электронный ресурс] – Электрон. Текстовые дан. – Режим доступа: URL: http://security.stackexchange.com/questions/17228/how-to-identify-p2p-on-network (дата доступа: 29.12.2016г.)

    4. Бредихин, С.В. Диагностика p2p- Активности на основе анализа потоков NetFlow [Текст]/ С.В. Брежихин, Н.Г. Щербакова. – Н.: изд-во инс-та выч. Математики и математической геофизики СО РАН, 2011. – Сc. 40-51.

    5. Constantinou, F. Identifying Known and Unknown Peer-to-Peer traffic [Text]/ F. Constantinou, P. Mavrommatis. – MIT. – 9 p.

    6. Zhang, M. Analysis of UDP traffic usage on internet backbone links [Text]/ M. Zhang, M. Dusi, W. John, C. Chen. – 2009. – 2p.

    7. Mingjiang, Y. Identify P2P traffic by inspecting data transfer behavior [Text]/ Y. Mingjiang, W. Jianping, X. Ke, et al. – Pp. 131-143

    8. Dodlani, P. Detection of peer to peer applications [Text]/ P. Dodlani. – 2008. – 5p.

    9. Karagiannis, T. Transport layer identification of P2P traffic [Text]/ T. Karagiannis, A. Broido, M. Faloursos, et al. – 14p.

    10. Khan, H. Wirespeed, privacy-preserving P2P traffic detection on commodity switches [Text]/ H. Khan, A. Khayam, L. Golubchik, et al. – 12p.

    11. Karagiannis, T. BLINC: multilevel traffic classification in the dark. [Text]/ T. Karagiannis, K. Papagiannaki, M. Faloutsos. – SIGCOMM Comput. Commun. Rev. – 2005. – Pp. 229-240.

Просмотров работы: 357