Нагрузочное тестирование 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.2015DDoS атаки. Спасение от 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