Нагрузочное тестирование web-сервера и DDoS

Получение представления о локальных вычислительных сетях и практических навыков о принципах осуществления DDoS атак и защиты от них. Определение производительности web-серверов Apache и Nginx с помощью нагрузочного тестирования. Применение команды ping.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 20.12.2023
Размер файла 3,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://allbest.ru

Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего образования «Санкт-Петербургский государственный университет телекоммуникаций им. проф. М.А. Бонч-Бруевича» (СПбГУТ)

Факультет «Информационных систем и технологий»

Кафедра «Интеллектуальных систем автоматизации и управления»

Направление подготовки: 09.03.02 - Информационные системы и технологии

Направленность (профиль):Системное и прикладное программирование информационных систем

ЛАБОРАТОРНАЯ РАБОТА

на тему:

«Нагрузочное тестирование web-сервера и DDoS»

по дисциплине:

Информационная безопасность киберфизических систем

Выполнил студент Попугаев Д.Г.

Руководитель Ассистент Грибовский А.А.

Цель работы

С помощью систем нагрузочного тестирования определить производительность web-серверов Apache и Nginx, добиться отказа в обслуживании. Получить теоретические и практические навыки о принципах осуществления DDoS атак и защиты от них.

Задачи:

- получить представление о локальных вычислительных сетях;

- ознакомится с технологиями шифрования;

- выполнить эксперименты, представленные в работе;

- проанализировать полученные результаты.

Ход работы

Прежде всего для выполнения лабораторной работы были установлены статические ip-адреса (рис.1).

Рисунок 1 - Применение команды ifconfig на двух машинах.

На рисунке выше слева показан терминал сервера, а справа терминал хакера. Данные машины используются ещё с лабораторной работы №4.

Далее при помощи команды ping было проанализировано соединение двух этих машин (рис.2-3).

Рисунок 2 - Применение команды ping с сервера.

Рисунок 3 - Применение команды ping с хакера.

Apache benchmark -- одна из самых простых утилит, которая применяется для нагрузочного тестирования сайта. Идет в комплекте с веб сервером Apache, в первоначальной настройке не нуждается. Задача, которая ставится перед Apache benchmark -- показать, какое количество запросов сможет выдержать веб сервер и как быстро он их обработает.

Далее была использована команда <ab -n 5000 http://192.168.1.116/index.html> для нагрузки на сервер в 5000 последовательных запросов (рис.4).

Рисунок 4 - Использование команды ab -n 5000 http://192.168.1.116/index.html.

При проведении дальнейших исследований был получен результат (рис.5). В данном случае использовалась команда ab -n 1000 https://192.168.1.116/index.html.

Рисунок 5 - Использование команды ab -n 1000 https://192.168.1.116/index.html.

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

Concurrency Level: количество одновременно-отправляемых запросов -- 1;

Time taken for tests: тысяча запросов к серверу заняла 1,5 секунды;

Complete requests: успешно получен ответ на всю тысячу запросов;

Failed requests: неудавшихся запросов -- ноль;

Write errors: ошибок записи -- ноль;

Total transferred: общий объём переданных данных: 453000 байт;

HTML transferred: из них «полезного» HTML -- 177000 байт;

Requests per second: среднее количество запросов в секунду составило 666.58

Time per request: среднее время на один запрос 1,5 миллисекунды

Transfer rate: скорость обмена данными с сервером составила 294.88 килобайта в секунду.

Далее в выводе идёт информация о времени, затраченном на сетевые подключения и на обслуживание запросов сервером. Как можно заметить, сервер успешно справился с тысячей последовательных загрузок статического файла небольшого размера. Далее была использована команда <ab -n 5000 -c 500 http://192.168.1.116/index.html> (рис.7) нагрузки на сервер в 5000 запросов, но 500 из них будут направлены на сервер одновременно (параллельные запросы)

Рисунок 6 - Использование команды ab -n 5000 -c 500 http://192.168.1.116/index.html.

Следующая часть лабораторной работы связана с работой скриптов. Здесь уже серверу нужно не просто отдать файл, а запустить интерпретатор, дождаться от него вывода и вернуть вывод клиенту. Работа интерпретатора займёт определённое число ресурсов системы, что также отразится на производительности сервера в целом. Для этого была использована команда ab -n 1000 -c 300 https://aserver.ashep:80/test.php (рис.7).

Рисунок 7 - Использование команды ab -n 1000 -c 300 https://aserver.ashep:80/test.php.

Рисунок 8 - Использование команды sudo apt-get install nginx.

