Портал образовательно-информационных услуг «Студенческая консультация»

  
Телефон +3 8(066) 185-39-18
Телефон +3 8(093) 202-63-01
 (093) 202-63-01
 studscon@gmail.com
 facebook.com/studcons

<script>

  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){

  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),

  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)

  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

 

  ga('create', 'UA-53007750-1', 'auto');

  ga('send', 'pageview');

 

</script>

Засіб захисту від DOS-атак

Тип работы: 
Бакалаврська робота
К-во страниц: 
57
Язык: 
Українська
Оценка: 

().

Після отримання інформації про тип пакету, фіксується поточна кількість переданих та відправлених байт даних через активний мережевий інтерфейс, отримується відсоток завантаженності центрального процесора за допомогою функції getCpu () та фіксуються дані про використану та доступну фізичну та віртуальну оперативну пам'ять. Дані про кількість пакетів, переданий та отриманий трафік та системне навантаження виводяться на екран та зберігаються у log-файл.
 
 Рисунок 2. 3 – схема роботи функції my_callback
 
Кількість переданого та отриманого трафіку фіксується за допомогою зчитування системних файлів мережевого інтерфейсу по типу /sys/class/net/eth0//statistics/rx_bytes та tx_bytes відповідно.
Для отримання даних про використання фізичної та віртуальної пам'яті використовуються системні функції з бібліотеки sysinfo. h.
long long virtualMemUsed = memInfo. totalram – memInfo. freeram;
virtualMemUsed += memInfo. totalswap – memInfo. freeswap;
virtualMemUsed *= memInfo. mem_unit;
long long totalPhysMem = memInfo. totalram;
Для роботи з файлами викоритовуються потоки та функція fprintf ().
Для розрахунку відсотку завантаження центрального процесора у функції getCpu використовується читання системного файлу /proc/stat.
file = fopen («/proc/stat», «r») ;
fscanf (file, «cpu% llu% llu% llu% llu», &totalUser, &totalUserLow,
&totalSys, &totalIdle) ;
total = (totalUser – lastTotalUser) + (totalUserLow – lastTotalUserLow) +
(totalSys – lastTotalSys) ;
percent = total;
total += (totalIdle – lastTotalIdle) ;
percent /= total;
percent *= 100;
Функція handle_ip () призначена для розпізнавання типу IPv4 пакету та їх рахування за допомогою попереднью створених глобальних змінних.
 
Рисунок 3. 4 – Результат роботи програми
 
TCP-пакети передаються функці handle_tcp () для розпізнавання прапорів SYN, ACK та RST.
if ( (curtcp->th_flags & TH_SYN) && (curtcp->th_flags & TH_ACK) ) {
++synack;
} else if (curtcp->th_flags & TH_SYN)
++syn;
else if (curtcp->th_flags & TH_ACK)
++ack;
else if (curtcp->th_flags & TH_RST)
++rst;
Результатом роботи програми є відображення на екрані кількості пакетів у реальному часі та фіксування даних у log-файлі для подальшої обробки (див. рис. 2. 4).
 
3.3. Тестування програмного засобу
 
Для тестування програмного засобу було досліджено поведінку програми внаслідок проведення декількох різних DoS-атак.
Було протестовано декілька атак, таких як SYN Flood, Slowloris та SSL DOS.
 
 Рисунок 3. 5 – Структура локальної мережі
 
Для тестування використовувалась домашня локальна мережа наступної конфігурації (див. рис. 3. 5) :
‒комп'ютер, з якого проводилась атака наступної конфігурації: персональний комп'ютер з Intel Core i5 4590, 8GB RAM, під'єднаний за допомогою Ethernet, ОС Arch Linux, IP-адреса: 192. 168. 12. 254
‒комп'ютер, на якому тестувався розроблений програмний засіб – ноутбук Lenovo ThinkPad x121e з AMD E-300, 4 GB RAM, під'єднаний за допомогою Wi-Fi з WPA2-PSK, ОС BlackArch, IP-адреса: 192. 168. 12. 157
‒маршрутизатор ASUS RT-N12 з ОС AsusWRT, IP-адреса 192. 168. 12. 1.
Для імітації атак використовувалось загальнодоступне ПЗ з дистрибутива BlackArch.
 
3.3.1. SYN Flood
 
На комп'ютері, на якому встановлений програмний засіб, було встановлено та налаштовано веб-сервер Apache та відключено міжмережевий екран.
Атака виконуваласьза допомогою програми hping. Hping – це генератор пакетів та TCP/IP-аналізатор, який може працювати також і як інструмент для проведення атак на відмову в обслуговуванні. Вагомою перевагою цього програмного засобу є можливість використання TCL-скриптів для автоматизациї надсилання послідовностей пакетів.
hping3 -S -p 80 192. 168. 12. 157 --rand-source --flood
Наведені параметри:
-S – використання TCP-пакетів з прапорами SYN;
-p 80 – надсилати пакети на 80-й порт (порт веб-сервера за замовчуванням) ;
192. 168. 12. 157 – IP-адреса комп'ютера для тестування;
--rand-source – випадковим чином змінювати IP-адресу відправника у кожному пакеті (IP-spoofing) ;
--flood – надсилати пакети так швидко, як це можливо.
Для завершення роботи програми необхідно надіслати сигнал про завершення в термінал (комбінація Ctrl+C).
В результаті роботи програми для імітації атаки отримано наступний результат:
--- 192. 168. 12. 157 hping statistic ---
8315188 packets tramitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0. 0/0. 0/0. 0 ms
Помітна 100% втрата пакетів, що є ознакою повного блокування мережі.
Результатом роботи розробленого програмного засобу є отриманий log-файл, на основі якого побудований графіки залежності кількості пакетів та об'єму трафіку від часу, представлені на рисунку 3. 6.
Вміст log-файлу в нормальному режимі роботи:
Sun Jun 12 17: 14: 49 2016
IPv4: 68 IPv6: 0 ARP: 0 Other: 10 TCP: 60 UDP: 8 ICMP: 0 Other: 0 SYN: 3 SYN+ACK: 2 ACK: 55 RST: 0 RX: 53757 TX: 8495 RAM: 3393540096/3726688256 VRAM: 3393630208/12316618752 CPU: 54. 4
Sun Jun 12 17: 14: 50 2016
IPv4: 79 IPv6: 0 ARP: 0 Other: 11 TCP: 71 UDP: 8 ICMP: 0 Other: 0 SYN: 3 SYN+ACK: 3 ACK: 65 RST: 0 RX: 55582 TX: 10332 RAM: 3394048000/3726688256 VRAM: 3394138112/12316618752 CPU: 51. 8
Sun Jun
CAPTCHA на основе изображений