Материал: Разработка программы для генерации сетевого трафика с заданными параметрами

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

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

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

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

Диаграмма. 1 Классификация по типу используемых средств

Диаграмма. 2 Классификация по источнику данных для создания пакетов

Глава 2. Описание выбранных методов, моделей, алгоритмов решения задач


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

2.1 Метод генерации запросов

В ситуации необходимости полной симуляции поведения пользователя, приходится оперировать уровнем выше - повторять не трафик, исходящий от пользователя во время его работы, а повторение действий самого пользователя. Что обычный пользователь делает Электронный ресурс: можно выразить как «переходить от сайта к сайту по ссылкам» - а это протокол HTTP, являющийся базой для WWW. В дополнение к этому необходимо отметить, что, помимо переходов по ссылкам, пользователь так же просматривает контент на конкретной странице (читает текст, смотрит картинки/видео), или заполняет некоторую информацию (формы, сообщения, посты). Соответственно, обобщённо, получается следующий список действий пользователя:

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

.         Просмотр страницы - в это время с точки зрения сетевого обмена не происходит никаких действий = задержка

.         Взаимодействие со страницей - здесь может быть, как переход на другую страницу, отправка формы так и запуск на выполнение определённого скрипта. В первых двух случаях это ничто иное как обращение к серверу по определённому url, с параметрами. В третьем - исполнение jsскрипта происходит локально, в ином случае его можно классифицировать как отправка формы (= стандартный REST запрос)

В результате получается, что с точки зрения сетевого обмена все действия пользователя можно подразделить на два типа: отправка REST запроса по url адресу и ожидание (простой). Как симулировать второе действие - очевидно. С первым чуть сложнее, но тоже достаточно просто если представить, что составление запроса, его отправку на веб-сервер и последующую обработку ответа предоставить браузеру - такому же, каким пользуется среднестатистический пользователь.

В результате приведённого анализа появилась реализованная концепция полной загрузки веб-страниц браузером. Но существовали ограничения:

.         Необходима гибкость в передаче адреса, с которого производить загрузку - должно быть предоставляться открытое API

.         Данное средство (браузер) должно использоваться большим количеством пользователей

.         Легковесность, чтобы была возможность запускать множество потоков (= загрузок) параллельно.

Распределение браузеров по популярности использования на ПК за период с Января по Март 2017 года представлена на рис. 4.

Рисунок 4. Распределение популярности браузеров за 01.17-03.17 [14]

Далее в таблице 2 приведены движки, на которых в данный момент базируются представленные (и некоторые другие, известные в России) браузеры. Отсортирован лист по убыванию процента аудитории, использующего браузеры на данном движке

Таблица. 2. Движки браузеров с процентом аудитории [14]

Движок

Браузеры

Процент аудитории

WebKit (позднее - Blink)

Chrome, Safari, Opera, Яндекс браузер

>68%

Gecko

Mozilla Firefox

14.88%

Trident

IE, Edge

13.48%



2.2 Создание модели поведения пользователя

2.2.1 Выбор ссылок

Рассмотрим логику поведения пользователей. То, как они попадают на ту или иную страницу:

.         Переход по ссылке, с одной страницы на другую

.         Использование поисковых систем

.         Прямой переход (например, из закладок в браузере)

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

.         Переход по ссылке с одной страницы на другую. Если существует такой переход, значит в HTMLкоде страницы существует соответствующий тэг. Таким образом, алгоритм действий таков: загрузка первой страницы, парсинг HTMLразметки, выбор всех тэгов-ссылок (<a>). Далее случайным образом выбор из получившегося списка ссылки, переход по ней и повторение действий с начала. Другой вариацией этого подхода, является переход по нескольким ссылкам на одной странице (симуляция возврата пользователя назад, и переход в другое место)

.         Использование поисковых систем. Подразумевается отправка пользователем запроса и переход по нескольким наиболее популярным ссылкам. С которыми, далее, возможен повторения сценария из пункта 1. В качестве основной поисковой системы был выбран Google - см. описание пакета google 1.9. в Python package Index [21], в связи с тем, что его использует практически 90% пользователей сети (Рис. 5) А так же у него есть функция отображения наиболее популярных, среди поисковых выдачей страниц. Два способа работы с поисковой системой:

Рисунок 5. Распределение использования поисковых систем пользователями ПК за последние три месяца [14]