В данном случае сервер успешно справился с запросами, однако время их обработки существенно возросло, составив в среднем 44 миллисекунды на запрос, в то время как отдача небольшого HTML-файла примерно такого же размера составляла всего лишь 13 миллисекунд. Далее при помощи команды <sudo apt-get install nginx> был установлен Nginx (рис.8). Далее были проведены всё те же действия. Итоги исследований представлены ниже в таблице. атака защита вычислительный сеть ping

Таблица 1 - Итоги исследования.

Максимальное число запросов

Запросы/сек

Время на запрос, мс

% успешных запросов

Apache

PHP

~1500

22.67

44.1

99

HTML

~2000

666.58

1.5

98

Nginx

PHP

~3000

15.11

27.1

100

HTML

~5000

543.24

1.1

100

Дополнительное задание

Атака произвольными пакетами. ICMP-Flood. Аномалия: Очень сильная загрузка процессора и сильное увеличение входящего и исходящего ICMP трафика, равного по значениям.

Признак: Множество пакетов передаётся по протоколу ICMP.

Для противодействия атаке возможны следующие меры: отключить ответы на ICMP-запросы <iptables -A OUTPUT -p udp -j DROP>; понизить приоритет обработки ICMP-сообщении?; отбросить или фильтровать ICMP-трафик межсетевым экраном < iptables -A INPUT -p icmp -j DROP --icmp-type8>; увеличить очередь обрабатываемых подключении?. Данная атака была проведена в качестве атакующей машины и нашу Windows 11 в качестве целевой машины (рис.9). Чтобы запустить ICMP flood, нам нужно написать следующую команду: hping3 --icmp --flood <Target IP Address>.

Рисунок 9 - Использование сети системой до DDoS-атаки ICMP flood.

Далее с машины хакера была произведена атака на данную машину. В ходе этой атаки сеть жертвы заполняется пакетами запросов ICMP, так что она становится недоступной для законных пользователей, хотя отвечает равным количеством ответных пакетов (рис.10-11).

Рисунок 10 - Использование сети системой во время DDoS-атаки ICMP flood.

Рисунок 11 - Сетевая активность.

Такие инструменты, как “hping” и “scapy”, могут использоваться для передачи сетевой цели пакетов ICMP-запросов. Эти инструменты создают большую нагрузку как на входящие, так и на исходящие каналы сети, потребляя значительную пропускную способность, что приводит к отказу в обслуживании.

Атака произвольными пакетами. SYN-Flood. Аномалия: Кратковременный скачок используемых ресурсов процессора и многократное увеличение входящего и исходящего трафика, и их количество равно.

Признак: В TCP-стеке появляется большое количество полуоткрытых соединении? со статусом SYN_RECV.

Защита: Современные реализации TCP протокола и некоторые межсетевые экраны имеют механизм защиты от SYN flood атак. Для реализации данной атаки необходимо установить hping3 при помощи команды <sudo apt-get install hping3> (рис.12).

Рисунок 12 - Установка hping3.

Чтобы начать атаку на цель необходимо использовать следующую команду: <hping3 -c 15000 -d 120 -S -w 64 -p 80 --flood --rand-source 192.168.56.101>. Итого было отправлено 15000 пакетов («-c 15000») размером 120 байт («-d 120») каждый. Флаг SYN («-S») должен быть включен, а размер TCP-окна имеет значение 64 («-w 64»). Чтобы направить атаку на HTTP-веб-сервер жертвы, было указано порт 80 («-p 80») и использован флаг («--flood») для максимально быстрой отправки пакетов. Флаг («--rand-source») используется для генерирования поддельных IP-адресов, чтобы замаскировать реальный источник и избежать обнаружения, а также в то же самое время не дать системе злоумышленника получать ответные пакеты с установленными флагами SYN и ACK от сервера жертвы. Для анализа трафика на машине жертвы был установлен Wireshark (рис.13). Wireshark представляет собой программу-анализатор трафика для компьютерных сетей Ethernet и некоторых других. Имеет графический пользовательский интерфейс (рис.14).

Рисунок 13 - Установка Wireshark.

Рисунок 14 - Запуск программы из главного терминала.

График полученных/отправленных пакетов можно получить с помощью выбора меню «Statistics --> I/O Graph». Для указанного выше примера этот график демонстрирует огромный всплеск количества пакетов от 0 до примерно 2400 пакетов в секунду (рис.14).

Принцип действия атаки заключается в следующем:

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

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

Рисунок 15 - Иллюстрация атаки TCP SYN Flood с помощью графика Wireshark.

Вывод

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

Размещено на Allbest.ru

...

Подобные документы

  • Проверка работоспособности и производительности стандартно настроенного web-сервера в условиях нагрузочного тестирования. Определение критического количества одновременных запросов для данной конфигурации сервера. Нагрузка на скриптовой язык PHP.

    лабораторная работа [1,6 M], добавлен 23.03.2015

  • DDoS атаки. Спасение от DDoS атак. Предотвращение DDoS атак. Аппаратная защита программного обеспечения, компьютера и информации, сети. Хакинг, как сфера исследования. Типы хакеров. Методы хакинга. Защита от программ Microsoft. CMOS SETUP.

    курсовая работа [39,5 K], добавлен 06.02.2007

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

    отчет по практике [713,6 K], добавлен 13.05.2014

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

    дипломная работа [7,7 M], добавлен 21.06.2011

  • Установка и настройка локального web–сервера и его компонентов. Конфигурационные файлы сервера Apache и их натройка. Настройка PHP, MySQL и Sendmail. Проверка работоспособности виртуальных серверов. Создание виртуальных хостов. Тест Server Side Includes.

    учебное пособие [6,2 M], добавлен 27.04.2009

  • Исследование криптографического протокола, способного обеспечить надежную взаимную аутентификацию и обмен ключами, оставаясь наименее уязвимым к DDoS атакам. Анализ существующих аналогичных протоколов. Программная реализация схемы, платформа разработки.

    дипломная работа [850,3 K], добавлен 11.07.2012

  • Проведение тестирования производительности Node.js сервера в зависимости от количества и интенсивности подключений, анализ данных. Аппаратные и программные компоненты тестового стенда. Принцип работы протокола websocket. Серверная часть приложения.

    курсовая работа [3,8 M], добавлен 07.07.2013

  • Тестирования центрального процессора и оперативной памяти компьютерных систем и серверов. Устройство функциональной диагностики коры головного мозга. Сравнительное тестирование производительности и стабильности процессоров в режиме "оверклокинга".

    дипломная работа [4,8 M], добавлен 11.06.2012

  • Модели нарушителей глобальной информационной системы Интернет. Классификация угроз в соответствии с IT-Baseline Protection Manual. Реализация DoS/DDos атак. Программная реализация Snort: установка, препроцессоры и структура модулей обнаружения и вывода.

    дипломная работа [509,5 K], добавлен 05.06.2011

  • Понятие государственной и коммерческой тайны. Основные нормативные документы по оценке информационной безопасности. Потенциальные угрозы безопасности информации в локальных вычислительных сетях. Криптография и ее применение. Защита от удаленных атак.

    курсовая работа [37,3 K], добавлен 24.03.2013

  • Основные характеристики блока питания, системной платы, процессора. Выбор, обоснование тестов работоспособности компонентов системы. Методика проведения нагрузочного тестирования. Установка операционной системы. Подключение и настройка доступа в Интернет.

    курсовая работа [251,2 K], добавлен 23.12.2016

  • Пути несанкционированного доступа, классификация способов и средств защиты информации. Анализ методов защиты информации в ЛВС. Идентификация и аутентификация, протоколирование и аудит, управление доступом. Понятия безопасности компьютерных систем.

    дипломная работа [575,2 K], добавлен 19.04.2011

  • Общее понятие, основные компоненты и функции операционной системы. Порядок установи операционной системы UbuntuLinux. Особенности инсталляции веб-сервера Nginx для передачи данных по протоколу HTTP. Установка системы управления базами данных MongoDB.

    курсовая работа [2,3 M], добавлен 11.06.2014

  • Общие сведения о протоколе передачи данных FTP. Технические процессы осуществления соединения с помощью протокола FTP. Программное обеспечение для осуществления соединения с помощью протокола FTP. Некоторые проблемы FTP-серверов. Команды FTP протокола.

    реферат [766,6 K], добавлен 07.11.2008

  • Компоненты вычислительной системы, предоставляющие клиенту доступ к определенным ресурсам и обмен информацией. Функциональные возможности ядра веб-сервера Apache. Механизм авторизации пользователей для доступа к директории на основе HTTP-аутентификации.

    курсовая работа [105,6 K], добавлен 07.06.2014

  • Предназначение службы доменных имен (DNS). Трансляция доменных имен в IP-адреса и обратно как основная задача DNS-серверов, их иерархичность. Вертикальные и горизонтальные связи. Использование рекурсивных серверов в локальных сетях. База данных DNS.

    контрольная работа [450,7 K], добавлен 30.06.2009

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

    отчет по практике [183,6 K], добавлен 31.12.2008

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

    курсовая работа [420,0 K], добавлен 27.04.2013

  • Анализ принципов построения виртуальных сетей. Определение некоторых методов защиты в VPN сетях. Классификация основных методов построения таких сетей. Характеристика основных угроз и рисков в виртуальных сетях. Особенности возможных атак на VPN.

    дипломная работа [1,2 M], добавлен 22.09.2011

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

    дипломная работа [1,6 M], добавлен 26.05.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.