.         Запрос вида site:<адрес_сайта> - в данном случае выбираются наиболее релевантные страницы на заданном сайте.       Задаётся список любых возможных запросов к поисковой системе, и с выдачей по каждому запросу идёт отдельная генерация (проход по первым N ссылкам из выдачи с возможностью углубления по каждой ссылке)

.         Прямой переход. Для реализации данного метода (а также желание не повторяться с предыдущими) было выбрано использование sitemaps (описание протокола [22]). Это, в основном, xml файл, предоставляемый большинством сайтов, в котором находится информация обо всех страницах сайтах и, зачастую, с проставленным приоритетом страниц (= популярностью среди пользователей). Соответственно из данного списка, определённым образом выбираются страницы для дальнейшего открытия. Механизм выбора - настраиваемый: случайным образом или последовательно.

 


2.2.2 Распределение времени ожидания

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

.         Константа

.         Равномерное

.         Нормальное (с обрезкой отрицательного конца)

Далее делается предположение, что существует два типа просмотра страницы пользователем:

.         Беглый, при котором пользователей определяет, стоит ли ему углубляться в изучение материала, или необходимо искать другой источник - происходит в течении нескольких секунд (редко превышает временной промежуток в 10-20 секунд) - при большом количестве сайтов и усреднении пользователей можно предположить нормальное распределение с математическим ожиданием в районе 10, и дисперсией около 3,5 (= график распределения выглядит как вытянутая колба)

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

Объединяя два упомянутых распределения - получается сумма нормальных распределений - новое распределение с 5ю параметрами. В программе реализована его упрощённый вид, с предположением что p = ½.

Сумму двух нормальных распределений с весами p и 1-p соответственно можно вычислить по формуле:


Далее было проведено исследование на реальных значениях, по данным ресурса WebStat [23] (которые создатели сайта выложил в открытом доступе). В их базе данных представлены значения - сколько времени пользователь находился на сайте, и сколько страниц он за этот временной промежуток просмотрел. Формат данных представлен в Таблице 3.

Таблица. 3. Часть статистики пользователей сайта web-stat.com [23]

Time

Visit Depth

Visit Duration (sec)

13/05/2017 10:09

1

3

13/05/2017 10:09

2

2

13/05/2017 10:09

2

10

13/05/2017 10:09

2

3

13/05/2017 10:09

1

2

13/05/2017 10:09

4

14

13/05/2017 10:09

1

38

13/05/2017 10:08

2

59

13/05/2017 10:08

2

28

13/05/2017 10:08

1

7

13/05/2017 10:08

1

34

13/05/2017 10:08

4

13

13/05/2017 10:08

1

75

13/05/2017 10:08

1

11

1

2


На Рисунках 6 и 7 представлено распределение времени на каждой странице и количество посещённых страниц пользователями. Статистика основана на данных по 8000 пользователям. Синие линии показывают реальные значения количества пользователей. Красные линии - усреднённые значения (в первом случае - полиноминально среднее, во втором - среднее). Данные усреднённые линии напоминаю экспоненциальное распределение. Подтверждение данной гипотезы на Рисунке 8. Синяя линия - распределения вероятностей для каждой секунды в промежутке от 1 до 50 - полученное путём деления количества пользователей, которые были на странице данное количество времени и делёное на общее количество пользователей.

Рисунок 6 Среднее время просмотра 1 страницы пользователём на сайте www.web-stat.com [23]

Рисунок 7 Количество посещённых страниц пользователями сайте www.web-stat.com [23]

Рисунок 8. Сравнение реального распределения времени на одной странице (с сайта www.web-stat.com [23]) с экспоненциальным распределением

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

Но статистические критерии схожести, например, критерий  описанный на Рисунке 9, показывают, что гипотеза о схожести не верна. Т.к. после вычисления значение  получилось 162499,3412 (при количестве степеней свободы = 50). Что отвергает гипотезу о схожести даже при самых высоких уровнях значимости.

Рисунок 9 Описание способа вычисления критерия хи-квадрат (#"896971.files/image012.gif"> (количество степеней свободы - 20) = 1211,81087 - статистически нельзя говорить о схожести этих распределений.

Но эти две характеристик раздельные - т.е. возможно для одного сайта использовать различные распределения для времени ожидания и для количества страниц.

Рисунок 10. Сравнение реального и экспоненциального распределения (лямбда = 0.4) на количество просмотренных пользователем страниц сайта www.web-stat.com

Ещё вводится дополнительная особенность: режим обхода страниц в сети «бесконечный сёрфинг» - когда нет ограничений на количество открываемых страниц. Данный режим работает по следующему алгоритму:

.         Задаётся начальная ссылка, открывается и добавляется время ожидания;

.         Сбор с данной страницы всех активных ссылок;

.         Выбор из списка ссылок одну (случайным образом);

.         Переход по выбранной ссылке, ожидание;

.         Повторение п.2.

 


Выводы по второй главе


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

Глава 3. Выбор средств реализации программного продукта, проект/прототип программного продукта


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

Поэтому базовым технологическим стеком является:

1.       Python 3.4

.         PyGTK 3

.         WebKitGtk

В дополнении к нему, для обеспечения работы логгирования и сбора и отображения статистик:

1.       Rsyslog

2.       Logstash

3.       Elasticsearch 1.4

4.       Kibana 3.0

Вся функциональная часть системы разработана в модульном архитектурном подходе.

3.1 Описание модулей

Launcher

Модуль для запуска всей системы в целом. На вход принимает путь к конфигурационному файлу системы, в котором указано количество запускаемых генераторов, их имена и пути к конфигурационным файлам. По полученным данным этот модуль запускает генераторы, как отдельные процессы. Пример конфигурационного файла:

{

"time_to_live": 10000,

"processes": [

{

"name":"Yandex_catalog",

"config":"config/yandex_catalog.json"

},

{

"name":"Surfing",

"config":"config/surfing.json"

}

]

}

Generator

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

Пример конфигурационного файла:

{

“user_agen”: “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30”

“max_time_loading”: 50

"schemes": {

"fast_going": {

"page_generator": "site-scraping",

"time_between_page": {

"type": "uniform",

"low_boundary": 1,

"up_boundary": 5

},

"page_number":{

"type": "uniform",

"low_boundary": 1,

"up_boundary": 10

}

}

"sites":[

{

"type": "loaded_list",

"file_type": "xlsx",

"file_name": "support_files/sitelist.xlsx",

"worksheet":"List",

"column":"A",

"count_for_visit": 0,

"scheme": "fast_going"

}

]

}

Здесь необходимо ввести понятие «схема сайта» - будем подразумевать как JSON-объект, описывающий схему обхода некоторого количества сайтов (от одного и более), или описывающий метод бесконечного сёрфинга. Под каждую схему сайта создаётся отдельный поток. Одним общим окном для всех потоков, для симуляции графического отображения создаётся GTK окно.

Worker

Можно рассматривать как интерфейс. В общем случае подразумевает получение схемы сайта, и отвечает за его обработку, и генерацию последовательности ссылок и пауз. Затем отправляет полученные ссылки на Opener, и отвечает за корректную расстановку пауз. Имеет четыре наследника (во вложенном списке перечислены параметры для данной схемы сайта):

.         Infinity_surfing - задаётся начальная ссылка и распределение времени пауз между открытиями страниц. Далее до остановки переходит от страницы к другой странице, ссылка на которую находилось на предыдущей.

1.1.    file_type - расширения файла

.2.      file_name - относительный путь к файле

.3.      worksheet - имя листа, на котором находится список

.4.      column - имя колонки в которой находится список

.5.      count_for_visit - количество сайтов из списка для посещения. Если 0 - то бесконечно открывать сайты по-кругу

.6.      scheme - схема обхода (из листа schemes)

2.       Loaded_list - задаётся список сайтов (в текущем виде ожидает exel таблицу), и совершает последовательный обход сайтов из этого списка. Так же подразумевается открытие нескольких ссылок на каждом сайте

2.1.    url - начальный сайт, точка входа в сёрфинг

2.2.    scheme - схема обхода

3.       Usual_site - открытие одного сайта, для которого совершается обход в соответствии с заданной схемы

3.1.    url - сайт для обхода

3.2.    scheme - схема обхода

4.       Google Engine - задаётся список запросов (человеко-читаемых) к поисковой системе, количество сайтов для каждой выдачи и способ обхода каждого сайта из выдачи.

4.1.    queries - лист запросов к поисковой системе

4.2.    site_count - объект задающий распределение, определяющее количество сайтов из выдачи для посещения

4.3.    scheme - схема обхода сайта

Utils

Различные методы, которые используется в других модулях. Например: сбор ссылок со страницы сайта, отправка запроса к google и т.п.

Distribution

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

Параметры распределения задаются с помощью конфигурационного файла, являясь составной частью параметра «scheme». Пример конфигурации для распределения времени между загрузкой отдельных страниц:

"time_between_page": {

"type": "uniform",

"low_boundary": 1,

"up_boundary": 5

},

-        На данный момент реализованы все, указанные в п. 2.2 распределения: (в скобках указаны параметры для каждого распределения):

1.       Fix (value)

.         Uniform (low_boundary, up_boundary)

.         Positive-normal (M,D)

.         Dual-normal (M1,D1,M2,D2)

.         Exponential (L)

.         Custom (array)

Logger

Вывод в rsyslog статистик о том, какие страницы открывались, время между страницами, и количество страниц на сайте (найденных и открытых). Вывод информации о неисправностях и ошибках в работе.

Кофигурационный файл rsyslog:

:msg,startswith,"PRCSS" /var/log/prcss.log

:msg,startswith,"PRCSS" @@localhost:5544

:msg,startswith," PRCSS" /var/log/prcss.log

:msg,startswith," PRCSS" @@localhost:5544

Конфигурационный файл Logstash:

input {

tcp {

port => 5544

type => syslog

}

udp {

port => 5544

type => syslog

}

}{

if [type] == "syslog" {

grok {

overwrite => "message"

"message" => "^(?:<%{POSINT:syslog_pri}> ?)?%{SYSLOGTIMESTAMP:timestamp} %{IPORHOST:host} (?:%{PROG:program}(?:\[%{POSINT:pid}\])?:) ?PRCSS %{PROG:mess_type}%{GREEDYDATA:message}"

}

}

syslog_pri { }

date {

# season to taste for your own syslog format(s)

match => [ "timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss", "ISO8601" ]

}

}

}{

stdout {codec => rubydebug}

elasticsearch {

host => localhost

protocol => http

}

}

Конфигурационный файл Elasticsearch:

node.local: true.cors.allow-origin: "/.*/".cors.enabled: true

3.2 Описание работы журналирования и сбора статистик

Диаграмма 3. Схема работы логирования и сбора статистик



Рисунок 11. Логи работы

Рисунок12. Отображение статистик работы системы

На диаграмме 3 представлена последовательность работы элементов подсистемы журналирования и сбора статистик. На Рисунках 11 и 12 представлен пример результата работы системы в целом, выраженный в логах и графиков статистик.

Выводы по третьей главе


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

Заключение


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

В рамках выпускной квалификационной работы был представлен новый взгляд в этой области, и решалась новая задача - предотвращение атак типа «watering hole» путём размытия профиля пользователя в сети, который достигается за счёт генерации значительного объёма реалистичного трафика. Для реализации поставленной цели были разработаны алгоритмы моделирования поведения пользователя в сети - задающие методы генерации посещённых сайтов и страниц, распределения количества открываемых страниц на каждом сайте и количество времени, отводимое на задержку на данной странице. Был применён метод загрузки страниц, на котором основано большинство современных браузеров - WebKit.

Таким образом, в процессе выполнения ВКР были решены следующие задачи:

.         Изучена область по генерации трафика. В первой главе был произведён подробный анализ существующих методов генерации и способов оценки качестве генерируемого трафика;

.         Разработан механизм statefull-генерации HTTP запросов к серверам с ожиданием ответа и генерацией на его основе следующих запросов путём использования библиотеки WebKit в связке с GTK+

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

.         Разработаны методы моделирования поведения пользователя в сети путём реализации нескольких способов генерации списка страниц и различных распределений для количественных характеристик

.         Разработана модульная архитектура, с возможностью её дальнейшей интеграции в существующую в ИСП РАН систему работы с сетевым трафиком;

.         Разработана программа генерации сетевого трафика с параметрами, задаваемыми через конфигурационные файлы;

.         Разработана техническая документация к созданной программе.

После выполнения всей работы были произведены испытания получившейся системы. Реальные результаты запусков программы показывают, что удалось достичь вероятностных распределений, описанных в разделе 2.2 Создание модели поведения пользователя. Программа и Методика испытаний в разделе 6 Методика Испытаний.

Направления дальнейшей работы включают в себя следующие задачи:

-        Интеграция разработанной программы в систему работы с сетевым трафиком Института Системного Программирования РАН;

-        Расчёт экономической стоимости внедрения и поддержки разработанной системы на предприятиях различных отраслей;

-        Реализация методов определения времени на странице через анализ содержимого страницы.

Основные определения, термины и сокращения


DNS (Domain Name System) - протокол для системы доменных имён. Используется для получения IP-адреса по имени хоста

DPDK (Data Plane Development Kit) - набор библиотек и драйверов для высокоскоростной обработки данных (обработки сетевых пакетов)

Framework - программная платформа, определяющая структуру программной системы; программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта

GUI (Graphical User Interface) - графический пользовательский интерфейс

HTML (HyperText Markup Language) - «язык гипертекстовой разметки» - стандартизированный язык разметки документов во Всемирной паутине.

HTTP (Hyper Text Transport Protocol) - протокол прикладного уровня передачи данных в сети. Существует набор состояний клиента и сервера при обмене данных (например, 200 - сервер успешно принял и обработал сообщение клиента). Statefull - поддержка всех состояний работы протокола

HTTPS (Hyper Text Transport Protocol Secure) - расширение протокола HTTP, для поддержки шифрования в целях повышения безопасности. Данные в протоколе HTTPS передаются поверх криптографических протоколов SSL (Secure Sockets Layer) или TLS (Transport Layer Security)

ICMP (Internet Control Message Protocol) - протокол межсетевых управляющих сообщений. Используется для передачи сообщений об ошибках и других исключительных ситуациях, возникших при передаче данных, например, запрашиваемая услуга недоступна, или хост, или маршрутизатор не отвечают.

IDS (Intrusion Detection System) - устройство или приложения для мониторинга сети или системы и обнаружения случившихся вторжений или вирусов

IPS (Intrusion Prevention Systems) - приложение для сетевой безопасности, не допускающее в сеть или систему запросы или файлы, которые могут быть вредоносными

JS (JavaScript) - язык программирования, в основном используется на веб-сайтах

REST (Representational state transfer) запрос - HTTP Get или Post запрос, соответствующий общим архитектурным принципам взаимодействия распределённого приложения.

Statefull HTTP запросы - загрузка html-кода страницы и последующая обработка js-скриптов, поддержка сертификатов для HTTPS, загрузка картинок и иного медиа-контента. Например, в случае страницы отдельного видео на youtube - должна происходить его полная загрузка - как это происходит у пользователей, т.к. включается авто-проигрывание при открытии страницы.

URL (Uniform Resource Locator) - текстовое значение, служит стандартизированным способом записи адреса ресурса в сети Интернет.

Watering Hole - тип сетевых атак, при которых доступ к системе жертвы достигается путём заражения стороннего ресурса.

Wireshark - приложение для захвата и анализа сетевого трафика. На данный момент считается стандартов в данной области

WWW (World Wide Web) - всемирная паутина. Набор всех сайтов, входящих в сеть интернет

Сетевой пакет - последовательный набор байт, передаваемых по сети. Включает в себя несколько заголовков различных уровней. В модели TCP/IP выделяют 4 уровня - канальный, сетевой, транспортный, прикладной. Протоколы канального уровня называют также низкоуровневыми протоколами, последние два - высокоуровневыми. Для каждого из уровней существует определённый набор протоколов.

Список использованных источников

 

[1]     Abendan Oscar Celestino Angelo Watering Hole 101 [Электронный ресурс] // Trend Micro. - 13 02 2013 г.. - 25 01 2017 г.. - https://www.trendmicro.com/vinfo/us/threat-encyclopedia/web-attack/137/watering-hole-101.

[2]     Alessio Botta Alberto Dainotti, Antonio Pescapé A tool for the generation of realistic network workload for emerging networking scenarios [Журнал] // Elsevier. - Napoli : Elsevier, 24 March 2012 г.. - 80125 : Т. 21.

[3]     Aymen Hafsaoui Navid Nikaein, Lusheng Wang OpenAirInterface Traffic Generator (OTG): A Realistic Traffic Generation Tool for Emerging Application Scenarios. [Отчет] / Mobile Communications Department ; Eurocom. - Sophia : [б.н.], 2012.

[4]     Data plane development kit [Электронный ресурс]. - Febuary 2017 г.. - http://dpdk.org.

[5]     Field-programmable gate array [Электронный ресурс] // Wikipedia. - 2017 г.. - Febuary 2017 г.. - https://en.wikipedia.org/wiki/Field-programmable_gate_array.

[6]     J. Sommers H. Kim, P. Barford Harpoon: a flow-level traffic generator for router and network tests [Отчет]. - [б.м.] : SIGMETRICS, 2013.

[7]     Nicola Bonelli Andrea Di Pietro, Stefano Giordano, Gregorio Procissi Flexible High Performance Traffic Generation on Commodity Multi-Core Platforms [Отчет] / Universit`a di Pisa. - Pisa : Universit`a di Pisa, 2014.

[8]     P. Srivats Ostinato [Электронный ресурс] // Ostinato. - 2010 г.. - January 2017 г.. - http://ostinato.org.

[9]     Paul Emmerich Sebastian Gallenmüller, Daniel Raumer, Florian Wohlfart, Georg Carle MoonGen: A Scriptable High-Speed Packet Generator [Отчет] / Department of Computer Science ; Technische Universität München. - [б.м.] : Technische Universität München.

[10]   Raffaele Bolla Roberto Bruschi, Marco Canini A High Performance IP Traffic Generation Tool Based on the Intel IXP2400 Network Processor [Журнал]. - [б.м.] : Distributed Cooperative Laboratories: Networking, Instrumentation, and Measurements Signals and Communication Technology, 206 г.. - стр. 127-142.

[11]   Sandor Molna Geza Szabo How to Validate Traffic Generators [Конференция] // IEEE International Conference on Communications. - [б.м.] : IEEE ICC'13, 2013.

[12]   Shalvi Srivastava Sweta Anmulwar, A.M.Sapkal Comparative Study of Various Traffic Generator Tools [Конференция] // RAECS UIET. - Chandigarh : Panjab University Chandigarh, 2014.

[14]   StatCounter Statcounter [Электронный ресурс] // Statcounter. - StatCounter. - March 2017 г.. - https://statcounter.com.

[15]   Stefano Avallone Antonio Pescapè, Giorgio Ventre Analysis and Experimentation of Internet Traffic Generator [Конференция] // Distributed Computing Systems. - [б.м.] : 10th IEEE International Workshop, 2004. - стр. 277- 283.

[16]   Sudhakar Mishra Shefali Sonavane, Anil Gupta Study of Traffic Generation Tools [Журнал] // International Journal of Advanced Research in Computer and Communication Engineering. - 6 2015 г.. - 6 : Т. 4.

[17]   The WebKitGTK+ team [Электронный ресурс]. - Febuary 2017 г.. - https://webkitgtk.org.

[18]   Xin Su Dafang Zhang, Wenjia Li, Xiaofei Wang AndroGenerator: An automated and configurable android app network traffic generation system [Журнал] // SECURITY AND COMMUNICATION NETWORKS. - [б.м.] : Wiley Online Library, 15 September 2015 г.. - 4273 : Т. 8.

[19]   Yeongrak Choi Jae Yoon Chung, Byungchul Park, Paul Barford Automated Classifier Generation for Application-Level Mobile Traffic Identification [Отчет] / Division of IT Convergence Engineering. - Pohang : POSTECH, 2012.

[20]   Нефёдова Мария Недавняя атака на польские банки связана с хак-группой Lazarus, взломавшей Sony Picture [Электронный ресурс] // Хакер. - 14 02 2017 г.. - 20 02 2017 г.. - https://xakep.ru/2017/02/14/lazarus-new-campaign/.

[21]   Google 1.9.3 Python Package Index [Электронный ресурс]. - March 2017 г.. - https://pypi.python.org/pypi/google.

[22]   XML-формат файла Sitemap [Электронный ресурс]. - Febuary 2017 г.. - https://www.sitemaps.org/ru/protocol.html.

[23]   Web-Stat / Live Web Traffic Analysis and Visitors Details [Электронный ресурс]. - Febuary 2017 г.. - http://www.web-stat.com.


Не нашли материал для своей работы?
Поможем написать уникальную работу Без плагиата!